一文帶你看懂TCP/IP協議 (更新中 現更新至網絡層部分)

相信大家在編程的學習或應用中,對網絡編程都有一定的需求。我們都知道http/https屬於TCP/IP協議,也都用到過get,post等方法,但是想要真正的瞭解這些東西的原理。我認爲TCP/IP協議還是很有必要了解一下的。

TCP/IP協議詳解

在這裏插入圖片描述

序言

隨着計算機技術與網絡技術的不斷髮展與完善。人們對網絡的依賴度越來越高,網絡也不斷滿足着人們對未知世界的渴望與對物質世界的探尋。其實TCP/IP協議在其中就發揮了很大的作用,比如當你在跟遠方的朋友寫電子郵件,:SMTP - 簡單郵件傳輸協議,它會將郵件上傳到SMTP服務器,然後在通過一臺或幾臺服務器的中轉送到目標機器上。使用 IMAP 連接到郵件服務器。POP 協議被郵件程序用來取回郵件服務器上面的郵件。當你瀏覽網頁時邊會用到http協議,當你在網頁瀏覽中輸入敏感信息時,https協議也會成爲你的幫手,而這些協議都屬於TCP/IP協議。

1.1.1什麼是網絡協議

網絡協議是計算機網絡中進行數據交換而建立的規則,標準或者約定的集合。有了這個規範,在數據交換中接收方與發送方便可以遵循相同的協議而進行交換。可以說網絡協議使得可上網的設備能夠相互交換信息。TCP/IP協議就是一種很常見的網絡協議,Internet上的計算機使用該協議。

1.2.1TCP/IP協議(歷史和由來不需要可跳過這一部分)

TCP/IP協議可以說是老生常談了,它不是一個協議而是一個協議族的統稱。起初,這個協議是用於保障國防軍事通信的,即使被敵人攻擊也可以迂迴通信。後來就演變成了TCP/IP協議族。直到1983年成爲了ARPANET網絡中的唯一指定協議。值得一提的是幾個我們常用的協議都是屬於這個協議族的比如TCP,IPP,ICMP,HTTP等協議其實都屬於這個協議族

1.2.2TCP/IP協議層次結構(和各層次功能籠統介紹)

在這裏插入圖片描述
其中TCP/IP模型的應用層對應着OSI參考模型的應用層+表示層+繪畫才能,TCP/IP模型的運輸層對應着OSI參考模型的運輸層,TCP/IP模型的網絡層對應着OSI模型的網絡層,TCP/IP模型的網絡接口層對應着OSI參考模型的數據鏈路層和物理層。
TCP/IP協議中的應用層爲應用程序提供服務並規定通信細節,傳輸層就是兩臺主機間的通信。網際層讓數據能夠在具有不同的結構的子網之間傳遞,自動尋找地址和路由選擇並且會選擇最佳路徑。網絡訪問層提供了與物理網絡連接的接口。

1.3.1詳細介紹網絡接口(訪問“whatever你明白就行”)層

TCP/IP協議中我們的網絡接口層是對應物理層和數據鏈路層的,那麼我們就通過分析物理層與數據鏈路層來學習網絡接口層。

我們的學習採用1.先介紹一下這兩個層然後2.引入網絡體系3.然後融合在一起講解,畢竟協議在網絡體系下才能體現它的價值,不然真的是紙上談兵一樣。相信能對你有所幫助。因爲我也是看了很多TCP/IP介紹的博文了,但是真的很多都知識單純的講解各個層和工作原理,沒有引入到網絡體系中,我認爲這是對學習者不友好的。

物理層是整個開放系統的基礎也是OSI模型的第一層層,它的作用是提供數據通路和可靠環境。這樣說來比較抽象我們把它具象化,對計算機來說網絡適配器就對應物理層。根據網絡適配器我們還可以分成兩類,第一類是網絡適配器比如網卡,第二類是虛擬網絡適配器,如寬帶撥號連接。(這個地方不理解的可以看一下我的另一篇博客介紹了關於網絡的硬件)

