TCP/IP詳解學習筆記(3)-IP協議,ARP協議,RARP協議

來源:互聯網
上載者:User

標籤:style   blog   http   color   ar   strong   資料   div   art   

轉http://blog.csdn.net/goodboy1881/article/details/668556

——————————————————————————————————————————————————————

把這三個協議放到一起學習是因為這三個協議處於同一層,ARP協議用來找到目標主機的Ethernet網卡Mac地址,IP則承載要發送的訊息。資料連結層可以從ARP得到資料的傳送資訊,而從IP得到要傳輸的資料資訊。

1.IP協議

IP協議是TCP/IP協議的核心,所有的TCP,UDP,IMCP,IGCP的資料都以IP資料格式傳輸。要注意的是,IP不是可靠的協議,這是說,IP協議沒有提供一種資料未傳達以後的處理機制--這被認為是上層協議--TCP或UDP要做的事情。所以這也就出現了TCP是一個可靠的協議,而UDP就沒有那麼可靠的區別。這是後話,暫且不提

1.1.IP協議頭

挨個解釋它是教科書的活計,我感興趣的只是那八位的TTL欄位,還記得這個欄位是做什麼的嗎?這個欄位規定該資料包在穿過多少個路由之後才會被拋棄(這裡就體現出來IP協議包的不可靠性,它不保證資料被送達),某個ip資料包每穿過一個路由器,該資料包的TTL數值就會減少1,當該資料包的TTL成為零,它就會被自動拋棄。這個欄位的最大值也就是255,也就是說一個協議包也就在路由器裡面穿行255次就會被拋棄了,根據系統的不同,這個數字也不一樣,一般是32或者是64,Tracerouter這個工具就是用這個原理工作的,tranceroute的-m選項要求最大值是255,也就是因為這個TTL在IP協議裡面只有8bit。

現在的ip版本號碼是4,所以也稱作IPv4。現在還有IPv6,而且運用也越來越廣泛了。

1.2.IP路由選擇

當一個IP資料包準備好了的時候,IP資料包(或者說是路由器)是如何將資料包送到目的地的呢?它是怎麼選擇一個合適的路徑來"送貨"的呢?

最特殊的情況是目的主機和主機直連,那麼主機根本不用尋找路由,直接把資料傳遞過去就可以了。至於是怎麼直接傳遞的,這就要靠ARP協議了,後面會講到。

稍微一般一點的情況是,主機通過若干個路由器(router)和目的主機串連。那麼路由器就要通過ip包的資訊來為ip包尋找到一個合適的目標來進行傳遞,比如合適的主機,或者合適的路由。路由器或者主機將會用如下的方式來處理某一個IP資料包

  1. 如果IP資料包的TTL(生命週期)以到,則該IP資料包就被拋棄。
  2. 搜尋路由表,優先搜尋匹配主機,如果能找到和IP地址完全一致的目標主機,則將該包發向目標主機
  3. 搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要“子網路遮罩(1.3.)”的協助。如果找到路由器,則將該包發向路由器。
  4. 搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號(第一章有講解)路由器,如果找到路由器,則將該包發向路由器。
  5. 搜尋陸遊表,如果以上都失敗了,就搜尋預設路由,如果預設路由存在,則發包
  6. 如果都失敗了,就丟掉這個包。

這再一次證明了,ip包是不可靠的。因為它不保證送達。

1.3.子網定址

IP地址的定義是網路號+主機號。但是現在所有的主機都要求子網編址,也就是說,把主機號在細分成子網號+主機號。最終一個IP地址就成為 網路編號+子網號+主機號。例如一個B類地址:210.30.109.134。一般情況下,這個IP地址的紅色部分就是網路號,而藍色部分就是子網號,綠色部分就是主機號。至於有多少位代表子網號這個問題上,這沒有一個硬性的規定,取而代之的則是子網路遮罩,校園網相信大多數人都用過,在校園網的設定裡面有一個255.255.255.0的東西,這就是子網路遮罩。子網路遮罩是由32bit的位元字序列,形式為是一連串的1和一連串的0,例如:255.255.255.0(二進位就是11111111.11111111.11111111.00000000)對於剛才的那個B類地址,因為210.30是網路號,那麼後面的109.134就是子網號和主機號的組合,又因為子網路遮罩只有後八bit為0,所以主機號就是IP地址的後八個bit,就是134,而剩下的就是子網號碼--109。

2. ARP協議

還記得資料連結層的乙太網路的協議中,每一個資料包都有一個MAC地址頭嗎?我們知道每一塊乙太網路卡都有一個MAC地址,這個地址是唯一的,那麼IP包是如何知道這個MAC地址的?這就是ARP協議的工作。

ARP(位址解析)協議是一種解析協議,本來主機是完全不知道這個IP對應的是哪個主機的哪個介面,當主機要發送一個IP包的時候,會首先查一下自己的ARP快取(就是一個IP-MAC地址對應表緩衝),如果查詢的IP-MAC值對不存在,那麼主機就向網路發送一個ARP協議廣播包,這個廣播包裡面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機都會查詢自己的IP地址,如果收到廣播包的某一個主機發現自己符合條件,那麼就準備好一個包含自己的MAC地址的ARP包傳送給發送ARP廣播的主機,而廣播主機拿到ARP包後會更新自己的ARP緩衝(就是存放IP-MAC對應表的地方)。發送廣播的主機就會用新的ARP快取資料準備好資料連結層的的資料包發送工作。

一個典型的arp緩衝資訊如下,在任意一個系統裡面用“arp -a”命令:

Interface: 192.168.11.3 --- 0x2
  Internet Address      Physical Address      Type
  192.168.11.1          00-0d-0b-43-a0-2f     dynamic
  192.168.11.2          00-01-4a-03-5b-ea     dynamic

 

 

都會得到這樣的結果。

這樣的快取是有時限的,一般是20分鐘(伯克利系統的衍生系統)。

3.RARP協議(略)

TCP/IP詳解學習筆記(3)-IP協議,ARP協議,RARP協議

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.