每天十分钟,熟读一个技术点,水滴石穿,一切只为渴望更优秀的你!

————零声学院


最近几年来分布处理的发展趋势已经从原来的主要依赖大中型机,转变成由 LAN 连接的 PC 机。这些PC 机网络往往由许多不同类型的计算机和其它多售主设备组成。这种情况给一度曾支配大型主机通信的专有通信协议带来了严重冲击。专有协议只允许同一厂家的计算机系统之间互相通信。例如,DEC 的计算机只能和 DECnet 通信;IBM 主机只能与 SNA 通信;Apple 计算机只能与 Apple Talk 通信。

当今的分布式的 LAN 需要把一个组织的大型机、小型机、企业级 LAN 和公共数据网连在一起。无疑这将对开发互联多种不兼容系统的非专有协议是一个很大的促进。

当前出现的主要非专有网际互联产品是 TCP/IP 和 OSI 协议。OSI 七层协议已经在国际上通用。TCP/IP 许多年来就一直被人们所采用,而且越来越成熟,已称为被广泛接收的协议。据不完全同级,目前世界上已有大约 40 多个国家使用这种协议连接了 5000 多个网络, 几十万台主机。这充分反映了 TCP/IP 的成熟和广泛的可用性。大多数类型的计算机环境都有 TCP/IP 产品,它提供了文件传输、电子邮件、终端仿真、传输服务和网络管理。

从长远的观点看,OSI 标准最终会超过 TCP/IP,提供较完善的目录和网络管理服务。但是 OSI 承诺的网际互联设备目前还只限于 LAN 标准的 IEEE802 系列。虽然 OSI 的报文处理服务(MHS)或 X.400 电子邮件;生产自动协议;文件传送、存储和管理(FTAM ) 以及虚拟终端(VT)能以各种不同形式采用,但不同厂家的产品是不能互相操作的。这种情况有利于 TCP/IP 的流行。

TCP/IP 结构模型

TCP/IP 实际上一个一起工作的通信家族,为网际数据通信提供通路。为讨论方便可将

TCP/IP 协议组大体上分为三部分:

1. Internet 协议(IP)

2. 传输控制协议(TCP)和用户数据报文协议(UDP)

3. 处于TCP 和UDP 之上的一组协议专门开发的应用程序。它们包括:TELNET,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(SMTP)等许多协议

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(1)

图1 TCP/IP 和 OSI 网络模型的分层图

以下分别简介这三部分:

第一部分也称为网络层。包括 Internet 协议(IP)、网际控制报文协议(ICMP)和地址识别协议(ARP).

Internet 协议(IP)

该协议被设计成互联分组交换通信网,以形成一个网际通信环境。它负责在源主机和目的地主机之间传输来自其较高层软件的称为数据报文的数据块,它在源和目的地之间提供非连接型传递服务。

网际控制报文协议(ICMP)

它实际上不是 IP 层部分,但直接同 IP 层一起工作,报告网络上的某些出错情况。允许网际路由器传输差错信息或测试报文。

地址识别协议(ARP)

ARP 实际上不是网络层部分,它处于 IP 和数据链路层之间,它是在 32 位 IP 地址和 48

位局域网地址之间执行翻译的协议。

第二部分是传输层协议。包括传输控制协议和用户数据报文协议。

传输控制协议(TCP)

由于 IP 提供非连接型传递服务,因此 TCP 应为应用程序存取网络创造了条件,使用可靠的面向连接的传输层服务。该协议为建立网际上用户进程之间的对话负责。此外,还确保两个以上进程之间的可靠通信。它所提供的功能如下。

1. 监听输入对话建立请求。

2. 请求另一网络站点对话

3. 可靠的发送和接收数据。

4. 适度的关闭对话。

用户数据报文协议(UDP)。UDP 提供不可靠的非连接型传输层服务,它允许在源和目的地站点之间传送数据,而不必在传送数据之前建立对话。此外,该协议还不使用TCP 使用的端对端差错校验。当使用 UDP 时,传输层功能全都发回,而开销却比较低。它主要用于那些不要求 TCP 协议的非连接型的应用程序。例如,名字服务和网络管理。

最后是应用程序部分。这部分包括 Telnet,文件传送协议(FTP 和 TFTP),简单的文件传送协议(SMTP)和域名服务(DNS)等协议。

TCP/IP 使用了主干网络,能连接各种主机和 LAN 的多级分层结构,局部用户能方便的联网,不致影响到整个网络系统。此外这种结构还有利于局部用户控制操作和管理。

