1. 網絡地址轉換
網絡地址轉換(Network Address Translation,NAT)誕生于1994年,它的提出是在IPv4地址資源面臨枯竭的背景下,NAT在一定程度上,能夠有效的解決公網地址不足的問題。
NAT的工作原理就是重寫通過路由器的數(shù)據(jù)包的識別信息。 NAT路由器將其管理的內部主機發(fā)送的數(shù)據(jù)包的源IP地址由局部地址變?yōu)槿值刂罚瑥耐獠總鬏斶^來的數(shù)據(jù)包則做相反轉換以分配到合適的內部主機。
2. IP數(shù)據(jù)報
IP協(xié)議提供不可靠無連接的數(shù)據(jù)報傳輸服務,IP層提供的服務是通過IP層對數(shù)據(jù)報的封裝與拆封來實現(xiàn)的。 IP數(shù)據(jù)報是一個與硬件無關的虛擬包,由IP首部和數(shù)據(jù)區(qū)兩大部分,其中IP首部是為了正確傳輸高層數(shù)據(jù)而加的各種控制信息,數(shù)據(jù)區(qū)包括高層協(xié)議需要傳輸?shù)臄?shù)據(jù)。
IP數(shù)據(jù)報的格式如下圖示:
IP數(shù)據(jù)報各字段功能如下:
版本:占據(jù)4bit空間,該字段規(guī)定了數(shù)據(jù)報的IP協(xié)議版本,對于IPv4,該值為4; 對于IPv6,該值為6; 通過查看版本號,路由器能夠確定如何解釋IP數(shù)據(jù)報的其他部分,不同的IP版本使用不同的數(shù)據(jù)報格式
首部長度:占據(jù)4bit空間,用于記錄IP首部的數(shù)據(jù)的長度; 可表示的最大十進制數(shù)是15,但是該字段所表示的數(shù)的單位是字(32bit),即當該字段為15時,首部長度就達到15*4=60字節(jié)
服務類型(TOS):占據(jù)8bit空間,包含在IPv4首部中,以便使不同類型的IP數(shù)據(jù)報能相互區(qū)別開來。 也就是路由器根據(jù)這個字段的值來為數(shù)據(jù)報選擇最合理的路徑
數(shù)據(jù)報長度:占據(jù)16bit空間,是指整個IP數(shù)據(jù)報的長度(首部區(qū)+數(shù)據(jù)區(qū)),以字節(jié)為單位。 由于該字段長度為16位二進制數(shù),因此理論上IP數(shù)據(jù)報最長可達65536個字節(jié)(事實上受物理網絡的限制,要比這個數(shù)值小很多)
標識:占據(jù)16bit空間,用于表示IP層發(fā)送出去的每一份IP數(shù)據(jù)報,在發(fā)送每一份報文,該值加 1,在分片的時候,該字段會被復制到每個分片數(shù)據(jù)報中,在目標接收主機中,使用該字段判斷這些數(shù)據(jù)是否屬于同一個IP數(shù)據(jù)報
標志:占據(jù)3bit空間,第一位保留未用,第二位是不分片標志位,為1表示IP數(shù)據(jù)報在發(fā)送的過程中不允許進行分片,為0表示IP層在必要的時候可以對其進行分片處理; 第三位為更多分片位,為1表示該分片數(shù)據(jù)報不是整個IP數(shù)據(jù)報的最后一個分片,為0表示是整個IP數(shù)據(jù)報的最后一個分片
分片偏移量:占據(jù)13bit空間,表示當前分片所攜帶的數(shù)據(jù)在整個IP數(shù)據(jù)報中的相對偏移位置(以 8 字節(jié)為單位),目標主機必須受到以0偏移量開始到最高偏移量的所有分片,才能將分片進行重裝為一個完整的IP數(shù)據(jù)報,并且重裝IP數(shù)據(jù)報的依據(jù)就是分片的偏移量
生存時間(Time-To-Live,TTL):占據(jù)8bit空間,用來確保數(shù)據(jù)報不會永遠在網絡中循環(huán)。 每當IP數(shù)據(jù)報由一臺路由器處理時,該字段的值減 1,若TTL字段減為0,則該數(shù)據(jù)報必須丟棄,同時會返回一個ICMP差錯報文給源主機,這樣數(shù)據(jù)就不會永遠在網絡中漂流而占據(jù)資源
上層協(xié)議:占據(jù)8bit空間,該字段僅在一個IP數(shù)據(jù)報到達其最終目的地才會有用。 該字段的值指示了IP數(shù)據(jù)報的數(shù)據(jù)部分應交給哪個特定的傳輸層協(xié)議。 例如,值為6表明數(shù)據(jù)部分要交給 TCP,而值為17表明數(shù)據(jù)要交給UDP。 在 IP 數(shù)據(jù)報中的協(xié)議號所起的作用,類似于運輸層報文段中端口號字段所起的作用。 常用網際協(xié)議編號如下圖示:
首部檢驗和:占據(jù)16bit空間,用于協(xié)議頭數(shù)據(jù)有效性的校驗,可以保證IP報頭區(qū)在傳輸時的正確性和完整性。 頭部檢驗和字段是根據(jù)IP協(xié)議頭計算出的檢驗和,它不對頭部后面的數(shù)據(jù)進行計算
源IP地址:占據(jù)32bit空間,表示發(fā)送端IP地址
目標IP地址:占據(jù)32bit空間,表述目的端IP地址
選項字段:占據(jù)0~40個字節(jié),允許IP首部被擴展,首部選項在日常生活中還是比較少使用的,因此在每個IP數(shù)據(jù)報首部中必須存在的字段是不包括選項字段的,這樣能夠節(jié)約開銷,如果與選項字段就添加,沒有就無需理會
數(shù)據(jù)區(qū)域:是IP數(shù)據(jù)報的最后的一個字段,也是最重要的內容,因為有數(shù)據(jù)區(qū)域才會有數(shù)據(jù)報首部的存在,在大多數(shù)情況下,IP數(shù)據(jù)報中的數(shù)據(jù)字段包含要交付給目標IP地址的運輸層(TCP協(xié)議或UDP協(xié)議),當然數(shù)據(jù)區(qū)域也可承載其他類型的報文,如ICMP報文
3. IP協(xié)議抓包分析
使用ping -l size命令對指定IP地址ping指定大小字節(jié)的數(shù)據(jù)。 如下圖示,對IP地址ping了4096個字節(jié)的數(shù)據(jù):
打開wireshark進行抓包,監(jiān)聽IP地址后,在對該IP地址ping 4096字節(jié)的數(shù)據(jù),可以抓取到如下數(shù)據(jù)包:
由于以太網數(shù)據(jù)幀的最大長度為1500個字節(jié),因此4096字節(jié)的數(shù)據(jù)被分為了3個片。 下圖中標志(Flags)字段的第三位為1表示該數(shù)據(jù)報是分片數(shù)據(jù)報,分片偏移量(Fragment offset)為0
第二段數(shù)據(jù)報的標志(Flags)字段的第三位為1表示該數(shù)據(jù)報仍然是分片數(shù)據(jù)報,此時分片偏移量(Fragment offset)為1480
第三段數(shù)據(jù)報的標志(Flags)字段的第三位為0表示是整個IP數(shù)據(jù)報的最后一個分片,此時分片偏移量(Fragment offset)為1480; 三段組成一個完整的ICMP數(shù)據(jù)報
-
以太網
+關注
關注
40文章
5353瀏覽量
170865 -
IP協(xié)議
+關注
關注
3文章
85瀏覽量
21626 -
路由器
+關注
關注
22文章
3699瀏覽量
113449 -
NAT
+關注
關注
0文章
141瀏覽量
16206 -
IPv4
+關注
關注
0文章
141瀏覽量
19846
發(fā)布評論請先 登錄
相關推薦
評論