计算机网络知识点
计算机网络的概念
定义
一些互连的、独立自治的计算机集合。最重要的功能是连通性和资源共享
分类
从网络的作用范围进行分类:
广域网
WAN (Wide Area Network)
、局域网LAN (Local Area Network)
、城域网MAN (Metropolitan Area Network)
、个人区域网PAN (Personal Area Network)
从网络的使用者进行分类:
公用网
(public network)
、专用网(private network)
、接入网AN (Access Network)
计算机网络的性能指标
基础前置知识
比特(bit)意思是一个二进制数字(0或1)。 B为字节(Byte),b为比特(bit),一字节为8比特,即1B = 8b。
网络技术中的数率
指的是数据的传送速率,当数据率较高时,常常在bit/s前面加上字母,比如k = 10³ , M = 10⁶ , G = 10⁹ , T = 10¹²
等。 注意区分网络传输和文件系统中的数据后缀字母。比如一个100MB的文件,这里的M就是2²⁰。传输率为100Mbit/s,这里的M为10⁶
数据率
又叫比特率
,指连接在网络上的主机在数字信道上传送数据的速率。 速率的单位是:b/s
,或kb/s
,Mb/s
,Gb/s
等
带宽
带宽本来是指信号具有的频带宽度,单位是赫兹(或千赫、兆赫、吉赫等)。 现在“带宽”是数字信道所能传送的“最高数据率
”的同义语
时延
发送时延
发送数据时,数据帧从结点进入到传输媒体所需要的时间:
传播时延
电磁波在信道中需要传播一定的距离而花费的时间:
处理时延
交换结点为存储转发而进行一些必要的处理所花费的时间
排队时延
结点缓存队列中分组排队所经历的时延
总时延
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
利用率
信道利用率
指出某信道有百分之几的时间是被利用的网络利用率
则是全网络的信道利用率的加权平均值
为网络空闲时的时延,为当前时延,为利用率
计算机网络的体系结构
OSI的七层协议
从上到下为:应用层
,表示层
,会话层
,运输层
,网络层
,数据链路层
,物理层
协议的概念
控制两个对等实体
进行通信而建立的规则、标准或约定语法
:数据与控制信息的结构或格式语义
:需要发出何种控制信息,完成何种动作以及做出何种响应同步
:事件实现顺序的详细说明
存储转发
路由器在输入链路上接收整个分组
、存储接收的分组
、然后选择输出链路
,并以最大传输速率向输出链路转发
分组交换技术☆
作用:提高信道利用率,提高抗毁性
端到端数据流
被划分为若干数据块,添加首部形成若干分组,分组首部中携带地址、长度等控制信息主机
的用途是为用户进行信息处理,并且可以和其他主机通过网络交换信息路由器
的用途则是用来转发分组,即进行分组交换
分组交换的优点:
高效
:动态分配传输带宽,对通信链路是逐段占用灵活
:以分组为传送单位和查找路由迅速
:不必先建立连接就能向其他主机发送分组可靠
:保证可靠性的网络协议分布式的路由选择协议
使网络有很好的生存性
五层结构(OSI与TCP/IP的折中方案)
应用层
是体系中的最高层,任务是通过应用进程间的交互来完成特定网络应用
,把应用层交互的数据单元称为报文
运输层
为两台主机中进程
之间的通信提供通用的数据传输服务
,主要用到以下两种协议:
TCP
:传输控制协议(Transmission Control Protocol
),提供面向连接,可靠地数据传输服务,其数据传输的单位是报文段
UDP
:用户数据报协议(User Datagram Protocol
),提供无连接的,尽最大努力的数据传输服务,是不可靠的
,其数据传输的单位是用户数据报
网络层
负责为分组交换网上的不同主机
提供通信服务
在发送数据时,网络层把运输层产生的报文段或者用户数据报封装成分组或包
进行传送
网络层在TCP/IP体系中
使用IP协议
,因此分组
也叫做IP数据报
数据链路层
两台主机之间的数据传输,总是在一段一段的链路上进行传送的,需要使用专门的链路层协议
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报
组装成帧
,在两个相邻结点
之间的链路上传送帧。每一帧包括数据和必要的控制信息(同步信息,地址信息,差错控制等)。
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样数据链路层在接收到一个帧后,就可以从中提取出数据部分,上交给网络层
物理层
物理层利用传输介质为通信的两端建立、管理和释放物理链接,实现比特流的透明传输,保证比特流正确的传输到对端
物理层上所传数据的单位是比特
注:传递信息所用的载体(比如双绞线,光缆等)不属于物理层,是物理层下面一层
TCP/IP体系结构(四层结构,IP协议的地位)☆
物理层
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是
指具体的传输媒体
数据通信基础☆
通信方式
单工
通信:能有一个方向的通信而没有反方向的交互,例如:广播和电视节目
半双工
通信:通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收),例如:对讲机
全双工
通信:通信的双方可以同时发送和接收信息,例如:手机
数字信号的编码概念
将数字数据采用数字信号进行编码,数字信号是离散的电压或电流脉冲序列,常用方法是使用脉冲信号来表示二进制数字字符“0”和“1”
数字信号的编码方式☆
不归零制
:正电平代表1,负电平代表0归零制
:正脉冲代表1,负脉冲代表0曼彻斯特编码
:位周期中心的向上跳代表0,位周期中心的向下跳代表1,也可以反过来定义差分曼彻斯特编码
:在每一位的中心处始终都有跳变,位开始边界有跳变代表0,而位开始边界没有跳变代表1
信道极限容量
信噪比
:如果信号相对较强,那么噪声的影响就相对较小,因此信噪比就很重要。香农(Shannon)
用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限
、无差错
的信息传输速率。信道的极限信息传输速率 可表达为: ,其中为信道的带宽(以 Hz 为单位)、为信道内所传信号的平均功率、为信道内部的高斯噪声功率
传输介质☆
概念
泛指
计算机网络中用于连接各计算机的物理媒体
,特指
用来连接各个通信处理设备的物理介质
分类
- 双绞线:最古老又最常用、价格便宜
- 光纤:传输带宽大,传输损耗小,中继距离长,抗干扰能力强(雷电和电磁干扰),保密性好(不易被窃听)体积小,重量轻。精确对接困难
- 无线电波:通过空间电磁传播、无需安装物理线路
- 红外线:通过空间电磁传播、无需安装物理线路
多路复用技术
复用
是通信技术中的基本概念
频分复用
用户被分配在一定频宽后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽资源
时分复用
将时间划分为一段段等长的时分复用帧,每一个时分复用的用户在每一个TDM帧
中占领固定序号的时隙,时分复用的所有用户是在不同的时间占用同样的频带宽度
码分复用
更常用的名词是码分多址CDMA
,每个用户可以在同样时间使用同样频带进行通信,具有很强的抗干扰性
宽带接入技术
ADSL
非对称数字用户线,ADSL 技术就是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务
HFC
光纤同轴混合网HFC
,HFC 网是在目前覆盖面很广的有线电视网 CATV 的基础上开发的一种居民宽带接入网。HFC 网除可传送 CATV 外,还提供电话、数据和其他宽带交互型业务
数据链路层
使用点对点信道的数据链路层
这种信道使用一对一的点对点通信方式
封装成帧
封装成帧(framing)
就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧
透明传输
字节填充或字符填充
:发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(其十六进制编码是1B)。 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个
差错控制
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)
。误码率与信噪比有很大的关系,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 数据链路层广泛使用循环冗余检验 CRC
的检错技术
CRC循环冗余检验
以下运算皆使用二进制的模2运算
CRC冗余码的生成:先进行乘M(待发送的数码),其相当于在M后面加n个零,M(k位)是原本的数码。然后除以除数P(n+1位)(一般用多项式表示,比如P为1101,用多项式表示就是,就是对应位),得到的余数(n位)就是冗余码,把它拼接到尾部即可
CRC冗余码的检验:将收到的数码(k+n位)除以事先商定好的除数P(n+1位),得出的余数为R(n位),如果R为0说明没有差错
点对点协议PPP
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议
零比特填充
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
使用广播信道的数据链路层☆
这种信道使用一对多
的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议
来协调这些主机的数据发送。
局域网
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限
局域网具有如下的一些主要优点:
具有广播功能,从一个站点可很方便地访问全网
局域网上的主机可共享连接在局域网上的各种硬件和软件资源
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
提高了系统的可靠性、可用性和残存性
CSMA/CD协议
CSMA/CD
:载波监听多点接入/碰撞检测
多点接入
表示许多计算机以多点接入的方式连接在一根总线上载波监听
是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞碰撞检测
就是计算机边发送数据边检测信道上的信号电压大小。 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞
使用广播信道的以太网☆
以太网:施乐公司1975年研制的基带总线局域网,数据率为2.94Mb/s,使用集线器的星形拓扑,传统以太网最初是使用同轴电缆,后发展为使用更便宜和更灵活的双绞线。这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
以太网的利用率
发送一帧占用线路的时间是 ,而帧本身的发送时间是 ,要提高信道利用率必须减小 与 的比值
首先定义参数 ,在理想的情况下,以太网上的各站发送数据都不会产生碰撞,即总线一旦空闲就有某一个站立即发送数据,于是我们可计算出理想情况下的极限信道利用率为:
以太网的MAC层
硬件地址又称为物理地址,或MAC地址,用于在网络中唯一标识一个网络终端设备。MAC 地址共48位(6个字节)。前24位由IEEE(电气和电子工程师协会)决定如何分配,后24位由实际生产该网络设备的厂商自行制定
网络层
网络层概述
基本服务:主机到主机
的端到端通信服务
网络层要解决的基本问题:异构网络
互联的方法
提供何种类型的网络服务:主机编址,数据转发与路由选择
网络层向上只提供简单灵活的
、无连接的
、尽最大努力交付
的数据报服务
IP地址☆
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一
分类的IP地址(A,B,C,D)
IP的指派范围:
一般不使用的特殊IP:
IP地址和硬件地址(MAC)
物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址
IP地址是一种逻辑地址(因为IP地址是用软件实现的),在发送数据时,数据从高层下到低层,然后才能到通信链路上传输,使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧了
MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在了MAC帧首部。 IP地址放在IP数据报首部,硬件地址规则放在MAC帧的首部,在网络层以上使用的都是IP地址
,在数据链路层及以下使用的都是硬件地址
地址解析协议ARP
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。通过地址解析协议ARP
即可知道IP地址对应的MAC值。
划分子网(子网掩码)
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分
使用子网掩码(subnet mask)
可以找出IP地址中的子网部分
子网掩码的二进制值高位连续为1时,对应的IP地址值为子网号;子网掩码二进制值连续为0时,对应的IP地址值为主机号
CIDR地址块
CIDR(Classless Inter-Domain Routing)全称是无分类域间路由选择,也称无分类编址,它也是构成超网的一种技术实现
CIDR在一定程度上解决了路由表项目过多过大的问题。CIDR之所以称为无分类编址,就是因为CIDR完全放弃了之前的分类IP地址表示法,它真正消除了传统的A类、B类、C类地址以及划分子网的概念,它使用如下的IP地址表示法:
IP地址 ::= {<网络前缀>, <主机号>} / 网络前缀所占位数
网际控制报文协议ICMP
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)来允许主机或者路由器报告差错和异常情况
ICMP不是高层协议,而是IP层的协议
ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
ICMP差错报文类型:终点不可达、源点抑制(Source quench)、时间超过、参数问题、改变路由(重定向,即Redirect)
应用:ping和tracert命令
PING 用来测试两个主机之间的连通性
PING 使用了 ICMP 回送请求与回送回答报文
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP
Tracert 是测试报文从发送端到目的地所经过的路由的方法,它能够直观展现报文在转发的时候所经过的路径
因特网的路由选择协议
RIP
路由信息协议(Routing Information Protocol)
是内部网关协议IGP中最先得到广泛使用的协议
RIP是一种分布式的基于距离向量
的路由选择协议,是因特网的标准协议,其最大优点就是简单
。 RIP协议的距离也称为跳数
,每经过一个路由器,跳数就加1
RIP认为一个好的路由就是它通过的路由器的数目少,即距离短。 RIP协议要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离
RIP 协议最大的优点就是实现简单,开销较小
。 RIP 协议具有一个特点:好消息传播得快,而坏消息传播得慢
RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加
OSPF
开放式最短路径优先OSPF(Open Shortest Path First)
是IETF组织开发的一个基于链路状态
的内部网关协议(Interior Gateway Protocol)
OSPF协议的基本特点:
- 开放:表明 OSPF 协议不是受某一家厂商控制,而是公开发表的
- 最短路径优先:使用了 Dijkstra 提出的最短路径算法SPF,实现了最短路径优先(注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是 “最短路径优先”)
- 是分布式的链路状态协议
运输层
运输层概述
端口
进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器上的进程,解决这个问题的办法就是在运输层使用协议端口号,简称端口
这种在协议层间的抽象协议端口是软件端口
,注意和路由器或交换机上的硬件端口
进行区分,硬件端口是不同硬件设备进行交互的接口,软件接口是应用层的各种协议进程与运输实体进行层间交互的一种地址
用户数据报协议UDP
功能
UDP只是在IP的数据报服务上加了很少一点功能,这就是复用和分用
功能以及差错检测
功能
特点
- 无连接:发送数据前不需要建立连接,减少开销和发送数据之前的时延
- 尽最大努力交付:也就是
不保证可靠交付
,主机不需要维持复杂的连接状态表(这里面有很多参数) - 面向报文:应用层给UDP多长的报文,UDP就照样发送
- 无拥塞控制:
网络上出现的拥塞不会使源主机的发送速率降低
,但是可能会出现严重的网络拥塞 - UDP首部开销小:只有8个字节,比TCP的20个字节短很多
- 支持一对一,一对多,多对一和多对多交互通信
传输控制协议TCP☆
特点
- TCP 是面向连接的运输层协议:进程在使用TCP通信之前必须先建立TCP连接
- 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是
点对点
的(一对一) - TCP 提供可靠交付的服务:通过TCP连接传送的数据,
无差错
,不丢失
,不重复
,并且按序到达
- TCP 提供全双工通信:TCP允许通信双方的应用程序在任何时刻都能发送数据,TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信数据
- 流量控制:发送方不能淹没接收方
- 拥塞控制:抑止发送方速率来防止过分占用网络资源
- 面向字节流:TCP中的"流(stream)"指的是流入进程或从进程流出的字节序列。面向字节流的含义是:
虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成一连串无结构的字节流,TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小关系(例如,发送方应用程序交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块就把收到的字节流交付上层的应用程序)。这就要求开发者自己做好分包和粘包操作
TCP可靠传输☆
由于TCP发送的报文段是交给IP层发送的,而IP层不是可靠传输,所以TCP自己需要采用适当措施才能使两个运输层之间通信可靠
停止等待协议
在发送完一个分组后,必须暂时保留已发送的分组的副本
分组和确认分组都必须进行编号
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信
这种可靠传输协议常称为自动重传请求ARQ(Automatic Repeat reQuest)
ARQ 表明重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
改进(连续ARQ协议)
停止等待协议的优点是简单,但缺点是信道利用率太低
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。 由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。 接收方一般采用累积确认的方式,即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了
优点是:容易实现,即使确认丢失也不必重传
缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息
小知识:TCP报文段首部
滑动窗口协议
特点:接收方会把自己的接收窗口数值放在窗口字段发送给对方
超时重传
重传机制是 TCP 中最重要和最复杂的问题之一
TCP 每发送一个报文段,就对这个报文段设置一次计时器
只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段
超时计时器的重传时间应当比数据在分组传输的平均往返时间RTT更长一些
加权平均往返时间
TCP 保留了 RTT 的一个加权平均往返时间
(这又称为平滑的往返时间)
第一次测量到 RTT 样本时, 的值就取为所测量到的 RTT 样本值,以后每测量到一个新的 RTT 样本,就按下式重新计算一次:
其中,RFC2988 推荐的 值为 1/8,即 0.125
超时重传时间RTO
超时重传时间RTO
应略大于上面得出的加权平均往返时间
RFC2988建议使用下式计算 RTO:
其中, 是 RTT 的偏差的加权平均值
,RFC2988建议这样计算:
第一次测量时,值取为测量到的 RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的:
其中 推荐值为0.25
TCP的运输连接管理
运输连接的三个阶段:连接建立
、数据传送
和连接释放
运输连接的管理就是使运输连接的建立和释放都能正常地进行
连接建立过程中要解决以下三个问题
- 要使每一方能够确知对方的存在
- 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)
- 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配
为什么不使用两次握手来建立TCP连接?
三次握手可
防止已失效的连接请求报文
导致建立无效的TCP连接
应用层
不同的网络应用的应用进程之间,还需要有不同的通信规则,因此在运输层协议上,还需要有应用层协议
域名系统DNS
是互联网使用的命名系统
,用来把便于人们使用的机器名字
转换为IP地址
,例如:
域名结构
DNS采用了层次化树状
的命名方法
域名:唯一的层次结构名字
域:名字空间中一个可被管理的划分,还可划分子域 如:mail.cctv.com
文件传输协议FTP
FTP是因特网上使用得最广泛的文件传送协议
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
RFC959 定义了FTP协议规范,其很早就成为了因特网的正式标准
FTP工作原理
利用TCP的可靠传输,使用客户服务器方式,一个FTP服务器进程可以同时为多个客户进程提供服务
FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求
FTP在工作时使用两个并行的TCP连接,一个是控制连接(端口号21),一个是数据连接(端口号20)
万维网WWW☆
WWW并非某种特殊的计算机网络,万维网是一个大规模的,联机式的信息储藏所,简称Web
万维网引用连接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动获取丰富的知识
统一资源定位符URL
URL用于表示从互联网上得到的资源位置和访问这些资源的方法
URL由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是:
超文本传送HTTP
定义了客户进程(浏览器)怎样向万维网服务器请求万维网文档
超文本标记语言HTML
要使任何一台计算机都能显示出任何一个万维网服务器上面的画面,就必须解决页面制作的标准化问题。超文本标记语言HTML就是一种制作万维网页面的标准语言