TCP/IP 具有两个主要功能。第一是 IP 在网络之间(有时在个别网络内部)提供路由选择。第二是 TCP 将TP 传递的数据传送的接收主机那的适当的处理部件。


Internet 协议(IP)

IP 的主要目的是提供子网的互联,形成较大的网际,使不同的子网之间能传输数据。网际是由许多自治系统组成的,每个系统是一个中央管理的网络或是一系列的子网,每个自治系统提供用于连到其它自治系统的网关。IP 规定如何连接子网和互联设备如何工作。

IP 规定包如何从一个子网路由选择到另一个子网。自治系统中的每个节点具有唯一的IP 地址。IP 使用本身的帧头和检查来确保数据报文的正确传送。由于有维持当前路由选择表的路由选择修改信息,从而帮助了这个过程的顺利完成。路由选择表列出了子网上各种不同节点之间的通路和通路开销,如果个别节点之间有较多的通路,则可选择最经济的一条。如果数据包过大,使目的地不能接收,则将它分成较小的段。当从 LAN 向 WAN 传输数据时,包的分段是特别重要的。例如 Token-Ring LAN 能支持 4500 字节的包,而 X.25 分组网通常只支持 128 字节的包,因此必须进行分段。

归纳起来 IP 主要有以下四个主要功能:

(1) 数据传送

(2) 寻址

(3) 路由选择

(4) 数据报文的分段

1. 数据传送的基本特点(无连接的最佳努力服务)

IP 层使用于经过网际传递数据的通路进入传递系统。当人们一听到IP 这个名字时自然会联想起将许多子网连在一起的通称为路由器的设备。IP 的确是执行路由器相关的任务。但正如上面所提到的,IP 的功能不只是这些,它还完成许多其它工作。IP 协议运行在连接子网的所有参与网络的站点机上,以使各个站点能将它们的数据包递交给路由器或传送给同一网络上的其它设备。IP 协议处于数据链路层和传输层之间。

IP 的主要目的是为数据输入/输出网络提供基本算法,为高层协议提供无连接的传送服务。这意味着在 IP 将数据递交给接收站点以前不在传输站点和接收站点之间建立对话(虚拟链路)。它只是封装和传递数据,但不向发送者或接收者报告包的状态,不处理所遇到的故障。这意味这如果数据链路故障或遭遇可恢复的错误时,IP 不予通知和处理。它将报文和错误一起传出去,由高层协议(TCP)负责执行消除差错。换句话说,TCP 可能反复传输和发送数据。

IP 将正确格式化的数据包递交给目的地站点,不期待状态相应。由于IP 是无连接的协议,因此它可能接收和传递发送给它的错误序列的数据。此外它还可能发送复份的数据。提供消除差错的过程是高层协议的责任。IP 是网络传递系统的一部分。它接受并格式化数据,以便传输到数据链路层。此外 IP 还检索来自数据链路的数据,并将它送给请求的高层。IP 传送的信息单元被称为“数据报文”,这种数据报文可经过告诉网络(Ethernet Token Ring或 FDDI)传送,当经过这类网络传送时,数据报文被组装称为包。

IP 协议不注意包内的数据类型,它所知道的一切是必须将某些称为IP 帧头的控制协议加到高层协议(TCP 或者 UDP)所接受的数据上,并试图把它传递给网络或者网际上的某些节点。

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(2)

图2 封装在 Ethernet 帧中的 IP 头

IP 协议向主机和路由器提供应如何处理被传输或被接受的包的机制。为了了解IP 的功能,请观察它向包增加的控制信息(IP 头)。见图 5-2。该图表示 IP 头北包装在 Ethenet 帧内。从中可以看到 IP 帧头在包中的位置。

图 2 的上面部分是 IP 帧头。这时一个 IP 数据报文的标准包头。下面我们将通过观察 IP 数据报文中的帧头信息来研究 IP 数据报文传递的功能。各字段定义如下:

VERS 是 4 位,规定网络站点所实现的 IP 当前版本。

HLEN 是 IP 头的长度,共 4 位。在实际使用中,并不是必须使用 IP 头的所有位, 所以需要该字段来指明 IP 头的长度。以 32 位表示字,IP 头的长度以字为增量变化,最短的 IP 头是 20 字节(不包括数据和选项),因此这个字段的值是 5(20 字节=160 位;160 位/32 位=5),也就是 5 个字。如果这个字段的值变成了 6,就等于增加了 32 位(一个字)。

