日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据链路层-------以太网协议

發(fā)布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据链路层-------以太网协议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這里寫目錄標題

  • 數(shù)據(jù)鏈路層
  • 點對點協(xié)議(PPP協(xié)議)
  • 以太網(wǎng)協(xié)議
    • 認識以太網(wǎng)
    • 以太網(wǎng)幀格式
    • 認識MAC地址
    • 對比理解MAC地址和IP地址
    • 認識MTU
    • MTU對上層協(xié)議的影響
    • 查看硬件地址和MTU
  • ARP協(xié)議(地址解析協(xié)議)
    • ARP協(xié)議的作用
    • ARP數(shù)據(jù)報格式
    • ARP協(xié)議的工作原理

數(shù)據(jù)鏈路層

主要解決的問題就是分組在一個網(wǎng)絡(或者一段鏈路上)傳輸?shù)膯栴}

1.什么是數(shù)據(jù)鏈路層:

  • 鏈路:從一個節(jié)點到相鄰節(jié)點的一段物理線路,并且中間沒有任何其他的交換節(jié)點。(就是一條線路連接的兩個節(jié)點)
  • 數(shù)據(jù)鏈路:把實現(xiàn)通信協(xié)議的硬件和軟件加到鏈路上,就構成了數(shù)據(jù)鏈路。(以特定的協(xié)議運送數(shù)據(jù)的路線)
  • :數(shù)據(jù)鏈路層主要是將傳輸?shù)臄?shù)據(jù)封裝成幀進行傳輸。

2.使用點對點信道的數(shù)據(jù)鏈路層:

  • 封裝成幀:給上層交付下來的協(xié)議數(shù)據(jù)單元加上一個幀頭,加上一個幀尾。(加一個頭部,加一個尾部)
    其中:
    ①幀頭和幀尾:包含有重要的控制信息。
    ②幀頭和幀尾:主要作用之一就是幀定界。(就是傳輸?shù)搅硪环降臅r候,另一方方可以通過幀頭幀尾的界限去知道這是一個協(xié)議單元)
    透明傳輸:數(shù)據(jù)鏈路層對上層的交付的數(shù)據(jù)沒有任何限制。(也就是上層只管往下交付數(shù)據(jù),即使交付下來的數(shù)據(jù)中有幀定界的內容,也會在數(shù)據(jù)鏈路層的協(xié)議下進行調整)
    ①:字節(jié)填充實現(xiàn)透明傳輸。(面向字節(jié)的物理鏈路)
    ②:比特填充實現(xiàn)透明傳輸。(面向比特的物理鏈路)
    為了提高幀的傳輸效率,應當使幀的數(shù)據(jù)部分的長度盡可能大些。(但是不能超過MTU)
  • 差錯檢測:比特在傳輸時可能會產(chǎn)生差錯。(對于這些應對措施,幀在幀尾部有一個幀檢驗序列,就是為了讓接收方的數(shù)據(jù)鏈路層檢查幀在傳輸過程中是否產(chǎn)生了誤碼)
    檢錯方法:奇偶校驗,CRC循環(huán)冗余校驗。
  • 可靠傳輸:也就是在傳輸層為tcp協(xié)議下的可靠傳輸。

3.媒體接入控制:主要分為兩類。(靜態(tài)劃分信道和動態(tài)接入控制)

①共享信道:要考慮的一個問題就是如何協(xié)調多個發(fā)送和接受站點對一個共享傳輸媒體的占用,也就是媒體接入控制MAC。(因為多臺主機連接在一個同軸電纜上,這些主機同時發(fā)送數(shù)據(jù)勢必會造成碰撞)

②靜態(tài)劃分信道:預先固定分配好信道,這類方法非常不靈活,對于突發(fā)性數(shù)據(jù)傳輸信道利用率會很低。通常在物理層使用。

信道復用:通過一條物理線路同時傳輸多路用戶信號。(當網(wǎng)絡中的傳輸媒體的傳輸容量大于多條單一信道傳輸?shù)目偼ㄐ帕繒r,可以利用復用技術在一條物理線路上建立多條通信信道來充分利用傳輸媒體的帶寬)

  • 頻分復用(FDM):所有用戶同時占用不同的頻帶資源并進行通信。
  • 時分復用(TDM):所有用戶在不同時間占用同樣的頻帶寬度。
  • 波分復用(WDM):也就是光纖,根據(jù)光波長的不同而進行分辨。
  • 碼分復用(CDM):所用用戶可以在通信的時候使用同樣的頻帶進行通信。(并且不會造成干擾,是因為各個用戶使用經(jīng)過特殊挑選的不同的碼型)

而對于上面的復用都可以用于多址:頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA),波分復用沒有。

  • 復用:將單一媒體的頻帶資源劃分成很多子信道,并且這些子信道之間相互獨立,互不干擾。從整體上看,這些信道只占用該媒體頻帶資源的一部分。
  • 多址:處理的是動態(tài)分配信道給用戶。這在用戶僅僅暫時性的占用信道的應用中是必須的,而所有的移動通信系統(tǒng)基本上都屬于這種情況。相反,在信道永久性分配給用戶的應用中,多址是不需要的(例如無線廣播或者電視廣播站)。

③動態(tài)接入控制:

  • 隨機接入:所有站點通過競爭,隨機的在信道上發(fā)送數(shù)據(jù)。如果由多個站點同時發(fā)送數(shù)據(jù),肯定會造成數(shù)據(jù)碰撞,會讓所有站點的發(fā)送都失敗,所以必須通過協(xié)議去解決這些問題。

4.使用廣播信道的熟路鏈路層(也是動態(tài)接入控制):
①:早期的共享式以太網(wǎng)的媒體接入控制協(xié)議CSMA/CD協(xié)議
其中:

  • CS(載波監(jiān)聽):每個主機在發(fā)送幀之前先檢查總線上是否被占用,如果占用則等待,如果空閑時間超過96bit時間則發(fā)送。
  • MA(多址接入):多個主機連接在一條總線上,競爭使用總線。
  • CD(碰撞檢測):每一個正在發(fā)送幀的主機,一邊檢測碰撞,一邊發(fā)送,一旦遇到碰撞,退避一段時間后再發(fā)送。

②:802.11無線局域網(wǎng)的媒體接入控制協(xié)議CSMA/CA協(xié)議

其中:也是用的載波監(jiān)聽和多址接入,但是不能使用碰撞檢測。

原因:在無線局域網(wǎng)中,由于信道很特殊,信號強度范圍非常大,所以無線網(wǎng)卡接收到的信號強度往往小于發(fā)送信號強度。如果要在無線網(wǎng)卡上實現(xiàn)碰撞檢測CD,對硬件要求非常高。(并且無線電波傳播由隱蔽站問題,也就是對于相同的一個站點,由兩個不能檢測到對方的站點,但是可以檢測到同一個站點,此時這兩個站點同時給這個站點發(fā)送數(shù)據(jù),那么發(fā)生碰撞了,它倆都不知道)

所以802.11無線局域網(wǎng)的媒體接入控制協(xié)議為CSMA/CA協(xié)議

  • CA:碰撞避免功能。(無線信道誤碼率高,由于不可能避免所有碰撞,所以還使用了數(shù)據(jù)鏈路層的確認機制(停止等待協(xié)議),來保證數(shù)據(jù)被正確接收)

點對點協(xié)議(PPP協(xié)議)

1.點對點協(xié)議:是目前使用最廣泛的點對點數(shù)據(jù)鏈路層協(xié)議。
2.在點對點鏈路傳輸各種協(xié)議數(shù)據(jù)報提供了一個標準方法,主要由以下三部分構成:

  • 對各種協(xié)議數(shù)據(jù)報的封裝方法。(也就是封裝成幀)
  • 鏈路控制協(xié)議LCP。(用于建立、配置以及測試數(shù)據(jù)鏈路的連接)
  • 一套網(wǎng)絡控制協(xié)議NCPs。(其中的每一個協(xié)議支持不同的網(wǎng)絡層協(xié)議)
    3.幀格式:

    其中:
  • F(標志字段):也是幀定界。(取值為0x7E)
  • A(地址字段):預留位。(取值為0xFF)
  • C(控制字段):預留位。(取值為0x03)
  • P(協(xié)議字段):指明幀的數(shù)據(jù)部分送交哪個協(xié)議處理。(取不同值的時候,對應不同的協(xié)議處理)
    例如:0x0021對應的幀數(shù)據(jù)部分是IP數(shù)據(jù)包、0xC021對應的是幀數(shù)據(jù)部分是LCP分組、0x8021對應的幀數(shù)據(jù)部分位NCP分組。
  • FCS(幀檢驗序列字段):使用的是CRC循環(huán)冗余校驗法。

