计算机网络
计算机网络复习
定义:多种通用的、可编程硬件互连,支持多种应用
发展:
名称 | 时间 | 地位 |
---|---|---|
ABC(阿塔纳索夫·贝瑞计算机) | 1937 | 第一台电子数字计算设备,能求解线性方程 |
ENIAC | 1946 | 第一台通用电子数字计算机 |
ARPANET | 1969 | 多台计算机互联的二代计算机网络 |
开放系统互连参考模型(OSI/RM) | 1981 | 全球统一标准,第三代计算机网络 |
Internet(互联网) | 90年代至今 | 第四代计算机网络 |
互联网与互联网的区别:
交换技术:
电路交换
电路交换必定是面向连接
关键缺点:不适应计算机网络中的突发性,信道利用率低分组交换
存储-转发方式
具体步骤:构建分组-分别传输-去掉首部-还原报文
关键缺点:排队造成时延、首部带来额外开销
三种交换的比较:
传输大量数据且传输时间远大于连接建立时间,选择电路交换
报文交换和分组交换不需要预先分配带宽,信道利用率更高
由于分组的长度小于报文,因此分组交换比报文交换时延小
端系统通信:
C/S方式的特点:
客户程序需要知道服务器程序的地址,服务器程序不知道客户程序的地址
资源集中在服务器
P2P方式的特点:
不区分请求方和服务提供方
资源分散在端系统中
计算机网络的类别:
计算机网络性能指标:
速率
速率是额定速率,不是实际运行速率
单位定义:
bit/s(比特每秒):最基础单位,表示每秒传输的1个二进制位(bit)。
kbit/s(千比特每秒):1 kbit/s = 1,000 bit/s
Mbit/s(兆比特每秒):1 Mbit/s = 1,000 kbit/s = 10⁶ bit/s
Gbit/s(吉比特每秒):1 Gbit/s = 1,000 Mbit/s = 10⁹ bit/s
Tbit/s(太比特每秒):1 Tbit/s = 1,000 Gbit/s = 10¹² bit/s带宽
频域:频带宽度,单位是赫
时域:单位时间内最高数据率,单位是$ bit/s $
一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。吞吐量
表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量受网络的带宽或网络的额定速率的限制,额定速率是绝对上限值。可能会远小于额定速率,甚至下降到零。时延
包括发送时延、传播时延、处理时延、排队时延
处理时延:主机或路由器在收到分组时,为处理分组(例如,分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延:分组在路由器的接收缓存队列中排队等待接收的时间与在发送缓存队列中排队等待发送所经历的时延之和。排队时延的长短往往取决于网络中当时的通信量注意:一般不提升传输速率
例题:
时延带宽积
往返时间(RTT)
不包含发送端的发送时延
有效数据率(注意分母):利用率
信道利用率并非越高越好
协议三要素:
语法:如何讲,用来规定信息格式,涉及数据与控制信息的格式、编码和信号等级(电平的高低)等。
语义:讲什么,用来说明通信双方应该怎么做,涉及数据的内容、含义及用于协调和差错处理的控制信息。
定时(时序):详细说明事件的先后顺序,涉及速率匹配和排序等。
协议的功能:分段与重组、封装、连接控制、流量控制、差错控制等
服务原语:
五层协议:
应用层:通过应用进程间的交互来完成特定网络应用;DNS、HTTP、SMTP;应用层交互的数据单元称为报文
运输层:两台主机中进程之间的通信;分用和复用;TCP和UDP
网络层:为分组交换网上的不同主机提供通信服务;路由选择和转发
链路层:两个相邻节点之间的可靠通信
物理层:实现比特(0 或1)的传输
数据通信基础知识
传输:任何实际的信道都不是理想的,在传输信号时会产生各种失真,而且在信道中也会存在各种干扰和噪声。
码间串扰:接收端收到的信号波形失去了码元之间的清晰界限的现象。
传输媒介
有线传输媒介:
双绞线
绞合度越高,可用的数据传输率越高。
无论是哪种类别的双绞线,衰减都随频率的升高而增大。同轴电缆
具有很好的抗干扰特性,被广泛用于传输较高速率的数据光纤
常用的三个波段的中心:0.85um,1.31um,1.55um
单模光纤:光沿着一条路径传播,若光纤的直径减小到只有一个光的
波长(几个微米),则可使光线一直向前传播,而不会产生多次反射。多模光纤:光在多条路径中传播,光脉冲在多模光纤中传输时会逐渐
展宽,造成失真,只适合于近距离传输。光缆
无线传输媒介:
短波通信(即高频通信)主要是靠电离层的反射,但短波信道的通信质量较差,传输速率低。
微波占有特殊重要的地位,在空间主要是直线传播。微波频率范围:300 MHz~300 GHz(波长1 m ~ 1 mm);主要使用:2 ~ 40GHz。
传统微波通信有两种方式:地面微波接力通信、卫星通信
2.4GHz频段为各国共同的ISM频段,因此无线局域网、蓝牙、ZigBee等无线网络,均可工作在2.4GHz频段上
数据编码与传输
数据传输技术包括基带传输和频带传输:
- 基带传输:数字信号不做任何改变直接在信道中进行传输的过程,基带信号没有经过调制,它所占据的频带一般是从直流或低频开始的。发送端编码(对波形进行变换),接收端解码。
- 频带传输:数字信号经过调制后在信道中传输的过程,调制的目的是减少信号失真,提高线路的利用率。
数字编码方式:
曼彻斯特码和差分曼彻斯特码产生的信号频率比不归零码高。曼彻斯特码和差分曼彻斯特码具有自同步能力。
信号码元周期 $T$ 可作为选择信道带宽的主要依据。
模拟传输方式:
载波是一种由振荡器产生并在通信信道上传输的特定频率的无线电波,在频率、幅度或相位方面被调制后用于传输话音、图像或其他信息。
载波频率通常高于输入信号的频率,属于高频信号。
使用载波把基带信号频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输,经过载波调制后的信号被称为带通信号
模拟信号数字化:
实现模拟信号数字化的一种常用方式是脉冲编码调制(PCM)
信道复用技术
- 频分复用(FDM)
频分复用要求总频率宽度大于各个信道频率之和。各子信道之间设有隔离带,以保证各路信号互不干扰。
频分复用技术的特点是所有子信道传输的信号以并行的方式工作,例如广播、有线电视
更多的用户轮流使用这n个频带,这种方式称为频分多址接入(FDMA),简称频分多址。
- 时分复用(TDM)
同步时分复用是将时间划分为一段段等长的时分复用帧(TDM帧),每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙(同步时分复用)。
每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)的,TDM信号也称为等时信号。
同步时分复用帧的长度是125µs,复用的用户越多,每一个用户分配到的时隙宽度就越窄。
同步时分复用的所有用户在不同的时间占用同样的频带宽度。
更多的用户轮流使用这4个时隙,这种方式称为时分多址接入(TDMA),简称时分多址
当某用户暂时无数据发送时,在同步时分复用帧中分配给该用户的时隙只能处于空闲状态。
统计时分复用(STDM)
数据发往复用器,复用器按顺序扫描,把复用器中的数据放入STDM帧中,一个STDM帧满了就发出去。
STDM不是固定分配时隙,而是按需动态分配时隙。因此统计时分复用可以提高线路的利用率。
注意:STDM帧的时隙数少于终端数,并且有站标识开销。波分复用(WDM)
光的波分复用可以理解为光的频分复用。
可以是单向传输,也可以是双向传输。码分复用(CDM)
每一个用户可以在同样的时间使用同样的频带进行通信,使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
当码分复用(CDM)信道为多个不同地址的用户所共享时,就称为码分多址(CDMA)。
每一个比特时间划分为 m 个短的间隔,称为码片,通常m的值是64或128。
码片序列:
-1 表示 0,+1 表示 1
码片序列实现了扩频:假定S站要发送信息的数据率为 b $bit/s$。由于每一个比特要转换成 m 个比特的码片,因此S站实际上发送的数据率提高到 mb $bit/s$,同时S站所占用的频带宽度也提高到原来数值的 m 倍
CDMA的重要特点:每个站分配的码片序列:各不相同,且必须互相正交。
总结:
- 频分复用:不同用户,相同时间,不同频带
- 同步时分复用:不同用户,不同时间,相同频带
- 统计时分复用:解决信道利用率低的问题
- 波分复用:不同用户,相同时间,不同波长
- 码分复用:不同用户,相同时间,相同频带,不同码型
物理层
考虑的是怎样才能在连接各种计算机的传输媒介上传输数据比特流,而不是指具体的传输媒介。从逻辑角度看,物理层是传输媒介与数据链路层之间的接口。
标准化的DTE/DCE接口具有的特性:
- 机械特性:对接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等作出详细的规定。
- 电气特性:规定了DTE/DCE之间多根信号线的电气连接及有关电路特性。通常包括发送器和接收器的电路特性。
- 功能特性:描述接口执行的功能,定义接线器的每一引脚(针,Pin)的作用
- 规程特性:规定了DTE/DCE接口各信号线之间的相互关系、工作顺序和时序,以及维护测试操作等内容。反映了通信双方在数据通信过程中可能发生的各种事件。
宽带接入技术:
- ADSL技术
非对称数字用户线ADSL (Asymmetric Digital Subscriber Line) 技术就是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。
非对称:下行(从ISP 到用户)带宽远大于上行(从用户到ISP)带宽
ADSL 技术就把 0~4 $kHz$ 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
ADSL 最大好处是可以利用现有电话网中的用户线(铜线),而不需要重新布线,节省了大量投资。
ADSL 并不适合于企业,因为企业往往需要使用上行信道发送大量数据给许多用户。
DMT 调制技术采用频分复用的方法,把 40 kHz 以上一直到 1.1 MHz 的高端频谱划分为许多子信道,其中 25 个子信道用于上行信道,而 249 个子信道用于下行信道。每个子信道占据 4 kHz 带宽(严格讲是4.3125 kHz),并使用不同的载波进行数字调制。
HFC技术
HFC网是在原有覆盖面很广的有线电视网CATV 的基础上开发的一种居民宽带接入网,将原 CATV 网中的同轴电缆主干部分改换为光纤,并使用模拟光纤技术,除可传送 CATV 外,还提供电话、数据和其他宽带交互型业务。FTTx 技术
FTTx 是一种实现宽带居民接入网的方案,代表多种宽带光纤接入方式
数据链路层
数据链路层实现是相邻节点之间的通信,为网络层实现的主机之间的通信提供了支持。
数据链路层信道类型包括点对点信道和广播信道
数据链路:链路加上实现通信协议的硬件和软件就构成了数据链路。
帧:数据链路层的协议数据单元
数据链路层的主要功能:数据链路的建立、拆除和管理;封装成帧;透明传输;差错控制;流量控制。
数据链路层的协议有很多种,但不论哪种协议,都必须解决以下三个基本问题:封装成帧、透明传输、差错检测
封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界。
最大传送单元 MTU:规定了所能传送的帧的数据部分长度上限。
封装成帧
控制字符 SOH 放在一帧的最前面,表示帧的首部开始;控制字符 EOT 表示帧的结束。透明传输
在数据链路层透明传送数据,表示无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层。
避免错误找到帧边界:差错检测
传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1 。
通常用误比特率或误码率 (在一段时间内传输错误的⽐特数占所传输⽐特总数的比率) 来衡量通信链路的质量。
循环冗余校验(CRC)原理
在数据后面添加上的冗余码称为帧检验序列 FCS
循环冗余检验CRC 和帧检验序列 FCS 并不等同:
- CRC 是一种常用的检错方法,而FCS 是添加在数据后面的冗余码。
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得FCS 的唯一方法。
仅用循环冗余检验 CRC 技术只能做到无差错接收。
- “无差错接收”是指:“凡是接收的帧(即不包括丢弃的帧),我
们都能以非常接近于1 的概率认为“凡是接收端数据链路层接收的帧都没有传输差错”(有差错的帧就丢弃而不接收)。
注意:
单纯使用 CRC 差错检测技术不能实现“无差错传输”或“可靠传输”
应当明确,“无比特差错”与“无传输差错”是不同的概念
在数据链路层使用CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输
要做到“无差错传输”(即发送什么就收到什么)就必须再加上确认和重传机制
点对点信道
点对点协议(PPP)
PPP协议不需要的功能包括: 纠错、流量控制、设置序号、多点线路、半双工或单工链路
PPP非常简单:每收到一个帧,进行CRC检验,如果CRC检验正确,就接收这个帧;反之,就丢弃这个帧,其他什么也不做。
PPP的应用场景:
PPP由三个部分组成:
- 一个将 IP 数据报封装到串行链路的方法
- 链路控制协议 LCP,用来建立、配置和测试链路,其最重要的功能之一是身份验证(PAP,CHAP)
- 网络控制协议 NCP,支持不同的网络层协议
PPP的帧格式:
PPP 是面向字节的,所有的PPP 帧的长度都是整数字节。
PPP的透明传输问题
- 当 PPP 用在异步传输时,就使用一种特殊的字节填充法。
- 当 PPP 用在同步传输时,协议规定采用硬件来完成比特填充。
字节填充法:
注意:第六位指的是从后向前数六位,0x21是十六进制,所以其二进制表示为00100001
零比特填充:
PPP的工作过程:PPP 协议不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容
口令鉴别协议(PAP):
两次握手鉴别协议,口令以明文传送,被鉴别方首先发起鉴别请求
质询握手鉴别协议(CHAP):
三次握手鉴别协议,主鉴别方首先发起鉴别请求,安全性比PAP高
广播信道
局域网的数据链路层
MAC地址:
以太网帧:
最常用的 MAC 帧是 EthernetⅡ 的格式:
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于64 字节
前同步码和帧开始定界符:
无效的 MAC 帧
- 数据字段的长度与长度字段的值不一致;
- 帧的长度不是整数个字节;
- 用收到的帧检验序列 FCS 查出有差错;
- 数据字段的长度不在46 ~ 1500 字节之间。
对于检查出的无效MAC 帧就简单地丢弃,以太网不负责重传丢弃的帧。
“网卡”(通信适配器)
每收到一个 MAC 帧就先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
- 单播帧(一对一)
- 广播帧(一对全体)
- 多播帧(一对多)
解决方法:动态媒体接入控制(多点接入)
- 随机接入:所有用户可随机发送信息。
- 受控接入:用户必须服从一定的控制。如集中控制的多点线路探询,或轮询。
以太网采取了两种重要措施:采用较为灵活的无连接工作方式
- 不必建立连接就可以直接发送数据。
- 对发送的数据帧不进行编号,也不要求对方发回确认。
以太网发送的数据都使用曼彻斯特编码
CAMA/CD 协议(载波监听多址接入/碰撞检测)
为什么要进行碰撞检测?
因为信号传播时延对载波监听产生了影响
CSMA/CD:争用期
以太网的端到端往返时延 2t 称为争用期或碰撞窗口。经过争用期这段时间还未检测到碰撞,才能确定这次发送不会发生碰撞。
无效帧: 10Mbit/s 以太网取 51.2 μs 为争用期的长度,对于 10Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。如果发生碰撞,就一定是在发送的前 64 字节之内。 由于一检测到碰撞就立即中止发送,这时已经发送出去的数据一定小于 64 字节。以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于碰撞而异常中止的无效帧。
CSMA/CD:5-4-3规则
CSMA/CD:检测到碰撞后如何操作?
每一个正在发送数据的站,一旦发现总线上出现碰撞,适配器就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
CSMA/CD:碰撞后重传的时机
截断二进制指数退避算法:
规定发生碰撞的站点在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
- 基本退避时间取为争用期 2t。
- 定义重传次数 $k$ ,$k = Min[重传次数, 10]$
- 从整数集合 $[0, 1, … , (2^k - 1)]$ 中随机地取出一个数,记为 r ,则重传所需的时延就是 r 倍的基本退避时间。
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
- 该算法可以使重传需要推迟的平均时间随重传次数的增多而增大(也称为动态退避),从而减小了发生碰撞的概率,有利于整个系统的稳定。
CSMA/CD:人为干扰信号
- 发生碰撞后,发送端需强化碰撞。
- 立即停止发送数据,再继续发送若干比特(32bit、48bit或64bit)的人为干扰信号,让所有用户都知道发生了碰撞。
- 以太网还规定了帧间最小间隔为9.6 μs
使用 CSMA/CD 协议时,各站点不能进行全双工通信而只能进行双向交替通信(半双工通信),这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
以太网的信道利用率
参数 $a$
注意:
- 数据率一定时,以太网的连线的长度要有限制,否则 t 的数值会太大。
- 以太网的帧长不能太短,否则 $T_0$ 的值会太小,使 $a$ 值太大。
极限信道利用率
CSMA/CD 和 CSMA/CA的对比
扩展局域网
网络中的中介设备
集线器
在利用集线器组建的局域网中,所有计算机都处于同一个碰撞域(或冲突域)中和同一个广播域中。
碰撞域增大,但总吞吐量并未提高
网桥
交换机
本质上是多端口网桥、全双工工作
每个端口都处于一个独立的碰撞域(或冲突域)中,但所有计算机都处于同一个广播域中。
集线器和交换机的区别
交换机的自学习功能
广播风暴
由于一直学习不到E的地址,S1和S2之间会无限循环泛洪,造成广播风暴。
解决办法:生成树协议
不改变网络的实际拓扑,但在逻辑上则切断了某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构
虚拟局域网(VLAN)
虚拟局域网(VLAN)只是局域网给用户提供的一种服务,而并不是一种新型局域网。
划分VLAN的主要作用是隔离广播域,增强网络的安全性和管理。
VLAN限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而降低性能。
Access端口收数据打标签,发数据剥离标签;Trunk端口发数据打标签,收数据标签不变(打标签比喻一种划分)
VLAN的划分方法包括:
- 基于交换机端口
- 基于MAC地址
- 基于协议类型
- 基于IP子网地址
- 基于高层应用或服务
地址解析协议(ARP)
IP数据报交付到主机或路由器需要两级地址:IP地址和物理地址
为什么需要使用IP地址?
- 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作。
- IP 编址把这个复杂问题解决了。通过在物理网络上覆盖一层IP软件来实现对物理地址差异性的屏蔽,为上层用户提供“统一”的地址形式,而且不对物理地址做任何修改。
ARP的工作原理
ARP高速缓存技术
每一个主机都设有一个 ARP 高速缓存区,用来存放最近使用的 IP 地址到物理地址之间的映射记录。
为了保证主机中 ARP 表的正确性和有效性,ARP 表要经常更新。采用 ARP 高速缓存技术可以提高网络运行的效率。
ARP命令
点对点链路不使用ARP协议
因为在设置这些链路时,网络设备已获得了链路两端的IP地址
特殊的ARP
- 代理ARP
- 免费ARP
主机发送 ARP 广播来查找自己的IP地址,一般发生在局域网IP地址冲突时,地址修改或变更时,DHCP分发地址时,ARP缓存表清理时,用来获取网络接口的MAC地址
ARP欺骗攻击
本质上都是通过填写错误的IP-MAC对应关系来实现的
网络层
网络层提供不可靠、无连接、尽力而为的数据报传送服务。
主机运输层负责可靠交付。
虚电路和数据报的区别:
IP
网际协议(IP)是 TCP/IP 协议族中最为核心的协议,提供的是不可靠、无连接、尽力而为的数据报传送服务。
IPv4 数据报格式
一个 IPv4 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有IPv4 数据报必须具有的。
版本——占4位,指 IP 协议的版本。
首部长度——占4位,可表示的最大数值是15个单位(一个单位为 4 字节),因此IP 的首部长度的最大值是 60 字节。如果数据报的首部长度不是4字节的整数倍,必须利用最后的填充字段加以填充。
区分服务——占8位,用来获得更好的服务
- DSCP(差分服务代码点):用于标识不同的服务类别或优先级。为不同类型的流量提供不同的服务质量(QoS)保障。
- ECN (显式拥塞通告):用于在网络出现拥塞时,向发送方发送拥塞通知。取值0 表示不支持ECN,1 表示支持ECN 且当前网络无拥塞,2 表示支持ECN 且网络出现拥塞,3 保留未用。
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过数据链路层的最大传送单元MTU。
标识、标志、片偏移与IP分片有关,IP数据报总长度超过MTU时,IP数据报需要分片。
标识——占16位,是一个计数器,用来产生IP数据报的标识,通常每发送一份报文它的值就会加1。当数据报长度超过网络的MTU而必须分片时,标识字段的值就被复制到所有的数据报片的标识字段中,相同的标识字段值使分片后的各数据报片最后能正确地重组为原来的数据报。
标志——占3位,目前只有两位有意义。标志字段中的最低位记为MF(More Fragment),MF=1表示后面还有分片的数据;MF=0表示最后一个数据报片。标志字段中间的一位记为DF(Don’t Fragment),其含义是不能分片(DF=1),只有当DF=0时才允许分片。
片偏移——占13位,指出较长的分组在分片后某片在原分组中的相对位置,即相对于用户数据字段的起点,该片从何处开始。以8个字节为偏移单位,即每个分片的长度一定是8字节(64bit)的整数倍。
除最后一个分片外,每个分片的数据长度必须是8的倍数
生存时间——占8位,记为TTL,由发出数据报的源主机设置这个字段,指示数据报在网络中可通过的路由器数的最大值。TTL的初始值通常设为32或64,每经过一个路由器,其值就减去1。当TTL=0时,丢弃数据报,并发送ICMP报文通知源主机。
协议——占8位,指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给那个处理过程
首部校验和——占16位,只校验数据报的首部,不校验数据部分。IP数据报首部校验和的计算采用16位二进制反码求和算法。
源地址和目的地址——源地址和目的地址都各占4字节。
可选字段——长度可变,从1个字节到40个字节不等
填充——使IP数据报为4字节的整数倍。
为什么只检验首部,不检验数据部分?
网络层(IP)的职责是尽力而为的传输,而端到端可靠性由传输层(如TCP)保证。首部校验确保路由基础正确,但数据完整性由更高层协议负责。
IPv4 地址
点分十进制记法
各类IP地址
最大可指派的网络数计算逻辑如下:
A类网络计算逻辑
网络位结构:A类地址第一个字节固定最高位为0,剩余7位为网络位
0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
理论网络数:$2^7 = 128$
实际可指派数:
网络号0.0.0.0(全0)被保留为默认路由
网络号127.x.x.x被保留为环回地址(如127.0.0.1)
⇒ 公式:$2^7 - 2 = 126$B类网络计算逻辑
网络位结构:B类地址前两个字节最高位固定为10,剩余14位为网络位
10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
理论网络数:$2^{14} = 16384$
实际可指派数:
网络号128.0.0.0是第一个有效网络号
网络号191.255.0.0是最后一个有效网络号
⇒ 公式:$2^{14} - 1 = 16383$C类网络计算逻辑
网络位结构:C类地址前三个字节最高位固定为110,剩余21位为网络位
110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
理论网络数:$2^{21} = 2,097,152$
实际可指派数:
网络号192.0.1.0是第一个有效网络号
网络号223.255.255.0是最后一个有效网络号
⇒ 公式:$2^{21} - 1 = 2,097,151$
127.x.x.x被保留为环回地址(如127.0.0.1)
解决IPv4地址匮乏的方法:划分子网和构造超网
划分子网
子网掩码可用与IP地址格式相同的点分十进制表示
- 例如:255.255.255.0,255.255.255.126
也可在IP地址后加上“/”符号和1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度
- 例如:192.168.0.1/24( 255.255.255.0 )
子网掩码的作用
- 使用子网掩码可以确定子网的网络地址
- 决定子网中主机的数目
注意:
相同的IP地址和不同的子网掩码可以得到相同的网络地址。
不同的子网掩码可以使同一网络划分的子网数和每个子网中的最大主机数都不同。
构造超网
无分类域间选路(CIDR)
两级编址:
地址块:
全0地址(如128.14.32.0)的保留意义
这是CIDR地址块的网络标识地址,用于表示整个子网本身。
全1地址(如128.14.47.255)的保留意义
这是CIDR地址块的广播地址,用于向子网内所有设备发送广播数据包。
特殊的地址块:
一个CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合 (构成超网)
CIDR可以看作是子网划分的逆过程
- 使用CIDR技术聚合地址时,网络前缀越短,其地址块所包含的地址数就越多。
- 划分子网是使网络前缀变长。
最长前缀匹配
在查找路由表时可能会得到不止一个匹配结果,应从匹配结果中选择具有最长网络前缀的路由,网络前缀越长,其地址块就越小,路由就越具体。
IPv6 数据报格式
变化:
首部长度:固定的40字节,称为基本首部
首部字段数:只有8个。
IPv6 地址
冒号十六进制记法
每个 16 位的值用十六进制值表示,各值之间用冒号分隔。
零省略和零压缩
注意:在任一地址中只能使用一次零压缩。
特殊的地址
IP选路
路由器
典型的网络层设备,其任务是连通不同的网络,转发分组。
- 端口:配置端口、局域网端口、广域网端口
- 结构:路由选择处理机、分组处理与交换部分
路由选择和转发的区别
对比维度 | 路由选择 | 转发 |
---|---|---|
动态性 | 动态调整(适应拓扑变化) | 静态执行(基于现有转发表) |
范围 | 全局网络路径规划 | 局部数据包传送 |
设备协作 | 多路由器协同工作 | 单路由器独立操作 |
信息粒度 | 逻辑地址(IP层) | 物理接口(端口/MAC地址) |
路由表
IP路由选择的顺序: 主机路由、网络路由、默认路由
路由选择协议
路由选择协议属于网络层控制层面的内容
分层的路由选择协议
把整个互联网划分为许多较小的自治系统AS,采用分层的路由选择协议。
- 分为2个层次:域内和域间的路由选择
OSPF协议
区域:
作用:
减少了网络上的通信量;减少了需要维护的状态数量。
相邻路由器和相邻关系的区别:
相邻路由器指的是两台通过一条普通链路相连的、可以对话的路由器。
相邻关系指的是两台相邻路由器的双向关系。
注意:是邻居不一定就有相邻关系。
链路状态数据库和链路状态广播:
链路状态数据库(LSDB)
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个LSDB,它实际上是全网的拓扑结构图,在全网范围内是一致的(这称为链路状态数据库的同步)。
链路状态广播(LSA)
每台路由器根据自己周围的网络拓扑结构生成LSA,通过相互之间发送协议报文将LSA发送给网络中其他路由器,这样每台路由器都收到了其他路由器的LSA,所有的LSA放在一起便组成了LSDB。
报文类型:
互联网控制报文协议(ICMP)
ICMP是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递和网络安全具有极其重要的意义。
ICMP 报文格式
ICMP报文的前4个字节是统一的格式,共有三个字段:类型、代码和校验和。接着的4个字节的内容与ICMP的类型有关。
ICMP 报文类型
差错报文(traceroute)和查询报文(ping)
ICMP差错报文弥补了IP协议的不可靠问题
- 发现错误的设备只向源主机报告差错,但不负责纠正错误,纠错留给高层协议;
- 差错报文作为一般数据传输,不享受特别的优先级和可靠性。
- 产生ICMP差错报文的同时会丢弃出错的IP数据报。
不应发送ICMP差错报告报文的几种情况
- ICMP差错报文本身不会再产生ICMP差错报文
- 广播或组播地址的数据报不会产生ICMP差错报文
- 分片的IP数据报的非第一个分片不会产生ICMP差错报文
- 特殊地址0.0.0.0和127.0.0.1的报文不会产生ICMP差错报文
运输层
网络层已解决的问题
- 提供不可靠、无连接、尽力而为的数据报传送服务。
- 将数据报从一台主机经过网络送到另一台主机,实现主机之间的通信。
网络层未解决的问题
- 主机中谁发送的数据、谁接收数据?
- IP数据报无序到达目的主机,接收进程如何处理?
- 可靠传输问题
运输层的作用
对于高层用户而言,其主要起屏蔽作用:
屏蔽了下面网络核心的细节,使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
对于低层用户而言,其主要起管控作用:
实现可靠传输、流量拥塞控制、运输连接管理
运输层和网络层的区别
运输层为应用进程之间提供端到端的逻辑通信,通信的真正端点是主机中的进程。
网络层为主机之间提供逻辑通信,通信的两端是两台主机。
运输层的复用和分用
- 复用:应用进程都可以通过运输层再传送到网络层。
- 分用:运输层从网络层收到发送给应用进程的数据后,必须分别
交付给指明的各应用进程。
复用过程(发送端)
- 多路合并:
主机A的不同应用进程(AP1/AP2/AP3)通过不同端口号(如80/443/21)发送数据,运输层为每个数据段添加首部(源端口+目的端口)- 统一传输:
所有数据段通过同一运输层协议(如TCP/UDP)合并到IP数据报中进入网络层传输分用过程(接收端)
- 端口识别:
运输层收到IP数据报后,通过首部中的目的端口号(如80对应Web服务)- 精准分发:
根据端口号与进程绑定关系,将数据交付给主机B对应的应用进程
端口
端口是用来标识应用层的进程。
两台计算机进程互相通信的前提
- 必须知道对方的IP地址
- 必须知道对方的端口号
三大端口号类型
- 服务器端口号:一般通过知名端口号来识别。
- 注册端口号:为没有知名端口号的应用程序所使用,主要用于一些不常用的服务,使用前需注册。
- 客户端口号:只有在用户运行该客户进程时才存在,通信结束后被系统收回
运输层协议
UDP和TCP的区别
- 收到报文后:UDP不需要给出确认,TCP需要确认
- UDP支持单播、多播、广播;TCP仅支持点对点单播,不支持多播和广播
- UDP 适用于对效率要求相对高、对准确性要求相对低的场景,TCP反之
- UDP面向非连接、面向报文,TCP面向连接、面向字节流
- TCP能够实现可靠传输、流量控制、超时重传、拥塞控制
UDP协议
UDP 只在 IP 的数据报服务之上增加了少量功能:复用和分用、差错检测
UDP数据报格式
用户数据报 UDP 有两个字段:首部字段和数据字段。首部字段有8个字节,由4个字段组成,每个字段都是2个字节。
伪首部
伪首部不是UDP的真实首部,仅仅是为了计算校验和临时添加的。
UDP的校验和是把首部和数据部分一起检验:
TCP协议
TCP不保证接收端应用程序所收到的数据块和发送端应用程序所发出的数据块具有对应大小的关系,但接收端应用程序收到的字节流必须和发送端应用程序发出的字节流完全一样。
TCP连接
TCP连接的端点叫做套接字(socket)或插口
端口号拼接IP地址即构成了套接字
TCP报文段格式
TCP首部的最小长度是20字节。
序号:
TCP 连接中传送的数据流中的每一个字节都有一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号:
期望收到对方的下一个报文段的数据的第一个字节的序号
SYN、FIN、ACK:
校验和:
字段检验的范围包括首部和数据两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
最大报文段长度(MSS)
最大报文段长度是每个TCP报文段中的数据字段的最大长度,与接收窗口值没有关系。
MSS不能太小(网络利用率低)也不能太大(开销增大)
TCP连接
采用客户(主动发起)-服务器(被动等待)方式
TCP规定
- SYN 报文段(即 SYN = 1 的报文段)不能携带数据,但要分配一个序号。
- ACK报文段可以携带数据,若不携带数据,则不分配序号。
- FIN 报文段(即 FIN = 1 的报文段)即使不携带数据,也要分配一个序号。
建立连接:三次握手
连接释放:四次挥手
必须等待 2 MSL(最长报文段寿命)
序号和口诀:
三次握手和四次挥手能保证在不可靠的网络中进行可靠的连接
保活计时器
用来防止在TCP连接出现长时期的空闲。
- 保活计时器通常设置为2小时。
- 若服务器过了2小时还没有收到客户的数据,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就认为客户的主机出了故障,终止连接。
TCP传输控制——可靠传输
停止等待协议
要点:停止等待后再发送、暂存副本、编号、超时重传、信道利用率低连续ARQ协议
要点:窗口,序号,确认,超时重传——实现可靠传输
滑动窗口协议
累计确认
接收方不必对收到的分组逐个发送确认,在收到几个分组后对按序到达的最后一个分组发送确认
选择性确认(SACK)
连续ARQ协议和停止等待协议
TCP传输控制——流量控制
流量控制:让发送方的发送速率不要太快,既要让接收方来得及接收,也不会使网络发生拥塞。
利用滑动窗口机制可以在TCP连接上实现对发送方的流量控制。
TCP传输控制——超时重传
超时重传时间(RTO)的设置
$RTO$ 应略大于加权平均往返时间$RTT_S$
TCP传输控制——拥塞控制
拥塞控制与流量控制的区别
拥塞控制是全局性问题,流量控制是端到端问题(抑制传输速率可以解决)
TCP 采用基于窗口的方法进行拥塞控制,该方法属于闭环控制方法。
- TCP 发送方维持一个拥塞窗口(cwnd)
- cwnd的大小取决于网络的拥塞程度,并且是动态变化的。
- 只要网络没有出现拥塞,cwnd就可以再增大一些,以便把更多的分组发送出去,提高网络的利用率;只要网络出现拥塞或有可能出现拥塞,就必须把cwnd减小一些,以减少注入到网络中的分组数,缓解网络出现的拥塞。
- 发送方根据网络的拥塞情况,利用cwnd调整发送的数据量。
开环控制和闭环控制的区别
拥塞控制的两种方法:
慢启动
每个RTT 内,每收到一个确认,cwnd + 1;拥塞避免
每个 RTT 内,无论收到多少确认,cwnd + 1 (加法增大);快速重传
收到 3 个连续重复确认,立即重传丢失的报文段;
接收方每次收到M4或M5时,会发送对最近缺失包(M3)的重复确认快速恢复
收到 3 个连续重复确认,慢启动阈值= cwnd/2 ,执行拥塞避免算法
应用层
运输层为应用进程提供了端到端的逻辑通信服务。应用层协议精确定义不同主机中的多个应用进程之间的通信规则。
域名系统(DNS)
用来把人们使用的机器名字(域名)转换为 IP 地址
- 采用层次树状结构的命名方法:www.ustb.edu.cn
- DNS 是一个联机分布式数据库系统,采用客户/服务器工作方式。
- 域名到 IP 地址的解析是由若干个域名服务器程序共同完成。
- 域名服务器程序在专设的节点上运行,运行该程序的机器称为域名服务器。
DNS 使用 UDP 通信
域名解析方式包括递归解析和迭代解析
- 递归解析:主机向本地域名服务器发送域名解析请求时使用
- 迭代解析:本地域名服务器向根域名服务器发送域名解析请求时使用
动态主机配置协议(DHCP)
DHCP 提供了即插即用连网的机制。
DHCP给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。
PC重启后直接发送Request报文,不用重新通过Discover报文获取IP
过程:
需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文,这时该主机就成为DHCP 客户。
- 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
- DHCP服务器的回答报文叫做提供报文。
- DHCP 使用客户-服务器方式,采用请求/应答方式工作。
- DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP 客户运行在 68 号端口。
DHCP 中继代理
并不是每个网络上都有DHCP服务器,这样会使DHCP服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。
租用期
DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。