畢業設計之路(4)——IP協議

繼續看概念有關的東西。網絡

IP協議spa

IP協議是TCP/IP協議棧的核心。它提供的服務有:數據傳輸;封裝多種上層協議;提供路由及傳輸信息;信息報交換技術等等。排序

下面具體說明這幾種服務。接口

  • 數據傳輸:IP協議提供一種無鏈接的、不可靠的數據傳輸。它不能保證對方可以成功接收,也不維護數據前、後之間的連續性,也就是說數據報不排序。IP協議與底層的鏈路層協議或物理層無關。在傳送過程當中,IP協議還支持分段和從新彙編,如在一些IP報長度大於MTU的狀況下,能夠經過對IP報分段的方法進行跨媒體傳輸。
  • 封裝多種上層協議:IP協議是上層協議的載體,TCP、UDP、ICMP、IGMP等協議都是以IP報的形式進行傳輸的。每個IP報只能包含一個上層協議,IP報的報頭有一條信息就是上層協議的類型。連個節點之間對具體的數據交換始終使用相同的協議,因此沒必要指出源協議和目標協議。
  • 提供路由及傳輸信息:IP協議是一種路由選擇協議,IP報頭包含傳送信息的資料,如目標IP、源IP等,由於IP地址包含了網絡地址網絡地址和節點地址等信息,因此它能夠很方面地實現數據傳送和路由,另外它還有路由次數的信息——生存時間,用於限制路由次數。
  • 信息報交換技術:在IP報路由的過程當中可能會發生,從節點1到節點2可能有幾個路徑,從1發送到2的數據極可能到達的時間不一,次序卻亂了。這種狀況下,IP路由器結合ICMP協議能夠減小這種問題。IP的MTU與底層的協議有關,如以太網協議下是1500字節,FDDI時使4352字節,幀中繼時是1600字節。IP在進行跨媒體傳輸時能夠進行分段傳輸,就是由大MTU到小MTU網絡傳輸時把大MTU的IP報分紅幾個小MTU的IP報來傳輸。由於分段傳輸很是佔資源,因此在嵌入式應用中基本不會用到,通常的方法是把MTU的值設小,使其在任何網絡接口協議中都能用。
  • IP數據報:IP報是由報頭和負載組成的。報頭的長度範圍爲20~60字節,有效負載範圍爲8~65515字節。
  • IP報頭:如今分爲第4版和第6版,第6版尚未徹底推廣,因此介紹第4版的IP協議。
IP報結構以下:

  • 版本:長度爲4位,表示該IP報的版本號。目前使用的基本都是標準IP版本的第4版。即IPv4。
  • IP報頭長度:長度爲4位,表示IP報頭的大小。數值範圍是0x5~0xF,它是表示4的倍數的值。如最小的IP報頭長度是20,它能夠表示爲0x5。最大的IP報頭長是60,它能夠表示爲0xF。IP報頭的大小始終是4的倍數。
  • 服務類型:長度爲1字節,表示路由器傳遞數據報時所使用的服務質量。服務類型也稱爲TOS,第5~7位表示優先權,不一樣的值表示不一樣的優先權。默認狀況下設爲000;第4位是延時,爲0是普通模式,爲1是低延時模式(就是延時少),通常用於聲音圖形的傳播和一些交互性數據傳播;第3位是吞吐量,爲0是正常模式,爲1是高吞吐量模式(就是數據量大),這時路由器會選擇帶寬高的路徑來傳輸;第2位是可靠性,爲0是正常模式,爲1是高可靠性,在數據堵塞時,路由器先把爲0的數據丟掉,最後把爲1的數據丟掉;第一位是費用性,爲0是正常模式,爲1是低費用,若是是1,路由器就不會選擇衛星線路等昂貴的方式進行傳輸;第0位是保留位,爲0,通常默認狀況下該字段爲0x00.
  • 總長度:長度爲2字節,表示該IP報的總長度(IP報頭+有效負載)。它最大能夠表示爲65535字節,這與IP的MTU有關,如以太網寫一下最大是1500字節,FDDI時最大是4352字節。
  • 標示符:長度爲2字節,表示IP報的號碼,它是一個隨機數,但連續的IP數據報標識符是遞增的,它還能夠用於標識IP數據報的分段。
  • 標識:長度爲3位,它們都與分段有關,因此也叫分段標誌。最高位是保留位,爲0,第2位是分段標誌位,也稱爲DF爲,爲0是分段,爲1是不分段。最低位是更多段標誌位,也稱爲MF位,爲1表示該分段尚未結束,後面的一個IP數據報仍是屬於本分段的一個報,在接收到爲0的IP數據報時表示該分段結束。其實,分段是一個很是耗費資源的過程,應該儘可能避免分段,能夠經過ICMP協議獲取網絡IP的MTU,這樣就能夠限制包發送的大小從而避免分段。
  • 分段偏移量:長度是13位,也是與分段有關,它的值等於分段的數據相對該完整數據幀的起始位置。如一個長的IP數據幀,有效負載是1500字節,可是要分段,分3段,第一段長度是500,它的偏移量爲0,DF=0,MF=1,;第二段長度也是500,它的偏移量就變成了500,DF=0,MF=1;第三段長度仍是500,它的偏移量就變成了1000,DF=0,MF=0.注意這3個分段的標識符是相等的。
  • 生存週期:長度是1字節。也叫TTL,表示IP數據報被丟棄前能夠通過多少個IP路由器,即被轉發的次數。該值沒轉發一次減1,在TTL=0時,IP數據報就會被丟掉。被丟掉後IP路由器會返回一個ICMP的時間超時報。要使IP數據報在internet上傳輸不被丟掉,必須保證TTL大於通過IP路由器的數目。
  • 協議:長度是1字節,表示有效負載內包含上層協議的類型,如TCP是6,UDP是7,ICMP是1,IGMP是2等等。
  • 信息頭校驗和:長度2字節,它僅檢查IP報頭。它把整個IP報頭看做是由多個16位的數據組成(如IP報頭是28字節,等於由14個16的數據組成),並把它們進行二進制反碼求和,結果就是信息頭校驗和。在校驗前先把信息頭校驗和清0,在通過每一個IP路由器時TTL都要減1,因此信息頭檢驗和都要從新計算。
  • 源IP地址:長度4字節,指本節點的IP地址。
  • 目標IP地址:長度4字節,指目標節點的IP地址。
  • IP選項和填充字符。長度是4字節的增長,具體長度不定,通常長度是0.
相關文章
相關標籤/搜索