4.PPP協(xié)議向上不提供可靠傳輸服務。

以太網(wǎng)協(xié)議

認識以太網(wǎng)

  • "以太網(wǎng)"不是一種具體的網(wǎng)絡,而是一種技術標準;既包含了數(shù)據(jù)鏈路層的內容,也包含了一些物理層的內容。(規(guī)定網(wǎng)絡拓撲結構,訪問控制方式,傳輸速率等)
  • 以太網(wǎng)中網(wǎng)線必須使用雙絞線;傳輸速率有10M,100M,1000M等。
  • 以太網(wǎng)是當前應用的最廣泛的局域網(wǎng)技術;和以太網(wǎng)并列的還有令牌環(huán)網(wǎng),無線網(wǎng)LAN等。

以太網(wǎng)幀格式

如圖:

其中:

  • 6字節(jié)的源地址和目的地址是指網(wǎng)卡的硬件地址(也叫MAC地址),長度為48位,是在網(wǎng)卡出廠時固化的;
  • 2字節(jié)的幀協(xié)議類型字段三種值,分別對應IP、ARP、RARP;
  • 4字節(jié)的幀末尾是CRC校驗碼。

其中:
①:MAC地址是以太網(wǎng)的MAC子層所使用的地址;(數(shù)據(jù)鏈路層)
②:IP地址是TCP/IP體系結構網(wǎng)際層所使用的地址;
③:ARP協(xié)議屬于TCP/IP體系結構的網(wǎng)際層,其作用是一致設備所分配到的IP地址,使用ARP協(xié)議可以通過該IP地址獲取到設備的MAC地址;

認識MAC地址

1.MAC地址的作用:當多臺主機連接到同一個廣播信道上,如果說一臺主機發(fā)送數(shù)據(jù)到廣播信道上,所有主機都會接收到,對于該廣播信道上的所有主機而言,通過發(fā)送數(shù)據(jù)上攜帶的標志信息,才能知道這個數(shù)據(jù)是不是發(fā)送給自己的。所以說MAC地址是每個主機都必須有的一個唯一的標識。(即一個數(shù)據(jù)鏈路層地址)

2.在每個主機發(fā)送的幀中必須攜帶標識發(fā)送主機和接收主機的地址。這是也是接收主機知道這個數(shù)據(jù)是不是發(fā)送給自己的。由于這類地址是用于媒體接入控制MAC,因此被稱為MAC地址。

其中:

  • MAC地址一般被固化在網(wǎng)卡中,所以被叫做硬件地址。
  • MAC地址有時被稱作為物理地址。(但不是屬于物理層)
  • MAC地址是對網(wǎng)路歐尚各接口的唯一標識,而不是唄網(wǎng)絡上各設備的網(wǎng)絡標識。(一般情況下,用戶主機會包含一個有線局域網(wǎng)適配器(有線網(wǎng)卡)和無線局域網(wǎng)適配器(無線網(wǎng)卡),并且每個網(wǎng)絡適配器都有一個全球唯一的MAC地址,所以有一個設備多個網(wǎng)絡接口,就會有多個MAC地址,比如交換機和路由器)

3.MAC地址格式

MAC地址一般是由48個bit位(6個字節(jié))組成,并且每個字節(jié)以16進制表示,以:進行間隔開。

如下,是Linux下的MAC地址:

但是在windows系統(tǒng)下,MAC地址的表示方法是中間以-進行分開的。

對比理解MAC地址和IP地址

1.IP地址:是因特網(wǎng)上主機和路由器所使用的地址,用于標識兩部分信息。
2.MAC地址:不具備區(qū)分不同網(wǎng)絡的功能

  • 如果只是一個單獨的網(wǎng)絡,不接入因特網(wǎng),那么只使用MAC地址。
  • 如果主機所在的網(wǎng)絡要接入因特網(wǎng),則IP地址和MAC地址都需要使用。

3.從網(wǎng)絡體系結構來看:

  • IP地址屬于網(wǎng)絡層的內容,所以在數(shù)據(jù)單元到網(wǎng)絡層添加的網(wǎng)絡層首部具有源IP地址和目的IP地址。
  • MAC地址屬于數(shù)據(jù)鏈路層的內容,所以數(shù)據(jù)單元在數(shù)據(jù)鏈路層添加的數(shù)據(jù)鏈路層首部應該封裝有源MAC地址和目的MAC地址。

