TCP/IP協議詳解筆記——IP協議


簡介

TCP/IP協議族中最核心的協議,提供不可靠、無連接的數據報傳輸服務。

  • 不可靠:不能保證IP數據報能成功送達。
  • 無連接:並不維護后續數據報的狀態信息,每個數據報的處理都是相互獨立。數據報可能不會按照發送順序接收。同一站點向另一站點發送的多個數據報可能經過不同的路由到達。

幀格式

IP數據報格式如下。

 IP幀格式

  • 版本:IP協議版本號,目前為4。故稱為IPv4.
  • 首部長度:以4字節為單位。最小值為5,不包含可選字段的IP首部大小為20字節。最大值為15IP首部最大長度為60字節
  • 服務類型(TOS)3bit優先權(已被忽略)4bitTOS字段,1bit未用(0)4bitTOS分別為最小時延、最大吞吐量、最高可靠性、最小費用。4bit中只能置其中一個為1。全零時表示一般服務。現在大多數TCP/IP實現都不支持TOS特性,但是無線中QoS有用到該字段
  • 總長度:整個IP數據報的長度,字節為單位。16bit,可知IP數據報最大長度為65535字節。
  • 標識符:唯一標示一份IP數據報。通常值遞增。
  • 標志位:
  • 片偏移:
  • TTLtime to live,生存時間。設置了數據報可以經過的最多路由器數。由源主機設置,每經過一個路由器,該值減一,當值為0時,被丟棄。並發送ICMP報文通知源主機。
  • 協議:標示基於IP的協議。ICMP1IGMP2TCP6UDP17
  • 首部校驗和:根據IP首部計算的校驗和,不對首部后面的數據進行計算。先置檢驗和為0,按照16bit進行二進制反碼求和,結果存放於檢驗和字段中。
  • 源IP地址
  • 目的IP地址
  • 可選字段:

安全和處理限制(用於軍事領域,詳見RFC 1108

記錄路徑(讓每個路由器都記下它的IP地址)

時間戳(讓每個路由器都記下它的IP地址和時間)

寬松的源站選錄(為數據報指定一系列必須經過的IP地址)

嚴格的源站選錄(只能經過指定的這些地址)

可選字段必須是32bit的整數倍,必要時需要插入0進行填充,因為IP首部始終是32bit的整數倍(這是首部長度字段要求的)

IP路由選擇

對於主機,如果目的主機和源主機直接相連,或者處於同一個網絡中,IP數據報就直接發送到目的主機。否則,主機將數據報發送給默認的路由器,由路由器來轉發包。

IP層可以配置成路由器的功能,也可以配置成主機功能。區別是,主機不轉發數據報,而路由器需要轉發包。

IP層在內存中都有一個路由表,當收到數據報進行發送時,都要搜索該表。

路由表每項包含的信息:

  • 目的IP地址。可以是主機地址,也可以是網絡地址,由下述的標志來標示。
  • 下一跳路由器的IP地址,或者是直接連接的接口。
  • 標志。一個標志標示目的IP是網路地址還是主機地址,另一個標志指示下一站路由器是否為真正的下一站路由器,還是一個直連的接口。
  • 為數據報的傳輸指定一個網絡接口。

IP路由選擇主要完成下面的功能:

1) 搜索路由表,尋找與目的IP完全匹配的條目。如果找到,則把報文發給下一站路由或者直連接口(取決於標志字段的值)

2) 搜索路由表,尋找與目的網絡號匹配的條目。找到的處理同上。這種搜索網絡的匹配方法必須考慮可能的子網掩碼。

3) 搜索路由表,尋找標為“默認(default)”的條目。如果找到,處理同上。

如果上述都沒成功,則丟棄該包,並返回主機不可達或者網絡不可達的錯誤。

數據包在傳輸過程中,經過不同的鏈路層或不同的網絡會構造不同的鏈路層首部,但是IP部分不會更改(忽略路由器的NAT功能)。鏈路層的目的地址(如果有的話),始終是下一站的鏈路層地址。

子網尋址

最早:IP地址 網絡號 主機號

子網編址:IP地址 網絡號 子網號 主機號

子網對於子網以外的路由器都是透明的,對於子網內部的路由器不透明。

RFC 1009允許含有子網的一個網絡使用多個子網掩碼。

IP地址編址方案:將IP地址划分為ABCDE五類,其中ABC為基本類,DE類作為多播和保留使用。

網絡類別

最大網絡數

IP地址范圍

最大主機數

私有IP地址范圍

A

1262^7-2)

1.0.0.0--126.255.255.255

16777214

10.0.0.0--10.255.255.255

B

16384(2^14)

128.0.0.0--191.255.255.255

65534

172.16.0.0--172.31.255.255

C

2097152(2^21)

192.0.0.0--223.255.255.255

254

192.168.0.0--192.168.255.255

 

內部私有地址:

A類 10.0.0.0--10.255.255.255

B類 172.16.0.0--172.31.255.255

C類 192.168.0.0--192.168.255.255

特殊的IP地址:

0表示所有的比特為0-1表示所有的比特位全為1netidsubnetidhostid分別表示不為全0或全1的對應字段。子網號欄為空表示該地址沒有進行子網划分。

特殊IP地址

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM