1.相關概念
udp資料報產生,上層應用產生資料,但是這與真正傳送的ip資料報數量並沒有什麼聯絡,並且udp報文並不是一種可靠的協議
我們必須關注ip資料報的長度,如果超過mtu(在鏈路層的一種限制),則應該進行分片
2udp報文
16位源埠號(傳送程序)|16位目的埠號(接受程序)|
16位udp長度(指的是udp資料報首部和資料的長度)|
16位檢驗和(計算包括偽首部-><32位源ip位址,32位目的ip位址,4位0,八位協議,16位udp長度》,如果校驗和為0,則傳送全1,如果傳送的是0,則證明沒有開啟udp,校驗和採用ip資料保一樣的校驗方式)|
資料(可以是奇數的資料,但是如果是奇數的資料,則在校驗和的時候,應該填充位元組)
注意:現在的udp校驗功能一般是開啟的
典型的udp資料報tcp/ip詳解p110頁
bsdi.1108 (埠)> svr4.discard:udp 1024
2:ip分片
ip資料報超過了mtu,必須進行分片,列如在乙太網中,mtu通常是1500
舉例bsdi.1116 > svr4.discard:udp 1473(frag 26304:1480@0+)
bsdi.1116>svr4.discard:(frag 26304:1@1480)
udp,即使用的是udp協議,1473說明原來資料報的長度,因為mtu=1500,所以去掉ip首部,剩餘1480,去掉udp首部,剩餘1472,所以超出乙個位元組需要進行分片
icmp:internet控制報文協議 ping 檢視icmp目的不可達差錯(需要分片)
3:應用程式採用mtu發現機制(應用程式使用udp協議)
在傳送udp的時候其實是最好不要分片的,因為分片會增加消耗,如果沒有進行分片,則在遇到mtu較小的條件下,就會傳送會icmp目的段不可達差錯報文,如果路由器支援返回下一跳mtu,則直接可以利用此mtu如果沒有,則猜測乙個,進行傳送,採用mtu發現機制的udp會定期設定df(不准分片標誌),以確定mtu是否發生變化。
4:udp和arp之間的互動
列如有 bsdi % sock -u -i -n1 -w8192 svr4 discard
因為因為分成了六個報文,所以傳送了六個arp請求報文,但是在收到arp應答報文的時候,只傳送了乙份
udp報文,這份udp報文是分片之後最後的乙份,,返回7個arp應答,不需要理會,在收到udp報文的時候,不管哪一段,接收端都應該啟動乙個定時器,如果定時器超時,還沒有收到其他的
udp分片報文,則發揮icmp組裝超時報文(如果有這個功能的話)
5:udp伺服器的設計
udp伺服器採用輸入佇列方式處理接收到的資料,在這種方法中,會出現資料溢位,溢位的資料會進行丟棄
udp伺服器可以限制本地ip,限制遠端ip位址
來自為知筆記(wiz)
運輸層2 使用者資料報協議UDP
寫在前面 本文章是針對 計算機網路第七版 的學習筆記 運輸層1 運輸層協議概述 運輸層2 使用者資料報協議udp 運輸層3 傳輸控制協議tcp概述 運輸層4 tcp可靠運輸的工作原理 運輸層5 tcp報文段的首部格式 運輸層6 tcp可靠傳輸的實現 運輸層7 tcp的流量控制和擁塞控制 運輸層8 t...
TCP IP UDP使用者資料報協議 運輸層
快速導航 udp在tcp ip中的位置?使用者資料報的格式?udp協議對資料進行封裝和解封?佇列與埠實現?復用與分用?udp的一些特點?udp輸入佇列?輸入模組偽 欣賞?user datagram protocol udp在tcp ip中的位置?使用者資料報的格式?源埠號有16位長,埠可從0到655...
使用者資料報協議 UDP
udp 簡述 udp只在ip 的資料報服務之上增加了很少一點的功能,即埠的功能和差錯檢測的功能。udp 的主要特點 udp是無連線的 即傳送資料之前不需要建立連線。udp使用盡最大努力交付 即不保證可靠交付,同時也不使用擁塞控制。udp沒有擁塞控制,很適合多 通訊的要求。udp是面向報文的 udp ...