4.數(shù)據(jù)包轉發(fā)過程中IP地址與MAC地址的變化情況:

  • IP地址:從始至終都不會發(fā)送變化。(源IP地址和目的IP地址)
  • MAC地址:在每兩個節(jié)點間的變化都是不同的,到達一個節(jié)點,就會將MAC的源端改成當前到達的這個節(jié)點的MAC地址,而將目的端MAC地址改成下一個要去的節(jié)點的MAC地址 。

認識MTU

MTU:每個數(shù)據(jù)單元的最大傳輸單元。(也就是相當于發(fā)快遞時對包裹尺寸的限制。這個限制是不同的數(shù)據(jù)鏈路對應的物理層,產(chǎn)生的限制。)

其中:

  • 以太網(wǎng)幀中的數(shù)據(jù)長度規(guī)定最小46字節(jié),最大1500字節(jié),而ARP數(shù)據(jù)包長度如果不夠46字節(jié)的話,就必須進行填充。
  • 而最大值1500字節(jié)就被稱為以太網(wǎng)的最大傳輸單元MTU,并且根據(jù)不同的網(wǎng)絡,這個MTU的大小是不同的。
  • 如果一個數(shù)據(jù)包從以太網(wǎng)路由到撥號鏈路上,數(shù)據(jù)包長度大于撥號鏈路的MTU了,則需要對數(shù)據(jù)包進行分片(fragmentation)。
  • 不同的數(shù)據(jù)鏈路層標準的MTU是不同的。

MTU對上層協(xié)議的影響

1.MTU對IP協(xié)議的影響
由于數(shù)據(jù)鏈路層MTU的限制,對于較大的IP數(shù)據(jù)包要進行分片

如下圖:

  • 當IP數(shù)據(jù)包裹到達數(shù)據(jù)鏈路層的時候,如果說此時這個包裹大于MTU,那么就會將其包裹進行分片處理,并且給每個片上加上標識。
  • 每個分片的IP協(xié)議頭的16位標識(id)都是相同的。
  • 每個分片的IP協(xié)議頭的3位標志字段中, 第2位置為0, 表示允許分片, 第3位來表示結束標記(當前是否是最后一個小包, 是的話置為1, 否則置為0)。
  • 到達對端時再將這些小包, 會按順序重組, 拼裝到一起返回給傳輸層。
  • 一旦這些小包中任意一個小包丟失, 接收端的重組就會失敗. 但是IP層不會負責重新傳輸數(shù)據(jù)。

2.MTU對UDP協(xié)議的影響

UDP協(xié)議:是用戶數(shù)據(jù)包協(xié)議。(不可靠的,無連接的服務)

  • 一旦UDP攜帶的數(shù)據(jù)超過1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就會在網(wǎng)絡層分成多個IP數(shù)據(jù)報。
  • 這多個IP數(shù)據(jù)報有任意一個丟失, 都會引起接收端網(wǎng)絡層重組失敗。那么這就意味著, 如果UDP數(shù)據(jù)報在網(wǎng)絡層被分片, 整個數(shù)據(jù)被丟失的概率就大大增加了。

3.MTU對TCP協(xié)議的影響

TCP協(xié)議:是傳輸控制協(xié)議。(可靠的,基于連接的,面向字節(jié)流)

  • TCP的一個數(shù)據(jù)報也不能無限大, 還是受制于MTU。TCP的單個數(shù)據(jù)報的最大消息長度, 稱為MSS(MaxSegment Size);
  • TCP在建立連接的過程中, 通信雙方會進行MSS協(xié)商。
  • 最理想的情況下, MSS的值正好是在IP不會被分片處理的最大長度(這個長度仍然是受制于數(shù)據(jù)鏈路層的MTU)。
  • 雙方在發(fā)送SYN的時候會在TCP頭部寫入自己能支持的MSS值。
  • 然后雙方得知對方的MSS值之后, 選擇較小的作為最終MSS。
  • MSS的值就是在TCP首部的40字節(jié)變長選項中(kind=2)。

MTU和MSS的關系如圖:

所以對于MTU對數(shù)據(jù)部分還是比較重要的,他會對上層的數(shù)據(jù)大小由一定的影響。

查看硬件地址和MTU

使用ifconfig命令, 即可查看ip地址, mac地址, 和MTU,如下圖:

ARP協(xié)議(地址解析協(xié)議)

ARP不是一個單純的數(shù)據(jù)鏈路層的協(xié)議, 而是一個介于數(shù)據(jù)鏈路層和網(wǎng)
絡層之間的協(xié)議

