天天看點

UDP/IP傳輸協定

一、傳輸層最重要的協定就是TCP和UDP。TCP協定複雜,是面向連接配接的傳輸協定且傳輸可靠;而UDP協定簡單,是面向無連接配接的傳輸協定,傳輸速度快但傳輸不可靠。可以将UDP協定看作IP協定暴露在傳輸層的一個接口。

UDP協定同樣以資料報(datagram)的方式進行資料傳輸,而且UDP協定提出了端口(port)的概念。IP協定進行的是IP位址到IP位址的傳輸。但是每台計算機有多個通信通道,并将多個通信通道配置設定給不同的程序(例如QQ、WEB等),這樣一個端口就代表一個通信通道。UDP協定實作了端口到端口的資料傳輸服務,UDP的資料報也是被封裝成“應用層-UDP-IP”的形式進行傳輸的。

二、UDP的資料報:UDP資料包分為頭部(header)和資料(payload)兩部分。UDP是傳輸層的協定,這意味着UDP資料包需要經過IP協定的封裝,然後通過IP協定傳輸到目的電腦。随後UDP資料包在目的電腦上進行拆封,并将資訊送到對應的端口緩存中。應用層則可以根據socket等程式設計接口擷取相關端口的資料包資訊,用于上層的進一步應用。

UDP/IP傳輸協定

如上圖所示為UDP協定資料的頭部資訊,包括源端口(可選的,端口不用置0即可)、目的端口、封包長度、校驗和(其覆寫UDP的頭部資訊和資料資訊,在IPV4中,checksum可以為0;IPV6中必須進行校驗)。其中封包長度用來指定UDP資料報包括資料部分的長度(最小值為8位元組,且包括IP頭等資料)。UDP傳輸協定相比于TCP協定有以下優點:①當使用廣播或多點傳播時,一般使用UDP協定而不是TCP協定。②UDP協定是面向無連接配接的,協定實作簡單且速度較快。

三、IP的資料報:IP協定是不可靠且無連接配接的網絡層傳輸協定。所有的TCP、UDP等資料都是以IP資料報的形式進行傳輸的。IP協定通過IP位址進行目的電腦的識别與連接配接。待傳輸的資料經過UDP頭部資訊的封裝後,還需進一步經過IP頭部資訊的封裝,進而通過IP協定傳輸到目的電腦。

UDP/IP傳輸協定

4位版本資訊:IPv4為0100,IPv6為0110。

4位首部長度:用于辨別首部的長度(機關為4位元組),是以首部的最大長度為15*4位元組=60位元組。

8位服務類型:包括3位優先權字段,4位TOS字段,1位始終為0。

16位總長度(位元組數):整個IP資料報的長度。IP資料報中的資料長度=IP資料報總長度-IP首部長度。

16位辨別:唯一地辨別主機發送的每一份資料。

3位标志:用于IP資料報分片,第1位未用;第二位是DF位,DF=1表明IP不對該資料報分片;第3位是MF位,當對資料報分片時,除了最後一片外,其他每個資料報片都要将此位設1。

13位偏移:用于IP資料報分片。機關為8位元組,表明該片相對于原始資料報開始處的位置,能表示的最大偏移為。

8位生存時間(TTL):設定資料報可以經過的最多路由器的數量,每經過一個路由器,該值就減去1,當該值為0時,資料報被丢棄,通常設定為32或64。

8位協定:表示上層傳輸層所用的協定類型,1表示ICMP協定,2表示IGMP協定,3表示TCP協定,17表示UDP協定。

16位首部校驗和:用于對IP首部的正确性進行校驗,但是并不包括資料部分,這與TCP/UDP的首部校驗和有所差別。

32位源IP位址:發送端的32位IP位址。

32位目的IP位址:接收端的32位IP位址。

選項(如果有):可變長度的可選資訊,若IP首部不包括這個可選部分,則IP首部長度為20位元組。

四、IP首部校驗和的計算:

①發送端對IP首部校驗和的計算步驟:

Ⅰ将IP資料報首部的校驗和字段置為0。

Ⅱ把IP資料報的首部看成16位為機關的數字組成,依次進行二進制反碼求和,然後将求和結果取反。

Ⅲ将得到的2個位元組資料存入首部校驗和位置即可。

②接收端對IP首部校驗和的校驗步驟:

Ⅰ把首部看成16位為機關的數字組成,依次進行二進制反碼求和,然後将求和結果取反。

Ⅱ如果結果為0,則表示校驗和校驗通過,否則校驗失敗。

繼續閱讀