01 - 计算机网络中的基本概念
发布于 2022年 04月 08日 00:49
计算机网络的一些基本概念
什么是计算机网络
计算机网络由一些通用的, 可编程的硬件互连而成的, 这些硬件能够用来传送多种不同类型的数据, 支持广泛的和日益增长的应用
- 多种硬件: 计算机, 智能手机, 智能传感器等各种硬件
- 多种应用: 图片, 音频, 视频等各种应用
什么是互联网
互联网(Internet): 采用TCP/IP协议族作为通信规则, 把各种计算机连接起来而形成的一个网络, 它是一个全球范围内的连通性和共享的计算机网络
注意
internet(通用名词): 泛指多个计算机形成的网络
Internet(专用名词): 特指采用TCP/IP协议族作为通信规则的计算机网络
计算机网络的分类
-
电话网络: 提供电话电报及传真服务
-
有线电话网络: 向用户发送各种电视节目
-
计算机网络: 在计算机之间传送数据文件
计算机网络的特点
- 连通性: 可以彼此交换信息
- 共享: 资源共享 (信息共享, 软件共享, 硬件共享)
计算机网络的组成
边缘部分
由所有连接在互联网上的主机组成. 用户直接使用, 用来通信和资源共享
可以是电脑, 手机或者摄像头
核心部分
由大量网络和连接这些网络的路由器组成. 为边缘部分提供服务
可以是服务器, 大型计算机
什么是通信
主机A和主机B进行通信: 实际上是指运行在主机A上的某个程序和运行在主机B上的某个程序进行通信
也就是主机A的某个进程和主机B上的某个进程进行通信, 简称为"计算机之间的通信"
通信方式
- C/S方式(客户/服务器方式)
客户端的进程和服务器端的进程间的通信, 被服务和服务的关系
客户是服务的请求方, 服务器是服务的提供方
- P2P方式(Peer-to-Peer方式, 对待连接方式)
两个主机在通信时不需要区分哪个是服务请求方哪个是服务提供方
P2P特点: P2P方式本质上仍然是客户C/S方式, 只是P2P中的每一个主机既是客户又是服务器
客户端软件的特点
- 必须知道服务器的地址
- 在打算通信时主动向服务器发起通信请求
- 不需要知道特殊的硬件和很复杂的操作系统
服务器端软件的特点
-
不需要知道客户程序的地址
-
一直不断的运行着, 被动的等待
-
一种专门用来提供某种服务的程序
交换技术
- 电路交换
- 分组交换
- 报文交换
电路交换
两部电话需要2根线
5部电话需要10根线
n部电话需要n(n-1)/2根线
可以发现需要电线的数量与电话数量的平方成正比, 我们使用交换机来解决这个问题
电路交换的三个阶段
-
建立连接 建立一条专用的物理通路, 保证这条道路不会被其他用户占用
-
通信: 相互通话
-
释放连接: 释放这条专用的物理通路, 保定其它用户可以使用
电路交换的特点
- 面向连接
- 具有突发性
- 通信线路的利用率我很低 (10%以下, 甚至不到1%)
分组交换的特点
-
采用存储转发技术
-
把长报文划分成较短的, 固定长度的数据段, 在每一个数据段前面加上首部构成分组(packet)
-
把各分组发送到接收端
-
接收端剥去首部还原成报文
分组交换的优点
- 高效 动态分配传输带宽, 对通信链路逐段占用
- 灵活 为每一个分组独立选择最合适的路由
- 迅速 可以不先建立连接, 就能向其他主机发送分组
- 可靠 可靠的网络协议, 分布式多路由的分组交换网
分组交换的问题
- 在结点存储转发时需要排除, 造成一定的时延
- 每个分组必须携带首部, 造成一定的开销
路由器处理过程
-
把收到的分组先放入缓存
-
查找转发表, 找出到目的地址从哪个端口转发
-
把分组送到适当的端口转发出去
主机和路由器的区别
-
主机是为用户进行信息处理的, 并向网络发送分组, 从网络接收分组
-
路由器对分组进行存储转发, 最后把分组交付目的主机
三种交换的比较
连接传送大量数据, 传送时间远大于连接建立时间, 则电路交换的传输速率较快
报文交换和分组交换不需要预先分配带宽, 在传送突发数据时可提高整个网络的信道利用率
每个分组的长度远远小于整个报文的长度, 因此分组交换的时延小, 有更好的灵活性
互联网的类别
按照范围进行分类
广域网WAN(Wide Area Network) 作用范围几十到几千公里
城域网MAN(Metropolitan Area Network) 作用范围5-50公里
局域网LAN(Local Area Network) 1公里左右
个人区域网PAN(Personal Area Network) 10米左右
按照使用者进行分类
公用网(Public Network) 每个人都可以使用的网络
专用网(Private Network) 为特殊业务工作需要而建造的网络
计算机网络的性能
速率
数据的传送速率, 也称为数据率或比特率, 单位是bit/s(比特/秒)
速率往往是指额定速率或标称速率, 非实际运行速率
带宽
用来表示网络中通道传送数据的能力, 表示在单位时间内网络的信道所能通过的"最高数据率", 单位是bit/s
呑吐率
单位时间内通过某个网络的数据量
时延
数据从网络的一端传送到另一端所需的时间
-
发送时延(传输时延) 从发送数据的第一个比特开始, 到该数据的最后一个比特结束所需时间
发送时延 =
-
传播时延 数据在信息中传送一定的距离而花费的时间
传播时延 =
-
处理时延 主机或路由器在收到分组时, 处理分组(分析首部, 提取数据, 差错控制或查找路由)所花费的时间
-
排队时延 分组在路由器输入输出队列中排队等待处理所经历的时延
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
时延带宽积 传播时延 * 带宽
发送端发送的第一个bit到达接收端时, 发送端发送的bit的多少, 可以简单的理解为某段链路现在有多少bit, 也就是容量
往返时间RTT
从发送方发送数据开始, 到发送方收到来自接收方的确认, 总共经历的时间 (包括各结点的处理时延, 排队时延, 发送时延)
利用率
-
信道利用率
信道有百分之几的时间是被利用的
-
网络利用率
全网络的信道利用率的加权平均值
-
注意
信道利用率并非越高越好, 当信道的利用率增大时, 该信道引起的时延也就迅速增加
网络当前时延 =
当网络利用率增大时, 信道引起的时延迅速增加
互联网的体系结构
OSI 理论参考模型
TCP/IP事实上的模型
网络协议
为进行网络中的数据交换而建立的规则, 标准或约定
网络协议三要素
- 语法
数据与控制信息的结构或格式
- 语义
需要发出何种控制信息, 完成何种动作以及做出何种响应
- 同步(时序)
事件实现顺序的详细说明
计算机网络的体系结构
计算机网络的各层及其协议的集合
OSI的七层协议的体系结构
应用层, 表示层, 会话层, 运输层, 网络层, 数据链路层和物理层
TCP/IP的四层协议的体系结构
应用层, 运输层, 网际层和网络接口层
在实际研究中五层协议的体系结构
应用层, 运输层, 网络层, 数据链路层和物理层
数据发送和接收的过程
总结
虽然自己从事IT行业多年, 写过Java, 干过Android, 头脑一热还在HTML\CSS\JS里畅游, 嗯, 其实我的主业是iOS, 从以上可以看出, 我可能不太安生, 喜欢小打小闹, 一直浮于表面, 从未深入了解, 从未看过关于底层原理的书或者文章, 从今天开始我要改过自新, 去扎根基础与原理, 也不枉我从事的这个行业与我付出的汗水!