下载
本部分内容包括:
• IP协议家族
• IPv6
第9章IP协议家族
作者:Mark A. Sportack
本章内容包括:
• TCP/IP模型
• 理解I P协议
• 理解传输控制协议( T C P )
• 理解用户数据报协议( U D P )
T C P / I P已成为描述基于I P通信的代名词。除了流行之外,很少人知道它实质是指整个的
协议家族,每个协议都有自己的功能和限制。这一章讨论I P协议家族内各种协议的结构、功
能和使用。
9.1 TCP/IP模型
和其他网络协议一样, T C P / I P有自己的参考模型用于描述各层的功能。然而和绝大多数
其他协议不一样, T C P / I P是在协议组件本身开发之后才有了T C P / I P模型。因此, T C P / I P模型
没有起到引导协议的开发作用, T C P / I P参考模型和O S I参考模型的比较见图9 - 1。
图9-1 TCP/IP模型与OSI模型之比较
第三部分I P和相关协议
O S I参考模型层
描述
T C P / I P
层描述
进程/应用层
主机到主机层
网络访问层
O S I层号
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
7
6
5
5
3
2
1
网际层
从图9 - 1可以看出, T C P / I P参考模型实现了O S I模型中的所有相同功能。重要的不同之处
是它们二者层的粒度不同。O S I模型对层的划分更精确,而T C P / I P模型使用更宽的层定义。
9.1.1 解剖TCP/IP模型
T C P / I P协议栈包括四个功能层:进程/应用层、主机到主机层、网际层及网络访问层。这
四层大致相对于O S I参考模型中的七层。
1. 进程/应用层
应用层协议提供远程访问和资源共享。读者熟悉的应用包括Te l n e t、F T P、S M T P、H T T P,
很多其他应用程序驻留并运行在此层,并且依赖于底层的功能。相似的,需要在I P网络上要
求通信的任何应用(包括用户自己开发的和在商店买来的软件)也在模型的这一层中描述。
2. 主机到主机层
I P的主机到主机层大致对应于O S I参考模型的会话层和传输层。这一层支持的功能包括:
为了在网络中传输对应用数据进行分段,执行数学检查来保证所收数据的完整性,为多个应
用同时传输数据多路复用数据流(传输和接收)。这意味着主机到主机层能识别特殊应用,对乱
序收到的数据进行重新排序。
当前的主机到主机层包括两个协议实体:传输控制协议( T C P )和用户数据报协议( U D P )。
另一个协议正在定义中,这个协议针对于不断增长的面向事务的需要。这个协议称为事务/事
务控制协议( Tr a n s a c t i o n / Transmission Control Protocol,T / T C P )。
3. 网际层
I P v 4的网际层由在两个主机之间通信所必须的协议和过程组成。这意味着数据报文必须
是可路由的。网际层( I P )负责数据报文路由。
网际层也必须支持其他的路由管理功能,它必须提供第二层地址到第三层地址的解析及
反向解析。这些功能由一对一针对于I P的协议提供,这在第5章中讨论过。
网际层必须支持路由和路由管理功能。这些功能由外部对等协议提供,称这些协议为路
由协议。这些协议包括内部网关协议( I G P )、外部网关协议( E G P ),它们标识为对等的这一点
很重要,因为它们驻留在网络层中,但却不是I P协议组件与生俱来的部分。实际上,许多路
由协议能够在多路由协议地址结构中发现、计算路由。用于其他地址结构的路由协议例子包
括I P X和A p p l e Ta l k。
4. 网络访问层
网络访问层包括用于物理连接、传输的所有功能。O S I模型把这一层功能分为两层:物理
层和数据链路层。由于在同名协议之后创建, T C P / I P参考模型把两层合在一起,是因为各种
I P协议中止于网际层。I P假设所有底层功能由局域网或串口连接提供。
9.1.2 协议组件
虽然一般标识为“T C P / I P”,但实质上在I P协议组件内有好几个不同的协议。包括:
• IP—网际层协议。
• TCP—可靠的主机到主机层协议。
• UDP—尽力转发的主机到主机层协议。
• ICMP—在I P网络内为控制、测试、管理功能而设计的多层协议。
78使用第三部分I P和相关协议
下载
各种I C M P协议从主机到主机层延伸至进程/应用层,这些协议之间的关系如图9 - 2所示。
注意驻留于进程/应用层中的应用(如Te l n e t、F T P和许多其他应用)必须认为是I P协议
组件与生俱来的组成部分。然而,由于这些是应用而不是协议,因此它们不在本章中
讨论。
图9-2 TCP/IP实际上是一个相关协议组,而不仅仅是一个协议
9.2 理解网际协议(IP)
I P协议已经成为世界上最重要的网际协议。因为I P协议的开放性,所以其他的如O S I、
A p p l e Ta l k,甚至I P X最终会被I P淘汰。I P的功能由I P头结构中的数据定义。I P头结构及其功能,
最被由一系列R F C文档和I E T F创建时公开发表的一系列文档定义。1 9 8 1年9月出版的R F C 7 9 1,
是今天I P版本的基础文档。
I P一直在演进,这要归功于I E T F的不懈努力。许多新的特性和功能在后续R F C文档中得到
扩充,然而所有这些都建造在R F C 7 9 1基础之上。从结构角度讲,现在的I P版本是4。新的版本
6几近完成。但只有I P v 4是当前的标准且被广泛接受。若想获得I P v 6的知识,可参考第1 0章。
9.2.1 IPv4结构
图9 - 3示出了I P头结构,以及其中各域的大小。I P头有以下各域:
• 版本—I P头中前四位标识了I P的操作版本,比如版本4或版本6。
• Internet头长度—头中下面4位包括头长度,以3 2位为单位表示。
• 服务类型—下面的一个字节包括一系列标志,这些标志能保证优先级(相对于其他I P报
第9章I P协议家族使用79
下载
应用协议
( F T P. H T T P,等)
应用协议
( T F T P. D N S , N F S ,等)
T C P I C M P U D P
I P
数据链路层和物理层机制
文的绝对优先级)、延时、吞吐量以及报文数的可靠性参数。优先级标志3位长,而延时,
吞吐量和可靠性标志每个1位长。剩下的两位保留为将来之用。
图9-3 IP头结构显示了许多IP支持的功能域
• 总长度( Total Length)—报文总长度, 1 6位域,长度以字节为单位。有效值范围最大至
65 535个字节。
• 标识( I d e n t i f i e r )—每个I P报文被赋予一个惟一的1 6位标识,用于标识数据报的分段。
• 分段标志(Fragmentation Flag)—下一个域包括3个1位标志,标识报文是否允许被分段
和是否使用了这些域。第一位保留并总设为0,第二位标识报文能否被分段。如果这位
等于0,说明内容可以被分段。如果等于1,它就不能被分段。第三位只有在第二位为0
时才有意义。如果这一位等于0 (数据可分成多个报文),这一位标识此报文是否是这一系
列分段的最后一个,或者接收应用程序是否还希望有更多的段。0指示报文是最后一个。
• 分段偏移(Fragment Off e s t )—8位的域指出分段报文相对于整个报文开始处的偏移。这
个值以6 4位为单位递增。
• 生存时间( T T L )—I P报文不允许在广域网中永久漫游。它必须限制在一定的T T L内。8
位的T T L在经过每一跳时加1。在到达它的最大限制之后,报文就被认为是不可转发的。
之后产生一个I C M P报文并发回源机器,不可转发的报文被丢弃。
• 协议—8位域指示I P头之后的协议,如V I N E S、T C P、U D P等。
• 校验和( c h e c k s u m )—校验和是1 6位的错误检测域。目的机、网络中的每个网关要重新
计算报文头的校验和,就如同源机器所做的一样。如果数据没有被改动过,两个计算结
果应该是一样的。这个域也通知目的主机所接收的数据的量。
• 源I P地址—源计算机的I P地址。
• 目的I P地址—目的计算机的I P地址。
• 填充—为了保证I P头长度是3 2位的整数倍,要填充额外的0。
这些头域说明I P v 4的网际层是无连接的:网络中的转发设备可以自由决定通过网络的报文
的理想转发路径。它也不提供任何上层协议如T C P所提供的应答、流控、序化功能。I P也不能
用于引导I P报文中的数据到正确的目的应用程序。这些功能留给上层协议,如T C P和U D P。
9.2.2 IP做什么
I P报文头中含有使一些重要网络功能成为可能的所有必要信息,包括:
80使用第三部分I P和相关协议
下载
4位的
IP版
本号
3位优
先级
1位正
常&低
延时
1位正
常&高
吞吐量
1位正
常&高
可靠位
两位保
留
4位头
长度
二字节
报文总
长度
两字节
惟一报
文标识
两字节
校验和
域
三位
分段
标志
一个字
节分段
偏移域
一字节
生存时
间域
一字节
协议标
识域
四字节
目的地
址
四字节
源地址
可变
长填
充
一字
节服
务类
型标
志
• 寻址和路由
• 分段和重组
• 传输过程中数据损坏检测和更正
1. 寻址和路由
I P最明显的一个功能是能使报文送到特定目的地。连接源和目的地网络中的路由器和交
换机使用目的I P地址确定经过网络的最优路径。
相似的,I P报文也包括源机器地址。源地址的出现是因为目的机可能会和源机通信。
2. 分段和重组
有时应用数据的一段不能完全包括在一个I P报文中;它们必须分段成两个或更多的报文。
当分段发生时,I P必须能重组报文(不管有多少个报文要到达其目的地)。
重要的一点是源和目的机必须理解,遵守完全相同的分段数据过程。否则,重组为了报
文转发而分成多个段的过程将是不可能的。数据恢复到源机器上的相同格式时,传输数据就
被成功重组了。I P头中的分段标志标识分段的数据片。
注意重组分段的数据和乱序帧经重排序到达的数据是非常不同的。重新排序是TCP的
功能。
3. 损坏报文补偿
I P的最后一个主要功能是检测和补偿在传输过程中遭到破坏或丢失的报文。有许多方式
可以让一个报文被破坏:无线电频率干扰( R F I )和电磁干扰( E M I )是两种比较显然的干扰因素。
报文以与源机创建时不同的位模式到达目的机时,就认为报文被破坏了。
有许多原因可造成报文丢失。网络拥塞会导致报文T T L超时,检测到报文T T L超时的路由
器会简单地把报文丢弃。另一种情况是,报文遭到E M I或R F I干扰,可能使头信息变得没有意
义。在这种情况下,报文也将被丢弃。
当报文不可能转发或不可用时,路由器必须通知源机。I P头中包含源机器的I P地址使通
知源机器成为可能。虽然I P不包括重传机制,但通知源主机可能会导致重传,因此通知源主
机起着重要作用。
4. IP结论
尽管有这些功能,但必须承认I P仅是一个网际协议。为了使其发挥作用,必须和传输协
议( O S I中第四层)及数据链路层协议( O S I参考模型中第二层)一起工作。虽然本书不讨论数据链
路层结构,但本章的剩余部分会讨论两个依赖于I P互连的传输协议。它们是T C P和U D P。
9.3 理解传输控制协议(TCP)
T C P是传输层协议( O S I参考模型中第四层),它使用I P,提供可靠的应用数据传输。T C P
在两个或多个主机之间建立面向链接的通信。T C P支持多数据流操作,提供流控和错误控制,
甚至完成对乱序到达报文的重新排序。传输控制协议也是通过一系列公开出版的I E T F文档进
行开发的。这个反复的开发过程在1 9 8 1年9月出版R F C 7 9 3时到达顶点,同RFC791 IP一起,
RFC793 TCP在过去的1 8年中不断得到扩充,但是这项工作一直没有全部完成。因此R F C的内
容只保留T C P的核心内容。
9.3.1 TCP头结构
和I P一样, T C P的功能受限于其头中携带的信息。因此理解T C P的机制和功能需要了解
第9章I P协议家族使用81
下载
T C P头中的内容。图9 - 4显示了T C P头结构,和其中各域的大小。
图9-4 TCP头结构显示了TCP能正常工作所依赖的几个域
T C P协议头最少2 0个字节,包括以下各域:
• T C P源端口—1 6位的源端口域包含初始化通信的端口号。源端口和源I P地址的作用是
标识报文的返回地址。
• T C P目的端口—1 6位的目的端口域定义传输的目的。这个端口指明报文接收计算机上
的应用程序地址接口。
• T C P序列号—3 2位的序列号由接收端计算机使用,重组分段的报文成最初形式。在动
态路由网络中,一些报文很可能使用不同的路由,因此,报文会乱序到达。这个序列号
域可以补偿传输中的不一致。
• T C P应答号—T C P使用3 2位的应答( A C K )域标识下一个希望收到的报文的第一个字节。
对一些没发生的事情作应答有点不直观,但收到A C K报文的源计算机会知道特定的段已
经被收到。标识每个A C K的号是应答报文的序列号。这个域只在A C K标志被设置时才
有效。
• 数据偏移—这个4位域包括T C P头大小,以3 2位数据结构或称为“字”为单位。
• 保留—6位恒置0的域。为将来定义新的用途保留。
• 标志—6位标志域,每1位标志可以打开一个控制功能,这六个标志是:紧急标志、有
意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。这些标志,
以出现的先后顺序排列为U R G、A C K、P S H、R S T、S Y N和F I N。考虑到前面对它们功
能进行的描述,这些标志的意义容易理解。
• 窗口大小—目的机使用1 6位的域告诉源主机,它想收到的每个T C P数据段大小。
• 校验和—T C P头也包括1 6位的错误检查域—“校验和”域。源主机基于数据内容计算
一个数值。目的主机要进行相同的计算。如果收到的内容没有被改变过,两个计算结果
应该完全一样,从而证明了数据的有效性。
• 紧急—紧急指针域是一个可选的1 6位指针,指向段内的最后一个字节位置,这个域只
在U R G标志设置了时才有效。如果U R G标志没被设置,紧急域作为填充。在源与目的
主机之间网络中的设备要加快处理标识为紧急的数据段。
• 选项—至少一字节的可变长域标识哪个选项(如果是有的话)有效。如果没有选项,这
一字节的域等于0,说明选项域的结束。这个字节等于1表示无需再有操作。值2表示下
82使用第三部分I P和相关协议
下载
两字节
T C P源
端口号
两字节
U D P目
的端口
号
四字节
T C P顺
序号
4字节
T C P答
应号
4位数
据偏
移
6位标
志
6位保
留
两字
节窗
口大
小
两字节
校验和
域
两字
节紧
急指
针
选项
域(最
小1字
节)
可变
长填
充
1位
F I N
1位同
步
1位
R S T
1位
P S H
1位
A C K
1位
U R G
四个字节包括源机器的最大段长度(Maximum Segment Size,M S S )。M S S是数据域中可
包含的最大数据量,源和目的机器要对此达成一致。
• 数据—技术上讲,并不是T C P头的一部分,认识到应用数据段在紧急指针和/或选项域
之后,但在填充域之前是很重要的。域的大小是最大的M S S,M S S可以在源和目的机器
之间协商。数据段可能比M S S小,但却不能比M S S大。
• 填充—和它名字所暗示的不同,填充在数据通信中总是为数学目的而存在。其目的是
确保空间的可预测性;定时和规范大小。这个域中加入额外的零以保证T C P头是3 2位的
整数倍。
9.3.2 TCP做什么
T C P在通信会话中提供几个重要作用。可以认为它是多个应用和网络之间的连络。其功
能包括:
• 多路复用多种应用数据。
• 测试所接收数据的完整性。
• 顺序化乱序接收的数据。
• 对成功收到数据作出应答。
• 速率—适应的流控(通过T C P窗口大小)。
• 定时功能。
• 重传在传输过程中损坏或丢失的数据。
1. 多路复用数据流
T C P是用户应用与许多网络通信协议之间的接口。因为,实际上没有人听说过T C P只被限
制于一个应用,所以T C P必须能同时接收多个应用数据, T C P把它们打包到数据段中,之后传
给I P。相似的, T C P必须能同时接收多个应用的数据。
T C P必须跟踪记录到达的报文要转发到的应用程序。这可以通过端口来实现,因此,源
机和目的机对通用的应用端口集达成一致是非常有用的。不幸的是有如此众多运行在I P之上
的应用,实际上对这些应用对应的端口不可能达成某种形式的一致性。因此I A N A,也就是现
在的I C A N N正加速对至少一部分可用端口号的规范工作。
许多应用很常见,所以它们被认为是众所周知的,这可以简化I C A N N的任务。这样一来,
I C A N N可以给这些应用分配端口号,任何用户可以期望能处理I P报文的主机认识它们,众所
周知的端口例子包括:
• 端口8 0 (超文本传输协议,h t t p )。
• 端口11 9 (网络新闻传输协议, n n t p )。
• 端口6 9 (纯文本文件传输协议, t f t p )。
因为有1 0 2 4个众所周知的端口(从0到1 0 2 3 ),因此不可能把它们都列出来。T C P和U D P的
周知端口的完整列表可参考R F C 1 7 0 0。
如果读者注意,会发现端口域包含一个1 6位的二进制数。因此,有65 535个可能的端口
号。而0 ~ 1 0 2 3是周知口(众所周知端口),比1 0 2 3大的端口号通常被称为高端口号。对高端口
号I C A N N不加以管理。因此,不应排除非众所周知的应用为了通信而使用I P。它们可以选择
任何一个高端口号用于通信。
第9章I P协议家族使用83
下载
T C P段中既有源应用端口号又有目的端口号。另一个经常使用的术语是套接字,虽然T C P
头中没有套接字域。套接字由驻留在主机上的特定应用端口号和机器I P地址联合构成。因此,
套接字描述了惟一的主机和应用。“:”号把两个号分开。比如,套接字1 0 . 1 . 1 . 1 9 : 6 6 6标识了主
机1 0 . 1 . 1 . 1 9上的应用,其端口号为6 6 6 ( D O O M端口号)。
2. 测试数据的完整性
封装在T C P段中的数据经过T C P执行的数学计算,并把结果放在T C P头的校验和域中。一
旦数据到达目的地,对接收数据执行相同的数学计算,产生的结果应该和T C P头中存储的结
果相同。如果二者相同,有理由相信数据没被改变过。否则,就要给源主机发一请求,要求
其重发一份数据拷贝。
3. 重新排序
到达目的机的报文段经常是乱序的。其中有许多原因,比如,在一个利用率非常高的网
络中,路由协议很可能对报文选择通过网络的不同路径。这会导致数据段乱序到达。另一种
情况是,报文在传输过程中可能丢失或损坏。因此,接收应用程序所需的数据序列会被丢弃。
目的机器的T C P协议会缓冲接收到的数据段,直到能把它们正确地重新排序。
通过查看T C P头中的序列号域可以完成这个任务,重新排序就是基于这个域对接收数据
段的数学排序。
4. 流控
T C P会话中的源和目的机器称为对等实体。每一对等实体有对流向其物理缓冲中数据流
的控制能力。流量控制使用的是T C P窗口大小。源和目的机的窗口大小通过T C P头进行通信。
任何一台主机将被所收数据淹没时,会减小发送机的速率。这可以通过通知其新的窗口大小
即可,如果机器的缓冲完全被填满,它就会发送一个有关最后收到数据的应答报文,其中新
的窗口大小为0。这样会有效地使发送停止,直到拥塞的机器能清理掉其缓冲。它所处理的每
一段必须被应答,使用应答,可以通过重新设置大于0的窗口尺寸来启动发送。
虽然这个简单的机制能有效地调整两台机器之间的数据流,但是它只能保证通信的端系
统不会被接收的数据所湮没。窗口尺寸自身不会考虑网络上存在的拥塞情况。网络拥塞意味
着报文到达目的地的时间比通常情况长。因此拥塞管理一定是网络上时间的函数。T C P通过
计时器的使用实现拥塞管理。
5. 计时机制
T C P为几个关键功能使用计时控制。每次传输一个数据段时,设置一个计时器。假如计
时器在接到应答之前停止(就是说,减少到0 ),数据段就被认为已丢失。因此,会重传。计时
器可以间接地管理网络拥塞,其方法是当超时出现时减慢传输率。理论上讲,当超时出现时
才减小发送速率,因此, T C P不能很好地管理网络拥塞,但它会减小自身对拥塞的影响。
源机器会使用一个坚持( P e r s i s t )计时器周期性地查询目的主机的最大窗口尺寸。在理想世
界中,从不需要P e r s i s t计时器,因为每个应答会包含窗口尺寸。然而,有时网络确实会丢失
数据。如果一台机器发生了缓冲上溢问题,并发回一个0窗口尺寸的应答,传输节点会中止发
送。但是,如果后序非0窗口尺寸的应答丢失,发送会话会处于危险境地。P e r s i s t计时器通过
周期性的询问窗口大小来保证这种情况不会发生。如果查询仍不能得到窗口大小, T C P协议
会重新设置连接。
另一个计时机制称为最大段生存时间(Maximum Segment Lifetime,M S L )。M S L使T C P机
84使用第三部分I P和相关协议
下载
器识别已经在网络中传输了很长时间的因此已被替换了的数据报,接收到M S L中止的数据报
被简单抛弃。
6. 应答接收
如果A C K被设置,目的T C P机器必须要对接收到的特定数据作出应答。考虑到T C P几乎
总是用于可靠模式,因此A C K不被设置的情况很少见。
没被应答的数据段被认为在传输过程中已丢失,并被重传。重传必须在源和目的机器之
间配合进行。
9.4 理解用户数据报协议(UDP)
用户数据报协议是I P的另一个主机到主机层协议(对应于O S I参考模型的传输层)。U D P提
供了一种基本的、低延时的称为数据报的传输。为了理解U D P是如此简单的一种协议,读者
只需把R F C 7 6 8 ( U D P功能,数据结构和机制的最初规范描述)和其他R F C比较一下就可看出。
R F C 7 6 8内容简短:长度仅有3页纸。其他的R F C文档中3页纸只能够装下内容表!
U D P的简单性使U D P不适合于一些应用,但对另一些更复杂的、自身提供面向链接功能
的应用却很适合。其他可能使用U D P的情况包括:转发路由表数据交换、系统信息、网络监
控数据等的交换。这些类型的交换不需要流控、应答、重排序或任何T C P提供的功能。
9.4.1 UDP头结构
图9 - 5示出了U D P头结构和各域的大小:
图9-5 UDP头结构显示了UDP形式和功能的简单性
U D P协议头有以下结构:
• U D P源端口号—1 6位的源端口是源计算机上的连接号。源端口和源I P地址作为报文的
返回地址之用。
• U D P目的端口号—1 6位的目的端口号是目的主机上的连接号。目的端口号用于把到达
目的机的报文转发到正确的应用。
• U D P校验和—校验和是一个1 6位的错误检查域,基于报文的内容计算得到。目的计算机
执行和源主机上相同的数学计算。两个计算值的不同表明报文在传输过程中出现了错误。
• U D P信息长度—信息长度域1 6位长,告诉目的计算机信息的大小。这一域为目的计算
机提供了另一机制,验证信息的有效性。
9.4.2 UDP能做什么
很少! U D P被设计成一个有效的和最小的传输协议。这一点直接反映在其头结构中。它
只包括用于转发数据报至合适应用(端口号)的足够信息,并且执行一定的错误检查。
U D P不提供任何T C P支持的更先进的功能。没有计时机制、流控或拥塞管理机制、应答、
第9章I P协议家族使用85
下载
两字节U D P源
端口号
2字节U D P目的
端口号
两字节校验和两字节信
息长度
紧急数据的加速传送,或其他任何功能。U D P使用尽力方式传送数据报。由于某种原因传输
失败,数据报被丢弃并且不试图作重传。
9.4.3 TCP和UDP
T C P和U D P是迥异的传输层协议,被设计为做不同的事情。二者的共性是都使用I P作为其
网络层协议。T C P和U D P之间的主要差别在于可靠性。T C P是高度可用的,而U D P是一个简
单的、尽力数据报转发协议。这个基本的差别暗示T C P更复杂,需要大量功能开销,然而
U D P是简单和高效的。
U D P经常被认为是不可靠的,因为它不具有任何T C P的可靠性机制。U D P不可靠,是因
为其不具有T C P的接收应答机制、乱序到达数据的顺序化,甚至不具有对接收到损坏报文的
重传机制。也就是说U D P不保证数据不受损害地到达目的端!因此, U D P最适合于小的发送
(也就是单独的报文),对于数据分成多个报文且需要对数据流进行调节的情况, T C P更适合。
有必要对U D P的不可靠性和U D P的优点作一折衷。U D P是小的、节约资源的传输层协议。
它的操作执行比T C P快得多。因此,它适合于不断出现的、和时间相关的应用如I P上传输语
音和实时的可视会议。
U D P也能很好地适用于其他的网络功能,如在路由器之间传输路由表更新,或传输网络
管理/监控数据。这些功能,虽然对网络的可操作性很关键,但是,如果使用可靠的T C P传输
机制会对网络造成负面影响。不可靠的协议并不意味着U D P是无用协议,它只意味着设计用
于支持不同的应用类型。
9.5 小结
T C P / I P协议组件(包括U D P和I C M P )适用于快速增长的用户和应用通信需要近2 0年了。那
时,这些协议一直被不断更新,以跟上技术不断发展的步伐以及满足I n t e r n e t从半私人研究机
构到公共商业设施不断演化的需要。
I n t e r n e t商业化带来了I n t e r n e t用户前所未有地增长。反过来,这也造成了对更多地址和新
的I n t e r n e t服务类型的需要。因此, I P v 4的不足促使人们开发全新的协议版本。新版本称为I P
版本6 ( I P v 6 ),但经常也称为网际协议:下一代( I P n g )。I P v 6将在第1 0章中详细讨论。
86使用第三部分I P和相关协议
下载
本部分内容包括:
• IP协议家族
• IPv6
第9章IP协议家族
作者:Mark A. Sportack
本章内容包括:
• TCP/IP模型
• 理解I P协议
• 理解传输控制协议( T C P )
• 理解用户数据报协议( U D P )
T C P / I P已成为描述基于I P通信的代名词。除了流行之外,很少人知道它实质是指整个的
协议家族,每个协议都有自己的功能和限制。这一章讨论I P协议家族内各种协议的结构、功
能和使用。
9.1 TCP/IP模型
和其他网络协议一样, T C P / I P有自己的参考模型用于描述各层的功能。然而和绝大多数
其他协议不一样, T C P / I P是在协议组件本身开发之后才有了T C P / I P模型。因此, T C P / I P模型
没有起到引导协议的开发作用, T C P / I P参考模型和O S I参考模型的比较见图9 - 1。
图9-1 TCP/IP模型与OSI模型之比较
第三部分I P和相关协议
O S I参考模型层
描述
T C P / I P
层描述
进程/应用层
主机到主机层
网络访问层
O S I层号
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
7
6
5
5
3
2
1
网际层
从图9 - 1可以看出, T C P / I P参考模型实现了O S I模型中的所有相同功能。重要的不同之处
是它们二者层的粒度不同。O S I模型对层的划分更精确,而T C P / I P模型使用更宽的层定义。
9.1.1 解剖TCP/IP模型
T C P / I P协议栈包括四个功能层:进程/应用层、主机到主机层、网际层及网络访问层。这
四层大致相对于O S I参考模型中的七层。
1. 进程/应用层
应用层协议提供远程访问和资源共享。读者熟悉的应用包括Te l n e t、F T P、S M T P、H T T P,
很多其他应用程序驻留并运行在此层,并且依赖于底层的功能。相似的,需要在I P网络上要
求通信的任何应用(包括用户自己开发的和在商店买来的软件)也在模型的这一层中描述。
2. 主机到主机层
I P的主机到主机层大致对应于O S I参考模型的会话层和传输层。这一层支持的功能包括:
为了在网络中传输对应用数据进行分段,执行数学检查来保证所收数据的完整性,为多个应
用同时传输数据多路复用数据流(传输和接收)。这意味着主机到主机层能识别特殊应用,对乱
序收到的数据进行重新排序。
当前的主机到主机层包括两个协议实体:传输控制协议( T C P )和用户数据报协议( U D P )。
另一个协议正在定义中,这个协议针对于不断增长的面向事务的需要。这个协议称为事务/事
务控制协议( Tr a n s a c t i o n / Transmission Control Protocol,T / T C P )。
3. 网际层
I P v 4的网际层由在两个主机之间通信所必须的协议和过程组成。这意味着数据报文必须
是可路由的。网际层( I P )负责数据报文路由。
网际层也必须支持其他的路由管理功能,它必须提供第二层地址到第三层地址的解析及
反向解析。这些功能由一对一针对于I P的协议提供,这在第5章中讨论过。
网际层必须支持路由和路由管理功能。这些功能由外部对等协议提供,称这些协议为路
由协议。这些协议包括内部网关协议( I G P )、外部网关协议( E G P ),它们标识为对等的这一点
很重要,因为它们驻留在网络层中,但却不是I P协议组件与生俱来的部分。实际上,许多路
由协议能够在多路由协议地址结构中发现、计算路由。用于其他地址结构的路由协议例子包
括I P X和A p p l e Ta l k。
4. 网络访问层
网络访问层包括用于物理连接、传输的所有功能。O S I模型把这一层功能分为两层:物理
层和数据链路层。由于在同名协议之后创建, T C P / I P参考模型把两层合在一起,是因为各种
I P协议中止于网际层。I P假设所有底层功能由局域网或串口连接提供。
9.1.2 协议组件
虽然一般标识为“T C P / I P”,但实质上在I P协议组件内有好几个不同的协议。包括:
• IP—网际层协议。
• TCP—可靠的主机到主机层协议。
• UDP—尽力转发的主机到主机层协议。
• ICMP—在I P网络内为控制、测试、管理功能而设计的多层协议。
78使用第三部分I P和相关协议
下载
各种I C M P协议从主机到主机层延伸至进程/应用层,这些协议之间的关系如图9 - 2所示。
注意驻留于进程/应用层中的应用(如Te l n e t、F T P和许多其他应用)必须认为是I P协议
组件与生俱来的组成部分。然而,由于这些是应用而不是协议,因此它们不在本章中
讨论。
图9-2 TCP/IP实际上是一个相关协议组,而不仅仅是一个协议
9.2 理解网际协议(IP)
I P协议已经成为世界上最重要的网际协议。因为I P协议的开放性,所以其他的如O S I、
A p p l e Ta l k,甚至I P X最终会被I P淘汰。I P的功能由I P头结构中的数据定义。I P头结构及其功能,
最被由一系列R F C文档和I E T F创建时公开发表的一系列文档定义。1 9 8 1年9月出版的R F C 7 9 1,
是今天I P版本的基础文档。
I P一直在演进,这要归功于I E T F的不懈努力。许多新的特性和功能在后续R F C文档中得到
扩充,然而所有这些都建造在R F C 7 9 1基础之上。从结构角度讲,现在的I P版本是4。新的版本
6几近完成。但只有I P v 4是当前的标准且被广泛接受。若想获得I P v 6的知识,可参考第1 0章。
9.2.1 IPv4结构
图9 - 3示出了I P头结构,以及其中各域的大小。I P头有以下各域:
• 版本—I P头中前四位标识了I P的操作版本,比如版本4或版本6。
• Internet头长度—头中下面4位包括头长度,以3 2位为单位表示。
• 服务类型—下面的一个字节包括一系列标志,这些标志能保证优先级(相对于其他I P报
第9章I P协议家族使用79
下载
应用协议
( F T P. H T T P,等)
应用协议
( T F T P. D N S , N F S ,等)
T C P I C M P U D P
I P
数据链路层和物理层机制
文的绝对优先级)、延时、吞吐量以及报文数的可靠性参数。优先级标志3位长,而延时,
吞吐量和可靠性标志每个1位长。剩下的两位保留为将来之用。
图9-3 IP头结构显示了许多IP支持的功能域
• 总长度( Total Length)—报文总长度, 1 6位域,长度以字节为单位。有效值范围最大至
65 535个字节。
• 标识( I d e n t i f i e r )—每个I P报文被赋予一个惟一的1 6位标识,用于标识数据报的分段。
• 分段标志(Fragmentation Flag)—下一个域包括3个1位标志,标识报文是否允许被分段
和是否使用了这些域。第一位保留并总设为0,第二位标识报文能否被分段。如果这位
等于0,说明内容可以被分段。如果等于1,它就不能被分段。第三位只有在第二位为0
时才有意义。如果这一位等于0 (数据可分成多个报文),这一位标识此报文是否是这一系
列分段的最后一个,或者接收应用程序是否还希望有更多的段。0指示报文是最后一个。
• 分段偏移(Fragment Off e s t )—8位的域指出分段报文相对于整个报文开始处的偏移。这
个值以6 4位为单位递增。
• 生存时间( T T L )—I P报文不允许在广域网中永久漫游。它必须限制在一定的T T L内。8
位的T T L在经过每一跳时加1。在到达它的最大限制之后,报文就被认为是不可转发的。
之后产生一个I C M P报文并发回源机器,不可转发的报文被丢弃。
• 协议—8位域指示I P头之后的协议,如V I N E S、T C P、U D P等。
• 校验和( c h e c k s u m )—校验和是1 6位的错误检测域。目的机、网络中的每个网关要重新
计算报文头的校验和,就如同源机器所做的一样。如果数据没有被改动过,两个计算结
果应该是一样的。这个域也通知目的主机所接收的数据的量。
• 源I P地址—源计算机的I P地址。
• 目的I P地址—目的计算机的I P地址。
• 填充—为了保证I P头长度是3 2位的整数倍,要填充额外的0。
这些头域说明I P v 4的网际层是无连接的:网络中的转发设备可以自由决定通过网络的报文
的理想转发路径。它也不提供任何上层协议如T C P所提供的应答、流控、序化功能。I P也不能
用于引导I P报文中的数据到正确的目的应用程序。这些功能留给上层协议,如T C P和U D P。
9.2.2 IP做什么
I P报文头中含有使一些重要网络功能成为可能的所有必要信息,包括:
80使用第三部分I P和相关协议
下载
4位的
IP版
本号
3位优
先级
1位正
常&低
延时
1位正
常&高
吞吐量
1位正
常&高
可靠位
两位保
留
4位头
长度
二字节
报文总
长度
两字节
惟一报
文标识
两字节
校验和
域
三位
分段
标志
一个字
节分段
偏移域
一字节
生存时
间域
一字节
协议标
识域
四字节
目的地
址
四字节
源地址
可变
长填
充
一字
节服
务类
型标
志
• 寻址和路由
• 分段和重组
• 传输过程中数据损坏检测和更正
1. 寻址和路由
I P最明显的一个功能是能使报文送到特定目的地。连接源和目的地网络中的路由器和交
换机使用目的I P地址确定经过网络的最优路径。
相似的,I P报文也包括源机器地址。源地址的出现是因为目的机可能会和源机通信。
2. 分段和重组
有时应用数据的一段不能完全包括在一个I P报文中;它们必须分段成两个或更多的报文。
当分段发生时,I P必须能重组报文(不管有多少个报文要到达其目的地)。
重要的一点是源和目的机必须理解,遵守完全相同的分段数据过程。否则,重组为了报
文转发而分成多个段的过程将是不可能的。数据恢复到源机器上的相同格式时,传输数据就
被成功重组了。I P头中的分段标志标识分段的数据片。
注意重组分段的数据和乱序帧经重排序到达的数据是非常不同的。重新排序是TCP的
功能。
3. 损坏报文补偿
I P的最后一个主要功能是检测和补偿在传输过程中遭到破坏或丢失的报文。有许多方式
可以让一个报文被破坏:无线电频率干扰( R F I )和电磁干扰( E M I )是两种比较显然的干扰因素。
报文以与源机创建时不同的位模式到达目的机时,就认为报文被破坏了。
有许多原因可造成报文丢失。网络拥塞会导致报文T T L超时,检测到报文T T L超时的路由
器会简单地把报文丢弃。另一种情况是,报文遭到E M I或R F I干扰,可能使头信息变得没有意
义。在这种情况下,报文也将被丢弃。
当报文不可能转发或不可用时,路由器必须通知源机。I P头中包含源机器的I P地址使通
知源机器成为可能。虽然I P不包括重传机制,但通知源主机可能会导致重传,因此通知源主
机起着重要作用。
4. IP结论
尽管有这些功能,但必须承认I P仅是一个网际协议。为了使其发挥作用,必须和传输协
议( O S I中第四层)及数据链路层协议( O S I参考模型中第二层)一起工作。虽然本书不讨论数据链
路层结构,但本章的剩余部分会讨论两个依赖于I P互连的传输协议。它们是T C P和U D P。
9.3 理解传输控制协议(TCP)
T C P是传输层协议( O S I参考模型中第四层),它使用I P,提供可靠的应用数据传输。T C P
在两个或多个主机之间建立面向链接的通信。T C P支持多数据流操作,提供流控和错误控制,
甚至完成对乱序到达报文的重新排序。传输控制协议也是通过一系列公开出版的I E T F文档进
行开发的。这个反复的开发过程在1 9 8 1年9月出版R F C 7 9 3时到达顶点,同RFC791 IP一起,
RFC793 TCP在过去的1 8年中不断得到扩充,但是这项工作一直没有全部完成。因此R F C的内
容只保留T C P的核心内容。
9.3.1 TCP头结构
和I P一样, T C P的功能受限于其头中携带的信息。因此理解T C P的机制和功能需要了解
第9章I P协议家族使用81
下载
T C P头中的内容。图9 - 4显示了T C P头结构,和其中各域的大小。
图9-4 TCP头结构显示了TCP能正常工作所依赖的几个域
T C P协议头最少2 0个字节,包括以下各域:
• T C P源端口—1 6位的源端口域包含初始化通信的端口号。源端口和源I P地址的作用是
标识报文的返回地址。
• T C P目的端口—1 6位的目的端口域定义传输的目的。这个端口指明报文接收计算机上
的应用程序地址接口。
• T C P序列号—3 2位的序列号由接收端计算机使用,重组分段的报文成最初形式。在动
态路由网络中,一些报文很可能使用不同的路由,因此,报文会乱序到达。这个序列号
域可以补偿传输中的不一致。
• T C P应答号—T C P使用3 2位的应答( A C K )域标识下一个希望收到的报文的第一个字节。
对一些没发生的事情作应答有点不直观,但收到A C K报文的源计算机会知道特定的段已
经被收到。标识每个A C K的号是应答报文的序列号。这个域只在A C K标志被设置时才
有效。
• 数据偏移—这个4位域包括T C P头大小,以3 2位数据结构或称为“字”为单位。
• 保留—6位恒置0的域。为将来定义新的用途保留。
• 标志—6位标志域,每1位标志可以打开一个控制功能,这六个标志是:紧急标志、有
意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。这些标志,
以出现的先后顺序排列为U R G、A C K、P S H、R S T、S Y N和F I N。考虑到前面对它们功
能进行的描述,这些标志的意义容易理解。
• 窗口大小—目的机使用1 6位的域告诉源主机,它想收到的每个T C P数据段大小。
• 校验和—T C P头也包括1 6位的错误检查域—“校验和”域。源主机基于数据内容计算
一个数值。目的主机要进行相同的计算。如果收到的内容没有被改变过,两个计算结果
应该完全一样,从而证明了数据的有效性。
• 紧急—紧急指针域是一个可选的1 6位指针,指向段内的最后一个字节位置,这个域只
在U R G标志设置了时才有效。如果U R G标志没被设置,紧急域作为填充。在源与目的
主机之间网络中的设备要加快处理标识为紧急的数据段。
• 选项—至少一字节的可变长域标识哪个选项(如果是有的话)有效。如果没有选项,这
一字节的域等于0,说明选项域的结束。这个字节等于1表示无需再有操作。值2表示下
82使用第三部分I P和相关协议
下载
两字节
T C P源
端口号
两字节
U D P目
的端口
号
四字节
T C P顺
序号
4字节
T C P答
应号
4位数
据偏
移
6位标
志
6位保
留
两字
节窗
口大
小
两字节
校验和
域
两字
节紧
急指
针
选项
域(最
小1字
节)
可变
长填
充
1位
F I N
1位同
步
1位
R S T
1位
P S H
1位
A C K
1位
U R G
四个字节包括源机器的最大段长度(Maximum Segment Size,M S S )。M S S是数据域中可
包含的最大数据量,源和目的机器要对此达成一致。
• 数据—技术上讲,并不是T C P头的一部分,认识到应用数据段在紧急指针和/或选项域
之后,但在填充域之前是很重要的。域的大小是最大的M S S,M S S可以在源和目的机器
之间协商。数据段可能比M S S小,但却不能比M S S大。
• 填充—和它名字所暗示的不同,填充在数据通信中总是为数学目的而存在。其目的是
确保空间的可预测性;定时和规范大小。这个域中加入额外的零以保证T C P头是3 2位的
整数倍。
9.3.2 TCP做什么
T C P在通信会话中提供几个重要作用。可以认为它是多个应用和网络之间的连络。其功
能包括:
• 多路复用多种应用数据。
• 测试所接收数据的完整性。
• 顺序化乱序接收的数据。
• 对成功收到数据作出应答。
• 速率—适应的流控(通过T C P窗口大小)。
• 定时功能。
• 重传在传输过程中损坏或丢失的数据。
1. 多路复用数据流
T C P是用户应用与许多网络通信协议之间的接口。因为,实际上没有人听说过T C P只被限
制于一个应用,所以T C P必须能同时接收多个应用数据, T C P把它们打包到数据段中,之后传
给I P。相似的, T C P必须能同时接收多个应用的数据。
T C P必须跟踪记录到达的报文要转发到的应用程序。这可以通过端口来实现,因此,源
机和目的机对通用的应用端口集达成一致是非常有用的。不幸的是有如此众多运行在I P之上
的应用,实际上对这些应用对应的端口不可能达成某种形式的一致性。因此I A N A,也就是现
在的I C A N N正加速对至少一部分可用端口号的规范工作。
许多应用很常见,所以它们被认为是众所周知的,这可以简化I C A N N的任务。这样一来,
I C A N N可以给这些应用分配端口号,任何用户可以期望能处理I P报文的主机认识它们,众所
周知的端口例子包括:
• 端口8 0 (超文本传输协议,h t t p )。
• 端口11 9 (网络新闻传输协议, n n t p )。
• 端口6 9 (纯文本文件传输协议, t f t p )。
因为有1 0 2 4个众所周知的端口(从0到1 0 2 3 ),因此不可能把它们都列出来。T C P和U D P的
周知端口的完整列表可参考R F C 1 7 0 0。
如果读者注意,会发现端口域包含一个1 6位的二进制数。因此,有65 535个可能的端口
号。而0 ~ 1 0 2 3是周知口(众所周知端口),比1 0 2 3大的端口号通常被称为高端口号。对高端口
号I C A N N不加以管理。因此,不应排除非众所周知的应用为了通信而使用I P。它们可以选择
任何一个高端口号用于通信。
第9章I P协议家族使用83
下载
T C P段中既有源应用端口号又有目的端口号。另一个经常使用的术语是套接字,虽然T C P
头中没有套接字域。套接字由驻留在主机上的特定应用端口号和机器I P地址联合构成。因此,
套接字描述了惟一的主机和应用。“:”号把两个号分开。比如,套接字1 0 . 1 . 1 . 1 9 : 6 6 6标识了主
机1 0 . 1 . 1 . 1 9上的应用,其端口号为6 6 6 ( D O O M端口号)。
2. 测试数据的完整性
封装在T C P段中的数据经过T C P执行的数学计算,并把结果放在T C P头的校验和域中。一
旦数据到达目的地,对接收数据执行相同的数学计算,产生的结果应该和T C P头中存储的结
果相同。如果二者相同,有理由相信数据没被改变过。否则,就要给源主机发一请求,要求
其重发一份数据拷贝。
3. 重新排序
到达目的机的报文段经常是乱序的。其中有许多原因,比如,在一个利用率非常高的网
络中,路由协议很可能对报文选择通过网络的不同路径。这会导致数据段乱序到达。另一种
情况是,报文在传输过程中可能丢失或损坏。因此,接收应用程序所需的数据序列会被丢弃。
目的机器的T C P协议会缓冲接收到的数据段,直到能把它们正确地重新排序。
通过查看T C P头中的序列号域可以完成这个任务,重新排序就是基于这个域对接收数据
段的数学排序。
4. 流控
T C P会话中的源和目的机器称为对等实体。每一对等实体有对流向其物理缓冲中数据流
的控制能力。流量控制使用的是T C P窗口大小。源和目的机的窗口大小通过T C P头进行通信。
任何一台主机将被所收数据淹没时,会减小发送机的速率。这可以通过通知其新的窗口大小
即可,如果机器的缓冲完全被填满,它就会发送一个有关最后收到数据的应答报文,其中新
的窗口大小为0。这样会有效地使发送停止,直到拥塞的机器能清理掉其缓冲。它所处理的每
一段必须被应答,使用应答,可以通过重新设置大于0的窗口尺寸来启动发送。
虽然这个简单的机制能有效地调整两台机器之间的数据流,但是它只能保证通信的端系
统不会被接收的数据所湮没。窗口尺寸自身不会考虑网络上存在的拥塞情况。网络拥塞意味
着报文到达目的地的时间比通常情况长。因此拥塞管理一定是网络上时间的函数。T C P通过
计时器的使用实现拥塞管理。
5. 计时机制
T C P为几个关键功能使用计时控制。每次传输一个数据段时,设置一个计时器。假如计
时器在接到应答之前停止(就是说,减少到0 ),数据段就被认为已丢失。因此,会重传。计时
器可以间接地管理网络拥塞,其方法是当超时出现时减慢传输率。理论上讲,当超时出现时
才减小发送速率,因此, T C P不能很好地管理网络拥塞,但它会减小自身对拥塞的影响。
源机器会使用一个坚持( P e r s i s t )计时器周期性地查询目的主机的最大窗口尺寸。在理想世
界中,从不需要P e r s i s t计时器,因为每个应答会包含窗口尺寸。然而,有时网络确实会丢失
数据。如果一台机器发生了缓冲上溢问题,并发回一个0窗口尺寸的应答,传输节点会中止发
送。但是,如果后序非0窗口尺寸的应答丢失,发送会话会处于危险境地。P e r s i s t计时器通过
周期性的询问窗口大小来保证这种情况不会发生。如果查询仍不能得到窗口大小, T C P协议
会重新设置连接。
另一个计时机制称为最大段生存时间(Maximum Segment Lifetime,M S L )。M S L使T C P机
84使用第三部分I P和相关协议
下载
器识别已经在网络中传输了很长时间的因此已被替换了的数据报,接收到M S L中止的数据报
被简单抛弃。
6. 应答接收
如果A C K被设置,目的T C P机器必须要对接收到的特定数据作出应答。考虑到T C P几乎
总是用于可靠模式,因此A C K不被设置的情况很少见。
没被应答的数据段被认为在传输过程中已丢失,并被重传。重传必须在源和目的机器之
间配合进行。
9.4 理解用户数据报协议(UDP)
用户数据报协议是I P的另一个主机到主机层协议(对应于O S I参考模型的传输层)。U D P提
供了一种基本的、低延时的称为数据报的传输。为了理解U D P是如此简单的一种协议,读者
只需把R F C 7 6 8 ( U D P功能,数据结构和机制的最初规范描述)和其他R F C比较一下就可看出。
R F C 7 6 8内容简短:长度仅有3页纸。其他的R F C文档中3页纸只能够装下内容表!
U D P的简单性使U D P不适合于一些应用,但对另一些更复杂的、自身提供面向链接功能
的应用却很适合。其他可能使用U D P的情况包括:转发路由表数据交换、系统信息、网络监
控数据等的交换。这些类型的交换不需要流控、应答、重排序或任何T C P提供的功能。
9.4.1 UDP头结构
图9 - 5示出了U D P头结构和各域的大小:
图9-5 UDP头结构显示了UDP形式和功能的简单性
U D P协议头有以下结构:
• U D P源端口号—1 6位的源端口是源计算机上的连接号。源端口和源I P地址作为报文的
返回地址之用。
• U D P目的端口号—1 6位的目的端口号是目的主机上的连接号。目的端口号用于把到达
目的机的报文转发到正确的应用。
• U D P校验和—校验和是一个1 6位的错误检查域,基于报文的内容计算得到。目的计算机
执行和源主机上相同的数学计算。两个计算值的不同表明报文在传输过程中出现了错误。
• U D P信息长度—信息长度域1 6位长,告诉目的计算机信息的大小。这一域为目的计算
机提供了另一机制,验证信息的有效性。
9.4.2 UDP能做什么
很少! U D P被设计成一个有效的和最小的传输协议。这一点直接反映在其头结构中。它
只包括用于转发数据报至合适应用(端口号)的足够信息,并且执行一定的错误检查。
U D P不提供任何T C P支持的更先进的功能。没有计时机制、流控或拥塞管理机制、应答、
第9章I P协议家族使用85
下载
两字节U D P源
端口号
2字节U D P目的
端口号
两字节校验和两字节信
息长度
紧急数据的加速传送,或其他任何功能。U D P使用尽力方式传送数据报。由于某种原因传输
失败,数据报被丢弃并且不试图作重传。
9.4.3 TCP和UDP
T C P和U D P是迥异的传输层协议,被设计为做不同的事情。二者的共性是都使用I P作为其
网络层协议。T C P和U D P之间的主要差别在于可靠性。T C P是高度可用的,而U D P是一个简
单的、尽力数据报转发协议。这个基本的差别暗示T C P更复杂,需要大量功能开销,然而
U D P是简单和高效的。
U D P经常被认为是不可靠的,因为它不具有任何T C P的可靠性机制。U D P不可靠,是因
为其不具有T C P的接收应答机制、乱序到达数据的顺序化,甚至不具有对接收到损坏报文的
重传机制。也就是说U D P不保证数据不受损害地到达目的端!因此, U D P最适合于小的发送
(也就是单独的报文),对于数据分成多个报文且需要对数据流进行调节的情况, T C P更适合。
有必要对U D P的不可靠性和U D P的优点作一折衷。U D P是小的、节约资源的传输层协议。
它的操作执行比T C P快得多。因此,它适合于不断出现的、和时间相关的应用如I P上传输语
音和实时的可视会议。
U D P也能很好地适用于其他的网络功能,如在路由器之间传输路由表更新,或传输网络
管理/监控数据。这些功能,虽然对网络的可操作性很关键,但是,如果使用可靠的T C P传输
机制会对网络造成负面影响。不可靠的协议并不意味着U D P是无用协议,它只意味着设计用
于支持不同的应用类型。
9.5 小结
T C P / I P协议组件(包括U D P和I C M P )适用于快速增长的用户和应用通信需要近2 0年了。那
时,这些协议一直被不断更新,以跟上技术不断发展的步伐以及满足I n t e r n e t从半私人研究机
构到公共商业设施不断演化的需要。
I n t e r n e t商业化带来了I n t e r n e t用户前所未有地增长。反过来,这也造成了对更多地址和新
的I n t e r n e t服务类型的需要。因此, I P v 4的不足促使人们开发全新的协议版本。新版本称为I P
版本6 ( I P v 6 ),但经常也称为网际协议:下一代( I P n g )。I P v 6将在第1 0章中详细讨论。
86使用第三部分I P和相关协议
下载