天天看點

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

作者:信安傳遞

1. 網絡層重點協定

1.1 IP協定(Internet Protocol)

1 IP協定頭格式

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

4位版本号(version):指定IP協定的版本,對于IPv4來說,就是4。

4位頭部長度(header length):IP頭部的長度是多少個32bit,也就是 length * 4 的位元組 數。4bit表示最大的數字是15,是以IP頭部最大長度是60位元組。

8位服務類型(Type Of Service):3位優先權字段(已經棄用),4位TOS字段,和1位保留 字段(必須值為0)。4位TOS分别表示:最小延時,最大吞吐量,最高可靠性,最小成本。 這四者互相沖突,隻能選擇一個。對于ssh/telnet這樣的應用程式,最小延時比較重要;對于 ftp這樣的程式,最大吞吐量比較重要。

16位總長度(total length):IP資料報整體占多少個位元組。

16位辨別(id):唯一的辨別主機發送的封包。如果IP封包在資料鍊路層被分片了,那麼每 一個片裡面的這個id都是相同的。 3位标志字段:第一位保留(保留的意思是現在不用,但是還沒想好說不定以後要用到)。第 二位置為1表示禁止分片,這時候如果封包長度超過MTU,IP子產品就會丢棄封包。第三位表 示"更多分片",如果分片了的話,最後一個分片值為1,其他是0。類似于一個結束标記。

13位分片偏移(framegament offset):是分片相對于原始IP封包開始處的偏移。其實就是 在表示目前分片在原封包中處在哪個位置。實際偏移的位元組數是這個值 * 8 得到的。是以, 除了最後一個封包之外,其他封包的長度必須是8的整數倍(否則封包就不連續了)。

8位生存時間(Time To Live,TTL):資料報到達目的地的最大封包跳數。一般是64。每次 經過一個路由,TTL -= 1,一直減到0還沒到達,那麼就丢棄了。這個字段主要是用來防止出 現路由循環。

8位協定:表示上層協定的類型。

16位頭部校驗和:使用CRC進行校驗,來鑒别頭部是否損壞。

32位源位址和32位目标位址:表示發送端和接收端。

選項字段(不定長,最多40位元組):略。

2. 資料鍊路層重點協定

2.1 以太網

"以太網" 不是一種具體的網絡,而是一種技術标準;既包含了資料鍊路層的内容,也包含了 一些實體層的内容。例如:規定了網絡拓撲結構,通路控制方式,傳輸速率等;

例如以太網中的網線必須使用雙絞線;傳輸速率有10M,100M,1000M等;

以太網是目前應用最廣泛的區域網路技術;和以太網并列的還有令牌環網,無線LAN等;

1. 以太網幀格式

以太網的幀格式如下所示:

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

源位址和目的位址是指網卡的硬體位址(也叫MAC位址),長度是48位,是在網卡出廠時固化的;

幀協定類型字段有三種值,分别對應IP、ARP、RARP;

幀末尾是CRC校驗碼。

2.2 MTU

MTU相當于發快遞時對包裹尺寸的限制。這個限制是不同的資料鍊路對應的實體層,産生的限制。

以太網幀中的資料長度規定最小46位元組,最大1500位元組,ARP資料包的長度不夠46位元組,要在後面補填充位;

最大值1500稱為以太網的最大傳輸單元(MTU),不同的網絡類型有不同的MTU;

如果一個資料包從以太網路由到撥号鍊路上,資料包長度大于撥号鍊路的MTU了,則需要對資料包進行分片(fragmentation);

不同的資料鍊路層标準的MTU是不同的;

1. MTU對IP協定的影響

由于資料鍊路層MTU的限制,對于較大的IP資料包要進行分包。

2. MTU對UDP協定的影響

一旦UDP攜帶的資料超過1472(1500 - 20(IP首部) - 8(UDP首部)),那麼就會在網絡層分成多個IP資料報。

這多個IP資料報有任意一個丢失,都會引起接收端網絡層重組失敗。那麼這就意味着,如果 UDP資料報在網絡層被分片,整個資料被丢失的機率就大大增加了。

