udp是乙個簡單的面向資料報的傳輸層協議,產生的資料報封裝成ip報之後經過網路層,資料鏈路層層層傳遞
udp是資料報不是流,所以不會像tcp那樣有分包的概念,不管資料報是怎麼樣的就直接傳送出去。所以才會產生ip分片,而tcp會進行流量控制,會分包組合,所以一般不會導致很多的ip分片產生
udp不提供可靠性,直接發出去也不會再去保留,只能算是盡力交付
查詢類:dns等 要求就是快快快 並行查詢要快
資料和傳輸 tftp(巨慢,因為要應用層這邊做確認資料)
嵌入式無盤工作站 因為沒有那麼大地方存資料快取,所以udp傳送出去就刪掉資料
覆蓋udp的頭部以及udp的資料。與此不同的是,ip首部的校驗和,只覆蓋ip頭部
udp資料可以出現奇數,但是由於校驗和都是16bit位元組相加的所以需要補上一些0在後面,只為了校驗,不會傳輸過去
ip首先會與mtu資料長度進行比較
如果需要分片,分片可能會出現在主機或者是路由器,對於協議本身來說網路層的分片是透明的。
udp的資料報結構裡面是由表示分片與否的標誌位的
分片應該是資料量(不包含頭部)小於mtu並且為8的整數倍
回顯資料前後的資料報大小必須是一致的,而且惡臭設定df為。echo-replay其實也會複製相應的設定。乙個連線的暢通要保證來回都是通的,有的時候網路不通其實不是去的時候不通而是,回來的時候沒用通。
如果想要實現不分片,就需要將資料報限制為路徑上最小的mtu(路徑mtu)
可以使用tracetoute來檢視路徑mtu,就是逐漸減少直到通過所有的路由裝置,不斷去測試得到最小的路徑mtu
vpn這種虛擬的連線方式的mtu其實會小於路由器實際的mtu,因為乙個vpn的資料報是要在前面加上乙個vpn的頭部,所以還會占用一部分的空間。
假設我們需要傳送乙個很大很大的包,這個包會分成六片傳送過來。但是發現底層的mac位址還沒有找到,所以還會傳送arp請求,每乙個片傳送乙個arp請求,就是六個arp的請求。但是當arp解析之後只會將最後乙個分片發過來。
除非接收到第乙個資料報分片,不然是不會出發icmp的報文的。
ip資料報的最大長度為65535但是實際上卻沒有這麼大,主要有三個原因
程式介面的限制,socket api設定了接受與傳送快取的大小。
來自於核心對tcp ip協議族的實現過程
與源端和目的端的實現有關
ip可以傳送特定長度的資料報,但是不意味著接收應用程式都可以接收這些資料,若是接收的資料大小大於應用程式的限制大小,後果取決於不同的api介面的實現
由於路由器快取快滿了,希望傳送端那邊減小傳送速度,但是一般來說udp會忽略源站抑制資訊,而tcp則更傾向於希望收到這個包
廣播和多播只有udp可以實現,將報文傳送給多個接收者們。
乙個主機要向網上所有其他的主機傳送廣播幀
網絡卡有兩個模式
普通模式:接收屬於自己的包,單播,多播、廣播都可以
混合模式:為了抓包而設計的模式:抓寶時,不管是否為自己的包都統統抓過來
物理層
網絡卡校驗資料對不上校驗和直接丟棄
裝置驅動程式
幀型別中必須要指定使用的協議,ip,arp等等
進行多播過濾來檢查是否資料多播組 (不在組內,多播包就此停止,但是廣播包此時還是不知道)
網路層走ip協議
udp協議層
收到ip傳送過來的資料還需要檢查埠號並且檢查什麼程式正在監聽這個埠,之後如果沒有的話就會丟棄,入股有的華就會交付。
廣播的包不僅發的範圍廣,而且每一次判斷都要走到傳輸層才可以知道是否是廣播的物件,所以解包的層數就多了很多。
UDP協議簡介
伺服器模式的網路應用都需要使用udp協議。udp協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天,udp仍然不失為一項非常實用和可行的網路傳輸層協議。與我們所熟知的tcp 傳輸控制協議 協議一樣,udp協議直接位於ip 網際協議 協議的頂層。根據osi 開...
UDP協議簡介
與我們所熟知的tcp 傳輸控制協議 協議一樣,udp協議直接位於ip 網際協議 協議的頂層。根據osi 開放系統互連 參考模型,udp和tcp都屬於傳輸層協議。udp協議的主要作用是將網路資料流量壓縮成資料報的形式。乙個典型的資料報就是乙個二進位制資料的傳輸單位。每乙個資料報的前8個位元組用來包含報...
UDP協議簡介
與我們所熟知的tcp 傳輸控制協議 協議一樣,udp協議直接位於ip 網際協議 協議的頂層。根據osi 開放系統互連 參考模型,udp和tcp都屬於傳輸層協議。udp協議的主要作用是將網路資料流量壓縮成資料報的形式。乙個典型的資料報就是乙個二進位制資料的傳輸單位。每乙個資料報的前8個位元組用來包含報...