TCP协议和UDP协议

TCP协议和UDP协议

ID:45496972

大小:214.50 KB

页数:33页

时间:2019-11-13

TCP协议和UDP协议_第1页
TCP协议和UDP协议_第2页
TCP协议和UDP协议_第3页
TCP协议和UDP协议_第4页
TCP协议和UDP协议_第5页
资源描述:

《TCP协议和UDP协议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二章TCP协议和UDP协议2.1概述本章从网络程序设计角度提供足够的细节以理解如何使用TCP协议和UDP协议。同时提供这些协议的实际设计、具体实现和相关的注意事项。本章的焦点是计算机网络传输层服务,即面向连接服务和面向无连接服务,它们所使用的相关协议分别是TCP协议和UDP协议。目前绝大多数的客户服务器应用程序都使用TCP协议或UDP协议。这两个协议使用网络层协议IP:IPv4或IPv6。尽管应用程序可以绕过传输层直接使用IPv4或IPv6,但这种方法(称为原始套接口)使用较少。UDP是一个简单的传输层协议,应用程序写一个数据报到UD

2、P套接口,由它封装成IPv4或IPv6数据报,然后发送到目的地址。但是,UDP并不能保证UDP数据报最终能够到达目的地。使用UDP进行程序设计所遇到的问题是缺乏可靠性。如果要确保一个数据报能够到达目的地,必须在应用程序中建立相应的特性,主要包括:来自另一端的确认、超时、重传等等。每个UDP数据报都有一定的长度,可以把一个数据报看作一个记录。如果数据报最终正确地到达目的地(即分组到达目的地且校验和正确),那么该数据报的长度将传递给接收方的应用进程。而TCP是一个字节流协议,无记录边界。向应用程序提供的TCP服务与UDP服务不同。首先,TC

3、P提供客户与服务器的连接;其次,TCP提供可靠性;第三,TCP通过给所发送数据的每一个字节关联一个序列号进行排序;第四,TCP提供流量控制。总之,UDP协议是一种简单的、不可靠的数据报协议,而TCP协议是一种复杂的、可靠的字节流协议。只有正确理解这两个协议提供给应用程序的服务,才能清楚这些协议能够处理什么,应用程序又需要处理什么。只有深入理解TCP协议和UDP协议的某些特征,才能更容易编写健壮的、高效的客户服务器程序。2.2UDP:用户数据报协议UDP是一个简单的面向数据报的传输层协议:进程的每个输出操作刚好产生一个UDP数据报,该数据

4、报导致一个IP数据报的发送。图2-1显示了作为IP数据报的UDP数据报的封装。IP数据报UDP数据报IP报头UDP报头UDP数据20字节8字节图2-1UDP封装RFC768[Postel1980]是UDP的官方描述。UDP不提供可靠性:它发送应用程序数据到IP层的数据报,但不保证这些数据报到达其目的地。鉴于这种不可靠性,我们或许认为应避免UDP而总使用一个可靠的协议。应用程序应注意所产生IP数据报的大小。若超出网络的MTU,该IP报会被分段。这适用于数据报从源到目的所跨越的每个网络,不只是适用于发送主机的第一个网络。2.2.1UDP报头

5、图2-2列出了UDP报头的各个域。015163116位目的端口号16位源端口号8字节16位UDP检查和16位UDP长度数据(如果有)图2-2UDP报头端口号标识出发送进程和接收进程。由于IP已将到来的IP数据报分解复用为TCP和UDP,这意味着TCP端口号由TCP查看,UDP端口号由UDP查看。TCP端口号与UCP端口号无关。尽管二者无关,但若一个众所周和的服务TCP和UDP都提供,端口号通常取同一个值。UDP长度域是以字节为单位的UDP数据和UDP报头之长,其最小值为8。该UDP长度是冗余的,IP报含有其总长度,故UDP报长为该总长度

6、减去IP报头长度。2.2.2UDP校验和UDP校验和覆盖UDP和UDP数据。而IP报头中的校验和仅覆盖该IP报头,它不涉及IP数据报中的任何数据。UDP和TCP均在其报头中有覆盖其报头和数据的校验和。对UDP而言,校验和是可选的,而TCP则是必需的。首先,UDP数据报的长度可以是奇数个字节,而校验和算法是加16位字。解决办法是在尾部追加0的填充字节,而这填充字节仅为计算校验和所需。另外,UDP和TCP均在UDP报中包含一个12字节的伪报头以计算校验和。该伪报头包含IP报头的某些域,目的是让UDP检测数据确已到达正确的目的端。如果发送者的

7、确计算了校验和并且接收者检测出校验和错误,则该UDP数据报会被简单地扔弃,不产生错误信息。UDP校验和是端对端校验和。它由发送者计算,然后由接收者验证。这用于捕捉在发送者与接收者之间任何地方的UDP报头或数据所发生的任何改动。尽管UCP校验和是可选的,但他们应该总是能打开的。尽管这在单一的LAN上可能是可接受的,因为在数据链路帧上的循环冗余检查能够检测到该帧的大多数错误,当这些数据报穿越路由器时,所有位都关闭。不管相信与否,某些带有软硬件缺陷的路由器会修改所转发的数据报中的某些位。如果端到端UDP校验和被关闭,那么这些错误是不可检测的。

8、同时也应看到某些路据链路协议没有任何形式的数据链路校验和。TCP校验错误率比UDP要高,这可能是因为系统的TCP连接倾向于“长距离”,而UDP主要用于本地。2.3TCP:传输控制协议TCP提供了一种可靠的面

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。