免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 9 章 传输层 教学提示: 理解端到端的概念、面向连接的服务和无连接服务,掌握端口的概念,了解常用熟知 端口号及动态端口的定义,充分理解 TCP 协议与 UDP 协议的功能,了解 TCP 与 UDP 协 议报文段首部格式,掌握 TCP 协议建立连接和释放连接的过程,了解滑动窗口控制流量的 方法,了解基于 UDP 的一些应用层协议,理解 UDP 的优点,了解基于 TCP、UDP 的一些 应用层协议。 教学要求: 知识要点 传输服务 传输层的端口 TCP 协议 UDP 协议 能力要求 理解端到端的概念、面向连接的服务和无连 接服务 掌握端口的概念、知道常用熟知端口号、熟 知端口、动态端口 了解 TCP 协议报文段首部格式,掌握 TCP 协议建立连接和释放连接的过程;了解滑动窗 口控制流量的方法;了解基于 UDP 的一些应用 层协议 了解 UDP 协议报文段首部格式,理解 UDP 的优点,了解基于 UDP 的一些应用层协议 相关知识 传输层的功能、传输服务 TCP 端口、UDP 端口、熟知端口、 动态端口 TCP 协议功能、TCP 报文格式、 建立连接(三次握手)、释放连接(四 次握手)、滑动窗口 UDP 协议的功能、UDP 报文格 式、基于 UDP 的应用层协议 第 9 章 传输层 引例 你是公司的网络管理员,据员工反映机器工作很不正常,速度明显变慢,现在内部网络受到木马病毒 的威胁越来越严重,你对此类状况特别关注并怀疑该员工的机器中了木马病毒。你现在准备查看其端口, 以便采取措施。 任务单 1 2 3 确定方案 查看端口 分析 1确定方案 当我们上网时就是本机和其他机器传递数据的过程,要传递数据必须要用到端口,当前最为常见的木 马通常是基于 TCP、UDP 协议进行 client 端与 server 端之间的通信的,既然利用到这两个协议,就不可避 免要在 server 端(就是被种了木马的计算机)打开监听端口来等待连接。即使是有些非常高明的木马利用正 常的端口传送数据也不是没有痕迹的,那么,我们可以利用查看本机开放端口的方法来检查自己是否被种 了木马或其他 hacker 程序。 2查看端口 操作: 在 DOS 状态下输入 netstat -na。 C:netstat -na Active Connections Proto Local Address TCP TCP TCP UDP UDP UDP UDP :135 :445 49:139 :445 :500 :1026 :1028 Foreign Address :0 :0 :0 *:* *:* *:* *:* State LISTENING LISTENING LISTENING 显示的信息内容就是打开的服务端口,其中 Proto 代表协议,有 TCP 和 UDP 两种协议。Local Address 代表本机地址,该地址冒号后的数字就是开放的端口号。Foreign Address 代表远程地址,如果和其他机器 正在通信,显示的就是对方的地址,State 代表状态,显示的 LISTENING 表示处于侦听状态,就是说该端 口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。 TCP :135 :0 LISTENING 这一行的意思是本机的 135 端口正在等待连接。 注意:只有 TCP 协议的服务端口才能处于 LISTENING 状态。 219 计算机网络技术案例教程 3分析 (1) 通过查看知道本机开了哪些端口,也就是可以进入到本机的门有几个,都是谁开的? (2) 目前本机的端口处于什么状态,是等待连接还是已经连接,如果是已经连接,那就要特别注意看 连接是个正常连接还是非正常连接(木马等)? (3) 目前本机是不是正在和其他计算机交换数据,是正常的程序访问还是访问到一个陷阱? 以上这些问题经常会遇到的,这里提到的 TCP、UDP 的协议就是我们本章传输层要讨论的两个协议, 其中端口是这两个协议不可分割的一部分。但是我们讨论传输层不仅是协议、端口,更重要的是理解传输 层要完成的任务及怎样完成这些任务。 传输层的主要任务如下。 (1) 连接管理。 (2) 流量控制。 (3) 差错检测。 (4) 对用户请求的响应。 本章从可靠传输服务与不可靠传输服务入手,引入了 TCP 与 UDP 协议,并对 TCP 与 UDP 协议进行了详细的分析,本章还对传输层的端口、基于 TCP 与 UDP 的常用的应用协 议进行了较详细的介绍。 9.1 传 输 服 务 传输层是 OSI 参考模型的第 4 层,它为上一层提供了端到端(end-to-end)的可靠信息传 递。物理层可以使人们在各链路上透明地传输比特流。数据链路层则增强了物理层所提供 的服务,它使得相邻结点所构成的链路能够传输无差错的帧。网络层又在数据链路层的基 础上,提供路由选择、网络互连的功能。而对于用户进程来说,希望得到的是端到端的服 务 (如主机 A 到主机 B 的 FTP),传输层就是建立应用间的端到端连接,并且为数据传输提 供可靠或不可靠的连接服务。 传输层的最终目标是向其用户(应用层的进程)提供有效、可靠且价格合理的服务。为 了达到这一目标,传输层利用了网络层所提供的服务。传输层中完成这一工作的硬件和软 件称为传输实体。按照 OSI 两个传输实体在通信时传送的单元叫传输数据单元(Transport Data Unit,TPDU)。传输实体可以在主机的操作系统内核中,或设计在网卡驱动程序里, 甚至位于主机与子网相连的专有接口的机器上。网络层、传输层和应用层的逻辑关系如 图 9.1 所示。 正如存在两种类型的网络服务(面向连接和无连接)一样,传输服务也有两种类型:面 向连接的传输服务和无连接的传输服务。面向连接的传输服务在很多方面类似于面向连接 的网络服务,二者的连接都包括三个阶段:建立连接、数据传输和释放连接。两层的寻址 和流量控制方式也类似。无连接的传输服务与无连接的网络服务也很类似。 220 第 9 章 传输层 图 9.1 网络层、传输层和应用层 既然传输层服务与网络层服务如此类似,那为什么还要将它区分为不同的两层呢?这 是针对网络层解决不了的问题的解决方案。假如,网络层提供的面向连接的服务不可靠, 频繁地丢失分组,假如路由器不断发生冲突。由于用户无法对传输子网加以控制,不能通 过换用更好的路由器增强数据链路层的纠错能力来解决网络层低劣的质量问题。唯一可行 的方法是在网络层上再增加一层以改善服务质量。例如,如果传输实体在一个很长的数据 传输尚未完成时接到网络连接突然中断的通知,但未说明当前正在传输的数据究竟发生了 什么情况,这时它会和远端的传输实体建立一个新的网络连接,并由此向对等端询问哪些 数据已到达,哪些数据尚未到达,从而在中断处恢复数据的传输。 由此可见,传输层起着将子网的技术、设计和各种缺陷与上层隔离的关键作用。 事实上,在一个主机中经常有多个应用进程同时分别和另一个主机中的多个应用进程 通信。例如,某用户在使用浏览器访问网站下载歌曲时,还在参加该网站的投票活动。这 样就出现了主机 A 的应用进程 1 和主机 B 的应用进程 3 通信,而与此同时,应用进程 2 也 和对方的应用进程 4 通信。因此,运输层的一个很重要的功能就是复用和分用。应用层不 同进程的数据通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。 在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑 通信,而网络层协议为不同主机提供逻辑通信如图 9.2 所示。这个区别很微妙,但是却非 常重要。 图 9.2 运输层协议和网络层协议的示意图 221 计算机网络技术案例教程 让我们用一家人作为类比来说明不同层提供逻辑通信的区别。 设想一下有两所房子,一个位于东海岸,而另一个位于西海岸,每所房子里都住着 6 个小孩。东海岸的房子里的小孩和西海岸房子里的小孩是堂兄妹。两所房子里的孩子喜欢 互相通信每个孩子每周都给每一个堂兄妹写一封信,每一封信都由老式的邮局分别用 信封来寄。这样,每一家每周就都有 36 封信要送到另一家,在每一家里面,都由一个孩子 西海岸的房子里的 Ann 和东海岸房子里的 Bill 负责邮件的收集和分发。每周 Ann 都从她的 兄弟姐妹那里收集信件,并将这些信件送到每天都来的邮递服务员那里。当信件到达西海 岸的房子,Ann 又将这些信件分发给她的兄弟姐妹。Bill 在东海岸有着同样的工作,如 图 9.3 所示。 图 9.3 两处多个信件的传送 在这个例子中,邮递服务提供着两所房子之间的逻辑通信邮递服务在两所房子之 间传递邮件,而不是针对每个人的服务。另一方面,Ann 和 Bill 提供堂兄妹之间的逻辑通 信Ann 和 Bill 从他们的兄弟姐妹那里收集邮件,并将邮件递送给他们。注意,从这些 堂兄妹的角度看,Ann 和 Bill 是邮件的服务人,尽管他们俩只是端到端寄送服务的一部分(终 端系统部分)。这个例子是传输层和网络层之间的关系的一个形象比喻。 主机(也称为终端系统)=房子 进程=堂兄妹 应用程序消息=信封里的信 网络层协议=邮递服务(包括邮递员) 传输层协议=Ann 和 Bill Ann 和 Bill 各自在他们的家中做所有的工作,他们不负责各个邮递中心的邮件分类工 作以及将邮件从一个中心送到另一个中心的工作,这正与传输层协议在终端系统中的作用 一样。在一个终端系统中,传输层协议将应用进程的消息传送到网络边缘(也就是网络层), 反之亦然,但是它并不涉及消息是如何在网络层之间传送的工作。事实上,中间路由器对 222 第 9 章 传输层 于传输层加在应用程序消息上的信息不能做任何识别和处理。 在传输层提供的服务中有两种,一种是可靠的面向连接的服务 TCP,另一种是不可靠 的无连接的服务 UDP,我们如何理解传输层的这两个服务呢?继续我们的这个例子。 假设 Ann 和 Bill 都去度假了,另外一对堂兄妹Susan 和 Harvey 代替他们来提供家 庭内部的邮件收取和分发工作。不幸的是,Susan 和 Harvey 所提供的收集和分发工作与 Ann 和 Bill 所提供的不完全相同。对于年龄更小的 Susan 和 Harvey 来说,他们收集和分发邮件 的频率比较低,而且偶尔会发生丢失信件的事情(这些信件偶尔被家里的狗毁掉了)。这样, 这一对堂兄妹 Susan 和 Harvey 提供了一套不同于 Ann 和 Bill 的服务(也就是说,服务模型 不同)。打比方来说,正如一个计算机网络可以接受不同的传输层协议一样,每一个协议为 应用程序提供不同的服务模型。 Ann 和 Bill 所可能提供服务明显地受限于邮递服务所提供的服务。例如,如果邮递服 务并不提供在两所房子之间传递邮件所需要的最大时限(如 3 天),那么 Ann 和 Bill 也就不 能保证各个堂兄妹之间的邮件的最大延迟。同样,传输层协议所提供的服务也通常受限于 位于其下方的网络层协议。如果网络层协议不能提供主机之间传送的包的延迟和带宽保证, 那么传输层协议也不能提供进程之间传送的消息的延迟和带宽保证,这就相当于传输层的 UDP 协议。 但是,我们需要传输层提供可靠的数据传输服务,即使下面的网络层协议并不是可靠 的,也就是说,即使网络层协议丢失、篡改或者复制了传送的数据包,传输层协议也可以 提供可靠的数据传输服务。 而对于我们故事中的 Ann 和 Bill 如何提供有保证的服务呢?就只有采用特快专递,当 然这个服务的成本要高得多,这就相当于传输层的 TCP 协议。 9.2 传输层的端口 TCP/IP 传输层的两个协议 TCP 和 UDP 都是因特网的正式标准,都使用了与应用层接 口处的端口与上层的应用进程进行通信。端口是个非常重要的概念,什么是端口? 在网络技术中,端口(port)有好几种意思。集线器、交换机、路由器的端口指的是连接 其他网络设备的接口,如 RJ45 端口、Serial 端口等。这里所指的端口不是指物理意义上的 端口,而是特指 TCP/IP 协议中的端口,是逻辑意义上的端口。 在 TCP/IP 协议中如果把 IP 地址比作一间房子,端口就是出入这间房子的门。真正的 房子只有几个门,但是一个 IP 地址的端口可以有 65536 个。端口是通过端口号来标记的, 范围是 065535。 一台拥有 IP 地址的主机可以提供许多服务,比如 Web 服务、FTP 服务、SMTP 服务等, 这些服务完全可以通过一个 IP 地址来实现。那么,主机是怎样区分不同的网络服务呢?显 然不能只靠 IP 地址,因为 IP 地址与网络服务的关系是一对多的关系。实际上是通过IP 地址+端口号也叫套接字(socket)来区分不同的服务的。需要注意的是,端口并不是一一 对应的,端口号只具有本地意义。比如你的电脑作为客户机访问一台 WWW 服务器时, 223 计算机网络技术案例教程 WWW 服务器使用80端口与你的电脑通信,但你的电脑则可能使用的是3480这样 的端口。 按对应的协议类型,端口有两种:TCP 端口和 UDP 端口。由于 TCP 和 UDP 两个协 议是独立的,因此各自的端口号也相互独立,比如 TCP 有 235 端口,UDP 也可以有 235 端口,两者并不冲突。 端口号分两类。一类是由因特网指派和号码公司 ICANN 负责分配给一些常用的应用 层程序固定使用的熟知端口(well known ports),范围 01023,如表 9-1 所示。 表 9- 1 常用的熟知端口 SMTP 25 DNS 53 应用程序 熟知端口 FTP 20 TELNET 23 TFTP 69 HTTP 80 SNMP 161 网络服务也可以使用其他端口号,如果不是默认的端口号,则应该在地址栏上指定端 口号,比如 :8080,说明是使用8080作为 WWW 服务的端口。有些系 统协议使用固定的端口号,它是不能被改变的,比如139端口专门用于 NetBIOS 与 TCP/IP 之间的通信,不能手动改变。 另一类是动态端口(dynamic ports),其范围是 102465 535,之所以称为动态端口,是 因为它一般不固定分配某种服务,而是动态分配。 查看端口有两种方式:一种是利用系统内置的命令netstat -an,可以列出系统正在 开放的端口号及其状态;另一种是利用第三方端口扫描软件。 9.3 传输控制协议 TCP TCP(Transfer Control Protocol,传输控制协议)提供面向连接的、全双工的、可靠的传 输服务。在 TCP/IP 体系中,采用 TCP 协议传输的协议数据单元称为 TCP 报文段,简称段 (segment),是基于字节的数据结构。 TCP 发送报文段的过程如图 9.4 所示。 图 9.4 段的传输 224 第 9 章 传输层 图中只画出了一个方向的段传输,实际上,只要建立了 TCP 连接,就能支持同时双向 通信的数据流,也就是说数据流是双向的。 TCP 的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP 采用虚 电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发 送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失, 并重新发送此数据。 9.3.1 TCP 报文段的首部格式 TCP 段头总长最小为 20 个字节,其段头结构如图 9.5 所示。 0 4 10 16 目的端口 序列号 确认号 31 源端口 TCP 偏 移量 校验和 保留 标志 窗口 紧急指针 选项(可变) 数据(可变) 图 9.5 TCP 报头结构 (1) 源端口和目的端口:指定了发送端和接收端的端口。 (2) 序号:指明了段在即将传输的段序列中的位置。 (3) 确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的 下一个序号。 (4) TCP 偏移量:指定了段头的长度。段头的长度还取决于段头选项字段中设置的选项。 (5) 保留:指定了一个保留字段,以备将来使用。 (6) 标志:SYN、ACK、PSH、RST、URG、FIN。 SYN:表示同步。 ACK:表示确认。 PSH: 表示尽快将数据送往接收进程。 RST: 表示复位连接。 URG:表示紧急指针。 FIN: 表示发送方完成数据发送。 (7) 窗口:指定关于发送端能传输的下一段的大小的指令。 (8) 校验和:校验和包含 TCP 段头和数据部分,用来校验段头和数据部分的可靠性。 (9) 紧急指针:指明段中包含紧急信息,只有当 U R G 标志置 1 时紧急指针才有效。 (10) 选项:指定了公认的段大小、时间戳、选项字段的末端,以及指定了选项字段的 边界选项。TCP 只规定了一种选项,即最大长度(Maximum Segment Size,MSS)。MSS 告 225 计算机网络技术案例教程 诉对方 TCP我的缓存所能接收的段的数据字段的最大长度是 MSS 个字节,当没有使用 选项时,TCP 的首部长度是 20 字节。 9.3.2 建立连接 建立连接听起来容易,但实际上却出乎意料得麻烦。初看起来一个传输实体似乎只需 向目的机器发送一个连接请求,并等待对方接受连接的应答就足够了,但当网络可能丢失、 存储和出现重复分组时,问题就来了。 设想一个网络,它十分拥塞,确认根本不能及时返回时,每个分组由于在规定时间内 得不到确认而需要重发二次或三次,每个分组拥有不同的路由。一些分组可能会因网络内 部线路拥塞,被存储在某个路由器里,需要很长一段时间才能到达。最坏的可能性是一个 用户与银行之间建立了一条连接,并发送报文让银行将一笔巨款转到一个商户的账户上, 然后便释放连接。不幸的是,此分组均被复制在网络结点上,有可能再次请求连接,将巨 款再次转移。 问题的关键是由于网络中存在着延迟的重复分组。解决的办法是可以给每个连接一个 序号,在建立连接时双方要商定初始序号。TCP 每次发送的段的首部中的序号字段数值, 表示该段中的数据部分的第一个字节的序号。 TCP 的确认号表示接收端期望下次收到的数据中的第一个数据字节序号,即收到的最 后一个字节号加 1。 TCP 传输的可靠是由于使用了序号和确认。当 TCP 发送一个段时,它同时也在自己的 重传队列中存放一个副本,若收到确认,则删除此副本,若在计时器时间到之前还未收到 确认,则重传此报文的副本。 由于 TCP 连接能提供全双工通信,因此通信中的每一方都不必专门发送确认段,而可 以在传送数据时顺便把确认信息捎带传送,以提高效率。 TCP 的连接建立采用客户/服务器方式。服务器端运行服务器进程,使服务器端被动打 开,处于侦听状态,TCP 准备接收客户进程的请求。客户端运行客户端进程,使 TCP 主动打开,准备向某个 IP 地址的某个端口建立连接。整个连接过程分三次发收,叫做三次 握手,如图 9.6 所示。 图 9.6 三次握手建立连接 第一次握手:客户端的 TCP 向服务器端的 TCP 发出连接请求段,其首部中的同步比特 226 第 9 章 传输层 SYN 应置1,同时选定序号 x 即 SEQ=x,表明在后续传送的数据第一个数据字节的序号是 x。 第二次握手:服务器端的 TCP 收到连接请求段后,如同意,则发回确认,同步 SYN 置 1,其确认号为 x+1 即 ACK=x+1,同时也为自己选择一个序号 y。 第三次握手:客户端收到此段后,还要向服务器端给出确认,其确认号为 y+1 即 ACK=y+1。 客户端的 TCP 通知上层应用进程,连接已经建立。服务器端收到确认后,也通知上层 应用进程,连接已经建立。 9.3.3 释放连接 连接的释放要比建立更容易些,尽管如此,也有很多细节问题,对此有一个著名的问 题,称为两军问题。 设想一支白军被围困在一个山谷中,山谷两侧则是蓝军,如图 9.7 所示。白军在人数 上比山谷两侧的任何一支蓝军都多,但少于两支蓝军合在一起的人数。如果单独一支蓝军 对白军发动进攻,则必败无疑;但如果两支蓝军同时进攻,便可取胜。 两支蓝军欲同时发动进攻,然而,他们唯一的通信方法是派遣通信员步行奔过山谷去 传递信息。在山谷中,通信员有可能被俘虏而丢失信件(即两支蓝军只能使用一种不可靠的 通信方法)。问题是存在使蓝军获胜的协议吗? 蓝军 1 号 蓝军 2 号 白军 图 9.7 两军问题 假设蓝军 1 号的指挥官发出消息:我建议在 3 月 20 日拂晓发起攻击,如何?现在 假设信息送到了,蓝军 2 号的指挥官同意这一建议,并且他的回信安全送回到蓝军 1 号处。 那么能否发动进攻呢?很可能不会,因为蓝军 2 号不知道他的回信是否安全送到了。如果 未送达,蓝军 1 号将不会适时发起攻击,那么他贸然进攻就是愚蠢的。 现在我们采用三次握手的方法来改进这一协议。最初提出建议的指挥官必须确认对该 建议的应答信息。假如信息丢失,蓝军 2 号将收到该确认信息,但现在蓝军 1 号指挥官开 始犹豫起来,因为他毕竟不知道他的确认信息是否被安全收到了。如果说未收到,他清楚 蓝军 2 号不会按时发起进攻。那么我们现在采用四次握手协议会如何?结果仍然是于事无补。 在实际应用时,人们在解决释放连接问题往往采用四次握手。 227 计算机网络技术案例教程 在数据传输结束后,通信的双方都可以发出释放连接的请求,如图 9.8 所示。 比如说,客户端的应用进程先向其 TCP 发出连接释放请求,并且不再发送数据。TCP 通知对方要释放从客户端到服务器端方向的连接。 图 9.8 释放连接的四次握手 第一次握手:将发往服务器端的段首部终止比特 FIN 置1,其序号 x 等于前面已传 送过的数据的最后一个字节的序号加 1。 第二次握手:服务器端的 TCP 收到释放连接通知后即发出确认,其序号为 x+1,同时 通知高层应用进程。这样,从客户端到服务器端的连接就释放了,连接处于半关闭状态, 客户端仍可接收数据。 第三次握手:在服务器端向客户端发送信息结束后,其应用进程就通知 TCP 释放连接, 服务器端发出的连接释放段必须将终止比特 FIN 置1,并使其序号 y 等于前面已传送过 的数据的最后一个字节的序号加 1,还必须重复上次发送过的 ACK=x+1。 第四次握手:客户端必须对收到的段发出确认,给出 ACK=y+1,从而释放由服务器端 方向的连接。 客户端的 TCP 再向其应用进程报告,整个连接已经全部释放。 9.3.4 滑动窗口 为了提高段的传输效率,TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是 字节。在 TCP 段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情 况随时动态地调整对方的发送窗口上限值。 下面通过例子说明利用可变窗口大小进行流量控制,如图 9.9 所示。 假设发送端和接收端双方确定的窗口值是 400,而每一段的长为 100 字节,序号的初 始值为 1。 因为窗口值是 400,发送端发送序号为 1 的段包含的 100 个字节后,还能再发送以序 号 101 开始的下一个段,因为距离 400 的窗口还有 300 字节的距离,依次发送。 在发送到序号为 201 开始的段时,接到接收端发来的应答,ACK=201,窗口 WIN=300, 即接收端希望收到的下一段开始序号为 201,说明上一发送段已丢失,并调整窗口为 300。 228 第 9 章 传输层 发送端依此窗口发送并重发因超时而丢失的以 201 开始的段。 发送端收到接收端的应答,ACK=501,窗口 WIN=200,即接收端希望收到的下一段开 始序号为 501,并调整窗口为 200。 发送端发送以 501 开始的段后收到接收端的应答,ACK=601,窗口 WIN=0,即接收端希望 收到的下一段开始序号为 601,并调整窗口为 0,说明不允许发送端再发送,数据已接收完成。 图 9.9 利用可变窗口进行流量控制 9.4 用户数据报协议 UDP UDP(User Datagram Protocol,用户数据报协议)只提供一种基本的、低延迟的被称为数 据报的通信。TCP/IP 体系按 UDP 协议传输的传输协议单元称为 UDP 报文或用户数据报。 所谓数据报,就是一种自带寻址信息,从发送端走到接收端的数据集。UDP 协议经常用于 路由表数据交换转发和系统信息、网络监控数据等的交换。UDP 协议没有 TCP 协议那样的 三次握手并且是基于数据报,因此 UDP 协议没有 TCP 协议那样丰富的头信息,以实现诸 多功能。 用户数据报 UDP 的首部格式如图 9.10 所示。其首部共有两个字段:数据字段和首部 字段,首部字段很简单,只有 8 个字节。 源端口:源端口号。 目的端口:目的端口号。 长度:信息长度,用来告诉接收端信息的大小。 校验和:用于接收端判断信息是否有效。 229 计算机网络技术案例教程 首部 数据 源端口 目的端口 长度 检验和 图 9.10 UDP 的首部格式 由于 UDP 协议比较简单,所以 UDP 连接不会像 TCP 连接那样可靠,它只负责尽力地 转发数据包,但是却不会把错误的数据报重新发送,它会丢弃掉所有被破坏或者损坏的数 据报,并且继续后面的传送,至于被丢弃的部分,发送端不知道,也不会被接收端要求重 新发送。除此之外,UDP 不具备把乱序到达的数据报重新排列的功能(因为没有 TCP 头中 包含的 TCP 序列号),这样一来,UDP 便是完全不可靠的,因为根本就无法保证所收到的 数据是完整的。但是,UDP 协议的不可靠并不代表 UDP 是毫无用处的,恰恰相反,没有 和 TCP 一样的复杂头信息,各种设备处理 UDP 数据报的时间将会大大缩短,效率比 TCP 要高得多。由于 UDP 处理的高效性,UDP 往往被用于那些数据报不断出现的应用,比如 IP 电话或者实时视频会议,如表 9-2 所示。 表 9- 2 基于 TCP 与 UDP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政考试模拟试卷(含答案)
- 西方经济学简明原理期末考试题库带答案
- 评审专家题库安徽及答案
- 资料员必考试题库及答案
- 辽宁事业编制考试题库带答案
- 邮储岗前培训考试题库及参考答案
- 邮政考试常识题库及参考答案
- 金融学期末模拟试卷A模拟试题(含答案)
- 铁道概论常识题库带答案
- 银行从业资格初级考试题库及答案
- 2026年江苏省高考地理试卷真题(含答案及解析)
- 2026年中小学教师正高级职称评聘答辩试题及答案
- 中国急性中毒救治指南(2026版)
- 双重预防体系运行情况评审报告及记录
- 滴滴出行网约车平台合同协议
- 3.1 走进桂林山水 课件+视频 2025-2026学年高中地理鲁教版必修一
- 《短视频编辑与制作实例教程(AIGC+全彩慕课版)》-课程标准
- 铁路扫雪除冰安全培训课件
- 《机械设计》课件-ch04第四章 带传动
- GJB573B-2020引信及引信零部件环境与性能试验方法
- 六年级下册数学竞赛试题-构造论证习题(含答案)
评论
0/150
提交评论