【網路協議】IP協議、ARP協議、RARP協議
IP資料包
IP是TCP/IP協議族中最核心的協議,所有的TCP、UDP、ICMP、IGMP資料都以IP資料包的格式傳輸。IP僅提供盡力而為的傳輸服務,如果發生某種錯誤,IP會丟失該資料,然後傳送ICMP訊息給信源端。另外,IP資料包可以不按傳送順序接受。
IP資料包的格式如下:
前20位元組和緊接其後的選項部分是IP資料包的首部,前20個位元組是固定的,選項可有可無。首部的每一行是一個32位字的單位,最高位在左邊,為0bit,最低位在右邊,為31bit。4位元組的32bit值按照以下次序傳輸:首先0-7bit,其次8-15位元,然後16-23bit,最後是24-31bit,這種傳輸次序稱為big endian位元組序(我們在C語言寫位操作的演算法時常用到該詞)。TCP/IP首部中的所有二進位制整數在網路中傳輸時都要求以這種次序,因此它又稱作網路位元組序,其他形式儲存的二進位制資料,如little endian格式,則必須在傳輸資料之前把首部轉化成網路位元組序。
首部長度是指首部佔32bit字的數目,因為4位的最大值為15,因此首部最長為60位元組,也即是說選項部分的最大值為40位元組,不夠4的倍數,要用0填充,使資料部分的起始地址為4的倍數。
總長度指整個IP資料包的長度,包括首部和資料部分,16bit,最長可達65535位元組。儘管理論上可以傳送一個長達65535的IP資料包,但實際上還要考慮網路的最大承載能力等因素,標準的TCP/IP分組大小為576位元組,減去IP首部的20個位元組,TCP首部的20個位元組,路由協議頭的24個位元組,為512位元組,因此主機接受的資料包的資料部分一般不超過512個位元組。(PS:這點看的也不是太懂,網上很多人也有此疑問,謝希仁的計算機網路中寫的一次IP資料包最少576位元組,尼瑪這裡翻譯的是不超過576位元組,先往後看吧,說不定看到後面就豁然開朗了)。
這兩天差不多算是搞明白了,很多基於UDP協議的應用之所以要求UDP的資料部分不超過512個位元組(576-20-20),主要是考慮整個傳輸路徑上的效率,因為鏈路層為X2.5的網路的MTU為576個位元組,這基本也是各種鏈路層網路的最小MTU,大於這個值就不會產生分片,之所以建議不超過這個值應該是考慮到網路承載能力和傳輸效率、每臺主機的接受能力等很多因素的權衡。當然書上也說,576只是建議值,實際上大於它也是可以的,只是這樣在遇到X2.5網路時可能產生分片。暫時是這麼理解的,不知道看到後面會不會有新的收穫。
第十一章中又有說:現在許多但不是所有的廣域網都可以處理大於512位元組的分組。
3個標誌位主要用來標識分片的IP資料包,片位移為分片的資料包的首個位元組偏離整個原始資料包的位置。
IP路由選擇
主機通過路由器和目的主機連線。主機通過IP資料包連線目的主機時,按照如下步驟搜尋(同一網路中的搜尋要經過ARP協議將目的主機的IP地址解析為MAC地址):
- 搜尋路由表,優先搜尋匹配主機,如果能找到和IP地址完全一致的目標主機,則將該包發向目標主機
- 搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要子網掩碼的協助。如果找到路由器,則將該包發向路由器。
- 搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號路由器,如果找到路由器,則將該包發向路由器。
- 搜尋路由表,如果以上都失敗了,就搜尋預設路由,如果預設路由存在,則發包
- 如果都失敗了,就丟掉這個包。
相關文章
- 系列TCP/IP協議-ARP與RARPTCP協議
- ARP(地址解析協議)和RARP(逆地址解析協議)協議
- ARP協議 地址解析協議:IP地址轉換為MAC地址協議Mac
- ARP協議介紹與ARP協議的攻擊手法協議
- ARP 地址解析協議協議
- icmp和arp協議協議
- 網路協議協議
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- 什麼是協議?| 網路協議定義協議
- TCP/IP協議 - 網路層TCP協議
- 網路層協議及ARP攻擊協議
- WireShark——IP協議包分析(Ping分析IP協議包)協議
- tcp/ip協議TCP協議
- 計算網路之MSTP協議與VRRP協議協議VR
- 網路協議 6 - 路由協議:敢問路在何方?協議路由
- 網路協議之:haproxy的Proxy Protocol代理協議協議Protocol
- Raft協議和ZAB協議Raft協議
- Gossip協議也叫Epidemic協議(流行病協議)Go協議IDE
- IP協議&&IP首部協議
- web網路協議Web協議
- 網路管理協議協議
- 網路協議---DNS協議DNS
- 透過原始碼理解Rarp協議原始碼協議
- tcp/ip協議和opc協議對比詳解TCP協議
- 《TCP/IP詳解 卷1:協議》第3章 IP:網際協議TCP協議
- 網路協議之:socket協議詳解之Datagram Socket協議
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- TCP/IP協議族TCP協議
- TCP/IP 協議族TCP協議
- 頁面連結跳轉--指定協議,半協議,無協議協議
- 協議協議
- 通訊協議和網路協議有什麼區別協議
- 網路協議之:socket協議詳解之Unix domain Socket協議AI
- TCP/IP、UDP/IP協議TCPUDP協議
- ARP協議:網路世界的地址翻譯官協議