https://blog.csdn.net/weixin_45950372/article/details/104628707

數據鏈路層,數據鏈路層是OSI模型的第二層,它在物理層和網絡層之間起了承接的作用,數據傳輸的起始位置就是由它定義的並且通過一些規則來爲數據傳輸提供保障。因爲它既可以定義起始位置又可以對數據傳輸提供保證所以它也經常被劃分爲兩個子層。分別如下:

  • 介質訪問控制(MAC Media Access Control):提供了跟網絡適配器(對計算機來說你可以理解爲物理層)的接口。它還有一個大家都知道名字叫MAC,我們經常會說到MAC地址,也就是說的網卡出廠的時候被廠家固化的硬件地址,除了MAC地址還有一個叫做MAC驅動的東西,它是網絡適配器的驅動程序。||這之前爲介質訪問控制部分後面爲對MAC地址的展開和一些網絡相關的內容。 Mac地址確實是有東西可說的,一會我們還會再詳細的介紹MAC地址。MAC地址這個東西是可以被我們用來探知很多消息的,像是IP地址,主機名…都是可以通過一些網絡工具通過Mac地址查出來的。一談到網絡很多人會想到網絡滲透哈,其實網絡滲透的洪水攻擊也是與我們的MAC地址和以太幀有關的。另外也不要以爲不讓別人看自己的電腦別人就沒法知道你的Mac地址,其實只需要和對方在同一局域網就可以通過一些工具查到對方的Mac地址進而查出IP,主機名,title。
    (洪水攻擊原理這兩句不想看可以不看)通過僞造大量的以太網數據包,填滿交換機的存儲表,使其無法添加新的Mac地址導致交換機不能對新機器查找對應的端口,只能廣播轉發給所有端口。然後所有的主機就都接收到該數據幀了。
    洪水攻擊
  • 邏輯鏈路控制(LLC Logical Link Control):它對經過子網傳遞的幀進行錯誤檢查,並且管理自網上通信設備之間的鏈路。

在網絡體系中介紹網絡接口層

脫離了網絡的通信協議就沒啥意義了…所以我們要綜合網絡體系來具體的展開網絡接口層的知識。

沒有網絡體系的物理層,就是沒有靈魂的物理層。                                                                                                                 —尼古拉斯*趙四

網絡體系定義了物理網絡的構成,和對應的通信協議。{舉個例子有線網絡(比如用雙絞線上網的)和無線網絡(比如無線網卡上網的.)}網絡體系可以分成網絡構成和通信方式兩大方面,這兩大方面又可以分成四個方面。

  • 數據幀格式:定義了數據傳輸的格式。

  • 訪問方法:定義了計算機使用傳輸介質(比如雙絞線,光纖就屬於傳輸介質)的規則。

  • 佈線類型:定義了網絡適配器和其他網絡設備的連接方式。

  • 佈線規則: 定義網絡適配器和網絡設備連接規範。比如接口類型。
    由於我們生活中對網絡接口設備(比如:雙絞線,光纖,無線網卡,有線網卡)的需求不一樣,所以出現了數據傳輸過程中使用不同的終端設備的情況,在物理層中識別的網絡接口設備當然也是不同的,所以網絡體系又可以分爲四大類型(前面是功能的四大方面這個是本身的四大類型):
    。。。

  • IEEE 802.3(以太網):大多數家庭啊還有很多企業都用的這個,其實就是基於線纜的網絡。(比如雙絞線,光纖)

  • IEEE 802.11(無線網絡) 普遍應用於很多公共場合,商鋪,家庭,企業的無線網絡技術.比如WIFI相信大家都很熟悉就不介紹了

  • IEEE 802.16(WiMAX) 用於移動通信長距離無線連接技術,它是一項無線城域網(WMAN)技術,是針對微波和毫米波頻段提出的一種新的空中接口標準。

  • 點到點協議(PPP) 用Modem通過電話線進行連接的技術,比如我們經常能在網絡上看到的撥號連接。點到點協議PPP是一個被廣泛使用的廣域網協議,跨過同步和異步電路實現路由器到路由器(router-to-router)和主機到網絡(host-to-network)的點到點連接。PPP協議提供了一整套方案來解決鏈路建立、維護、拆除、上層協議協商、認證等問題。它包含三個協議,有興趣的朋友可以自己去看看。