3. MTU對于TCP協定的影響

TCP的一個資料報也不能無限大,還是受制于MTU。

TCP的單個資料報的最大消息長度,稱 為MSS(Max Segment Size);

TCP在建立連接配接的過程中,通信雙方會進行MSS協商。 最理想的情況下,MSS的值正好是在IP不會被分片處理的最大長度(這個長度仍然是受制于 資料鍊路層的MTU)。

雙方在發送SYN的時候會在TCP頭部寫入自己能支援的MSS值。

然後雙方得知對方的MSS值之後,選擇較小的作為最終MSS。

MSS的值就是在TCP首部的40位元組變長選項中(kind=2);

2.3 ARP(通過IP找MAC)

ARP不是一個單純的資料鍊路層的協定,而是一個介于 資料鍊路層和網絡層之間的協定

1. ARP協定的作用

ARP協定建立了主機 IP位址 和 MAC位址 的映射關系。

在網絡通訊時,源主機的應用程式知道目的主機的IP位址和端口号,卻不知道目的主機的硬體位址;

資料包首先是被網卡接收到再去處理上層協定的,如果接收到的資料包的硬體位址與本機不符,則直接丢棄;

是以在通訊前必須獲得目的主機的硬體位址;

2. ARP協定的工作流程

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

源主機發出ARP請求,詢問“IP位址是192.168.0.1的主機的硬體位址是多少”,并将這個請求 廣播到本地網段(以太網幀首部的硬體位址填FF:FF:FF:FF:FF:FF表示廣播);

目的主機接收到廣播的ARP請求,發現其中的IP位址與本機相符,則發送一個ARP應答資料包 給源主機,将自己的硬體位址填寫在應答包中;

每台主機都維護一個ARP快取記錄,可以用arp -a指令檢視。緩存表中的表項有過期時間(一般 為20分鐘),如果20分鐘内沒有再次使用某個表項,則該表項失效,下次還要發ARP請求來 獲得目的主機的硬體位址

3. 應用層重點協定

3.1 DNS

DNS,即Domain Name System,域名系統。DNS是一整套從域名映射到IP的系統。

TCP/IP中使用IP位址來确定網絡上的一台主機,但是IP位址不友善記憶,且不能表達位址組織資訊,于 是人們發明了域名,并通過域名系統來映射域名和IP位址。

網絡通信發送資料時,如果使用目的主機的域名,需要先通過域名解析查找到對應的IP位址:

域名解析的過程,可以簡單的了解為:發送端主機作為域名系統樹形結構的一個子節點,通過域名資訊,從下到上查找對應IP位址的過程。如果到根節點(根域名伺服器)還找不到,即找不到該主機。

域名解析使用DNS協定來傳輸資料。DNS協定是應用層協定,基于傳輸層UDP或TCP協定來實作。

3.2 NAT(内外網轉換)

NAT技術目前解決IP位址不夠用的主要手段,是路由器的一個重要功能;

NAT能夠将私有IP對外通信時轉為全局IP。

也就是就是一種将私有IP和全局IP互相轉化的技術方法:很多學校,家庭,公司内部采用每個終端設定私有IP,而在路由器或必要的伺服器上設定全局IP;

全局IP要求唯一,但是私有IP不需要;在不同的區域網路中出現相同的私有IP是完全不影響的;

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

NAT路由器将源位址從10.0.0.10替換成全局的IP 202.244.174.37;

NAT路由器收到外部的資料時,又會把目标IP從202.244.174.37替換回10.0.0.10;

在NAT路由器内部,有一張自動生成的,用于位址轉換的表;

當 10.0.0.10 第一次向 163.221.120.9 發送資料時就會生成表中的映射關系;

NAT技術的缺陷:

由于NAT依賴這個轉換表,是以有諸多限制:無法從NAT外部向内部伺服器建立連接配接;轉換表的生成和銷毀都需要額外開銷;通信過程中一旦NAT裝置異常,即使存在熱備,所有的TCP連接配接也都會斷開;

3.3 NAPT

