iso七層模型:
1.1 udp報頭
udp報頭的結構如圖:
udp報頭由4個部分組成,其中兩個是可選的(粉紅背景標出部分):
各16bit的**埠和目的埠用來標記傳送和接受的應用程序。因為udp不需要應答,所以**埠是可選的,如果**埠不用,那麼置為零。
在目的埠後面是長度固定的以位元組為單位的報文長度域,用來指定udp資料報包括資料部分的長度,長度最小值為8byte。
首部剩下地16bit是用來對首部和資料部分一起做校驗和(checksum)的,這部分是可選的,但在實際應用中一般都使用這一功能。
udp和tcp的校驗和都覆蓋到了他們的首部和資料,而之前介紹的ip首部的校驗和只覆蓋了ip首部。
1.2 tcp和udp區別
特徵點 tcp udp
是否連線 面向連線 面向非連線
傳輸可靠性 可靠 會丟包,不可靠
應用場景 傳輸資料量大 傳輸量小
速度 慢 快
由於udp缺乏擁塞控制(congestion control),需要基於網路的機制來減少因失控和高速udp流量負荷而導致的擁塞崩潰效應。換句話說,因為udp傳送者不能夠檢測擁塞,所以像使用包佇列和丟棄技術的路由器這樣的網路基本裝置往往就成為降低udp過大通訊量的有效工具。資料報擁塞控制協議(dccp)設計成通過在諸如流**型別的高速率udp流中,增加主機擁塞控制,來減小這個潛在的問題。
1.3 應用場景
由於缺乏可靠性且屬於非連線導向協議,udp的應用一般必須允許一定量的丟包、出錯和複製貼上。但有些應用,比如tftp,需要可靠性保證,則必須在應用層增加根本的可靠機制。但是絕大多數udp應用都不需要可靠機制,甚至可能因為引入可靠機制而降低效能。流**、即時多**遊戲和ip**(voip)就是典型的udp應用。如果某個應用需要很高的可靠性,那麼可以用傳輸控制協議(即tcp協議)來代替udp。
二、單播、多播、廣播、組播
假設a(all簡寫)代表所有的機器,m(multiple簡寫)代表a中的多個機器,g(group簡寫)代表一組機器,1代表一台機器,那麼:
1 -> 1 就是單播;多播包括組播和廣播,組播、廣播都是多播的一種表現形式。1 -> m 就是多播;
1 -> a 就是廣播;
1 -> g 就是組播;
當m=a時,多播就是廣播;
當m=g時,多播就是組播;
2.1 單播
單播是主機之間「一對一」的通訊模式。傳送方需要指定乙個接收方的ip和埠,只有這個接收方會收到資料報。不會對子網內的其他機器產生影響。
在單播模式下,伺服器針對每個客戶機都要傳送資料流,伺服器流量=客戶機數量×客戶機流量,在客戶機數量大、每個客戶機流量大的應用(如流**)中,伺服器將不堪重負。
2.2 廣播
廣播是主機之間「一對所有」的通訊模式。子網的一台主機作為傳送發廣播一條資訊,該子網中的所有主機都可以接收到該資訊(不管你是否需要該資訊)。
在廣播模式下,由於伺服器不用向每個客戶機單獨傳送資料,所以伺服器流量負載極低。
無法在廣域網上進行廣播,而且廣播訊息不會被路由**,所以只能在乙個子網中進行廣播。因為如果路由器**了廣播資訊,那麼勢必會引起網路癱瘓。這也是為什麼ip協議的設計者故意沒有定義網際網路範圍的廣播機制。
主機傳送廣播訊息時,需要指定目的ip位址為255.255.255.255和接受者的埠號。
有關HTTP協議 TCP和UDP協議整理
1 http協議定義了瀏覽器怎麼向伺服器請求文件,以及怎麼把文件傳送給瀏覽器。從層級的角度看,http協議是面向事務的應用層協議。http報文通常使用tcp連線傳送。2 http使用了面向連線的tcp作為傳輸層協議,保證了資料的可靠傳輸。http協議是無連線的,通訊的雙發在交換http報文之前不需要...
TCP協議 UDP協議
tcp是面向連線的傳輸層的協議,它在程序互動時,會建立乙個鏈結,然後在傳輸資料之後會取消連線,tcp的鏈結是虛連線。每一條tcp連線只能有兩個端點,只能是點對點的資料鏈結,不能進行廣播。tcp提供可靠的按時交付的 無差錯的 不重複的 按序到達的服務 可靠有序 不丟不重 tcp提供全雙工通訊 傳送快取...
UDP協議與UDP通訊
1 udp協議 udp是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。簡單來說,當一台計算機向另外一台計算機傳送資料時,傳送端不會確認接收端是否存在,就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。但是在使用udp協議傳送資料時,由於udp的面向無連線性,...