0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

IP協(xié)議原理詳解

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:嵌入式攻城獅 ? 2023-04-24 11:01 ? 次閱讀

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ù)報

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網
    +關注

    關注

    40

    文章

    5353

    瀏覽量

    170865
  • IP協(xié)議
    +關注

    關注

    3

    文章

    85

    瀏覽量

    21626
  • 路由器
    +關注

    關注

    22

    文章

    3699

    瀏覽量

    113449
  • NAT
    NAT
    +關注

    關注

    0

    文章

    141

    瀏覽量

    16206
  • IPv4
    +關注

    關注

    0

    文章

    141

    瀏覽量

    19846
收藏 人收藏

    評論

    相關推薦

    學嵌入式必看的100本書,你看過哪些?

    驅動程序》  095《現(xiàn)代操作系統(tǒng)》  096《TCP/IP 協(xié)議詳解》  097《嵌入式 C 語言設計模式》  098《Struts In Action》  099《c 程序設計語言(第二
    發(fā)表于 08-17 16:25

    《TCP-IP詳解_卷3_TCP事務協(xié)議,HTTP,NNTP

    《TCP-IP詳解_卷3_TCP事務協(xié)議,HTTP,NNTP和UNIX域協(xié)議
    發(fā)表于 03-24 22:42 ?39次下載

    《TCP-IP詳解_卷1_協(xié)議

    《TCP-IP詳解_卷1_協(xié)議
    發(fā)表于 03-24 22:45 ?50次下載

    TCPv1-TCP-IP協(xié)議詳解-卷1

    TCPv1-TCP-IP詳解-卷1.rar I C M P經常被認為是I P層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。I C M P報文通常被I P層或更高層協(xié)議( T C P或U D P)
    發(fā)表于 03-16 15:12 ?60次下載

    TCPv2-TCP-IP協(xié)議詳解-卷2

    TCPv2-TCP-IP詳解-卷2.rar 第1章概述1.1 引言本章介紹伯克利( B e r k e l e y )聯(lián)網程序代碼。開始我們先看一段源代碼并介紹一些通篇要用的印刷約定。對各種
    發(fā)表于 03-16 15:15 ?99次下載

    tcp ip協(xié)議詳解卷三 下載

    tcp ip協(xié)議詳解卷三:第三卷的內容細節(jié)覆蓋了當今TCP/IP編程人員和網絡管理員必須熟練掌握的四個基本方面:    T/TCP (TCP事務
    發(fā)表于 05-19 11:52 ?437次下載
    tcp <b class='flag-5'>ip</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>詳解</b>卷三 下載

    tcp ip協(xié)議詳解卷二

    tcp ip協(xié)議詳解卷二:第13章IGMP:Internet組管理協(xié)議13.1 引言I G M P在本地網絡上的主機和路由器之間傳達組成員信息。路由器定時向“所有主機組”多播I G M
    發(fā)表于 05-19 12:00 ?542次下載

    tcp ip協(xié)議詳解卷一

    tcp ip協(xié)議詳解卷一:《TCP/IP詳解,卷1:協(xié)議》是一本完整而詳細的TCP/
    發(fā)表于 05-19 12:02 ?712次下載

    tcp ip協(xié)議_什么是tcp ip協(xié)議

    什么是tcp ip協(xié)議,tcp ip協(xié)議詳解,深刻講述了tcp ip
    發(fā)表于 05-14 16:29 ?5989次閱讀
    tcp <b class='flag-5'>ip</b><b class='flag-5'>協(xié)議</b>_什么是tcp <b class='flag-5'>ip</b><b class='flag-5'>協(xié)議</b>

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

    很多不同的廠家生產各種型號的計算機,它們運行完全不同的操作系統(tǒng),但TCP.IP協(xié)議族允許它們互相進行通信。這一點很讓人感到吃驚,因為它的作用已遠遠超出了起初的設想。T C P
    發(fā)表于 09-24 16:26 ?0次下載
    tcp <b class='flag-5'>ip</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>詳解</b> 中文版PDF

    TCP/IP協(xié)議詳解

    發(fā)表于 06-18 14:13 ?0次下載

    TCP-IP詳解卷2_ARP:地址解析協(xié)議

    TCP-IP詳解卷2 ARP:地址解析協(xié)議,學習TCP很好的資料。歡迎下載。
    發(fā)表于 05-09 14:13 ?0次下載

    IP:網級協(xié)議

    TCP-IP詳解卷2 IP:網級協(xié)議,學習TCP很好的資料。歡迎下載。
    發(fā)表于 05-09 14:33 ?0次下載

    TCP和IP協(xié)議詳解

    此文檔詳細講述了TCP-IP協(xié)議內容,有想了解的可以看看,豐富自己的知識。
    發(fā)表于 07-13 14:25 ?4次下載

    LwIP協(xié)議棧源碼詳解—TCP/IP協(xié)議的實現(xiàn)

    電子發(fā)燒友網站提供《LwIP協(xié)議棧源碼詳解—TCP/IP協(xié)議的實現(xiàn).pdf》資料免費下載
    發(fā)表于 07-03 11:22 ?3次下載