服务类型 8 位,它可以细分为如下的形式:

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(3)

优先权字段 3 位,可以有 0-7 的值(0 为正常值,7 为网络控制)。它允许传输站点的应用程序向 IP 层发送数据报文的优先权。该字段与 D(时延)、T(吞吐量)和 R(可靠性相结合,这些位向路由器表明应采取哪个路由。这个字段被称为 Type of Service(TOS)服务类型标识符。

D 位—当设置为 1 时请求低时延

T 位—请求高吞吐量时置 1

R 位—请求高可靠性时置 1

例如,如果去目的地有两个以上的路由,路由器将读这个字段,以选择一个正确的路由。由应用程序(即 Telnet 或 Ftp)设置 TOS 字段,路由器只读这种字段,不负责设置。在读信息的基础上,路由器将选择数据报文的最佳路由。在网络上传输包以前,由运行在主机上的 TCP/IP 应用程序设置这些位。它不要求路由器维持许多路由选择表。

总长度(16 位)

这是以字节度量的数据报文长度。IP 数据报文的数据区可以有 65535 字节长(包括头和数据部分)。

2. 分段包

有时会出现从一个网络传出的包大得不能传入另外网络的情况。例如考虑从 TokenRing 网络(典型情况是支持 4472 字节的最大传输包)向 Ethernet LAN(只支持 1518 字节的最大传输包)传输帧。TCP/IP 路由器必须能将较大的包破碎成较小的包。TCP 将建立适于连接的包大小,但如果两个通信站点被多种类型的媒体分开,那么将怎样支持不同的传输包大小呢?将包分裂成适合于 LAN 传输或异机种 WAN 路由选择是 IP 层完成的另一任务。使用下面的字段完成这方面的工作。

识别、标志和分段偏移(分段控制,共 16 位)

这些概念表明如何分段被传送的太大的数据报文。TCP/IP 几乎可以运行在任何数据链路上,当向不同的网络发送数据时,可以同时发送的数据的最大规模(包大小)在那些网络上可以发生变化。Ethernet 的最大包长度为 1518 字节(包括所有的帧头),Token-Ring 是17800 字节(16Mbps)和 4472 字节(4Mbps),FDDI 考虑到 4472 字节数据规模。任何一个网络都可能通过最大的帧,IP 考虑了它能接受多大的包,可以满足所有这些网络之间数据交换的需要。

每个被分裂的数据报文的 IP 头几乎是相等的。它识别哪些数据报文属于一个小组,确保数据报文不适配。接受 IP 会使用这个字段和源 IP 地址来识别哪些数据报文应归属在一起,使用标记完成如下任务:

(1) 标志出是否出现了较多的分段。

(2) 是否将一份数据报文分段。

如果所经过的网络使用不同的帧长度,那么将包分段就是特别重要的。了解网桥的读者知道,网桥没有这种能力,如果网桥接受了太大的包(传送网络不能传递),正如 IEEE802 标准所提到的,它将这个包丢弃。一旦建立对话,大多数协议具有处理最大包长度的能力, 因此每个站点可以处理包的分段,不影响网桥操作。

总长度和分段偏移字段使 IP 能重新构造数据报文并将它传递到高层软件。总长度指出原始包的总长度,偏移字段向正在组装包的节点指出该包偏离的开始端,此时数据处于分段,以重新构造包.

生存时间(TTL)(8 位)

在包的传递过程中可能会出现错误情况,引起包在网际的路由器之间不断循环。为防止此类事件发生,因而引入了 TTL。由包的发源地设置生存事件的起始值。生存事件是一个由路由器使用的字段,确保包不会无限的循环。在发送站点设置这个字段,然后随着数据报文通过每个路由器而减一。当把这个字段的值减到 0 时,路由器将废弃这个包,并通知数据报文的发源地,它不能转送这个包

协议字段

该字段用于指出哪个较高级协议发送了帧,哪个接受协议应得到这个帧。有许多协议可以处于 IP 的上面。就在 IP 上的协议而言,对 IP 并不是特定的。当前对通用的传输实现是 TCP 和 UDP。该字段的目的是使 IP 知道如何正确的将包传递到它上面的正确的机构, 如果将协议字段设置成 TCP,则将包处理得适合 TCP 要求,以便进一步进行帧处理。UDP 的情况也一样。

校验和

这是一个 16 位的循环冗余检验,目的是确保帧头的完整性。利用 IP 数据段中的数据产生 CRC(循环冗余检验)数,由发送站点放入这个字段。当接收站点读数据时,它将计算 CRC。如果两个 CRC 不匹配,则表示帧头有错位,将废弃包。随着数据报文被每个路由器接收,每个路由器将重新计算校验和,这是因为数据报文由所穿过的每个路由器改变TTL。

IP 选项字段

选项类别确定数据是正常数据还是用作网络控制的数据。在选项类别内包含了多种选项编号。“0”的选项类别代表数据报文或网络控制包、类别“0”内的好书表示必须使用严格的源路由选择(如由源主机所规定的)。在那种情况下,包所经过的每个网关向包增加它的 IP 地址,以便识别。选项类别“2”中的编号 4 用于规定计时打印包在去目的地的途中所执行的所有暂停。通过记录平均时延和节点的处理时间可测量总体网络性能。

IP 源和目的地地址字段

这些字段指出包将被传递到的最终目的地 IP 地址和起始发送这个包的站点的 IP 地址

(各 32 位)。这些地址将分辨 IP 网际上的所有主机。IP 地址是非常重要的,以下详细讨论。

3. IP 寻址

Internet 地址由位于斯坦福研究所(SRI)的 Internet Network Information Center(Internet NIC)Registration Service 发放。Inter NIC 可提供给你一个相当大的主要网络地址,以识别你的网络上的每个端点。

如果你有自己的网络,可以建立自己的网络信息中心,除非你计划连到 Internet 不需

要和 Internet 的 NIC 接洽。但即使你不连接 Internet,NIC 仍将帮助你建立你自己的网络地址方案。如果有一天你希望同其它 TCP/IP 网络连接(例如同 Internet 连接)最好使用下面的约定。

你大概已经看到了 32 位 IP 地址。它使用了带点的十进制数,例如 128.101.4.9。它的二进制等效是:1000 0000 0110 0100 0000 0100 0000 1001。显然表示成点的十进制数方便得多。

Internet 地址可分成 5 类:

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(4)

A 类网络地址有 128 个(支持 127)个网络,占有最左边的一个字节(8 位)。高位(0) 表示识别这种地址的类型。因此这个位不能用作地址位,剩下右边的 31 位提供231 个端点

的寻址。这些大致中大约 1/3 已经被分配,想得到这类地址是很困难的。

B 类地址使用左边两个 8 位用来网络寻址。两个高位(10)用于识别这种地址的类型, 其余的 14 位用作网络地址,右边的两个字节(16 位)用作网络节点,大约已经分配了 5000 个 B 类地址。

C 类地址是最常见的 Internet 地址。三个高位(110)用于地址类型识别,左边三个字节的其余 21 位用于寻址。C 类地址支持4 ´106 个网络,每个网络可多达 256 端点,到目前为止已经使用了2 ´106 个 C 类地址。

D 类地址是相当新的。它的识别头是 1110,用于组播,例如用于路由器修改。E 类地址为时延保留,其识别头是 1111。

网络软件和路由器使用子网掩码来识别报文临时呆在网络内部,还是被路由选择到其它地方。在一个字段内“1”出现表明一个字段保换所有或部分网络地址。“0”表明主机地址为止。例如,最常用的 C 类地址使用前三个 8 位来识别网络,最后一个 8 位识别主机。因此子网掩码是 255.255.255.0。

此外还可以使用掩码建立子网,让我们来假定用户申请 B 类地址,Inter NIC 提供给用户179.143.XXX.XXX。如果他 11 个 LAN,每个 LAN 有 89 个工作站,那么他可以把所有的工作站连入具有这种 B 类地址的 Internet。(Internet 地址正在变得缺少,按目前的使用增长率,到 2002 年将全部被使用,但目前正在考虑机种地址扩充方案)。

建立一个 255.255.255.0 的掩码在第三单元那对每个 LAN 分配一固定的数,比如 1-11, 最后的单元用于每个 LAN 上的工作站(按 TCP/IP 的说法是主机)地址,因此你的地址将有形式:179.143.(1-11).(1-254)。在最后的两个 8 位字组那怎样选择地址完全由你决定,不一定是顺序的。

IP 数据报文是无连接的,按 TCP/IP 的说法是不可靠的。但由于 TCP 协议提供了可靠的(确认的)面向连接的服务,因此不确认的传输是可接受的。

无连接服务的缺点是明显的,如果数据报文被破坏,或者由于缓冲器太小不能存放它们,将会引起数据报文被放弃。此外,链路也可能故障,主机和网关可能拥塞,以及由于不正确的实现建立了错误的路由或失效的帧头。

由于存在上述这些可能性,因此总是实现称为 Internet Control Message Protocal(ICMP)的第二协议。ICMP 可以告诉发源主机问题,并期待它解决。

4.网际控制报文协议(ICMP)

网络层上另一个重要协议是网际控制报文协议(ICMP)。IP 需要它帮助传输差错和控制报文。ICMP 报文在不同的 IP 模块间交换。一种报文是回应请求,用于测试目的地是否可达。此外回应请求报文还跟踪相应时间,以便确定线路的平均时延,进一步同应用程序的时延阙进行比较。例如,如果线路时延太长,则基于主机的应用程序可以暂停。

当网关接收它们不能转送的包时,便发送一个不可到达目的地的报文,这类报文能指出网络或主机是不能到达的,或个别较高层协议或端口是不可到达的。如果源主机表示不需要分段包,网关还可以回送报文,指出若不分段数据就不能转送。如果源规定的路由故障,则可发送这类报文,说明目的地网络或主机是不可到达的。

如果由于某种原因目的地是不可到达的,则 IP 模块将通知 TCP 模块,然后 TCP 模块通知 Telnet 虚拟终端服务,最后 Telnet 将在屏幕上显示一个报文,通知用户这个报文是不可传递的。

另一类 ICMP 报文被称为“源断开”报文。它是一种拥塞控制方法。如果在 IP 网关接收了较多的包,超出控制能力,则可以靠 ICMP 进行摆脱,典型做法是经过缓冲器析溢出, 然后网关发出一个“源断开”报文,以命令发送模块降低发送率。这些报文只是在短期生效。接收到“源断开”报文后,暂时降低了传输率。然后自动逐渐恢复一直到达原来的传输率为止。当接到新的“源断开”报文时,再次降低传输率。“源断开”报文增强了基于窗口的流量控制能力。

ICMP 报文的另一种类型仍旧是路由选择变化请求,它有几种不同的请求内容。例如, 大,当网关得知所选择的网关不是去目的地的最佳网关时,便向源主机发送一个“重定向数据请求”。这些报文也用来规定重定向某些类型的服务。当网关接到一个标有生存期限的包时,便发送一个“长路由通知”。当 IP 模块遇到生存期满的包时,也通知源主机。

第四类 ICMP 报文用于计时打印请求和确认。这些报文用于估算网络上的平均往复时延,以便确定特定的程序所使用的最佳传输率和路由(传输设备)。为了估算这种往复时延使用了四种计时打印:

(1) 发送方计时打印请求包。

(2) 当接收方接收到包时打印包。

(3) 当它发送回答报文时再次打印。

(4) 当源发方接收到回答报文时打印回答报文。

计时打印(2)和(3)提供了处理这种信息需要多长时间的基本估算,计时打印(1) 和(4)提供了包在网络上传输所需时间总量。反复计算多次打印可产生平均时延。

传输控制协议(TCP)

原始的 TCP/IP 主机是经过电话线连接的。70 年代早期通信工具和当今的通信设备截然不同,线路的噪声非常大,不能处理数据,因此 TCP 协议具有严格的内装差错检验算法确保数据的完整性。下面几段文章解释了 TCP 协议的结构严格性。

TCP 是重要的传输层协议,它和 UDP 不同,传输层软件 TCP 的目的是允许数据同网络上的另外站点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输。

为了说明 TCP 结构的严格性,让我们先来打个比方。假设你正在向某人讲述一个故事。如果那个人只是站在那里不应答你,你将不能辩明他是否了解你所讲述的内容。如果那个人用点头之类的方式应答,那么你将知道你所讲的话他是了解的,因此能继续同他交谈。与此相似,TCP 协议使用顺序编号和确认信息同网络上另外的站点交谈。使用顺序编号来确定包内数据的排序并发现故障的包。因为网际上不同的包不一定会以发送它们的顺序到达(例如,路由器废弃一系列传输包中的某一个),所以要对包中的数据进行排序,以确保与发送的顺序相同。此外,接收站点还可能接收两个同样的包,为了进行可靠类型的通信, 使用带有确认信息的顺序编号,这种处理被称为全双工。连接的每一端都必须考虑到另一端的需要而维持它自己的顺序编号。

TCP 是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号。分配给包那每个字节的顺序编号可以合理的重复。

TCP 的顺序编号方法与它的产生年代有关,那时的通信手段落后,不是所有的网络都

采用这种办法(使用一个独立的传输层软件)。例如:NetWare 是依靠网络层软件传输数据

NetWare 控制协议提供包的顺序编号。

为可靠的完成数据传输任务,TCP 将报文或数据分成可管理的长度并加上 TCP 头。

图3 表示一个TCP头。它描述了TCP头中一些主要的字段:

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(5)

图 3 TCP 头信息

源端口(16 位)。源发站点的端口编号

目的地端口(16 位)。接收站点的端口编号

顺序号数(32 位)。分配给 TCP 包的编号

除设置 SYN 位指出包的开始字节编号外,如果设置了这个位,顺序编号是最初的顺序号数(ISN),第一个数据字节是 ISN 1。

确认编号数(32 位)

目的地站点向源站点发送的编号。对以前所接收的包(或许多包)表明确认。该序号指出目的地站点希望接收下一个顺序编号。一旦建立了连接就始终设置这个字段。

数据偏移(4 位)

指出 TCP 头的长度(即 TCP 头中的 32 位字的数)。它表明数据开始和 TCP 头结束。对于正常的 20 字节的头,这个字段设置成 0101。

保留位(6 位)

为未来使用而保留。必须设置为 0。

控制位(6 位)

用作个别控制位,见表 5-6。

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(6)

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(7)

图 4 控制位的取值及其含义

窗口(16 位)

窗口字段也称接收窗口大小,表示在 TCP 连接上准备由主机接收的的 8 位字节的数目。

CRC 校验和(16 位)

一个差错检验数,用于确定被接收的数据报文在传输期间是否被讹误。包括 TCP 头和所有数据。

紧急指示字段(16 位)

它指出了紧接紧急数据的字节的顺序编号。

选项

长度变量,它考虑到 TCP 使用的各种选项:

(1) 选项表的结束

(2) 无操作

(3) 最大分段长度

TCP 提供的主要服务有:

(1) 建立、维持和终结两个进程之间的连接。

(2) 可靠的包传递(经过确认过程)。

(3) 编序包(可靠的数据传送)。

(4) 控制差错的机制。

(5) 通过使用端口,允许在个别的源和目的地主机内部实现和不同进程多重连接的能力。

(6) 使用全双工操作的数据交换。

用户数据报文协议

UDP 也是TCP/IP的传输层协议,它是无连接的,不可靠的传输服务。当接收数据时它不向发送方提供确认信息,它不提供输入包的顺序,如果出现丢失包或重份包的情况,也不会向发送方发出差错报文。这一点很象IP 协议。UDP的主要作用是分配和管理端口编号,以正确无误的识别运行在网络站点上的个别应用程序。由于它执行功能时具有低的开销,因而执行速度比TCP 快。它多半用于不需要可靠传输的应用程序,例如网络管理域,域名服务器等。

tcp ip模型中什么属于应用层协议(TCPIP结构模型)(8)

图 5 UDP 头

任何与 UDP 相配合作为传输层服务的应用程序必须提供确认和顺序系统,以确保包是以发送它们的同样顺序到达。也就是说,使用 UDP 的应用程序必须提供这类服务。(参见后面章节中关于 tftp 协议的介绍)

图 5 表示一个一个 UDP 头,应用数据被封装在 UDP 头那。传输层具有它自己的, 与所有其它层不相关的帧头。然后 UDP 头及其数据被封装在 IP 头内,由 IP 协议将这个数据报文发送到数据链路层,依次下去,数据链路层又使用它的帧头包装这个报文,最后将数据送到物理层实际传输。

当接收包时,数据链路层将把地址解释为它自己的,剥去它的帧头,将包传递给 IP 层,

IP 层将根据 IP 头上的正确 IP 地址接受包。剥去它的头,最后将包交给 UDP 软件,UDP 接受包,而且必须按 UDP 头上的端口编号进行译码。

小结

本文介绍了几种 LAN 协议。其中,着重讨论了 TCP/IP 协议。

TCP/IP 现在正在被越来越多的团体用户所接收。目前 TCP/IP 已经演变成最成熟的联网环境之一。事实上最近几年来 TCP/IP 和 UNIX 已经提供了多厂家产品互联性的模式, TCP/IP 的最大价值是它的不同平台之间提供互联性的能力。

在 OSI 真正履行自己的承诺以前,不太完善的通信协议结构,如 SNA、DECnet 和 TCP/IP

将继续流行。


每日分享15分钟技术摘要选读,关注一波,一起保持学习动力!

面试中常见的TCP/IP协议栈问题

,