UDP数据协议报学习

《UDP数据协议报学习》由会员分享,可在线阅读,更多相关《UDP数据协议报学习(17页珍藏版)》请在文档大全上搜索。
1、UDP协议第二组张显帅需要解决的问题:1.掌握UDP首部字段、及IP分片过程2.掌握用Traceroute来确定路径MTU及采用UDP进行路径MTU发现3.掌握UDP协议的特性用户数据报协议: 用户数据报协议 (User Datagram Protocol, UDP)是一个简单的面向无连接的,不可靠的数据报的传输层协议。 在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。由于缺
2、乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制UDP封装:源端口(源端口(Source Port)目的端口(目的端口(Destination Port)长度(Length)校验和(Checksum)数据(Data)IP头头UDP头头载荷数据载荷数据UDP数据报IP包UDP头格式(1)源端口:用于标识数据报的源端进程,字段长度为16比特,最大支持64 k个端口号。源端进程不需要目的端返回数据报,源端口字段可设为0(2)目的端口:目的端进程所使用的端口,字段长度为16比特,最大支持64 k个端口号。(3)长度:16位的长度字段,表明包括UDP头和数据在内的整个UDP数据报的长度。(4)校
3、验和:16位的错误检查字段,基于部分IP头信息,UDP头和载荷数据的内容计算得到,用于检测传输过程中出现的错误。UDP协议的特性:特点:1、UDP是无连接的。UDP在传输数据前不与对方建立连接,在传输数据前发送方和接收方程序需自行相互交换信息使双方同步。2、UDP不对收到的数据进行排序。在UDP报文的首部中并没有关于数据顺序的信息,由于IP报文并不一定按照顺序到达,接收端也无从排序。3、UDP对接收到的数据报不发送确认,发送端不知道数据是否被正确接收,也不会重发数据。4、UDP传输数据较快,系统开销少5、UDP没有拥塞控制机制。UDP与TCP对比:功能项TCPUDP连接服务类型面向连接面向无连
4、接维护连接状态维持端到端的连接状态不维持连接状态对应用层数据的封装对应用层数据进行分段和封装,用端口号标识应用程序对来自应用层数据直接封装为数据报,用端口表示应用程序数据传输通过序列号和应答机制保证可靠传输不确保可靠传输流量控制使用滑动窗口机制控制流量无流量控制机制UDP分片:总长8192的UDP数据报IP首部 Data(8176)20IP首部 Data(1472)1500有一个以太网和一份8192字节的UDP数据报,那么需要分成多少个数据报片?UDP首部(8)UDP首部820IP首部 Data(1480)150020IP首部 Data(784)804205个注:以太网MTU=1500第一片偏
5、移值是 0第一片偏移值是 1500路径MTU:如果两台主要之间的通信要通过不同的多个网络,那么每个网络的链路层就可能有不同的MTU。这里不同的网络指的是,例如:以太网,令牌环网,FDDI(光纤分布式数据接口)这类的网络 。而这个时候进行数据的通信时,重要的不是两台主机的所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU,被称作路径MTU,也被写作PMTU。它等于路径上每一跳的MTU之中的最小值。两台主机之间的路径MTU不一定是个常数,它取决于当时所选择的路由。而选路不一定是对称的,也就是从A到B的路径路由和从B到A的路径路由不一定相同,因此路径MTU在两个方向上不一定是一致的。Tra
6、ceroute来确定路径MTU:大多数的系统不支持路径MTU发现功能,但可以很容易地修改traceroute程序,用它来确定路径MTU。要做的是发送分组,并设置“不分片”标志比特。发送的第一个分组的长度正好与出口MTU相等,每次收到ICMP“不能分片”差错时就减小分组的长度。 如果路由器发送的ICMP差错报文是新格式,包含出口的MTU,那么就用该MTU值来发送,否则就用下一个最小的MTU值来发送。 MTU值的个数是有限的,因此在我们的程序中有一些由近似值构成的表,取下一个最小MTU值来发送。UDP进行路径MTU发现:在此例中solaris向slip发送650字节的udp包由于slip主机位于M