TCPIP协议第11章UDP:用户数据报.ppt
《TCPIP协议第11章UDP:用户数据报.ppt》由会员分享,可在线阅读,更多相关《TCPIP协议第11章UDP:用户数据报.ppt(92页珍藏版)》请在三一办公上搜索。
1、第11章UDP:用户数据报协议,重点:UDP的工作原理、IP分片难点:IP分片、寻找MTU 课时:3课型:理论课教学方法与手段:多媒体,演示。,目录:11.1 引言 11.2 UDP首部 11.3 UDP检验和 11.4 一个简单的例子 11.5 IP分片 11.6 ICMP不可达差错(需要分片)11.7 用Traceroute确定路径MTU 11.8 采用UDP的路径MTU发现 11.9 UDP和ARP之间的交互作用 11.10 最大UDP数据报长度 11.11 ICMP源站抑制差错 11.12 UDP服务器的设计 11.13 小结,11.1 引言,U D P是一个简单的面向数据报的运输层协
2、议:进程的每个输出操作都正好产生一个U D P数据报,并组装成一份待发送的I P数据报。U D P数据报封装成一份I P数据报的格式如图11-1所示。RFC 768 Postel 1980 是U D P的正式规范。,U D P不提供可靠性:它把应用程序传给I P层的数据发送出去,但是并不保证它们能到达目的地。应用程序必须关心I P数据报的长度。如果它超过网络的M T U,那么就要对I P数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片。U D P数据报封装成一份I P数据报的格式如图11-1所示。,11.2 UDP首部,U D P首部的各字段如图11-2所示。,冗余信息,U D
3、 P长度=U D P首部+U D P数据(字节)。=IP数据报全长-I P首部的长度该字段的最小值为8字节(发送一份0字节的U D P数据报是O K)。如图3-1所示)。,演示,打开wireshark 软件,打开QQ聊天.pcap,过滤“ip.proto=17”分析任意UDP报文的长度的两种读取方式。,端口号表示发送进程和接收进程。在图1-8中,我们画出了T C P和U D P用目的端口号用来分用来自I P层的数据的过程。由于I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值),因此T C P端口号由T C P来查看,而U D P端口号由U D P来查看。T C
4、 P端口号与U D P端口号是相互独立的。,11.3 UDP检验和,U D P检验和覆盖U D P首部和U D P数据。U D P和T C P在首部中都有覆盖它们首部和数据的检验和。U D P的检验和是可选的,而T C P的检验和是必需的。U D P检验和计算方法:把U D P数据报(包括伪首部+首部+UDP 数据)的若干个16 bit字相加。若 U D P数据报的长度为奇数字节,则在最后增加填充字节0。若为偶数字节,则不用加0。,其次,U D P数据报包含一个1 2字节长的伪首部,它是为了计算检验和而设置的。如图11-3所示。尽管U D P检验和是可选的,但是它们应该总是在用。,C0 a8
5、01 69C0 a8 01 6500 11 00 0905 de 05 d500 09 00 0000 00二进制反码求和运算结果正是700A,演示,长度排序后任选一个短小报文进行校验和字段的验证计算。,11.3.1 tcpdump输出 略为了得到U D P首部中的检验和,作者在t c p d u m p程序中增加了一个选项,如果打印出的值为0,说明发送端没有计算检验和。测试网络上三个不同系统的输出如图11-4所示。自编的s o c k程序(附录C),发送一份包含9个字节数据的U D P数据报给标准回显服务器。,以上例子中,三个系统中有两个打开了U D P检验和选项,因为其chksum不为0)
6、送出的数据报与收到的数据报具有相同的检验和值(分别为6e3b 和6e74)。现有系统均打开U D P检验和选项。起码用“udp.checksum=0”过滤毫无结果。“相同的检验和值”是在本书特定的自编回显命令下出现的情况。实际网络环境中并不多见。该例子仅为了说明二进制反码求和运算的检验方法有其漏洞存在。,U D P检验和是简单的16 bit和。它检测不出交换两个16 bit的差错。(因为是简单16位相加,所以,两个16bit交换后,值仍相等,所以无法查出来。),11.3.2 一些统计结果 对一个繁忙的N F S服务器上所发生的不同检验和差错进行的统计,时间持续了4 0天。统计数字结果如图11-
7、5所示。最后一列是每一行的大概总数,因为以太网和I P层还使用其他的协议。(如以太网还要使用A R P协议;IP层除了UDP和TCP外,ICMP也用I P传送数据。),注意,T C P发生检验和差错的比例与U D P相比要高得多。这很可能是因为在该系统中的T C P连接经常是“远程”连接(经过许多路由器和网桥等中间设备),而U D P一般为本地通信。从最后一行可以看出,不要完全相信数据链路(如以太网,令牌环等)的C R C检验。应该始终打开端到端的检验和功能。如果你的数据很有价值,也不要完全相信U D P或T C P的检验和,因为这些都只是简单的检验和,不能检测出所有可能发生的差错(如易位错误
8、)。,11.4 一个简单的例子,用自己编写的s o c k(附录C)程序生成一些可以通过t c p d u m p观察的U D P数据报:bsdi%sock-v-u-i-n4 svr4 discardconnected on 140.252.13.35.1108 to 140.252.13.34.9bsdi%sock-v-u-i-n4-w0 svr4 discardconnected on 140.252.13.35.1110 to 140.252.13.34.9,-v:用v e r b o s e(详情)模式来观察e p h e m e r a l端口号,-u:指定用U D P,而不是TCP
9、-I:用源模式来发送数据n 4:输出4份数据报(默认条件下为1 0 2 4),s v r 4:目的主机。1 0 2 4:每次写操作的输出长度取默认值-w 0:写长度为0的数据报。两个命令的t c p d u m p输出结果如图11-6所示。,从以上显示可以看出:有4份1 0 2 4字节的数据报,接着有4份长度为0的数据报。每份数据报间隔几毫秒(输入第2个命令花了4 1秒的时间)。在发送第1份数据报之前,发送端和接收端之间没有任何通信。当收到数据时,接收端没有任何确认。在这个例子中,发送端并不知道另一端是否已经收到这些数据报。,每次运行程序时,源端的U D P端口号都发生变化。第一次是11 0
10、8,然后是111 0。why,11.5 IP分片,物理网络层一般要限制每次发送数据帧的最大长度。任何时候I P层接收到一份要发送的I P数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口以获得其M T U。I P把M T U与数据报长度进行比较,如果超过MTU则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。,分片以后,只有到达目的地才进行重新组装。重新组装由目的端的I P层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的,除了某些可能的越级操作外。已经分片过的数据报有可能会再次分片(可能不止一次)。I P首部中包含的数据(如标识字段和片偏
11、移)为分片和重新组装提供了足够的信息。,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,区 分 服 务,总 长 度,片 偏 移,填 充,首 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,首部长度,数 据 部 分,固定部分,可变部分,标志(flag)占 3 位,目前只有后两位有意义。标志字段的最低位是 MF(More Fragment)。MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。标志字段中间的一位是 DF(Dont Fragment)。只有当 DF 0 时才允许分片。,首部,0,4,8,16,19,24
12、,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,片 偏 移,填 充,首 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,首部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,偏移=0/8=0,偏移=0/8=0,偏移=1400/8=175,偏移=2800/8=350,1400,2800,3799,2799,1399,3799,需分片的数据报,数据报片 1,首部,数据部分共 3800 字节,首部 1,首部 2,首部 3,字节 0,数据报片 2,数据报片 3,1400,2800,字节 0,【例】IP 数据报分片,I P首部中,下面这些字段用
13、于分片过程:标识字段:对于发送端发送的每份I P数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时被复制到每个片中。标志字段:用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。片偏移字段:指的是该片偏移原始数据报开始处的位置。,标志字段:标志字段中有一个比特称作“不分片”位。如果将这一比特置1,I P将不对数据报进行分片。相反把数据报丢弃并发送一个I C M P差错报文给起始端。当I P数据报被分片后,每一片都成为一个分组,具有自己的I P首部,并在选择路由时与其他分组独立。这样,当数据报的这些片到达目的端时有可能会失序,但是在I P首部中有足够
14、的信息让接收端能正确组装这些数据报片。,尽管I P分片过程看起来是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报。因为I P层本身没有超时重传的机制由更高层来负责超时和重传。当来自T C P报文段的某一片丢失后,T C P在超时后会重发整个T C P报文段,该报文段对应于一份I P数据报。没有办法只重传数据报中的一个数据报片,只能传送所有的数据报。,事实上,如果对数据报分片的是中间路由器,而不是起始端系统,那么起始端系统就无法知道数据报是如何被分片的。就这个原因,经常要避免分片。讨论,为什么要避免分片?,可依据标志字段中间的一位是 DF(Dont Fragment)。只有
15、当 DF 0 时才允许分片。来避免多次分片的情况。避免分片更合理的解释是:虽然 IP 的这个特性考虑了网络层的独立性,但它也会长时间占用处理器并占用大量内存,进而对 IP 路由器的性能产生实质性的影响。因此,包括 Internet 在内的现代 IP 网络都通过以下方法避免由路由器对 IP 包进行分段:,现代 IP 网络都通过以下方法避免由路由器对 IP 包进行分段:发送基于 UDP 的通信时,将 UDP 消息的最大大小设置为足够小,以防止 IP 路由器进行分段。发送基于 TCP 的通信时,将 IP 报头中的“不分段”(DF)标记设置为 1,阻止 IP 路由器对 TCP 数据段进行分段。当 TC
16、P 对等方建立 TCP 连接时,它们会交换各自的 TCP 最大段大小(MSS)值。TCP 对等方会使用这两个 MSS 值中的较小值来建立 TCP 连接。以前,主机的 MSS 值是 MTU 减去用于 IP 和 TCP 报头的 40 字节。但是,为了支持额外的 TCP 选项(如时间戳和可选确认),典型的 TCP 和 IP 报头可增至 52 字节或更多字节。,当路由器必须将 IP 包分段但又因 DF 标记设置为 1 而不能分段时,路由器可采用以下任一种方式:发送符合 RFC 792 中最初定义的“ICMP Destination Unreachable-Fragmentation Needed an
17、d DF Set”消息,然后丢弃该包。原始消息格式中不包含有关转发失败的链路的 IP MTU 的信息。发送符合 RFC 1191 中重新定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。此新消息格式包含一个 MTU 字段,可指出转发失败的链路的 IP MTU。RFC 1191 定义了路径 MTU(PMTU)发现,它使得成对的 TCP 对等方能够动态地发现二者之间路径的 IP MTU,从而发现该路径的 TCP MSS。一旦收到符合 RFC 1191 定义的“Destination Unreacha
18、ble-Fragmentation Needed and DF Set”消息,TCP 就会将该连接的 MSS 调整为指定 IP MTU 减去 TCP 和 IP 报头的大小。这样,在该 TCP 连接上发送的后续包就不会超过最大大小,无需分段即可在该路径上传输。直接丢弃包。直接丢弃需分段但 DF 标记设置为 1 的包的路由器称为 PMTU 黑洞路由器。,使用U D P很容易导致I P分片。我们可以用s o c k程序来增加数据报的长度,直到分片发生。在一个以太网上,数据帧的最大长度是1 5 0 0字节(见图2-1),其中1 4 7 2字节留给数据,假定I P首部为2 0字节,U D P首部为8字节
19、。我们分别以数据长度为1471,1472,1473和1 4 7 4字节运行s o c k程序。最后两次应该发生分片:,演示,ip.flags.mf=1 and ip.proto=17 从”QQ外网传文件”查找分片IP观察分片的长度,bsdi%sock-u-i-nl-w1471 svr4 discardbsdi%sock-u-i-nl-w1472 svr4 discardbsdi%sock-u-i-nl-w1473 svr4 discardbsdi%sock-u-i-nl-w1474 svr4 discard相应的t c p d u m p输出如图11-7所示。,前两份U D P数据报(长度分别
20、为1449、1500字节)能装入以太网数据帧,没有被分片。写1 4 7 3字节的UDP数据,I P数据报长度为1 5 0 1(=1473+20IP头+8UDP头),就必须进行分片。(分片的临界点:1500字节)写1 4 7 4字节产生的数据报长度为1 5 0 2(=1474+20IP头+8UDP头),它也需要进行分片。当I P数据报被分片后,t c p d u m p打印出其他的信息。首先,frag 26304和frag 26313指的是I P首部中标识字段的值。,ip.proto=17 and ip.flags.mf=1 and ip.id=28535,观察:这前n-1个分片的偏移量 0、1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCPIP 协议 11 UDP 用户 数据

链接地址:https://www.31ppt.com/p-6521805.html