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

tcp ip協(xié)議詳解卷二
tcp ip協(xié)議_什么是tcp ip協(xié)議

tcp ip協(xié)議詳解 中文版PDF

評論