arp協議用來尋找目標主機的ethennet網絡卡和mac位址,ip用來承載要傳送的訊息。
1.ip協議
ip協議是tcp/ip協議的核心,所有的tcp,udp,imcp,igcp的資料都以ip資料格式傳輸。
要注意的是ip協議沒有提供一種資料未傳達以後的處理機制,這被認為是上層協議--tcp或udp要做的事情所有的tcp,udp,imcp,igcp的資料都以ip資料格式傳輸。
1.1 ip協議頭
重點關注的是那八位的ttl欄位,還記得這個欄位是做什麼的麼?這個字段規定該資料報在穿過多少個路由之後才會被拋棄(這裡就體現出來ip協議包的不可靠性,它不保證資料被送達)。
某個ip資料報每穿過乙個路由器,該資料報的ttl數值就會減少1,當該資料報的ttl成為零,它就會被自動拋棄。這個欄位的最大值也就是255,也就是說乙個協議包也就在路由器裡面穿行255次就會被拋棄了,根據系統的不同,這個數字也不一樣,一般是32或者是64,tracerouter這個工具就是用這個原理工作的,tranceroute的-m選項要求最大值是255,也就是因為這個ttl在ip協議裡面只有8bit。
1.2 ip路由選擇
當乙個ip資料報準備好了的時候,ip資料報(或者說是路由器)是如何將資料報送到目的地的呢?它是怎麼選擇乙個合適的路徑來」送貨」的呢?最特殊的情況是目的主機和主機直連,那麼主機根本不用尋找路由,直接把資料傳遞過去就可以了。至於是怎麼直接傳遞的,這就要靠arp協議了。
稍微一般一點的情況是,主機通過若干個路由器(router)和目的主機連線。那麼路由器就要通過ip包的資訊來為ip包尋找到乙個合適的目標來進行傳遞,比如合適的主機,或者合適的路由。路由器或者主機將會用如下的方式來處理某乙個ip資料報:
如果ip資料報的ttl(生命週期)已到,則該ip資料報就被拋棄。總結:這再一次證明了,ip包是不可靠的。因為它不保證送達。搜尋路由表,優先搜尋匹配主機,如果能找到和ip位址完全一致的目標主機,則將該包發向目標主機
搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要「子網掩碼」的協助。如果找到路由器,則將該包發向路由器。
搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號路由器,如果找到路由器,則將該包發向路由器。
搜尋路由表,如果以上都失敗了,就搜尋預設路由,如果預設路由存在,則發包
如果都失敗了,就丟掉這個包。
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快取資料準備好資料鏈路層的的資料報傳送工作。
TCP IP協議 IP協議
ip協議層 在傳輸層的下邊,鏈路層的上邊。ip層封裝後稱為資料報 傳輸層叫資料段,鏈路層叫資料幀。值得注意的是,不是所有的乙太網資料幀都是ip資料報,至少乙太網還要使用arp協議。不是所有的ip資料報都是udp或tcp資料,因為比如icmp igmp也用ip傳送資料 ip協議在網路中當然非常重要了,...
TCP IP協議學習
tcp ip參考模型 是乙個抽象的分層模型,這個模型中,所有的 tcp ip 系列網路協議 都被歸類到4個抽象的 層 中。每一抽象層建立在低一層提供的服務上,並且為高一層提供服務。完成一些特定的任務需要眾多的協議協同工作,這些協議分布在參考模型的不同層中的,因此有時稱它們為乙個 協議棧。最上面的是應...
TCP IP協議學習
tcp提供一種面向連線的 可靠的位元組流服務。tcp ip一般被認為是四層協議 應用層 處理特定的應用程式細節。傳輸層 主機間的應用程式提供端到端的通訊,包括tcp 傳輸控制協議 和udp 使用者資料報協議 網路層 網路層的協議包括ip協議 icmp協議 internet網際網路控制報文協議 igm...