那麼問題來了,如果區域網路内,有多個主機都通路同一個外網伺服器,那麼對于伺服器傳回的資料中,目的IP都是相同的。那麼NAT路由器如何判定将這個資料包轉發給哪個區域網路的主機?

這時候NAPT來解決這個問題了。使用IP+port來建立這個關聯關系

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

這種關聯關系也是由 NAT 路由器自動維護的。例如在 TCP 的情況下,建立連接配接時,就會生成這個表項;

在斷開連接配接後,就會删除這個表項。

4. 網絡基礎

4.1 認識IP位址

1. 概念

IP位址(Internet Protocol Address)是指網際網路協定位址,又譯為網際協定位址。

2. 作用

IP位址是IP協定提供的一種統一的位址格式,它為網際網路上的每一個網絡和每一台主機配置設定一個邏輯地 址,以此來屏蔽實體位址的差異。

3. 格式

IP位址是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個位元組),如: 01100100.00000100.00000101.00000110。

4. 組成

IP位址分為兩個部分,網絡号和主機号

網絡号:辨別網段,保證互相連接配接的兩個網段具有不同的辨別;

主機号:辨別主機,同一網段内,主機之間具有相同的網絡号,但是必須有不同的主機号;

5. 分類

為了IP位址浪費的問題解決以上問題,引入子網路遮罩來進行子網劃分

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解
「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

4.2 子網路遮罩

1. 格式

子網路遮罩格式和IP位址一樣,也是一個32位的二進制數。其中左邊是網絡位,用二進制數字“1”表示,1 的數目等于網絡位的長度;右邊是主機位,用二進制數字“0”表示,0的數目等于主機位的長度。 子網路遮罩也可以使用二進制所有高位1相加的數值來表示,如以上子網路遮罩也可以表示為24。

2. 作用

(1)劃分A,B,C三類 IP 位址子網: 如一個B類IP位址:191.100.0.0,按A ~ E類分類來說,網絡号二進制數為16位網絡号+16位主機号。 假設使用子網路遮罩 255.255.128.0(即17) 來劃分子網,意味着劃分子網後,高17位都是網絡位/網絡 号,也就是将原來16位主機号,劃分為1位子網号+15位主機号。 此時,IP位址組成為:網絡号+子網号+主機号,網絡号和子網号統一為網絡辨別(劃分子網後的網絡号/ 網段)

(2)網絡通信時,子網路遮罩結合IP位址,可以計算獲得網絡号(劃分子網後的網絡号)及主機号(劃分子網後的主機号)。一般用于判斷目的IP與本IP是否為同一個網段。

3. 計算方式

将 IP 位址和子網路遮罩進行“按位與”操作(二進制相同位,與操作,兩個都是1結果為1,否則為0),得到的結果就是網絡号。 将子網路遮罩二進制按位取反,再與 IP 位址位與計算,得到的就是主機号。

示例:

「web」計算機網絡網絡層、應用層、資料鍊路層協定詳解

4.3 認識MAC位址

MAC位址,即 Media Access Control Address,用于辨別網絡裝置的硬體實體位址。

主機具有一個或多個網卡,路由器具有兩個或兩個以上網卡;其中每個網卡都有唯一的一個MAC地 址。

網絡通信,即網絡資料傳輸,本質上是網絡硬體裝置,将資料發送到網卡上,或從網卡接收資料。

硬體層面,隻能基于MAC位址識别網絡裝置的網絡實體位址。

特殊的MAC位址廣播資料報:發送一個廣播資料報,表示對同網段所有主機發送資料報。廣播資料報的MAC位址為:FF:FF:FF:FF:FF:FF

4.4 總結IP位址和MAC位址

IP位址描述的是路途總體的起點和終點;是給人使用的網絡邏輯位址。

MAC位址描述的是路途上的每一個區間的起點和終點,即每一跳的起點和終點;是給網絡硬體裝置使用的網絡實體位址。

————————————————

版權聲明:本文為CSDN部落客「愛幹飯的猿」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/m0_62218217/article/details/127156470

繼續閱讀