1. 首页
  2. 文档大全

UDP数据协议报学习

上传者:8**** 2022-05-26 05:09:58上传 PPTX文件 435.97KB
UDP数据协议报学习_第1页 UDP数据协议报学习_第2页 UDP数据协议报学习_第3页

《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

7、TU为296的SLIP链路后,因此,任何长于268字节(296208)且“不分片”比特置为1的UDP数据都会使bsdi路由器产生ICMP“不能分片”差错报文。UDP进行路径MTU发现:运行这个例子时,将bsdi设置成在ICMP“不能分片”差错中,不返回下一跳MTU信息。就是说bsdi产生一份老格式的icmp报文。 在发送的第一个数据报中将DF比特置1(第1行) 第二行bsdi路由器向源端返回一个icmp包,注意这里的mtu是0。 源端solaris现在已经知道了发往该目的地址的数据报不能将DF比特置1,因此,IP进而将数据报在源站主机上进行分片,由于ICMP“不能分片”报文并没有指出下一跳的M

8、TU,因此,看来IP猜测MTU为576就行了。第一次分片(第5行)包含544字节的UDP数据、8字节UDP首部以及20字节IP首部,因此,总IP数据报长度是 572字节。第2次分片(第6行)包含剩余的106字节UDP数据和20字节IP首部。 不幸的是,第7行的下一个数据报将其DF比特置1,因此bsdi将它丢弃并返回ICMP差错。 UDP进行路径MTU发现:这是因为发生了IP定时器超时,通知IP查看是不是因为路径MTU增大了而将DF比特再一次置1。 我们可以从第19行和20行看出这个结果。将第7行与19行进行比较,可以看出IP每过30秒就将DF比特置1,以查看路径MTU是否增大了。 这个30秒的

9、定时器值看来太短。RFC1191建议其值取10分钟。 solaris的IP层所假设的最大数据报长度(576字节)是不正确的。在图中,我们看到,实际的MTU值是296字节。这意味着经solaris分片的数据报还将被bsdi分片。UDP进行路径MTU发现:本图给出了在目的主机(slip)上所收集到的tcpdump对于第一个到达数据报的输出结果。可以看出在slip主机上的收到的包是被bsdi又重新分了片的 第1行是272 第2行是272 第3行是8 第4行是106 滑动窗口协议: 滑动窗口是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,一

10、起发送数据,导致中间结点阻塞掉包,谁也发不了数据。所以就有了滑动窗口机制来解决此问题。Host AHost BDATA(seq=1,len=1024)DATA(seq=1025,len=1024)DATA(seq=2049,len=1024)DATA(seq=3073,len=1024)ACK(ack=4079,win=2048)Host AHost BDATA(seq=4097,len=1024)DATA(seq=5121,len=1024)DATA(seq=7169,len=1024)DATA(seq=6145,len=1024)ACK(ack=6145,win=2048)要求减小窗口滑动

11、窗口协议:1、假定初始发送窗口大小为4096,每个段的数据为1024B,则主机A每次发送4个段给主机B;2、主机B正确接收到这些数据后,以确认号4097进行确认;3、主机B由于缓存不足或处理能力有限,认为发送速度过快期望窗口降低一半;4、主机B在回送的确认中将窗口尺寸降低到2048,要求主机A每次只发送2048B;5、主机A收到确认后,按照要求降低发送窗口尺寸,一次只发两段,降低发送速度。滑动窗口协议是用来改善吞吐量的一种技术,即容许发送方在接收任何应答之前传送附加的包。接收方告诉发送方在某一时刻能送多少包(称窗口尺寸),若接收方要求窗口大小为0,则代表接收方已接收全部数据,或接收方应用程序没

12、有时间读取数据,要求暂停发送,可滑动窗口协议解决了端到端流量控制的问题,但无法干预网络。UDP需要滑动窗口协议吗?UDP是不可靠的,本身缺乏拥塞控制机制,如果想实现可靠文件传输,需要加入额外的机制来确保可靠。优点:1、实现拥塞控制,避免丢包2、实现可靠文件传输缺点:1、加大系统开销,提高CPU占用率2、延迟大,由于需要等待确认和超时面向连接和无连接协议:面向连接的服务:就是通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程。TCP协议就是一种面向连接服务的协议,电话系统是一个面向连接的模式。无连接的服务:就是通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线路上,由系统选定路线进行传输。IP、UDP协议就是一种无连接协议,邮政系统是一个无连接的模式。面向连接无连接优点实时通信 / 可靠信息流 / 信息回复确认不占用通信信道缺点占用通信道非实时通信 / 信息流可能丢失 / 信息无回复确认


文档来源:https://www.renrendoc.com/paper/212419861.html

文档标签:

下载地址