ARP協(xié)議的作用

1.作用:ARP協(xié)議屬于TCP/IP體系結構的網(wǎng)際層,其作用是已知設備所分配到的IP地址,使用ARP協(xié)議可以通過該IP地址獲取到設備的MAC地址

2.原因:ARP協(xié)議建立了主機 IP地址 和 MAC地址 的映射關系

  • 在網(wǎng)絡通信的時候,源主機的應用程序知道目的主機的IP地址和端口號,但是不知道目的主機的硬件地址。(MAC地址)
  • 數(shù)據(jù)包是被網(wǎng)卡接收到再去處理上層協(xié)議的,如果接收到的數(shù)據(jù)包的硬件地址和本機不符,則丟棄。
  • 因此在通信前必須獲得目的主機的硬件地址。

ARP數(shù)據(jù)報格式

如下圖:

其中,我們可以注意到:

  • 源MAC地址、目的MAC地址在以太網(wǎng)首部和ARP請求中各出現(xiàn)一次,這種情況對于鏈路層為以太網(wǎng)的情況是多余的,而對于其他類型的網(wǎng)絡則是有必要的。
  • 硬件類型:指數(shù)據(jù)鏈路層的網(wǎng)絡類型。 (例如:1為以太網(wǎng))
  • 協(xié)議類型:要轉換的地址類型。(例如:0x0800為IP地址)
  • 硬件地址長度:對于以太網(wǎng)地址為6個字節(jié)。
  • 協(xié)議地址長度:對于IP地址為4個字節(jié)
  • op字段:1表示ARP請求;2表示ARP應答。

ARP協(xié)議的工作原理

首先我們先看下圖:

假設主機A要給主機B發(fā)送數(shù)據(jù)包,但是我們知道,主機A是不知道主機B的MAC地址,并且如果一個主機接收到的數(shù)據(jù)報上的MAC地址與自己的MAC地址不匹配的話,會直接將這個數(shù)據(jù)包丟棄,所以我們在發(fā)送數(shù)據(jù)的時候肯定會將接收方的MAC地址搞到手,而這個操作就是ARP協(xié)議的作了。

具體的原理是什么?如下:

  • 首先,主機A會在自己的ARP高速緩存表中通過目的主機的IP地址找出目的主機對應的MAC地址,然后填寫在自己要發(fā)送的MAC數(shù)據(jù)幀中。如果沒有,就要繼續(xù)通過下面的方式進行。
    ARP高速緩存表如下:

    其中主機ARP高速緩存表中會有對應主機IP的MAC地址,并且有動態(tài)和靜態(tài)之分。
    ①動態(tài):記錄的是主機自動獲取到的信息,并且生命周期默認是2分鐘。(生命周期到后,該信息會自動刪除,主要的愿意是IP地址和MAC地址的對應關系并不是永久性的,例如主機更換網(wǎng)卡(IP地址沒變,但是MAC地址變了))
    ②靜態(tài):管理員手工設置的,不同的操作系統(tǒng)下的生命周期不同。(例如:系統(tǒng)重啟后不存在或者重啟后依然有效)

  • 如果高速緩存表中沒有對應的IP地址,那么主機A就會發(fā)送一個ARP請求報文的廣播幀(此時會將源端IP地址和源端MAC地址和對端IP地址封裝在里面)(廣播幀的目的地址是廣播地址,也就是全1),然后在這個網(wǎng)絡中的所有主機都會收到這個廣播幀,并且接收到的廣播幀會將目的端的IP地址與自己的IP地址進行比較,看看是不是發(fā)送給自己的。

  • 識別到是發(fā)送給自己的廣播幀后,也就是主機B接收到后。會首先將主機A的IP地址與MAC地址記錄到自己的ARP緩存表中;然后給主機A發(fā)送ARP響應報文。(包含有主機B的IP地址和主機B的MAC地址,并且ARP響應報文被封裝在MAC幀中發(fā)送)

  • 主機A接收到主機B發(fā)送過來的ARP響應報文后,解析后將其所記錄的IP地址和MAC地址記錄到自己的ARP高速緩存表中。

  • 然后主機A就可以給主機B發(fā)送數(shù)據(jù)包了。

注意:ARP協(xié)議只能在一段鏈路或者一個網(wǎng)絡上使用

總結

以上是生活随笔為你收集整理的数据链路层-------以太网协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。