• 1. 计算机网络原理复习课
    • 2. 第 1 章 概述1.1 计算机网络在信息时代中的作用 1.3 互联网的组成 1.6 计算机网络的性能 1.7 计算机网络的体系结构
    • 3. 互连网与互联网不同的网络。 互连网:指在局部范围互连起来的计算机网络。 互联网:指当今世界上最大的计算机网络 Internet。
    • 4. 互联网的两个重要特点互联网之所以能够向用户提供许多服务,是因为互联网具有两个重要基本特点:连通性 (connectivity) 使上网用户之间都可以交换信息(数据,以及各种音频视频) ,好像这些用户的计算机都可以彼此直接连通一样。 注意,互联网具有虚拟的特点,无法准确知道对方是谁,也无法知道对方的位置。共享 (Sharing) 指资源共享。 资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享。 由于网络的存在,这些资源好像就在用户身边一样,方便使用。
    • 5. 互联网+指“互联网 + 各个传统行业”。 利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态。 特点:把互联网的创新成果深度融合于经济社会各领域之中,从而大大地提升了实体经济的创新力和生产力。
    • 6. 1.3.1 互联网的边缘部分 端系统之间的通信方式通常可划分为两大类: 客户服务器方式(C/S 方式) 即Client/Server方式,简称为 C/S 方式。 对等方式(P2P 方式) 即 Peer-to-Peer方式 ,简称为 P2P 方式。
    • 7. 1.3.2 互联网的核心部分网络中的核心部分要向网络边缘中的大量主机提供连通性。 在网络核心部分的主要设备是路由器 (router)。
    • 8. 1.3.2 互联网的核心部分路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
    • 9. 2. 分组交换的主要特点 分组交换则采用存储转发技术。 在发送端,先把较长的报文划分成较短的、固定长度的数据段。 每一个数据段前面添加上首部构成分组(packet)。 每个分组在互联网中独立地选择传输路径。 用存储转发方式,最后分组到达最终目的地。 在接收端把收到的数据恢复成为原来的报文。
    • 10. 三种交换的比较 P1P2P3P4P1P2P3P4P3P4报 文报 文报 文A B C D A B C DA B C D报文交换电路交换分组交换t连接建立数据传送报文P2P1连接释放数据 传送 特点比特流直达终点报文报文报文分组分组分组存储 转发存储 转发存储 转发存储 转发
    • 11. 三种交换的比较若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。 报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
    • 12. 1.6 计算机网络的性能1.6.1 计算机网络的性能指标 1.6.2 计算机网络的非性能特征
    • 13. 1.6.1 计算机网络的性能指标计算机网络的性能一般是指它的几个重要的性能指标,主要包括: 速率 带宽 吞吐率 时延 时延带宽积 往返时间 RTT 利用率
    • 14. 1. 速率速率是计算机网络中最重要的一个性能指标,指的是数据的传送速率,它也称为数据率 (data rate)或比特率 (bit rate)。 速率的单位是 bit/s,或 kbit/s、Mbit/s、 Gbit/s 等。例如 4  1010 bit/s 的数据率就记为 40 Gbit/s。 速率往往是指额定速率或标称速率,非实际运行速率。
    • 15. 2. 带宽 两种不同意义: “带宽”(bandwidth) 本来是指信号具有的频带宽度,其单位是赫(或千赫、兆赫、吉赫等)。 在计算机网络中,带宽用来表示网络中某通道传送数据的能力。表示在单位时间内网络中的某信道所能通过的“最高数据率”。单位是 bit/s ,即 “比特每秒”。
    • 16. 3. 吞吐量吞吐量 (throughput) 表示在单位时间内通过某个网络(或信道、接口)的数据量。 吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。 吞吐量受网络的带宽或网络的额定速率的限制。
    • 17. 4. 时延 (delay 或 latency)时延 (delay 或 latency) 是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。 有时也称为延迟或迟延。 网络中的时延由以下几个不同的部分组成: (1) 发送时延 (2) 传播时延 (3) 处理时延 (4) 排队时延
    • 18. 4. 时延 (delay 或 latency)(1) 发送时延 也称为传输时延。 发送数据时,数据帧从结点进入到传输媒体所需要的时间。 也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。 发送时延 = 数据帧长度(bit)发送速率(bit/s)
    • 19. 4. 时延 (delay 或 latency)(2) 传播时延 电磁波在信道中需要传播一定的距离而花费的时间。 发送时延与传播时延有本质上的不同。 信号发送速率和信号在信道上的传播速率是完全不同的概念。 传播时延 = 信道长度(米)信号在信道上的传播速率(米/秒)
    • 20. 4. 时延 (delay 或 latency)(3) 处理时延 主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。 (4) 排队时延 分组在路由器输入输出队列中排队等待处理所经历的时延。 排队时延的长短往往取决于网络中当时的通信量。
    • 21. 4. 时延 (delay 或 latency)数据在网络中经历的总时延就是发送时延、传播时延、处理时延和排队时延之和。总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延必须指出,在总时延中,究竟是哪一种时延占主导地位,必须具体分析。
    • 22. 四种时延所产生的地方 1 0 1 1 0 0 1…发送器队列在链路上产生 传播时延结点 B结点 A在发送器产生发送时延 (即传输时延)在结点 A 中产生 处理时延和排队时延数据假设从结点 A 向结点 B 发送数据链路几种时延产生的地方不一样
    • 23. 6. 往返时间 RTT互联网上的信息不仅仅单方向传输,而是双向交互的。因此,有时很需要知道双向交互一次所需的时间。 往返时间表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。 在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。 当使用卫星通信时,往返时间 RTT 相对较长,是很重要的一个性能指标。
    • 24. 7. 利用率分为信道利用率和网络利用率。 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。 网络利用率则是全网络的信道利用率的加权平均值。 信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。
    • 25. 时延 D利用率 U10D0时延 急剧 增大时延与网络利用率的关系当信道的利用率增大时,该信道引起的时延迅速增加。
    • 26. 1.7 计算机网络的体系结构1.7.1 计算机网络体系结构的形成 1.7.2 协议与划分层次 1.7.3 具有五层协议的体系结构 1.7.4 实体、协议、服务和服务访问点 1.7.5 TCP/IP 的体系结构
    • 27. 1.7.2 协议与划分层次计算机网络中的数据交换必须遵守事先约定好的规则。 这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。 网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
    • 28. 网络协议的三个组成要素 语法:数据与控制信息的结构或格式 。 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。 同步:事件实现顺序的详细说明。 由此可见,网络协议是计算机网络的不可缺少的组成部分。
    • 29. 1.7.3 具有五层协议的体系结构OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。 TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。 但最下面的网络接口层并没有具体内容。 因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
    • 30. 1.7.3 具有五层协议的体系结构应用层运输层网络层表示层会话层数据链路层物理层7 6 5 4 3 2 1OSI 的体系结构应用层网络接口层网际层 IP(各种应用层协议,如 DNS, HTTP, SMTP 等)运输层 (TCP 或 UDP)TCP/IP 的体系结构(a)(b)(c)运输层网络层应用层数据链路层物理层 5 4 3 2 1五层协议的体系结构(这一层并没有具体内容)计算机网络体系结构: (a) OSI 的七层协议;(b) TCP/IP 的四层协议;(c) 五层协议
    • 31. 主机 1 向主机 2 发送数据 5432154321主机 1AP2AP1主机 2应 用 程 序 数 据应用层首部H510100110100101 比 特 流 110101110101注意观察加入或剥去首部(尾部)的层次应 用 程 序 数 据H5应 用 程 序 数 据H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据H4运输层首部H3网络层首部H2链路层 首部T2链路层 尾部
    • 32. 第 2 章 物理层
    • 33. 第 2 章 物理层2.1 物理层的基本概念 2.2 数据通信的基础知识 2.3 物理层下面的传输媒体 2.4 信道复用技术
    • 34. 物理层的主要任务机械特性 :指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 电气特性:指明在接口电缆的各条线上出现的电压的范围。 功能特性:指明某条线上出现的某一电平的电压表示何种意义。 过程特性 :指明对于不同功能的各种可能事件的出现顺序。 主要任务:确定与传输媒体的接口的一些特性。
    • 35. 2.2 数据通信的基础知识2.2.1 数据通信系统的模型 2.2.2 有关信道的几个基本概念 2.2.3 信道的极限容量
    • 36. 2.2.2 有关信道的几个基本概念调制分为两大类: 基带调制:仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。把这种过程称为编码 (coding)。 带通调制:使用载波 (carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输(即仅在一段频率范围内能够通过信道) 。 带通信号 :经过载波调制后的信号。
    • 37. (2) 基本的带通调制方法基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。为了解决这一问题,就必须对基带信号进行调制 (modulation)。 最基本的二元制调制方法有以下几种: 调幅(AM):载波的振幅随基带数字信号而变化。 调频(FM):载波的频率随基带数字信号而变化。 调相(PM) :载波的初始相位随基带数字信号而变化。
    • 38. (2) 基本的带通调制方法010011100基带信号调幅调频调相最基本的三种调制方式
    • 39. 数字信号通过实际的信道 实际的信道 (带宽受限、有噪声、干扰和失真)发送信号波形接收信号波形有失真,但可识别发送信号波形实际的信道 (带宽受限、有噪声、干扰和失真)接收信号波形失真大,无法识别
    • 40. 2.2.3 信道的极限容量 从概念上讲,限制码元在信道上的传输速率的因素有以下两个: 信道能够通过的频率范围 信噪比
    • 41. (2) 信噪比 噪声存在于所有的电子设备和通信信道中。 噪声是随机产生的,它的瞬时值有时会很大。因此噪声会使接收端对码元的判决产生错误。 但噪声的影响是相对的。如果信号相对较强,那么噪声的影响就相对较小。 信噪比就是信号的平均功率和噪声的平均功率之比。常记为 S/N,并用分贝 (dB) 作为度量单位。即: 信噪比(dB) = 10 log10(S/N) (dB) 例如,当 S/N = 10 时,信噪比为 10 dB,而当 S/N = 1000时,信噪比为 30 dB。
    • 42. (2) 信噪比 1984年,香农 (Shannon) 用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率(香农公式)。 信道的极限信息传输速率 C 可表达为: C = W log2(1+S/N) (bit/s) 其中: W 为信道的带宽(以 Hz 为单位); S 为信道内所传信号的平均功率; N 为信道内部的高斯噪声功率。
    • 43. 2.3 物理层下面的传输媒体2.3.1 导引型传输媒体 双绞线 同轴电缆 光缆
    • 44. 2.3.1 导引型传输媒体双绞线 最常用的传输媒体。 模拟传输和数字传输都可以使用双绞线,其通信距离一般为几到十几公里。 屏蔽双绞线 STP (Shielded Twisted Pair) 带金属屏蔽层 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
    • 45. 2.3.1 导引型传输媒体光缆 光纤是光纤通信的传输媒体。 由于可见光的频率非常高,约为 108 MHz 的量级,因此一个光纤通信系统的传输带宽远远大于目前其他各种传输媒体的带宽。
    • 46. 多模光纤与单模光纤多模光纤 可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤。 单模光纤 若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。这样的光纤称为单模光纤。
    • 47. 光纤优点(1) 通信容量非常大。 (2) 传输损耗小,中继距离长。 (2) 抗雷电和电磁干扰性能好。 (3) 无串音干扰,保密性好。 (4) 体积小,重量轻。
    • 48. 2.4 信道复用技术2.4.1 频分复用、时分复用和统计时分复用 2.4.2 波分复用 2.4.3 码分复用
    • 49. 频分复用 FDM (Frequency Division Multiplexing) 将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。 频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。 频率时间频带 1频带 2频带 n频带 3频分复用
    • 50. 时分复用TDM (Time Division Multiplexing) 时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。 每一个用户所占用的时隙是周期性地出现(其周期就是 TDM 帧的长度)。 TDM 信号也称为等时(isochronous)信号。 时分复用的所有用户是在不同的时间占用同样的频带宽度。
    • 51. 时分复用TDM 频率时间BCDBCDBCDBCDAAAATDM 帧TDM 帧TDM 帧TDM 帧…TDM 帧周期性出现时分复用
    • 52. 2.4.2 波分复用 WDM (Wavelength Division Multiplexing) 波分复用就是光的频分复用。使用一根光纤来同时传输多个光载波信号。 1550 nm 0 1551 nm 1 1552 nm 2 1553 nm 3 1554 nm 4 1555 nm 5 1556 nm 6 1557 nm 70 1550 nm 1 1551 nm 2 1552 nm 3 1553 nm 4 1554 nm 5 1555 nm 6 1556 nm 7 1557 nm 8  2.5 Gb/s 1310 nm20 Gb/s复 用 器分 用 器EDFA120 km光调制器光解调器8  2.5 Gb/s 1310 nm波分复用的概念
    • 53. 2.4.3 码分复用 CDM (Code Division Multiplexing) 常用的名词是码分多址 CDMA (Code Division Multiple Access)。 各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。 这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
    • 54. 码片序列(chip sequence) 每一个比特时间划分为 m 个短的间隔,称为码片 (chip)。 每个站被指派一个唯一的 m bit 码片序列。 如发送比特 1,则发送自己的 m bit 码片序列。 如发送比特 0,则发送该码片序列的二进制反码。 例如,S 站的 8 bit 码片序列是 00011011。 发送比特 1 时,就发送序列 00011011, 发送比特 0 时,就发送序列 11100100。 S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)
    • 55. 码片序列实现了扩频假定S站要发送信息的数据率为 b bit/s。由于每一个比特要转换成 m 个比特的码片,因此 S 站实际上发送的数据率提高到 mb bit/s,同时 S 站所占用的频带宽度也提高到原来数值的 m 倍。 这种通信方式是扩频(spread spectrum)通信中的一种。 扩频通信通常有两大类: 一种是直接序列扩频DSSS (Direct Sequence Spread Spectrum),如上面讲的使用码片序列就是这一类。 另一种是跳频扩频FHSS (Frequency Hopping Spread Spectrum)。
    • 56. CDMA 的重要特点每个站分配的码片序列不仅必须各不相同,并且还必须互相正交 (orthogonal)。 在实用的系统中是使用伪随机码序列。
    • 57. 码片序列的正交关系 令向量 S 表示站 S 的码片向量,令 T 表示其他任何站的码片向量。 两个不同站的码片序列正交,就是向量 S 和T 的规格化内积 (inner product) 等于 0:
    • 58. 正交关系的另一个重要特性 任何一个码片向量和该码片向量自己的规格化内积都是 1 。 一个码片向量和该码片反码的向量的规格化内积值是 –1。
    • 59. 2.6.3 FTTx 技术 FTTx 是一种实现宽带居民接入网的方案,代表多种宽带光纤接入方式。 FTTx 表示 Fiber To The…(光纤到…),例如: 光纤到户 FTTH (Fiber To The Home):光纤一直铺设到用户家庭,可能是居民接入网最后的解决方法。 光纤到大楼 FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。 光纤到路边 FTTC (Fiber To The Curb):光纤铺到路边,从路边到各用户可使用星形结构双绞线作为传输媒体。
    • 60. 第 3 章 数据链路层
    • 61. 第 3 章 数据链路层3.1 使用点对点信道的数据链路层 3.3 使用广播信道的数据链路层 3.4 扩展的以太网
    • 62. 3.1.2 三个基本问题 数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是: (1) 封装成帧 (2) 透明传输 (3) 差错控制
    • 63. 1. 封装成帧封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。 首部和尾部的一个重要作用就是进行帧定界。 课件制作人:谢希仁帧结束帧首部IP 数据报帧的数据部分帧尾部 MTU数据链路层的帧长从这里开始发送帧开始发送用帧首部和帧尾部封装成帧
    • 64. 用控制字符进行帧定界的方法举例 当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。 控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。 SOH装在帧中的数据部分帧帧开始符帧结束符发送在前EOT用控制字符进行帧定界的方法举例
    • 65. 2. 透明传输如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。SOHEOT出现了“EOT”被接收端当作无效帧而丢弃被接收端 误认为是一个帧数据部分EOT完整的帧发送 在前数据部分恰好出现与 EOT 一样的代码
    • 66. 解决透明传输问题解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    • 67. 3. 差错检测在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。 误码率与信噪比有很大的关系。 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
    • 68. 3. 差错检测在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。 误码率与信噪比有很大的关系。 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
    • 69. 循环冗余检验的原理 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。 在发送端,先把数据划分为组。假定每组 k 个比特。 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。
    • 70. 冗余码的计算 用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。 得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位。 将余数 R 作为冗余码拼接在数据 M 后面发送出去。
    • 71. 冗余码的计算举例 现在 k = 6, M = 101001。 设 n = 3, 除数 P = 1101, 被除数是 2nM = 101001000。 模 2 运算的结果是:商 Q = 110101, 余数 R = 001。 把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R 即:101001001,共 (k + n) 位。
    • 72. 循环冗余检验的原理说明 P (除数)11011101001010010002nM (被除数)11011110110101110000111011010110000011001101001R (余数),作为 FCSQ (商)
    • 73. 帧检验序列 FCS 在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 循环冗余检验 CRC 和帧检验序列 FCS 并不等同。 CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
    • 74. 接收端对收到的每一帧进行 CRC 检验 (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受 (accept)。 (2) 若余数 R  0,则判定这个帧有差错,就丢弃。 但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。 只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。
    • 75. 应当注意 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受 (accept)。 “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。 也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
    • 76. 3.2.2 PPP 协议的帧格式PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。 控制字段 C 通常置为 0x03。 PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
    • 77. PPP 协议的帧格式IP 数据报1211字节12不超过 1500 字节PPP 帧先发送7EFF03FACFCSF7E协议信 息 部 分首部尾部PPP 有一个 2 个字节的协议字段。其值 若为 0x0021,则信息字段就是 IP 数据报。 若为 0x8021,则信息字段是网络控制数据。 若为 0xC021,则信息字段是 PPP 链路控制数据。 若为 0xC023,则信息字段是鉴别数据。
    • 78. 透明传输问题 当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
    • 79. 零比特填充 PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。 在发送端,只要发现有 5 个连续 1,则立即填入一个 0。 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
    • 80. 零比特填充 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0信息字段中出现了和 标志字段 F 完全一样 的 8 比特组合发送端在 5 个连 1 之后 填入 0 比特再发送出去接收端把 5 个连 1 之后的 0 比特删除会被误认为是标志字段 F 发送端填入 0 比特接收端删除填入的 0 比特零比特的填充与删除
    • 81. 3.3 使用广播信道的数据链路层3.3.1 局域网的数据链路层 3.3.2 CSMA/CD 协议 3.3.3 使用集线器的星形拓扑 3.3.4 以太网的信道利用率 3.3.5 以太网的 MAC 层
    • 82. 局域网拓扑结构干线耦合器环形网星形网集线器总线网匹配电阻
    • 83. 媒体共享技术静态划分信道 频分复用 时分复用 波分复用 码分复用 动态媒体接入控制(多点接入) 随机接入 受控接入 ,如多点线路探询 (polling),或轮询。
    • 84. 2. 适配器的作用 网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”。 适配器的重要功能: 进行串行/并行转换。 对数据进行缓存。 在计算机的操作系统安装设备驱动程序。 实现以太网协议。
    • 85. 计算机通过适配器和局域网进行通信 至局域网适配器 (网卡)串行通信CPU 和 存储器生成发送的数据 处理收到的数据把帧发送到局域网 从局域网接收帧计算机并行 通信硬件地址IP 地址
    • 86. 3.3.2 CSMA/CD 协议 最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。 B 向 D 发送数据 C D A E匹配电阻(用来吸收总线上传播的信号)匹配电阻不接受不接受不接受接受B只有 D 接受 B 发送的数据
    • 87. 以太网采用广播方式发送 总线上的每一个工作的计算机都能检测到 B 发送的数据信号。 由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。 其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。 在具有广播特性的总线上实现了一对一的通信。
    • 88. CSMA/CD协议 CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。 “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。 “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。 总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
    • 89. 碰撞检测“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
    • 90. 检测到碰撞后在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
    • 91. 为什么要进行碰撞检测?由于电磁波在总线上的传播速率是有限的,当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。 A 向 B 发出的信息,要经过一定的时间后才能传送到 B。 B 若在 A 发送的信息到达 B 之前发送自己的帧 (因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。 碰撞的结果是两个帧都变得无用。 所以需要在发送期间进行碰撞检测,以检测冲突。
    • 92. 1 kmABt碰撞t = 2  A 检测到发生碰撞 t =    B 发送数据B 检测到发生碰撞 t = t = 0单程端到端 传播时延记为  信号传播时延对载波监听的影响 A需要单程传播时延的 2 倍的时间, 才能检测到与 B 的发送产生了冲突
    • 93. 1 kmABt碰撞t =    B 检测到信道空闲 发送数据t =    / 2 发生碰撞t = 2  A 检测到发生碰撞 t =    B 发送数据B 检测到发生碰撞 t = ABABABt = 0 A 检测到 信道空闲 发送数据ABt = 0t =  B 检测到发生碰撞 停止发送STOPt = 2   A 检测到 发生碰撞STOPAB单程端到端 传播时延记为 
    • 94. CSMA/CA协议 基本思想(重点) 基本思想, CSMA/CD的工作原理可概括成四句话,即: 先听后说,边说边听,冲突停止,随机延迟后重发 载波监听:先听再说 发送前先监听总线上是否有信号 如果有,则停止发送数据(避免冲突), 同时继续监听,直至发现信道空闲时,发送数据. 冲突检测:边说边听 边发送,边检测,是否与别人发送冲突, 若冲突,立即停止发送,随机延迟后再去“载波监听”
    • 95. 争用期最先发送数据帧的站,在发送数据帧后至多经过时间 2 (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。 以太网的端到端往返时延 2 称为争用期,或碰撞窗口。 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    • 96. 争用期的长度 10 Mbit/s 以太网取 51.2 s 为争用期的长度。 对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。这意味着: 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
    • 97. 最短有效帧长 10 Mb/s 以太网,如果监测到发生冲突, 一定是在发送的前 64 字节之内。 监测到冲突后立即中止发送, 这时已发出的数据少于 64 个字节。 以太网规定:凡是长度小于 64 字节的帧都认为是由于冲突而异常中止的碎片:无效帧。 所以: 10M以太网规定最短有效帧长为 64 字节
    • 98. 小结载波检测只能减少冲突,不能避免冲突 当某个站监听到总线空闲时,也可能总线并非是空闲的。 原因: 电磁波传播需要时间,而监听只能测到本站接入点的信号。 所以发送后需要检测是否发生冲突:“冲突检测” 若冲突,立即停止发送,随机延迟后在“载波检测” 经过2 时间没有检测到冲突,可以肯定这次发送不会发生冲突 线路越长,这种冲突的概率越大。 设:信号传播速度c=200m/us, 总线长d=100m, =d/c=100/200=0.5us ,2=1us 1us内,有其他站点发送,都可能冲突 总线长d=500m, =d/c=500/200=2.5us ,2=5us 5us内,有其他站点发送,都可能冲突
    • 99. 二进制指数类型退避算法 (truncated binary exponential type)发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。 基本退避时间取为争用期 2。 从整数集合[0,1,…, (2k 1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。 参数 k 按下面的公式计算: k = Min[重传次数, 10] 当 k  10 时,参数 k 等于重传次数。 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
    • 100. CSMA/CD协议的要点(1) 准备发送。但在发送之前,必须先检测信道。 (2) 检测信道。若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。 (3) 检查碰撞。在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性: ①发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到 (1)。 ②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间后,返回到步骤 (2),继续检测信道。但若重传达 16 次仍不能成功,则停止重传而向上报错。
    • 101. 3.3.5 以太网的 MAC 层重点介绍: 1. MAC 层的硬件地址 2. MAC 帧的格式
    • 102. 1. MAC 层的硬件地址 在局域网中,硬件地址又称为物理地址,或 MAC 地址。 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符。 但鉴于大家都早已习惯了将这种 48 位的“名字”称为“地址”,所以本书也采用这种习惯用法,尽管这种说法并不太严格。请注意,如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”。更准确些说,这种 48 位“地址”应当是某个接口的标识符。
    • 103. 48 位的 MAC 地址IEEE 802 标准规定 MAC 地址字段可采用 6 字节 ( 48位) 或 2字节 (16位) 这两种中的一种。 IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符。 地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。组织唯一标识符扩展唯一标识符3 字节 (24 位)3 字节 (24 位)48 位的 MAC 地址
    • 104. 48 位的 MAC 地址一个地址块可以生成 224 个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是 EUI-48。 生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此,MAC 地址也叫作硬件地址 (hardware address)或物理地址。 “MAC地址”实际上就是适配器地址或适配器标识符 EUI-48。
    • 105. 单站地址,组地址,广播地址IEEE规定地址字段的第一字节的最低位为 I/G 位。I/G 表示 Individual / Group。 当 I/G位=0 时,地址字段表示一个单站地址。 当 I/G位=1 时,表示组地址,用来进行多播(以前曾译为组播)。此时,IEEE 只分配地址字段前三个字节中的23位。 当 I/G 位分别为 0 和 1 时,一个地址块可分别生成 224 个单个站地址和 224 个组地址。 所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。
    • 106. 适配器检查 MAC 地址 适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。 如果是发往本站的帧则收下,然后再进行其他的处理。 否则就将此帧丢弃,不再进行其他的处理。 “发往本站的帧”包括以下三种帧: 单播 (unicast) 帧(一对一) 广播 (broadcast) 帧(一对全体) 多播 (multicast) 帧(一对多)
    • 107. 适配器检查 MAC 地址 所有的适配器都至少能够识别前两种帧,即能够识别单播地址和广播地址。 有的适配器可用编程方法识别多播地址。 只有目的地址才能使用广播地址和多播地址。 以混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来。
    • 108. 2. MAC 帧的格式 常用的以太网 MAC 帧格式有两种标准 : DIX Ethernet V2 标准 IEEE 的 802.3 标准 最常用的 MAC 帧是以太网 V2 的格式。
    • 109. 以太网 V2 的 MAC 帧格式MAC 帧物理层MAC 层IP 层目的地址源地址类型数 据FCS6624字节46 ~ 1500IP 数据报
    • 110. 无效的 MAC 帧 数据字段的长度与长度字段的值不一致; 帧的长度不是整数个字节; 用收到的帧检验序列 FCS 查出有差错; 数据字段的长度不在 46 ~ 1500 字节之间。 有效的 MAC 帧长度为 64 ~ 1518 字节之间。对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
    • 111. 帧间最小间隔 帧间最小间隔为 9.6 s,相当于 96 bit 的发送时间。 一个站在检测到总线开始空闲后,还要等待 9.6 s 才能再次发送数据。 这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
    • 112. 3.4 扩展的以太网3.4.1 在物理层扩展以太网 使用集线器 形成更大的碰撞域 3.4.2 在数据链路层扩展以太网 使用交换机 减少碰撞
    • 113. 3.4.1 在物理层扩展以太网使用集线器扩展 使用多个集线器可连成更大的、多级星形结构的以太网。 例如,一个学院的三个系各有一个 10BASE-T 以太网,可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网。
    • 114. 三个独立的碰撞域 一系 二系 三系 一系三系二系主干集线器一个更大的碰撞域三个独立的以太网一个扩展的以太网
    • 115. 用集线器扩展以太网 优点 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。 扩大了以太网覆盖的地理范围。 缺点 碰撞域增大了,但总的吞吐量并未提高。 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
    • 116. 3.4.2 在数据链路层扩展以太网 扩展以太网更常用的方法是在数据链路层进行。 早期使用网桥,现在使用以太网交换机。网桥工作在数据链路层。 它根据 MAC 帧的目的地址对收到的帧进行转发和过滤。 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。 1990 年问世的交换式集线器 (switching hub) 可明显地提高以太网的性能。 交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层。
    • 117. 1. 以太网交换机的特点以太网交换机实质上就是一个多接口的网桥。 通常都有十几个或更多的接口。 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。 以太网交换机具有并行性。 能同时连通多对接口,使多对主机能同时通信。 相互通信的主机都是独占传输媒体,无碰撞地传输数据。
    • 118. 1. 以太网交换机的特点以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。 以太网交换机使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
    • 119. 以太网交换机的优点用户独享带宽,增加了总容量。 对于普通 10 Mbit/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽 (10 Mbit/s)的 N 分之一。 使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 个接口的交换机的总容量为 N10 Mbit/s。 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。 以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
    • 120. 以太网交换机的交换方式存储转发方式 把整个数据帧先缓存后再进行处理。 直通 (cut-through) 方式 接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。 缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。在某些情况下,仍需要采用基于软件的存储转发方式进行交换,例如,当需要进行线路速率匹配、协议转换或差错检测时。
    • 121. 2. 以太网交换机的自学习功能以太网交换机运行自学习算法自动维护交换表。 开始时,以太网交换机里面的交换表是空的。MAC地址 接口 有效时间 以太网交换机A1243交换表DBC交换表一开始是空的
    • 122. 按照以下自学习算法 处理收到的帧和建立交换表A 先向 B 发送一帧,从接口 1 进入到交换机。 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧。 交换机把这个帧的源地址 A 和接口1 写入交换表中,并向除接口1以外的所有的接口广播这个帧。 C 和 D 将丢弃这个帧,因为目的地址不对。只 B 才收下这个目的地址正确的帧。这也称为过滤。 从新写入交换表的项目 (A, 1) 可以看出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1转发出去。
    • 123. 按照以下自学习算法 处理收到的帧和建立交换表B 通过接口 3 向 A 发送一帧。 交换机查找交换表,发现交换表中的 MAC 地址有 A。表明要发送给A的帧(即目的地址为 A 的帧)应从接口1转发。于是就把这个帧传送到接口 1 转发给 A。显然,现在已经没有必要再广播收到的帧。 交换表这时新增加的项目 (B, 3),表明今后如有发送给 B 的帧,就应当从接口 3 转发出去。 经过一段时间后,只要主机 C 和 D 也向其他主机发送帧,以太网交换机中的交换表就会把转发到 C 或 D 应当经过的接口号(2 或 4)写入到交换表中。
    • 124. 按照以下自学习算法 处理收到的帧和建立交换表MAC地址 接口 有效时间 A 1 B 3以太网交换机A1243交换表DBC交换了两帧后的交换表A 发送一帧给 B B 发送一帧给 A考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除。以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置,因此非常方便。
    • 125. 交换机自学习和转发帧的步骤归纳 交换机收到一帧后先进行自学习。查找交换表中与收到帧的源地址有无相匹配的项目。 如没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)。 如有,则把原有的项目进行更新(进入的接口或有效时间)。 转发帧。查找交换表中与收到帧的目的地址有无相匹配的项目。 如没有,则向所有其他接口(进入的接口除外)转发。 如有,则按交换表中给出的接口进行转发。 若交换表中给出的接口就是该帧进入交换机的接口,则应丢弃这个帧(因为这时不需要经过交换机进行转发)。
    • 126. 第 4 章 网络层
    • 127. 第 4 章 网络层4.2 网际协议 IP 4.3 划分子网和构造超网 4.4 网际控制报文协议 ICMP 4.5 互联网的路由选择协议 4.6 IPv6
    • 128. 4.2 网际协议 IP4.1 网络层提供的两种服务 4.2.1 虚拟互连网络 4.2.2 分类的 IP 地址 4.2.3 IP 地址与硬件地址 4.2.4 地址解析协议 ARP 4.2.5 IP 数据报的格式 4.2.6 IP 层转发分组的流程
    • 129. 4.1 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
    • 130. 另一种观点:网络提供数据报服务互联网的先驱者提出了一种崭新的网络设计思路。 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
    • 131. 尽最大努力交付由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等) 。 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。 互连网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
    • 132. 数据报服务应用层 运输层 网络层 数据链路层 物理层应用层 运输层 网络层 数据链路层 物理层H1 H2IP 数据报丢失H1 发送给 H2 的分组可能沿着不同路径传送
    • 133. 对比的方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责虚电路服务与数据报服务的对比
    • 134. 4.2 网际协议 IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。 与 IP 协议配套使用的还有三个协议: 地址解析协议 ARP (Address Resolution Protocol) 网际控制报文协议 ICMP (Internet Control Message Protocol) 网际组管理协议 IGMP (Internet Group Management Protocol)
    • 135. 网际层的 IP 协议及配套协议各种应用层协议 网络接口层(HTTP, FTP, SMTP 等)物理硬件运输层TCP, UDP应用层ICMPIPARP与各种网络接口网络层 (网际层)IGMP
    • 136. 使用一些中间设备进行互连 将网络互相连接起来要使用一些中间设备。 中间设备又称为中间系统或中继 (relay)系统。 有以下五种不同的中间设备: 物理层中继系统:转发器 (repeater)。 数据链路层中继系统:网桥 或 桥接器 (bridge)。 网络层中继系统:路由器 (router)。 网桥和路由器的混合物:桥路器 (brouter)。 网络层以上的中继系统:网关 (gateway)。
    • 137. 网络互连使用路由器 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。 网关由于比较复杂,目前使用得较少。 网络互连都是指用路由器进行网络互连和路由选择。 由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
    • 138. 互连网络与虚拟互连网络 网络网络网络网络网络(a) 互连网络路由器(b) 虚拟互连网络 虚拟互连网络 (互联网)IP 网的概念
    • 139. 虚拟互连网络的意义 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。 使用 IP 协议的虚拟互连网络可简称为 IP 网。 使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。 如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就是现在的互联网 (Internet)。
    • 140. 5 4 3 2 15 4 3 2 1主机 H1 主机 H2 R1 R4 R5 R2 R3 R1 R2 R3H1 R5 H2 R4间接交付间接交付间接交付间接交付间接交付直接交付3 2 2 1 13 2 2 1 13 2 2 1 13 2 2 1 13 2 2 1 1分组在互联网中的传送 互联网可以由多种异构网络互连组成。
    • 141. 从网络层看 IP 数据报的传送 如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送。网络层网络层网络层网络层网络层网络层网络层IP 数据报H1R1R2R3R4R5H2
    • 142. 4.2.2 分类的 IP 地址在 TCP/IP 体系中,IP 地址是一个最基本的概念。 本部分重点学习: 1. IP 地址及其表示方法 2. 常用的三种类别的 IP 地址
    • 143. IP 地址的编址方法 分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。 子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950] 在 1985 年通过。 构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
    • 144. 分类 IP 地址 将IP地址划分为若干个固定类。 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。 主机号在它前面的网络号所指明的网络范围内必须是唯一的。 由此可见,一个 IP 地址在整个互联网范围内是唯一的。
    • 145. 分类 IP 地址 这种两级的 IP 地址结构如下: 这种两级的 IP 地址可以记为:IP 地址 ::= { <网络号>, <主机号>} (4-1)::= 代表“定义为”32位网络号主机号
    • 146. 各类 IP 地址的网络号字段和主机号字段net-id 24 位host-id 24 位net-id 16 位net-id 8 位0A 类地址host-id 16 位B 类地址C 类地址011host-id 8 位D 类地址1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 101
    • 147. 点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址 是 32 位二进制代码10000000 00001011 00000011 00011111 每 8 位为一组采用点分十进制记法 则进一步提高可读性128.11.3.31 128 11 3 31 将每 8 位的二进制数 转换为十进制数
    • 148. 2. 常用的三种类别的 IP 地址 网络 类别最大可指派 的网络数第一个可指派的 网络号最后一个可指派的 网络号每个网络中 最大主机数A126 (27 – 2)112616777214B16383 (214 – 1)128.1191.25565534C2097151 (221 – 1)192.0.1223.255.255254IP 地址的指派范围
    • 149. 一般不使用的特殊的 IP 地址网络号主机号源地址 使用目的地址 使用代表的意思00可以不可在本网络上的本主机(见6.6节DHCP协议)0host-id可以不可在本网络上的某台主机host-id全1全1不可可以只在本网络上进行广播(各路由器均不转发)net-id全1不可可以对net-id上的所有主机进行广播127非全0或全1的任何数可以可以用作本地软件环回测试之用
    • 150. 4.2.3 IP 地址与硬件地址IP 地址与硬件地址是不同的地址。 从层次的角度看, 硬件地址(或物理地址)是数据链路层和物理层使用的地址。 IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(称 IP 地址是逻辑地址是因为 IP 地址是用软件实现的)。
    • 151. 4.2.3 IP 地址与硬件地址TCP 报文IP 数据报MAC 帧应用层数据首部首部尾部首部链路层及以下 使用硬件地址硬件地址网络层及以上 使用 IP 地址IP 地址IP 地址与硬件地址的区别IP 地址放在 IP 数据报的首部,而硬件地址则放在 MAC 帧的首部。
    • 152. HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1HA为硬件地址路由器 R2HA2IP1IP2局域网局域网局域网通信的路径: H1→经过 R1 转发→再经过 R2 转发→H2查找路由表查找路由表
    • 153. IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 → IP2IP1 → IP2IP1 → IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报从协议栈的层次上看数据的流动HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1HA为硬件地址路由器 R2HA2IP1IP2局域网局域网局域网
    • 154. 主机 H1 与 H2 通信中使用的 IP地址 与 硬件地址HA 在网络层 写入IP数据报首部的地址在数据链路层 写入MAC帧首部的地址源地址目的地址源地址目的地址从H1到R1IP1IP2HA1HA3从R1到R2IP1IP2HA4HA5从R2到H2IP1IP2HA6HA2
    • 155. 地址解析协议 ARP 的作用已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址? 地址解析协议 ARP 就是用来解决这样的问题的。网络层ARP IP地址硬件地址IPIGMPICMPARPARP 协议的作用ARP 作用: 从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。
    • 156. 地址解析协议 ARP 要点不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。< IP address;MAC address;TTL >TTL (Time To Live):地址映射有效时间 。
    • 157. 地址解析协议 ARP 要点当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。
    • 158. ARP 高速缓存的作用存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。
    • 159. 4.2.5 IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成。 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。
    • 160. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报首 部发送在前IP 数据报由首部和数据两部分组成
    • 161. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报首 部发送在前首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
    • 162. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部版本——占 4 位,指 IP 协议的版本。 目前的 IP 协议版本号为 4 (即 IPv4)。1. IP 数据报首部的固定部分中的各字段
    • 163. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节), 因此 IP 的首部长度的最大值是 60 字节。1. IP 数据报首部的固定部分中的各字段
    • 164. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部区分服务——占 8 位,用来获得更好的服务。 在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。 只有在使用区分服务(DiffServ)时,这个字段才起作用。 在一般的情况下都不使用这个字段 1. IP 数据报首部的固定部分中的各字段
    • 165. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。 1. IP 数据报首部的固定部分中的各字段
    • 166. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部标识(identification) ——占 16 位, 它是一个计数器,用来产生 IP 数据报的标识。 1. IP 数据报首部的固定部分中的各字段
    • 167. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部标志(flag) ——占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 MF  1 表示后面“还有分片”。MF  0 表示最后一个分片。 标志字段中间的一位是 DF (Don't Fragment) 。 只有当 DF  0 时才允许分片。 1. IP 数据报首部的固定部分中的各字段
    • 168. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部片偏移—— 占13 位,指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。1. IP 数据报首部的固定部分中的各字段
    • 169. 【例4-1】 IP 数据报分片一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。 因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。 于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。 原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。
    • 170. 偏移 = 0/8 = 01399数据报片 1首部 1字节 0偏移 = 1400/8 = 17514002799首部 2数据报片 2偏移 = 2800/8 = 35028003799首部 3数据报片 3偏移 = 0/8 = 03799需分片的 数据报首部数据部分共 3800 字节14002800字节 0【例4-1】 IP 数据报分片
    • 171. 【例4-1】 IP 数据报分片 总长度标识MFDF片偏移原始数据报382012345000数据报片1142012345100数据报片214201234510175数据报片310201234500350IP 数据报首部中与分片有关的字段中的数值
    • 172. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部生存时间——占8 位,记为 TTL (Time To Live), 指示数据报在网络中可通过的路由器数的最大值。1. IP 数据报首部的固定部分中的各字段
    • 173. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部协议——占8 位,指出此数据报携带的数据使用何种协议, 以便目的主机的 IP 层将数据部分 上交给那个处理过程1. IP 数据报首部的固定部分中的各字段
    • 174. 运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据 部分交给哪一个进程IP 协议支持多种协议, IP 数据报可以封装多种协议 PDU。
    • 175. 固 定 部 分可变 部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分首 部首部检验和——占16 位,只检验数据报的首部, 不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 1. IP 数据报首部的固定部分中的各字段
    • 176. 4.2.6 IP 层转发分组的流程 假设:有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。 可以想像,若按目的主机号来制作路由表,每一个路由表就有 4 万个项目,即 4 万行(每一行对应于一台主机),则所得出的路由表就会过于庞大。 但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目(每一行对应于一个网络),这样就可使路由表大大简化。
    • 177. 路由器分组转发算法 (1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。 (2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
    • 178. 关于路由表路由表没有给分组指明到某个网络的完整路径。 路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)。 在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。 这样一步一步地查找下去,直到最后到达目的网络。
    • 179. 在路由表中,对每一条路由,最主要的是 (目的网络地址,下一跳地址) 网 1 10.0.0.0 网 4 40.0.0.0 网 3 30.0.0.0 网 2 20.0.0.010.0.0.440.0.0.430.0.0.220.0.0.920.0.0.7目的主机所在的网络下一跳地址20.0.0.030.0.0.010.0.0.040.0.0.020.0.0.730.0.0.1直接交付,接口 1直接交付,接口 0路由器 R2 的路由表30.0.0.110.0.0.440.0.0.430.0.0.220.0.0.920.0.0.730.0.0.1链路 4链路 3链路 2链路 1R2R3R101R2R3R101
    • 180. 特定主机路由 虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
    • 181. 默认路由 (default route)路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。 这种转发方式在一个网络只有很少的对外连接时是很有用的。 默认路由在主机发送 IP 数据报时往往更能显示出它的好处。 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。
    • 182. 路由器分组转发算法 (1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。 (2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
    • 183. 4.3 划分子网和构造超网4.3.1 划分子网 4.3.2 使用子网时分组的转发 4.3.3 无分类编址 CIDR(构造超网)
    • 184. 4.3.1 划分子网1. 从两级 IP 地址到三级 IP 地址 在 ARPANET 的早期,IP 地址的设计确实不够合理: (1) IP 地址空间的利用率有时很低。 (2) 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。 (3) 两级的 IP 地址不够灵活。
    • 185. 三级 IP 地址 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。 这种做法叫作划分子网 (subnetting) 。 划分子网已成为互联网的正式标准协议。
    • 186. 划分子网的基本思路 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。 IP地址 ::= {<网络号>, <子网号>, <主机号>} (4-2)32位本地地址网络号主机号子网号
    • 187. 划分子网的基本思路(续) 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。 最后就将 IP 数据报直接交付目的主机。
    • 188. ………145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.21.8所有到网络 145.13.0.0的分组均到达此路由器我的网络地址 是 145.13.0.0R1R3R2网络 145.13.0.0一个未划分子网的 B 类网络145.13.0.0
    • 189. 划分为三个子网后对外仍是一个网络 145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.21.8………子网 145.13.21.0子网 145.13.3.0 子网 145.13.7.0所有到达网络145.13.0.0的分组均到达此路由器网络 145.13.0.0R1R3R2
    • 190. 划分子网后变成了三级结构 当没有划分子网时,IP 地址是两级结构。 划分子网后 IP 地址就变成了三级结构。 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。 32位本地地址网络号主机号子网号
    • 191. 划分子网后变成了三级结构 优点 减少了 IP 地址的浪费 使网络的组织更加灵活 更便于维护和管理 划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。
    • 192. 2. 子网掩码从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。 使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。 规则: 子网掩码长度=32位 某位=1:IP地址中的对应位为网络号和子网号 某位=0:IP地址中的对应位为主机号
    • 193. IP 地址的各字段和子网掩码 145 . 13 .3 . 10两级 IP 地址子网号为 3 的网络的网络号三级 IP 地址主机号三级 IP 地址 的子网掩码网络号主机号子网的 网络地址1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 00网络号子网号主机号145 . 13 .145 . 13 . 33 . 10
    • 194. (IP 地址) AND (子网掩码) =网络地址网络号主机号两级 IP 地址网络号三级 IP 地址主机号网络号主机号子网号子网号三级 IP 地址 的子网掩码子网的 网络地址1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0网络号子网号0逐位进行 AND 运算
    • 195. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0网络号网络号主机号为全 0网络号网络地址A 类 地 址默认子网掩码 255.0.0.0网络地址B 类 地 址默认子网掩码 255.255.0.0网络地址C 类 地 址默认子网掩码 255.255.255.0主机号为全 0主机号为全 0默认子网掩码
    • 196. 在划分子网情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。 (2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网 络地址匹配。若匹配,则将分组直接交付。否则就是间接交付, 执行 (3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给 指明的下一跳路由器;否则,执行 (4)。 (4) 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明 的默认路由器;否则,执行 (6)。 (6) 报告转发分组出错。
    • 197. 0目的网络地址子网掩码下一跳128.30.33.0 128.30.33.128 128.30.36.0255.255.255.128 255.255.255.128 255.255.255.0接口 0 接口 1 R2128.30.33.13源主机 H1128.30.33.130R1 的路由表(未给出默认路由器)R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128目的主机 H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12【例4-4】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.1
    • 198. 主机 H1 要发送分组给 H2 要发送的分组的目的 IP 地址:128.30.33.1380目的网络地址子网掩码下一跳128.30.33.0 128.30.33.128 128.30.36.0255.255.255.128 255.255.255.128 255.255.255.0接口 0 接口 1 R2128.30.33.13源主机 H1128.30.33.130R1 的路由表(未给出默认路由器)R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128目的主机 H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.1请注意:H1 并不知道 H2 连接在哪一个网络上。 H1 仅仅知道 H2 的 IP 地址是 128.30.33.138因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上 如果是,则直接交付; 否则,就送交路由器 R1,并逐项查找路由表。
    • 199. 主机 H1 首先将 本子网的子网掩码 255.255.255.128 与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作) 255.255.255.128 AND 128.30.33.138 的计算255 就是二进制的全 1,因此 255 AND xyz = xyz, 这里只需计算最后的 128 AND 138 即可。128 → 10000000 138 → 10001010逐比特 AND 操作后 10000000 → 128255.255.255.128 128. 30. 33.138128. 30. 33.128逐比特 AND 操作 H1 的网络地址
    • 200. 因此 H1 必须把分组传送到路由器 R1 然后逐项查找路由表目的网络地址子网掩码下一跳128.30.33.0 128.30.33.128 128.30.36.0255.255.255.128 255.255.255.128 255.255.255.0接口 0 接口 1 R20128.30.33.13源主机 H1128.30.33.130R1 的路由表(未给出默认路由器)R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128目的主机 H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.1
    • 201. 路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 R1 收到的分组的目的 IP 地址:128.30.33.138目的网络地址子网掩码下一跳128.30.33.0 128.30.33.128 128.30.36.0255.255.255.128 255.255.255.128 255.255.255.0接口 0 接口 1 R2R1 的路由表(未给出默认路由器)R10128.30.33.13源主机 H1128.30.33.1301R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128目的主机 H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12128.30.33.1255.255.255.128 AND 128.30.33.138 = 128.30.33.128 不匹配! (因为128.30.33.128 与路由表中的 128.30.33.0 不一致)不一致
    • 202. 路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 R1 收到的分组的目的 IP 地址:128.30.33.138目的网络地址子网掩码下一跳128.30.33.0 128.30.33.128 128.30.36.0255.255.255.128 255.255.255.128 255.255.255.0接口 0 接口 1 R2R1 的路由表(未给出默认路由器)R10128.30.33.13源主机 H1128.30.33.1301R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128目的主机 H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12128.30.33.1255.255.255.128 AND 128.30.33.138 = 128.30.33.128 匹配! 这表明子网 2 就是收到的分组所要寻找的目的网络。一致
    • 203. 4.3.3 无分类编址 CIDR1. 网络前缀 无分类域间路由选择 CIDR (Classless Inter-Domain Routing) CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。
    • 204. 无分类的两级编址 无分类的两级编址的记法是: CIDR 使用“斜线记法”(slash notation),它又称为 CIDR 记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如: 220.78.168.0/24IP地址 ::= {<网络前缀>, <主机号>} (4-3) 32位网络前缀主机号
    • 205. CIDR 地址块 CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。 这个地址块的起始地址是 128.14.32.0。 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。 128.14.32.0/20 地址块的最小地址:128.14.32.0 128.14.32.0/20 地址块的最大地址:128.14.47.255 全 0 和全 1 的主机号地址一般不使用。
    • 206. 128.14.32.0/20 表示的地址(212 个地址)10000000 00001110 00100000 00000000 10000000 00001110 00100000 00000001 10000000 00001110 00100000 00000010 10000000 00001110 00100000 00000011 10000000 00001110 00100000 00000100 10000000 00001110 00100000 00000101 10000000 00001110 00101111 11111011 10000000 00001110 00101111 11111100 10000000 00001110 00101111 11111101 10000000 00001110 00101111 11111110 10000000 00001110 00101111 11111111所有地址 的 20 位 前缀都是 一样的最小地址最大地址
    • 207. 路由聚合 (route aggregation) 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。 路由聚合也称为构成超网 (supernetting)。 CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。
    • 208. CIDR 记法的其他形式 10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。 10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为: 网络前缀的后面加一个星号 * 的表示方法,如 00001010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。 25519200掩码中有 10 个连续的 111111111 11000000 00000000 00000000
    • 209. 构成超网 前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。 这些 C 类地址合起来就构成了超网。 CIDR 地址块中的地址数一定是 2 的整数次幂。 网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。 CIDR 的一个好处是:可以更加有效地分配 IPv4 的地址空间,可根据客户的需要分配适当大小的 CIDR 地址块。
    • 210. CIDR 地址块划分举例 互联网206.0.68.0/22206.0.64.0/18ISP大学 X一系二系三系四系206.0.71.128/26 206.0.71.192/26206.0.68.0/25 206.0.68.128/25 206.0.69.0/25 206.0.69.128/25206.0.70.0/26 206.0.70.64/26 206.0.70.128/26 206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.71.0/26 206.0.71.64/26206.0.71.128/25206.0.68.0/23 单位 地址块 二进制表示 地址数 ISP 206.0.64.0/18 11001110.00000000.01* 16384 大学 206.0.68.0/22 11001110.00000000.010001* 1024 一系 206.0.68.0/23 11001110.00000000.0100010* 512 二系 206.0.70.0/24 11001110.00000000.01000110.* 256 三系 206.0.71.0/25 11001110.00000000.01000111.0* 128 四系 206.0.71.128/25 11001110.00000000.01000111.1* 128
    • 211. CIDR 地址块划分举例 互联网206.0.68.0/22206.0.64.0/18ISP大学 X一系二系三系四系206.0.71.128/26 206.0.71.192/26206.0.68.0/25 206.0.68.128/25 206.0.69.0/25 206.0.69.128/25206.0.70.0/26 206.0.70.64/26 206.0.70.128/26 206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.71.0/26 206.0.71.64/26206.0.71.128/25206.0.68.0/23 单位 地址块 二进制表示 地址数 ISP 206.0.64.0/18 11001110.00000000.01* 16384 大学 206.0.68.0/22 11001110.00000000.010001* 1024 一系 206.0.68.0/23 11001110.00000000.0100010* 512 二系 206.0.70.0/24 11001110.00000000.01000110.* 256 三系 206.0.71.0/25 11001110.00000000.01000111.0* 128 四系 206.0.71.128/25 11001110.00000000.01000111.1* 128这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
    • 212. 2. 最长前缀匹配使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。 最长前缀匹配又称为最长匹配或最佳匹配。
    • 213. 最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 1 206.0.71.128/25 2查找路由表中的第 1 个项目:AND D = 206. 0. 01000111. 130第 1 个项目 206.0.68.0/22 的掩码 M 有 22 个连续的 1。M = 11111111 11111111 11111100 00000000因此只需把 D 的第 3 个字节转换成二进制。M = 11111111 11111111 11111100 00000000206. 0. 01000100. 0与 206.0.68.0/22 匹配!
    • 214. 最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 1 206.0.71.128/25 2查找路由表中的第 2 个项目:AND D = 206. 0. 71. 10000010第 2 个项目 206.0.71.128/25 的掩码 M 有 25 个连续的 1。M = 11111111 11111111 11111100 00000000因此只需把 D 的第 4 个字节转换成二进制。M = 11111111 11111111 11111111 10000000206. 0. 71. 10000000与 206.0.71.128/25 匹配!
    • 215. 最长前缀匹配举例D AND (11111111 11111111 11111100 00000000) = 206.0.68.0/22 匹配 D AND (11111111 11111111 11111111 10000000) = 206.0.71.128/25 匹配选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。
    • 216. 4.4 网际控制报文协议 ICMP4.4.1 ICMP 报文的种类 4.4.2 ICMP 的应用举例
    • 217. 4.4 网际控制报文协议ICMP为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP 是互联网的标准协议。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
    • 218. ICMP 报文的格式 首 部ICMP 报文0数 据 部 分检验和类型代码(这 4 个字节取决于 ICMP 报文的类型)81631IP 数据报前 4 个字节 都是一样的ICMP 的数据部分(长度取决于类型)
    • 219. 4.4.1 ICMP 报文的种类ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。 ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
    • 220. 4.4.2 ICMP的应用举例PING (Packet InterNet Groper) PING 用来测试两个主机之间的连通性。 PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
    • 221. PING 的应用举例用 PING 测试主机的连通性
    • 222. 4.4.2 ICMP的应用举例用 tracert 命令获得到目的主机的路由信息
    • 223. 4.5 互联网的路由选择协议4.5.1 有关路由选择协议的几个基本概念 4.5.2 内部网关协议 RIP 4.5.3 内部网关协议 OSPF 4.5.4 外部网关协议 BGP
    • 224. 自治系统 AS (Autonomous System) 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。 现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
    • 225. 互联网有两大类路由选择协议 内部网关协议 IGP (Interior Gateway Protocol) 在一个自治系统内部使用的路由选择协议。 目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。 外部网关协议 EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。 在外部网关协议中目前使用最多的是 BGP-4。
    • 226. 互联网的路由选择协议 内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。 外部网关协议 EGP:目前使用的协议就是 BGP。RIP OSPF互联网路由选择协议BGP外部网关协议(EGP)内部网关协议(IGP)
    • 227. 4.5.2 内部网关协议 RIP1. 工作原理 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。 RIP 是一种分布式的、基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
    • 228. “距离”的定义 从一个路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。 RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。 这里的“距离”实际上指的是“最短距离”。
    • 229. “距离”的定义 RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。 RIP 允许一条路径最多只能包含 15 个路由器。 “距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。 RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
    • 230. RIP 协议的三个特点 (1) 仅和相邻路由器交换信息。 (2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 (3) 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
    • 231. RIP 协议的优缺点 优点: 实现简单,开销较小。 缺点: RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。 “坏消息传播得慢”,使更新过程的收敛时间过长。
    • 232. 4.5.3 内部网关协议 OSPF开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在1989年开发出来的。 OSPF 的原理很简单,但实现起来却较复杂。
    • 233. 1. OSPF 协议的基本特点“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF 采用分布式的链路状态协议 (link state protocol)。 注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
    • 234. 三个要点 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
    • 235. OSPF 直接用 IP 数据报传送 OSPF 不用 UDP 而是直接用 IP 数据报传送。 OSPF 构成的数据报很短。这样做可减少路由信息的通信量。 数据报很短的另一好处是可以不必将长的数据报分片传送。 但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
    • 236. 4.6 IPv64.6.1 IPv6的基本首部 4.6.2 IPv6的地址 4.6.3 从IPv4向IPv6过渡 4.6.4 ICMPv6
    • 237. 4.6 IPv6IP 是互联网的核心协议。 互联网经过几十年的飞速发展,到2011年2月,IPv4 的 32 位地址已经耗尽。 ISP 已经不能再申请到新的 IP 地址块了。 我国在2014-2015年也逐步停止了向新用户和应用分配 IPv4 地址。 解决 IP 地址耗尽的根本措施就是采用具有更大地址空间的新版本的 IP,即 IPv6。
    • 238. 4.6.1 IPv6 的基本首部IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组。为方便起见,本书仍采用数据报这一名词。 所引进的主要变化如下: 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。 扩展的地址层次结构。 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。 改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。
    • 239. 4.6.1 IPv6 的基本首部所引进的主要变化如下(续): 允许协议继续扩充。 支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。 支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。 IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。
    • 240. IPv6 数据报的一般形式IPv6数据报由两大部分组成: 基本首部 (base header) 有效载荷 (payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部(extension header),再后面是数据部分。基本首部 扩展 首部 1 扩展 首部 N …数 据 部 分选项IPv6 数据报40 字节不超过 65535 字节发送在前有 效 载 荷具有多个可选扩展首部的 IPv6 数据报的一般形式
    • 241. IPv6 数据报的基本首部IPv6 将首部长度变为固定的 40 字节,称为基本首部。 把首部中不必要的功能取消了,使得 IPv6 首部的字段数减少到只有 8 个。 IPv6 对首部中的某些字段进行了如下的更改: 取消了首部长度字段,因为首部长度是固定的 40 字节; 取消了服务类型字段; 取消了总长度字段,改用有效载荷长度字段;把 TTL 字段改称为跳数限制字段; 取消了协议字段,改用下一个首部字段; 取消了检验和字段; 取消了选项字段,而用扩展首部来实现选项功能。
    • 242. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24有效载荷(扩展首部 / 数据)IPv6 的 基本首部 (40 B)IPv6 的 有效载荷 (至 64 KB)40 字节长的 IPv6 基本首部
    • 243. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)版本(version)—— 4 位。它指明了协议的版本,对 IPv6 该字段总是 6。
    • 244. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)通信量类(traffic class)—— 8 位。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
    • 245. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)流标号(flow label)—— 20 位。 “流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
    • 246. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)有效载荷长度(payload length)—— 16 位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
    • 247. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)下一个首部(next header)—— 8 位。它相当于 IPv4 的协议字段或可选字段。
    • 248. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)跳数限制(hop limit)—— 8 位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。 当跳数限制的值为零时,就要将此数据报丢弃。
    • 249. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)源地址—— 128 位。是数据报的发送站的 IP 地址。
    • 250. 041631版 本位目 的 地 址源 地 址下 一 个 首 部流 标 号12通 信 量 类(128 位)(128 位)有 效 载 荷 长 度跳 数 限 制24IPv6 的 基本首部 (40 B)目的地址—— 128 位。是数据报的接收站的 IP 地址。
    • 251. 4.6.2 IPv6 的地址IPv6 数据报的目的地址可以是以下三种基本类型地址之一: (1) 单播 (unicast):传统的点对点通信。 (2) 多播 (multicast):一点对多点的通信。 (3) 任播 (anycast):这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
    • 252. 冒号十六进制记法在IPv6中,每个地址占 128 位,地址空间大于 3.41038 。 为了使地址再稍简洁些,IPv6 使用冒号十六进制记法(colon hexadecimal notation, 简写为colon hex)。 每个 16 位的值用十六进制值表示,各值之间用冒号分隔。例如: 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF 在十六进制记法中,允许把数字前面的0省略。例如把0000中的前三个0省略,写成1个0。
    • 253. 零压缩冒号十六进制记法可以允许零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代。 FF05:0:0:0:0:0:0:B3 可压缩为: FF05::B3 注意:在任一地址中只能使用一次零压缩。
    • 254. 点分十进制记法的后缀 冒号十六进制记法可结合使用点分十进制记法的后缀,这种结合在 IPv4 向 IPv6 的转换阶段特别有用。 例如:0:0:0:0:0:0:128.10.2.1 再使用零压缩即可得出: ::128.10.2.1 CIDR 的斜线表示法仍然可用。 例如:60 位的前缀 12AB00000000CD3 可记为: 12AB:0000:0000:CD30:0000:0000:0000:0000/60 或 12AB::CD30:0:0:0:0/60 (零压缩) 或 12AB:0:0:CD30::/60 (零压缩)
    • 255. 第 5 章 运输层
    • 256. 第 5 章 运输层5.1 运输层协议概述 5.2 用户数据报协议 UDP 5.3 传输控制协议 TCP 概述 5.4 可靠传输的工作原理 5.5 TCP 报文段的首部格式 5.6 TCP 可靠传输的实现 5.7 TCP 的流量控制 5.8 TCP 的拥塞控制 5.9 TCP 的运输连接管理
    • 257. 5.1 运输层协议概述5.1.1 进程之间的通信 5.1.2 运输层的两个主要协议 5.1.3 运输层的端口
    • 258. 运输层的作用在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。 这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing)。 根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。
    • 259. 两种不同的运输协议但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
    • 260. 5.1.2 运输层的两个主要协议 TCP/IP 的运输层有两个主要协议: (1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议 TCP (Transmission Control Protocol) TCPUDPIP应用层与各种网络接口运输层TCP/IP 体系中的运输层协议
    • 261. TCP 与 UDP UDP:一种无连接协议 提供无连接服务。 在传送数据之前不需要先建立连接。 传送的数据单位协议是 UDP 报文或用户数据报。 对方的运输层在收到 UDP 报文后,不需要给出任何确认。 虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
    • 262. TCP 与 UDP TCP:一种面向连接的协议 提供面向连接的服务。 传送的数据单位协议是 TCP 报文段 (segment)。 TCP 不提供广播或多播服务。 由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
    • 263. 端口号 (protocol port number)解决这个问题的方法就是在运输层使用协议端口号 (protocol port number),或通常简称为端口 (port)。 端口用一个 16 位端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。 在互联网中,不同计算机的相同端口号是没有联系的。
    • 264. TCP/IP 运输层端口 端口用一个 16 位端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。 在互联网中,不同计算机的相同端口号是没有联系的。由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
    • 265. 两大类端口 (1) 服务器端使用的端口号 熟知端口,数值一般为 0~1023。 登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。 (2) 客户端使用的端口号 又称为短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用。 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
    • 266. 常用的熟知端口UDPTCPIPSMTPFTPTelnetRPCDNSSNMPTFTP11153161692521 2023HTTP80HTTPS443SNMP(trap)162
    • 267. 5.2 用户数据报协议 UDP5.2.1 UDP 概述 5.2.2 UDP 的首部格式
    • 268. UDP 的主要特点 (1) UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。 (2) UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。 (3) UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。 (4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
    • 269. UDP 的主要特点 (5) UDP 支持一对一、一对多、多对一和多对多的交互通信。 (6) UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
    • 270. 5.3 传输控制协议 TCP 概述5.3.1 TCP 最主要的特点 5.3.2 TCP 的连接
    • 271. 5.3.1 TCP 最主要的特点 TCP 是面向连接的运输层协议。 每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。 TCP 提供可靠交付的服务。 TCP 提供全双工通信。 面向字节流 TCP 中的“流”(stream)指的是流入或流出进程的字节序列。 “面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。
    • 272. TCP 面向流的概念 768H发送 TCP 报文段发送方接收方把字节写入 发送缓存从接收缓存 读取字节应用进程应用进程1230181716151419202145131211H109H加上 TCP 首部 构成 TCP 报文段TCPTCP字节流字节流H表示 TCP 报文段的首部x表示序号为 x 的数据字节TCP 连接
    • 273. 5.3.2 TCP 的连接 TCP 把连接作为最基本的抽象。 每一条 TCP 连接有两个端点。 TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做套接字 (socket) 或插口。 端口号拼接到 (contatenated with) IP 地址即构成了套接字。
    • 274. 套接字 (socket)TCP 连接 ::= {socket1, socket2} = {(IP1: port1),(IP2: port2)} (5-2)套接字 socket = (IP地址 : 端口号) (5-1)每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
    • 275. TCP 连接,IP 地址,套接字TCP 连接就是由协议软件所提供的一种抽象。 TCP 连接的端点是个很抽象的套接字,即(IP 地址:端口号)。 同一个 IP 地址可以有多个不同的 TCP 连接。 同一个端口号也可以出现在多个不同的 TCP 连接中。
    • 276. 5.4 可靠传输的工作原理5.4.1 停止等待协议 5.4.2 连续 ARQ 协议
    • 277. 1. 无差错情况A 发送分组 M1,发完就暂停发送,等待 B 的确认 (ACK)。B 收到了 M1 向 A 发送 ACK。A 在收到了对 M1 的确认后,就再发送下一个分组 M2。ABM1M2ACK 1ACK 2停止发送,等待 ACK收到 ACK,继续发送确认 M1确认 M2时间时间
    • 278. 2. 出现差错在接收方 B 会出现两种情况: B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)。 M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。 在这两种情况下,B 都不会发送任何信息。 如何保证 B 正确收到了 M1 呢? 解决方法:超时重传 A 为每一个已发送的分组都设置了一个超时计时器。 A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。
    • 279. 2. 出现差错分组错误ABM1M1ACK 1丢弃超时重发toutABM1M1分组丢失ACK 1超时重发tout
    • 280. 3. 确认丢失和确认迟到确认丢失 若 B 所发送的对 M1 的确认丢失了,那么 A 在设定的超时重传时间内不能收到确认,但 A 并无法知道:是自己发送的分组出错、丢失了,或者 是 B 发送的确认丢失了。因此 A 在超时计时器到期后就要重传 M1。 假定 B 又收到了重传的分组 M1。这时 B 应采取两个行动: 第一,丢弃这个重复的分组 M1,不向上层交付。 第二,向 A 发送确认。不能认为已经发送过确认就不再发送,因为 A 之所以重传 M1 就表示 A 没有收到对 M1 的确认。
    • 281. 3. 确认丢失和确认迟到确认迟到 传输过程中没有出现差错,但 B 对分组 M1 的确认迟到了。 A 会收到重复的确认。对重复的确认的处理很简单:收下后就丢弃。 B 仍然会收到重复的 M1,并且同样要丢弃重复的 M1,并重传确认分组。
    • 282. 3. 确认丢失和确认迟到ABM1M1确认丢失ACK 1超时重发toutACK 1ABM1M1确认迟到ACK 1超时重发toutM2收下, 重复的, 丢弃ACK 1重复的, 丢弃
    • 283. 自动重传请求 ARQ通常 A 最终总是可以收到对所有发出的分组的确认。如果 A 不断重传分组但总是收不到确认,就说明通信线路太差,不能进行通信。 使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。 像上述的这种可靠传输协议常称为自动重传请求 ARQ (Automatic Repeat reQuest)。意思是重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。
    • 284. 流水线传输为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。 流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。这样可使信道上一直有数据不间断地传送。 由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。
    • 285. 流水线传输B分组ttAACK由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。 流水线传输可提高信道利用率
    • 286. 5.4.2 连续 ARQ 协议滑动窗口协议比较复杂,是 TCP 协议的精髓所在。 发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。 连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
    • 287. 5.4.2 连续ARQ协议123456789101112(a) 发送方维持发送窗口(发送窗口是 5)发送窗口(b) 收到一个确认后发送窗口向前滑动向前123456789101112发送窗口连续 ARQ 协议的工作原理
    • 288. 累积确认 接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。 优点:容易实现,即使确认丢失也不必重传。 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
    • 289. Go-back-N(回退 N) 如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。 这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。 可见当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。
    • 290. TCP 可靠通信的具体实现 TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。 TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。 TCP 两端的四个窗口经常处于动态变化之中。 TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
    • 291. 5.5 TCP 报文段的首部格式TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。 一个 TCP 报文段分为首部和数据两部分,而 TCP 的全部功能都体现在它首部中各字段的作用。 TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 (n 是整数)。因此 TCP 首部的最小长度是 20 字节。
    • 292. TCP 首部20 字节的 固定首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I N32 位S Y NR S TP S HA C KU R G位 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP数据报的 数据部分IP 首部发送在前TCP 报文段的首部格式
    • 293. 5.5 TCP 报文段的首部格式TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。 一个 TCP 报文段分为首部和数据两部分,而 TCP 的全部功能都体现在它首部中各字段的作用。 TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 (n 是整数)。因此 TCP 首部的最小长度是 20 字节。
    • 294. TCP 首部20 字节的 固定首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I N32 位S Y NR S TP S HA C KU R G位 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP数据报的 数据部分IP 首部发送在前TCP 报文段的首部格式
    • 295. TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
    • 296. 序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 297. 确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 298. 数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 299. 保留字段——占 6 位,保留为今后使用,但目前应置为 0。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 300. 紧急 URG —— 当 URG  1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 301. 确认 ACK —— 只有当 ACK  1 时确认号字段才有效。当 ACK  0 时,确认号无效。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 302. 推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 303. 复位 RST (ReSeT) —— 当 RST  1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 304. 同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 305. 终止 FIN (FINish) —— 用来释放一个连接。FIN  1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 306. 窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 307. 检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 308. 紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。 TCP首部20 字节 固定 首部目 的 端 口数据 偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留F I NS Y NR S TP S HA C KU R G位 0 8 16 24 31填 充
    • 309. 5.6 TCP 可靠传输的实现5.6.1 以字节为单位的滑动窗口 5.6.2 超时重传时间的选择 5.6.3 选择确认 SACK
    • 310. 5.6.1 以字节为单位的滑动窗口TCP 的滑动窗口是以字节为单位的。 现假定 A 收到了 B 发来的确认报文段,其中窗口是 20 字节,而确认号是 31(这表明 B 期望收到的下一个序号是 31,而序号 30 为止的数据已经收到了)。 根据这两个数据,A 就构造出自己的发送窗口,
    • 311. 前移不允许发送已发送并 收到确认A 的发送窗口 = 20允许发送的序号26272829303132333435363738394041424344454647484950515253545556B 期望 收到的序号前沿后沿前移收缩根据 B 给出的窗口值,A 构造出自己的发送窗口。 发送窗口表示:在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。 发送窗口里面的序号表示允许发送的序号。 显然,窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据,因而可能获得更高的传输效率。TCP 标准强烈不赞成 发送窗口前沿向后收缩
    • 312. 不允许发送已发送并 收到确认A 的发送窗口位置不变允许发送但尚未发送262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3不允许接收已发送确认 并交付主机B 的接收窗口允许接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口A 发送了 11 个字节的数据 P3 – P1 = A 的发送窗口(又称为通知窗口) P2 – P1 = 已发送但尚未收到确认的字节数 P3 – P2 = 允许发送但尚未发送的字节数(又称为可用窗口) 接收窗口内的序号(31 ~ 50) 是允许接收的序号。
    • 313. 允许发送但尚未发送A 的发送窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送并收到确认不允许 发送已发送 但未收到确认56P1P2P3允许接收B 的接收窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送确认 并交付主机不允许 接收56未按序收到A 收到新的确认号,发送窗口向前滑动 先存下,等待缺少的 数据的到达
    • 314. 不允许 发送已发送并收到确认A 的发送窗口已满,有效窗口为零262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3A 的发送窗口内的序号都已用完, 但还没有再收到确认,必须停止发送。 发送窗口内的序号都属于已发送但未被确认
    • 315. 5.7 TCP 的流量控制5.7.1 利用滑动窗口实现流量控制 5.7.2 TCP 的传输效率
    • 316. 5.7.1 利用滑动窗口实现流量控制一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。 流量控制 (flow control) 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。 利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
    • 317. seq = 1, DATAseq = 201, DATAseq = 401, DATAseq = 301, DATAseq = 101, DATAseq = 201, DATAseq = 501, DATAACK = 1, ack = 201, rwnd = 300ACK = 1, ack = 601, rwnd = 0ACK = 1, ack = 501, rwnd = 100AB允许 A 发送序号 201 至 500 共 300 字节A 发送了序号 101 至 200,还能发送 200 字节A 发送了序号 301 至 400,还能再发送 100 字节新数据A 发送了序号 1 至 100,还能发送 300 字节A 发送了序号 401 至 500,不能再发送新数据了A 超时重传旧的数据,但不能发送新的数据允许 A 发送序号 501 至 600 共 100 字节A 发送了序号 501 至 600,不能再发送了不允许 A 再发送(到序号 600 为止的数据都收到了)丢失!利用可变窗口进行流量控制举例A 向 B 发送数据。在连接建立时,B 告诉 A: “我的接收窗口 rwnd = 400(字节)”。
    • 318. 可能发生死锁B 向 A 发送了零窗口的报文段后不久,B 的接收缓存又有了一些存储空间。于是 B 向 A 发送了 rwnd = 400 的报文段。 但这个报文段在传送过程中丢失了。A 一直等待收到 B 发送的非零窗口的通知,而 B 也一直等待 A 发送的数据。 如果没有其他措施,这种互相等待的死锁局面将一直延续下去。 为了解决这个问题,TCP 为每一个连接设有一个持续计时器 (persistence timer)。
    • 319. 持续计时器TCP 为每一个连接设有一个持续计时器 (persistence timer) 。 只要 TCP 连接的一方收到对方的零窗口通知,就启动该持续计时器。 若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。 若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。 若窗口不是零,则死锁的僵局就可以打破了。
    • 320. 5.8 TCP 的拥塞控制5.8.1 拥塞控制的一般原理 5.8.2 TCP 的拥塞控制方法 5.8.3 主动队列管理 AQM
    • 321. 5.8.1 拥塞控制的一般原理在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。 若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。 出现拥塞的原因: ∑对资源需求 > 可用资源 (5-7)
    • 322. 拥塞控制与流量控制的区别 拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
    • 323. 拥塞控制与流量控制的区别 流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。 拥塞控制和流量控制之所以常常被弄混,是因为某些拥塞控制算法是向发送端发送控制报文,并告诉发送端,网络已出现麻烦,必须放慢发送速率。这点又和流量控制是很相似的。
    • 324. 5.8.2 TCP 的拥塞控制方法TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。 TCP发送方维持一个拥塞窗口 CWND (Congestion Window) 拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。 发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。 所以,发送窗口大小不仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况,所以真正的发送窗口值为:真正的发送窗口值 = Min(公告窗口值,拥塞窗口值)
    • 325. 控制拥塞窗口的原则只要网络没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多的分组发送出去,这样就可以提高网络的利用率。 但只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞。
    • 326. 拥塞的判断重传定时器超时 现在通信线路的传输质量一般都很好,因传输出差错而丢弃分组的概率是很小的(远小于 1 %)。只要出现了超时,就可以猜想网络可能出现了拥塞。 收到三个相同(重复)的 ACK 个别报文段会在网络中丢失,预示可能会出现拥塞(实际未发生拥塞),因此可以尽快采取控制措施,避免拥塞。
    • 327. TCP拥塞控制算法四种( RFC 5681) : 慢开始 (slow-start) 拥塞避免 (congestion avoidance) 快重传 (fast retransmit) 快恢复 (fast recovery)
    • 328. 慢开始 (Slow start)用来确定网络的负载能力。 算法的思路:由小到大逐渐增大拥塞窗口数值。 初始拥塞窗口 cwnd 设置: 旧的规定:在刚刚开始发送报文段时,先把初始拥塞窗口cwnd 设置为 1 至 2 个发送方的最大报文段 SMSS (Sender Maximum Segment Size) 的数值。 新的 RFC 5681 把初始拥塞窗口 cwnd 设置为不超过2至4个SMSS 的数值。 慢开始门限 ssthresh(状态变量):防止拥塞窗口cwnd 增长过大引起网络拥塞。
    • 329. 慢开始 (Slow start)拥塞窗口 cwnd 控制方法:在每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个 SMSS 的数值。 其中 N 是原先未被确认的、但现在被刚收到的确认报文段所确认的字节数。 不难看出,当 N < SMSS 时,拥塞窗口每次的增加量要小于 SMSS。 用这样的方法逐步增大发送方的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。 拥塞窗口cwnd每次的增加量 = min (N, SMSS) (5-8)
    • 330. 发送方接收方发送 M1 确认 M1发送 M2~M3 确认 M2~M3 发送 M4~M7 确认 M4~M7 cwnd = 1 cwnd = 2 cwnd = 4 发送 M8~M15cwnd = 8 …发送方每收到一个对新报文段的确认 (重传的不算在内)就使 cwnd 加 1。 轮次 1轮次 2轮次 3窗口大小按指数增加,不慢!每经过一个传输轮次,拥塞窗口就加倍。
    • 331. 设置慢开始门限状态变量 ssthresh慢开始门限 ssthresh 的用法如下: 当 cwnd < ssthresh 时,使用慢开始算法。 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
    • 332. 拥塞避免算法思路:让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。 因此在拥塞避免阶段就有“加法增大” (Additive Increase) 的特点。这表明在拥塞避免阶段,拥塞窗口 cwnd 按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。
    • 333. 当网络出现拥塞时无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时): ssthresh = max(cwnd/2,2) cwnd = 1 执行慢开始算法 这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
    • 334. 慢开始和拥塞避免算法的实现举例 当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16。超时246810121416182022004812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免慢开始慢开始
    • 335. 慢开始和拥塞避免算法的实现举例 超时246810121416182022004812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免慢开始慢开始发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。
    • 336. 慢开始和拥塞避免算法的实现举例 在执行慢开始算法时,拥塞窗口 cwnd=1,发送第一个报文段。超时246810121416182022004812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免
    • 337. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1,然后开始下一轮的传输(请注意,横坐标是传输轮次,不是时间)。因此拥塞窗口 cwnd 随着传输轮次按指数规律增长。
    • 338. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1,然后开始下一轮的传输(请注意,横坐标是传输轮次,不是时间)。因此拥塞窗口 cwnd 随着传输轮次按指数规律增长。
    • 339. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1,然后开始下一轮的传输(请注意,横坐标是传输轮次,不是时间)。因此拥塞窗口 cwnd 随着传输轮次按指数规律增长。
    • 340. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4当拥塞窗口 cwnd 增长到慢开始门限值s sthresh 时(图中的点,此时拥塞窗口cwnd = 16),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。
    • 341. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4当拥塞窗口 cwnd = 24 时,网络出现了超时(图中的点),发送方判断为网络拥塞。于是调整门限值 ssthresh = cwnd / 2 = 12,同时设置拥塞窗口 cwnd = 1,进入慢开始阶段。
    • 342. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4当拥塞窗口 cwnd = 24 时,网络出现了超时(图中的点),发送方判断为网络拥塞。于是调整门限值 ssthresh = cwnd / 2 = 12,同时设置拥塞窗口 cwnd = 1,进入慢开始阶段。
    • 343. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4按照慢开始算法,发送方每收到一个对新报文段的确认ACK,就把拥塞窗口值加1。 当拥塞窗口cwnd = ssthresh = 12时(图中的点,这是新的ssthresh值),改为执行拥塞避免算法,拥塞窗口按线性规律增大。
    • 344. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4当拥塞窗口cwnd = 16时(图中的点),出现了一个新的情况,就是发送方一连收到 3 个对同一个报文段的重复确认(图中记为3-ACK)。发送方改为执行快重传和快恢复算法。
    • 345. 快重传算法发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”),这样就不会出现超时,发送方也不就会误认为出现了网络拥塞。 使用快重传可以使整个网络的吞吐量提高约20%。 不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
    • 346. 快重传举例发送方接收方发送 M1 确认 M1t 确认 M2 发送 M2发送 M3发送 M4 ?发送 M5发送 M6 重复确认 M2 立即重传 M3 重复确认 M2 重复确认 M2 t发送 M7 收到三个连续的 对 M2 的重复确认 立即重传 M3 丢失
    • 347. 快恢复算法当发送端收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法 FR (Fast Recovery) 算法: (1) 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ; (2) 新拥塞窗口 cwnd = 慢开始门限 ssthresh ; (3) 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。
    • 348. 慢开始和拥塞避免算法的实现举例 超时24681012141618202200812162024传输轮次拥塞窗口 cwnd3-ACKTCP Reno 版本ssthresh 的初始值拥塞避免24拥塞避免拥塞避免4因此,在图的点,发送方知道现在只是丢失了个别的报文段。于是不启动慢开始,而是执行快恢复算法。这时,发送方调整门限值ssthresh = cwnd / 2 = 8,同时设置拥塞窗口cwnd = ssthresh = 8(见图中的点),并开始执行拥塞避免算法。
    • 349. 加法增大,乘法减小 (AIMD)可以看出,在拥塞避免阶段,拥塞窗口是按照线性规律增大的。这常称为“加法增大” AI (Additive Increase)。 当出现超时或3个重复的确认时,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。这常称为“乘法减小”MD (Multiplicative Decrease)。 二者合在一起就是所谓的 AIMD 算法。
    • 350. 5.9 TCP 的运输连接管理5.9.1 TCP 的连接建立 5.9.2 TCP 的连接释放
    • 351. 5.9.1 TCP 的连接建立TCP 建立连接的过程叫做握手。 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手。 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。
    • 352. SYN = 1, seq = xCLOSEDCLOSED主动打开被动打开AB客户服务器A 的 TCP 向 B 发出连接请求报文段,其首部中的 同步位 SYN = 1,并选择序号 seq = x,表明传送 数据时的第一个数据字节的序号是 x。TCP 的连接建立:采用三报文握手
    • 353. SYN = 1, seq = xCLOSEDCLOSED主动打开被动打开AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x  1 B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x  1,自己选择的序号 seq = y。TCP 的连接建立:采用三报文握手
    • 354. SYN = 1, seq = xACK = 1, seq = x + 1, ack = y  1CLOSEDCLOSED主动打开被动打开AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x  1 A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y  1。 A 的 TCP 通知上层应用进程,连接已经建立。
    • 355. SYN = 1, seq = xACK = 1, seq = x + 1, ack = y  1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x  1 B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。
    • 356. SYN- SENTESTAB- LISHEDSYN- RCVDLISTENESTAB- LISHED采用三报文握手建立 TCP 连接的各状态 SYN = 1, seq = xACK = 1, seq = x + 1, ack = y  1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x  1TCP 的连接建立:采用三报文握手
    • 357. 5.9.2 TCP 的连接释放TCP 连接释放过程比较复杂。 数据传输结束后,通信的双方都可释放连接。 TCP 连接释放过程是四报文握手。
    • 358. FIN = 1, seq = u主动关闭数据传送ESTAB- LISHEDESTAB- LISHEDAB客户服务器5.9.2 TCP 的连接释放 数据传输结束后,通信的双方都可释放连接。 现在 A 的应用进程先向其 TCP 发出连接释放 报文段,并停止再发送数据,主动关闭 TCP 连接。 A 把连接释放报文段首部的 FIN = 1,其序号 seq = u,等待 B 的确认。TCP 的连接释放:采用四报文握手
    • 359. FIN = 1, seq = uACK = 1, seq = v, ack= u  1主动关闭数据传送通知 应用 进程ESTAB- LISHEDESTAB- LISHEDAB客户服务器 B 发出确认,确认号 ack = u  1, 而这个报文段自己的序号 seq = v。 TCP 服务器进程通知高层应用进程。 从 A 到 B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。TCP 的连接释放:采用四报文握手
    • 360. FIN = 1, seq = uACK = 1, seq = v, ack= u  1FIN = 1, ACK = 1, seq = w, ack= u  1主动关闭被动关闭数据传送通知 应用 进程ESTAB- LISHEDESTAB- LISHEDAB客户服务器数据传送 若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。 TCP 的连接释放:采用四报文握手
    • 361. FIN = 1, seq = uACK = 1, seq = v, ack= u  1FIN = 1, ACK = 1, seq = w, ack= u  1主动关闭被动关闭数据传送通知 应用 进程ESTAB- LISHEDESTAB- LISHEDAB客户服务器数据传送 A 收到连接释放报文段后,必须发出确认。 ACK = 1, seq = u + 1, ack = w  1TCP 的连接释放:采用四报文握手
    • 362. FIN = 1, seq = uACK = 1, seq = v, ack= u  1FIN = 1, ACK = 1, seq = w, ack= u  1主动关闭被动关闭数据传送通知 应用 进程ESTAB- LISHEDESTAB- LISHEDAB客户服务器数据传送 在确认报文段中 ACK = 1,确认号 ack  w  1, 自己的序号 seq = u + 1。 ACK = 1, seq = u + 1, ack = w  1TCP 的连接释放:采用四报文握手
    • 363. CLOSEDACK = 1, seq = u + 1, ack = w  1FIN = 1, seq = uACK = 1, seq = v, ack= u  1FIN = 1, ACK = 1, seq = w, ack= u  1FIN- WAIT-1CLOSE- WAITFIN- WAIT-2LAST- ACK等待 2MSLTIME- WAIT主动关闭被动关闭数据传送通知 应用 进程ESTAB- LISHEDESTAB- LISHEDAB客户服务器数据传送CLOSED5.9.2 TCP 的连接释放 TCP 连接必须经过时间 2MSL 后才真正释放掉。
    • 364. 第 6 章 应用层
    • 365. 第 6 章 应用层6.1 域名系统 DNS 6.2 文件传送协议 6.4 万维网 WWW 6.5 电子邮件
    • 366. 6.1 域名系统 DNS6.1.1 域名系统概述 6.1.2 互联网的域名结构 6.1.3 域名服务器
    • 367. 6.1.2 互联网的域名结构互联网采用了层次树状结构的命名方法。 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。 域名的结构由标号序列组成,各标号之间用点隔开: … . 三级域名 . 二级域名 . 顶级域名 各标号分别代表不同级别的域名。
    • 368. 互联网的域名空间 根四级域名mail…www…bjeducom…cctvibmhp二级域名pkutsinghua…三级域名mailwww…comnetorgedugovaerocnuk…顶级域名……
    • 369. 域名服务器有以下四种类型 根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器
    • 370. 顶级域名 TLD(Top Level Domain)(1) 国家顶级域名 nTLD .cn 表示中国, .us 表示美国, .uk 表示英国,等等。
    • 371. 顶级域名 TLD (Top Level Domain)(2) 通用顶级域名 gTLD 最早的顶级域名是: .com (公司和企业) .net (网络服务机构 .org (非赢利性组织) .edu (美国专用的教育机构) .gov (美国专用的政府部门) .mil (美国专用的军事部门) .int (国际组织)
    • 372. 本地域名服务器采用迭代查询 顶级域名服务器 dns.com权限域名服务dns.abc.com本地域名服务器 dns.xyz.com根域名服务器迭代查询 y.abc.com 的 IP 地址 m.xyz.com 递归 查询需要查找 y.abc.com 的 IP 地址
    • 373. 本地域名服务器采用递归查询 (比较少用) 顶级域名服务器 dns.com权限域名服务dns.abc.com本地域名服务器 dns.xyz.comm.xyz.com 根域名服务器递归查询递归 查询 y.abc.com 的 IP 地址 需要查找 y.abc.com 的 IP 地址
    • 374. 6.2 文件传送协议6.2.2 FTP 的基本工作原理
    • 375. FTP 使用的两个 TCP 连接 控制进程FTP 客户端FTP 服务器端互联网TCP 控制连接TCP 数据连接用户界面控制进程数据传送 进程数据传送 进程
    • 376. 两个不同的端口号 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口 (21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。 接着,服务器进程用自己传送数据的熟知端口 (20) 与客户进程所提供的端口号码建立数据传送连接。 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
    • 377. 6.4 万维网 WWW6.4.1 万维网概述 6.4.2 统一资源定位符 URL 6.4.3 超文本传送协议 HTTP 6.4.4 万维网的文档 6.4.5 万维网的信息检索系统 6.4.6 博客和微博 6.4.7 社交网络
    • 378. 万维网的工作方式 万维网以客户服务器方式工作。 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
    • 379. 万维网必须解决的问题 (2) 用何协议实现万维网上各种超链的链接? 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
    • 380. 万维网必须解决的问题 (3) 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链? 超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
    • 381. 万维网必须解决的问题 (4) 怎样使用户能够很方便地找到所需的信息? 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
    • 382. 6.4.2 统一资源定位符 URL1. URL的格式 资源定位符 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁表示。 URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。 URL 相当于一个文件名在网络范围的扩展。因此 URL 是与互联网相连的机器上的任何可访问对象的一个指针。
    • 383. URL 的一般形式 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是:<协议>://<主机>:<端口>/<路径> ftp —— 文件传送协议 FTP http —— 超文本传送协议 HTTP News —— USENET 新闻
    • 384. URL 的一般形式 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是:<协议>://<主机>:<端口>/<路径> 规定的格式
    • 385. URL 的一般形式(续) 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是:<协议>://<主机>:<端口>/<路径> <主机> 是存放资源的主机 在互联网中的域名
    • 386. URL 的一般形式(续) 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是:<协议>://<主机>:<端口>/<路径>有时可省略
    • 387. 2. 使用 HTTP 的 URL使用 HTTP 的 URL 的一般形式 http://<主机>:<端口>/<路径> 这表示使用 HTTP 协议
    • 388. 2. 使用 HTTP 的 URL使用 HTTP 的 URL 的一般形式 http://<主机>:<端口>/<路径> 冒号和两个斜线是规定的格式
    • 389. 2. 使用 HTTP 的 URL使用 HTTP 的 URL 的一般形式 http://<主机>:<端口>/<路径> 这里写主机的域名
    • 390. 2. 使用 HTTP 的 URL使用 HTTP 的 URL 的一般形式 http://<主机>:<端口>/<路径> HTTP 的默认端口号是 80,通常可省略
    • 391. 2. 使用 HTTP 的 URL使用 HTTP 的 URL 的一般形式 http://<主机>:<端口>/<路径> 若再省略文件的<路径>项,则 URL 就指到互联网上的某个主页 (home page)。
    • 392. 6.4.3 超文本传送协议 HTTP 1. HTTP 的操作过程 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 使用TCP
    • 393. 万维网的工作过程 互联网服务器 www.tsinghua.edu.cn链接到URL的超链HTTP 使用此 TCP 连接浏览器 程序服务器 程序HTTP客户清华大学 院系设置建立 TCP 连接HTTP 请求报文浏览器 发出请求释放 TCP 连接服务器 返回响应HTTP 响应报文
    • 394. 用户点击 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm 后所发生的事件 (1) 浏览器分析超链指向页面的 URL。 (2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。 (3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。 (4) 浏览器与服务器建立 TCP 连接。 (5) 浏览器发出取文件命令:GET /chn/yxsz/index.htm。 (6) 服务器给出响应,把文件 index.htm 发给浏览器。 (7) TCP 连接释放。 (8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
    • 395. 6.5 电子邮件6.5.1 电子邮件概述 6.5.2 简单邮件传送协议 SMTP 6.5.3 电子邮件的信息格式 6.5.4 邮件读取协议 POP3 和 IMAP 6.5.5 基于万维网的电子邮件 6.5.6 通用互联网邮件扩充 MIME
    • 396. 电子邮件的一些标准发送邮件的协议:SMTP 读取邮件的协议:POP3 和 IMAP MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。
    • 397. 电子邮件的最主要的组成构件 发送方邮件缓存 接收方 邮件服务器用户代理SMTPSMTPPOP3 发送方 邮件服务器用户代理用户邮箱接收方(发送邮件)(发送邮件)(读取邮件)互联网SMTPPOP3发送 邮件发送邮件 SMTP读取 邮件TCP 连接TCP 连接发送方 邮件服务器SMTP 客户POP3 客户发件人 用户代理接收方 邮件服务器SMTP 服务器POP3 服务器SMTP 服务器SMTP 客户收件人 用户代理TCP 连接