綜合網絡體系與網絡接口層

講到這裏,大家應該是對網絡體系有一定的概念了,那麼我們就把之前講的網絡接口層的知識融入進去,你應該可以更好的理解網絡體系下的網絡接口層,下面我們在開始討論物理地址(MAC地址),物理地址其實就是用來標記網絡中的設備的標識符,我感覺着可以這麼給你舉一個不太恰當的例子,假如你現在是一個數據包在一個叫“中國”的局域網,你想從一個叫“鄭州”的計算機用一種叫做飛機的通訊運輸方式去往一臺名字叫“北京“的計算機當然 你還獲得了一個記載了這兩臺計算機名字(特徵)的機票。那麼鄭州與北京其實就分別是發送方的物理地址和接收方的物理地址。而你作爲一個數據包想要傳輸過去就需要機票,機票其實就指的是這雙方的物理地址。理解了這個以後,我們來總結一下物理地址的特點Tips 物理地址就是MAC地址
1.通信雙方的
物理地址應在同一局域網中。
2,物理地址是用來標記網絡中的設備的。
3.傳輸的數據包都會包含發送方和接收方的物理地址
4.物理地址(MAC地址)具有唯一性,只有這樣才能把數據包發送出去,也因此MAC地址都是有生產廠家生產時固化的網絡硬件是硬件預留的地址。
下面咱們來講一下MAC地址的格式,因爲MAC地址都是要按照一定規則製造的,所以MAC地址也擁有自己的格式,它採用
十六進制數表示,六個字節(48位(長度自然是48bit)
整個地址可以看做兩段,第一段是前24位。第二段是後24位。 分成了兩段意義自然是不同的。

  • 前24位成爲組織唯一標識符(OUI ,Organizationally Unique Identifier) 是由IEEE註冊管理機構分配給不同廠家的代碼,是區分廠家用的
  • 後24位就交給廠家自己分配了,稱爲擴展標識符 。因爲MAC地址不重複所以後24位在同一個廠家一定是不一樣的。(前24位爲了區別廠家用自然也是不同的所以不存在兩個一樣的MAC地址
    進一步的學習,我們便說一說以太網,爲什麼要扯它呢?因爲以太網實現由局域網中最常用的通信協議標準。那麼我們不由的對網絡設備之間的連接與數據傳輸方法產生了疑問,因爲我們現在只知道接收發送雙方的信息其它具體的過程並不清楚。下面我們繼續學習把這個知識學透打敗HR,介紹一下以太網連接。首先我們需要了解一下拓撲結構傳輸介質這些與硬件相關的概念和以太網的工作機制,它爲什麼可以有這樣的功能?
    1. 拓撲結構
    在計算機網絡的拓撲結構中我們延續了拓撲學中研究與大小,形狀無關的點線關係的方法,我們將網絡中的計算機跟通信設備看成點,把 傳輸的介質(像是什麼雙絞線,光纖,電話線)抽象爲一條線。那麼我們就會得到一個點和線組成的圖形,我們就稱之爲拓撲結構。以太網的結構中主要可以分成總線型星型兩類。
    在這裏插入圖片描述
    總線型:所有計算機通過一條同軸電纜進行連接。
    在這裏插入圖片描述
    2.星型: 所有計算機都連接到一箇中央網絡設備上。
2.傳輸介質

無論是什麼樣的拓撲結構,計算機與通信設備之間都需要傳輸介質。所以傳輸介質值得一提。以太網採用了多種連接介質,比如:雙絞線(網線),光纖,還有咱剛纔在總線型裏提過的同軸電纜。這幾個裏面啊,雙絞線 只要是用於主機到集線器或者交換機的連接,光纖用於交換機到路由器點對點的點鏈路或者交換機之間的級聯。至於同軸纜就有一段歷史了,基本要退出歷史舞臺。不多介紹了。

3.工作機制

有了拓撲結構(連線方法),和傳輸介質(線)。那麼現在數據就可以藉助傳輸介質傳輸了。作爲一種廣播網絡,以太網採用附加衝突檢測載波偵聽多路訪問機制CSMA/CD)。既然是廣播網站所以網中的所有節點自然都可以看到網絡中發送的所有消息。通過CSMA/CD,所有計算機都可以見識傳輸介質的狀態。並且在傳輸之前等待線路空閒、如果有兩個計算機同時都要發送數據,那就會產生衝突,結果是計算機會等待一個時間間隔然後再重新嘗試發送
下面我們來解釋一下以太網中的以太主機傳輸數據時的工作流程
1.監聽通道上是否有信號在傳輸,如果有的話,那麼信道處於忙狀態,那就只能繼續幀聽,直到進行中的運輸結束信道空閒爲止。
2.如果沒有監聽到信號,那自然開始傳輸數據。
3.傳輸數據的時候還要繼續監聽。如果有了衝突,那就要執行以太網的退避算法,等一個時間間隔,然後重新從第一步開始。也就是說,有衝突產生的話涉及衝突的計算機就要返回到最初的監聽信道的狀態。沒有衝突產生,那自然是發送成功了。

那麼關於這一塊的知識呢,我覺得還有一點得講那就是以太幀。

以太幀就是在以太網鏈路中傳送的數據包網絡訪問層的軟件必須要把數據轉換成能夠通過網絡適配器硬件進行傳輸的格式。那麼這個轉換的工作機制與具體結構是什麼呢?我們再來學透徹,弄清楚這最後一點就透徹很多了。
1.工作機制

1.以太網軟件從網絡層接收到數據報
2.按照以太網幀數據段的要求把網際層數據分成較小的塊。以太網幀整體大小必須在64~1518字節之間(前導碼不算)。
3.把數據幀傳遞給物理層的底層組件,然後這些組件把轉換爲能通過傳輸介質的比特流
4.以太網上的其他設備接受到了這個幀,然後檢查其中的目的地址(接收方的物理地址),如果目的地址跟網絡適配器地址匹配,那適配器就會接收到其中的幀,並且把數據傳遞給協議棧中更高的層。
以太幀結構
在這裏插入圖片描述
以太幀結構的開頭由同步碼幀開始定界符兩部分組成,緊隨其後的是以太網報頭,用MAC地址代表目的地址和原地址(飛機票記得嗎?就是那個比喻。)幀的中間是幀負載的包含其他協議報頭的數據包,比如IP協議。以太幀的結尾是一個32位榮譽校驗碼作用是檢驗數據傳輸是否出現了損壞,圖片結構如上…上面的好像不是很清楚我再補一張在下面。在這裏插入圖片描述

  • 前同步碼:使接收端的適配器接收MAC幀時能夠迅速調整時鐘頻率,使二者(與發送端)頻率相同。有7個字節,1和0交替排列
  • 幀開始定界符:正如其名,幀的起始符一個字節長度。前六位是1和0交替,最後兩個爲連續的1用來告知接收端的適配器要開始接收幀信息了。
  • 目的地址: 接收端的(物理地址或者叫MAC地址),六個字節。作用是檢測這個幀的目的地址是否與適配器物理地址相同。如果一致那就說明是送到了自然開始下一步處理,如果不是,那就直接丟棄。
  • 原地址: 發送端的網絡適配器的MAC地址,6個字節
  • 類型:上層協議的類型,因爲協議是很多的,所以處理數據的時候要標識交給哪個協議處理。
  • 數據:有標識交付給上層的數據,以太網幀數據最小長度46字節最大1500字節,不滿46字節自動補充到最小長度。
  • 幀檢驗序列FSC:檢測該幀是否出錯,4個字節長度。發送方計算幀的循環冗餘碼校驗的值然後寫到幀裏,接收方接受的時候也算一次再跟發送端寫到幀裏的正確值比較,如果不一樣肯定出現了問題,就要重新傳輸這一個幀。其實很好理解,就相當於對方給你寄郵件包裹裏放了500塊然後弄了張紙片寫上500元,到你手裏你一看紙片上寫的500包裹裏就400那肯定是出了問題了,就是這麼個原理。

在這裏插入圖片描述

網絡層

寫在前面; 關鍵字IP協議有關知識 ,ARP ,ICMP。其中對IP協議的講解是這一部分的重點內容。

網絡層與IP協議介紹

在這裏插入圖片描述
網絡層在TCP/IP參考模型的第二層,它對應OSI參考模型的網絡層。它可以提供獨立於硬件的邏輯尋址IP),這就可以實現數據在不同物理結構的子網裏相互傳遞。這種傳遞方法的根本呢是基於IP協議提供IP地址實現的(請區別於上文講的MAC地址)。所以呢,我們先從IP說起。

IP地址

簡介

講到IP協議,IP地址(Internet Protocol Address是不可不聊的。IP地址不同於MAC地址在出廠時就由廠家預先設置,IP地址是互聯網協議特有的一種地址。它實際上是IP協議提供的一種統一的地址格式。它的作用是爲互聯網上的每一個網絡與計算機(網絡設備)提供一個邏輯地址邏輯地址它的作用是用來屏蔽掉物理地址的差異。

IP地址的作用

說到地址,大家想必會想到上文所寫的MAC地址。那麼是否會對IP地址與MAC地址的區別與不同感到好奇呢?下面我們就來講講爲什麼要有IP地址這個東西。

我們之前說到了在單個局域網網段裏,計算機之間可以使用網絡接口層提供的 MAC地址(物理地址),進行數據的交換。但是在這裏我們強調了在局域網中。那也就是說在其他的一些網絡或許利用網絡接口層提供的MAC地址進行數據傳輸並不是那麼可行。事實也正是如此,舉個例子:在路由式網絡中,MAC地址就難以完成跨路由接口的運行。即使完成了,使用MAC地址傳輸也很麻煩。或許這樣說還有些抽象,那麼你可以這樣想,你在玩一些遊戲比如紅警,魔獸爭霸裏面會有局域網選項,這其實就是可以利用MAC地址通訊。這是因爲我們的MAC地址在地址空間上並沒有引入邏輯結構,它無法具備真正的像是省,市,區…等等的層次。所以我們就引入了一種具有邏輯化,層次化特徵的尋址方案,也就是IP地址。

IP地址的構成

爲了保障數據傳輸過程中的正確性,我們需要對這種尋址方案做出統一的標準/規則。以此來保證IP地址可以正確的識別主機位置。IP地址可分爲兩個部分,分別是網絡ID和主機ID。

  • 網絡ID :用於識別網絡設備所在的網絡,每一個物理網絡僅有一個網絡ID。它的位數決定了可以分配的網絡數量
  • 主機ID : 每一個物理網絡可能有很多的網絡設備(工作站,路由器,計算機等),每一個網絡設備都有一個主機ID與其對應。主機ID的位數直接決定了一個網絡中最大的主機數量
IP地址的基本類別

我們已經知道,網絡ID位數決定了可以分配的網絡數量主機ID位數決定了網絡中最大的主機數量。所以這就可以滿足用戶對主機數量與可分配網絡數量的不同需求。爲了滿足這些需求,我們需要判斷IP地址中:哪一個部分是網絡ID,哪一個部分是主機ID。因此我們將32位地址IP地址劃分爲了4個8位段。又將IP地址劃分爲三大類以方便對IP地址的管理,每類地址的分類和具體含義如下:
在這裏插入圖片描述

  • A類:前8位表示網絡ID,後24位表示主機ID(分配給政府機關單位

  • B類:前16位表示網絡ID,後16位表示主機ID;(分配給中等規模企業)

  • C類:前24位表示網絡ID,後8位表示主機ID;(可分配給任何人有需要的人
    有的讀者會發現圖片上明明有五類地址爲什麼我們說僅有三類呢?因爲另外兩類爲隱藏地址。也就是D類和E類地址。

  • D類:不分網絡ID和主機ID;該地址用於多播。

  • E類:也不區分網絡ID和主機ID,此類地址用於實驗。
    我們按照如上分類將IP地址進行了分類,那麼如何判斷一個IP地址是A類,B類還是C類呢?畢竟IP地址都是32位的數字,我們如果不做出一些標準,顯然是無法對其進行區分的。我們所選用的區分方法是將每類IP地址的開頭部分設置爲固定數值。如: A類開頭爲0然後接着7(8-1)位網絡號和24位主機號。B類則是開頭爲10,然後後接14(16-2)位網絡號和16位主機號。C類開頭爲110,後接21(24-3)位網絡號和8位主機號。(TIPS:IP地址的32位都爲二進制格式顯示。)
    由於每類地址的開頭固定。所以每類地址都會在一定的範圍內(4段8位二進制數):

  • A類:IP地址範圍0.0.0.0~127.255.255.255

  • B類:IP地址範圍128.0.0.0~191.255.255.255

  • C類:IP地址範圍192.0.0.0~223.255.255.255

  • D類:IP地址範圍224.0.0.0~239.255.255.255

  • E類:IP地址範圍240.0.0.0~255.255.255.254

特殊IP地址

所謂特殊IP地址,其實是說一些具有特殊意義的不會分配給互聯網主機的IP地址。這些被保留的IP地址有一部分用於私有網絡,這些地址被稱爲私有地址,再如,保留了一部分地址用於測試的被稱爲保留地址。A B C 三類地址的地址範圍及含義:

  • A類地址: 私有地址範圍:10.0.0.0~ 10.255.255.255。保留地址範圍:127.0.0.0~127.255.255.255
  • B類地址:私有地址範圍爲172.16.9.9~172.31.255.255.保留地址169.254.X.X
  • C類地址:私有地址範圍192.168.0.0~192.168.255.255

說到這裏,我覺得應該還要再提一嘴無類域間路由

如上文所說,我們將IP地址分成了ABC類,但是這會造成IP地址的部分浪費。爲何這樣說呢?什麼叫部分浪費呢?怎麼解決呢?我們之所以這樣說,原因是很簡單的,從之前的分類網絡可以看出來,IP地址的分類是把32位的IP地址分爲4段8位。這也意味着,前綴會是 8,16,24。因爲這個侷限性,我們可分配的最小地址塊僅有256,這對於許多企業是不夠用的。而我們可供分配的最大地址塊有65536個,這對絕大部分企業來說太多了。這會導致IP地址無法充分使用與路由問題。例如因爲需要大量小型網絡,而需求許多單獨路由。或因距離原因無法形成聚合路由。
所以我們需要無類域間路由(Classless Inter-Domain Routing CIDR)它可以將路由集中起來,在路由表中更靈活地定義地址。這種方法利用CIDR前綴的值劃分網絡ID部分和主機ID部分。使管理者可以更靈活的定義子網。CIDR標記使用“/”分隔符,後跟一個十進制數表示網絡ID所佔位數。

子網

數據傳遞的過程中通過識別網絡ID發送到正確的網絡。然後再通過主機ID發送到目標主機。這種情況對於小型網絡來說當然便捷迅速。但是對於一些大型網絡卻是沒有那麼友好。數據在找到對應網絡後需要經過一段時間來確認目標主機,爲了解決這一問題,我們需要將網絡變小也就是進行子網的劃分。
子網劃分 其實是將主機ID劃分爲了子網ID+主機ID。子網ID顧名思義是用來尋找子網,主機ID則是在子網中確認主機。爲了區分子網ID與主機ID,我們需要子網掩碼,子網掩碼指明瞭地址中多少位用於子網ID多少用於主機ID

下面我們進入網絡層的靈魂部分,IP協議,從中你將瞭解到IP協議是什麼及其運作方式(其實在講子網,IP地址這一塊的時候應該就已經有點感覺了),與IP協議包的結構,同時學習完這一部分你也會對我們之前提到的洪水攻擊有一個更好的概念。

IP協議

IP協議是一種尋址系統。通過他可以在複雜的網絡間傳遞數據,同時也可以將多個交換網絡連接起來,在本機與目的地址間傳遞數據。當然他也可以對數據重新組裝來適應不同網絡對數據包大小的要求。

兩點多了明早八點還有課…本週日之前必定更新完畢這一層QAQ。還沒更新完 就不好意思找各位要讚了。嘿嘿但是收藏一下還是可以的哦。 (*・ω< )

在這裏插入圖片描述

回來了!鴿了半個月 嘿嘿 回來繼續更新 咳咳~ 我們來繼續聊IP協議工作的方式 跟IP數據包 把IP協議結束掉

IP協議工作方法

在路由式網絡中,IP協議在同網段不同網段的工作方式是不一樣的。具體如下

1. 同網段

如果與目標主機在同一網段,那麼目標主機的IP地址會被ARP協議(不知道ARP協議是什麼也沒事 咱們聊完IP就聊ARP)解析爲MAC地址,然後再根據MAC地址將數據包發送。

2. 不同網段

不在同一網段 ,數據包如此發送:

  • 首先用ARP協議將網關(通常就是路由器)的IP地址解析爲MAC地址,然後再根據解析出的MAC地址 ,主機將數據包發送到網關。
  • 網關根據數據包裏的網段ID找到對應目標網絡,若成功,則將數據包傳送到目標網段;若未成功,則重複上一步將數據發送到網關。
  • 數據包被髮到正確的網段中後,ARP協議將目標IP地址解析爲MAC地址,根據MAC地址,數據包最終被傳遞到目標主機。

IP協議包結構

在這裏插入圖片描述
當使用IP協議傳輸數據時,傳輸數據的包就被稱爲IP數據包,它又規定的幾部分組成。

這個部分 到處都有介紹 我就給各位 百度上粘貼一段介紹好了 不詳細的地方 我再補充下。畢竟這種規定的東西 也沒啥好解釋的…嘿嘿 偷個懶
固定部分:
(1)版本 佔4位,指IP協議的版本。通信雙方使用的IP協議版本必須一致。廣泛使用的IP協議版本號爲4(即IPv4)。關於IPv6,還處於草案階段。
(2)首部長度 佔4位,可表示的最大十進制數值是15。請注意,這個字段所表示數的單位是32位字長(1個32位字長是4字節),因此,當IP的首部長度爲1111時(即十進制的15),首部長度就達到60字節。當IP分組的首部長度不是4字節的整數倍時,必須利用最後的填充字段加以填充。因此數據部分永遠在4字節的整數倍開始,這樣在實現IP協議時較爲方便。首部長度限制爲60字節的缺點是有時可能不夠用。但這樣做是希望用戶儘量減少開銷。最常用的首部長度就是20字節(即首部長度爲0101),這時不使用任何選項。
(3)區分服務 佔8位,用來獲得更好的服務。這個字段在舊標準中叫做服務類型,但實際上一直沒有被使用過。1998年IETF把這個字段改名爲區分服務DS(Differentiated Services)。只有在使用區分服務時,這個字段才起作用。
(4)總長度 總長度指首部和數據之和的長度,單位爲字節。總長度字段爲16位,因此數據報的最大長度爲2^16-1=65535字節。
在IP層下面的每一種數據鏈路層都有自己的幀格式,其中包括幀格式中的數據字段的最大長度,這稱爲最大傳送單元MTU(Maximum Transfer Unit)。當一個數據報封裝成鏈路層的幀時,此數據報的總長度(即首部加上數據部分)一定不能超過下面的數據鏈路層的MTU值。
(5)標識(identification) 佔16位。IP軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識字段。但這個“標識”並不是序號,因爲IP是無連接服務,數據報不存在按序接收的問題。當數據報由於長度超過網絡的MTU而必須分片時,這個標識字段的值就被複制到所有的數據報的標識字段中。相同的標識字段的值使分片後的各數據報片最後能正確地重裝成爲原來的數據報。
(6)標誌(flag) 佔3位,但只有2位有意義。
● 標誌字段中的最低位記爲MF(More Fragment)。MF=1即表示後面“還有分片”的數據報。MF=0表示這已是若干數據報片中的最後一個。
● 標誌字段中間的一位記爲DF(Don’t Fragment),意思是“不能分片”。只有當DF=0時才允許分片。
(7)片偏移 佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對用戶數據字段的起點,該片從何處開始。片偏移以8個字節爲偏移單位。這就是說,除了最後一個分片,每個分片的長度一定是8字節(64位)的整數倍。
(8)生存時間 佔8位,生存時間字段常用的的英文縮寫是TTL(Time To Live),表明是數據報在網絡中的壽命。由發出數據報的源點設置這個字段。其目的是防止無法交付的數據報無限制地在因特網中兜圈子,因而白白消耗網絡資源。最初的設計是以秒作爲TTL的單位。每經過一個路由器時,就把TTL減去數據報在路由器消耗掉的一段時間。若數據報在路由器消耗的時間小於1秒,就把TTL值減1。當TTL值爲0時,就丟棄這個數據報。後來把TTL字段的功能改爲“跳數限制”(但名稱不變)。路由器在轉發數據報之前就把TTL值減1.若TTL值減少到零,就丟棄這個數據報,不再轉發。因此,TTL的單位不再是秒,而是跳數。TTL的意義是指明數據報在網絡中至多可經過多少個路由器。顯然,數據報在網絡上經過的路由器的最大數值是255。
(9)協議 佔8位,協議字段指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。
(10)首部檢驗和 佔16位。這個字段只檢驗數據報的首部,但不包括數據部分。這是因爲數據報每經過一個路由器,路由器都要重新計算一下首部檢驗和(一些字段,如生存時間、標誌、片偏移等都可能發生變化)。不檢驗數據部分可減少計算的工作量。
(11)源地址 佔32位。
(12)目的地址 佔32位。
可變部分
IP首部的可變部分就是一個可選字段。選項字段用來支持排錯、測量以及安全等措施,內容很豐富。此字段的長度可變,從1個字節到40個字節不等,取決於所選擇的項目。某些選項項目只需要1個字節,它只包括1個字節的選項代碼。但還有些選項需要多個字節,這些選項一個個拼接起來,中間不需要有分隔符,最後用全0的填充字段補齊成爲4字節的整數倍。
增加首部的可變部分是爲了增加IP數據報的功能,但這同時也使得IP數據報的首部長度成爲可變的。這就增加了每一個路由器處理數據報的開銷。實際上這些選項很少被使用。新的IP版本IPv6就將IP數據報的首部長度做成固定的。這些任選項定義如下:
(1)安全和處理限制(用於軍事領域)
(2)記錄路徑(讓每個路由器都記下它的IP地址)
(3)時間戳(Time Stamp)(讓每個路由器都記下IP數據報經過每一個路由器的IP地址和當地時間)
(4)寬鬆的源站路由(Loose Source Route)(爲數據報指定一系列必須經過的IP地址)
(5)嚴格的源站路由(Strict Source Route)(與寬鬆的源站路由類似,但是要求只能經過指定的這些地址,不能經過其他的地址) [1]
-----來自百度百科

簡介 洪水攻擊

當我們用IP協議傳輸IP數據寶石,首先需要判斷這個數據包的大小是否大於網絡接口的最大傳輸單元值(MTU)。如果大於,我們就要將數據包分片。而洪水攻擊呢也就是在中間發送大量無效的IP分片包。使得目標機在收到分片包後,重組成報文過程中有大量無效IP分片包乾擾。如果對IP分片攻擊感興趣可以看看這個人的博客。

https://blog.csdn.net/neubuffer/article/details/16900875

我們會在接下來介紹 ARP協議 和ICMP協議 然後開啓傳輸層知識各位晚安,祝各位技術越來越好加油!! ٩(๑❛ᴗ❛๑)۶在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章