TCP IP協議(2) 資料鏈路層

2021-07-15 19:06:28 字數 2628 閱讀 8470

資料鏈路層有三個目的:

1.為ip模組傳送和接收ip資料報

2.為arp模組傳送arp請求和接收arp應答

3.為rarp傳送rarp請求和接收rarp應答

ip大家都聽說過。至於arp和rarp,arp叫做位址解析協議,是用ip位址換mac位址的一種協議,而rarp則叫做逆位址解析協議,在tcp/ip協議的後面章節會介紹它們(在區域網裡面用arp協議可以很容易的高癱瘓網路哦)

資料鏈路層的協議還是很多的,有我們最常用的乙太網(就是平時我們用的網絡卡)協議,也有不太常見的令牌環,還有fddi,當然,還有國內現在相當普及的ppp協議(就是adsl寬頻),以及乙個loopback協議。

聯絡linux裡面的ifconfig -a命令,這個命令通常會得到如下的結果

eth0 link encap:ethernet hwaddr 00:01:4a:03:5b:ed

inet addr:192.168.11.2 bcast:192.168.11.255 mask:255.255.255.0

inet6 addr: fe80::201:4aff:fe03:5bed/64 scope:link

up broadcast running multicast mtu:1500 metric:1

rx packets:2819 errors:0 dropped:0 overruns:0 frame:0

tx packets:76 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

rx bytes:241609 (235.9 kib) tx bytes:9596 (9.3 kib)

lo link encap:local loopback

inet addr:127.0.0.1 mask:255.0.0.0

inet6 addr: ::1/128 scope:host

up loopback running mtu:16436 metric:1

rx packets:2713 errors:0 dropped:0 overruns:0 frame:0

tx packets:2713 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

rx bytes:3516032 (3.3 mib) tx bytes:3516032 (3.3 mib)

其中,eth0就是乙太網介面,而lo則是loopback介面。這也說明這個主機在網路鏈路層上至少支援loopback協議和乙太網協議。

乙太網(ether-net)的定義是指數字裝置公司(digital equipment corp.)、英特爾公司(intel corp.)和xerox公司在2023年聯合公布的乙個標準,這個標準裡面使用了一種稱作csma/cd的接入方法。而ieee802提供的標準集802.3(還有一部分定義到了802.2中)也提供了乙個csma/cd的標準。這兩個標準稍有不同,tcp/ip協議對這種情況的處理方式如下:

* 乙太網的ip資料報封裝在rfc894中定義,而ieee802網路的ip資料報封裝在rfc1042中定義。

* 一台主機一定要能傳送和接收rfc894定義的資料報。

* 一台主機可以接收rfc894和rfc1042的封裝格式的混合資料報。

* 一台主機也許能夠傳送rfc1042資料報...如果主機能同時傳送兩種型別的分組資料,那麼傳送的分組必須是可以設定的,而且預設條件下必須是rfc894分組。

可見,rfc1042在tcp/ip裡面處於乙個配角的地位。這兩種不同的資料報格式請參考教材。

ppp(點對點協議)是從slip的替代品。他們都提供了一種低速接入的解決方案。而每一種資料鏈路層協議,都有乙個mtu(最大傳輸單元)定義,在這個定義下面,如果ip資料報過大,則要進行分片(fragmentation),使得每片都小於mtu,注意ppp的mtu並不是乙個物理定義,而是指乙個邏輯定義(個人認為就是用程式控制)。可以用netstat來列印出mtu的結果,比如鍵入netstat -in

kernel inte***ce table

iface       mtu met    rx-ok rx-err rx-drp rx-ovr    tx-ok tx-err tx-drp tx-ovr ***

eth0       1500   0     1774      0      0      0      587      0      0      0 bmru

lo        16436   0     2667      0      0      0     2667      0      0      0 lru

就可以觀察到eth0的mtu是1500。而lo(環迴介面)的mtu則是16436。

最後說說那個環迴介面(loopback)。平時我們用127.0.0.1來嘗試自己的機器伺服器好使不好使。走的就是這個loopback介面。對於環迴介面,有如下三點值得注意:

* 傳給環迴位址(一般是127.0.0.1)的任何資料均作為lp輸入。

* 傳給廣播位址或多播位址的資料報複製乙份給環迴介面,然後送到乙太網上。這是因為廣播傳送和多播傳送的定義包含主機本身。

* 任何傳給該主機ip位址的資料均送到環迴介面。

這一章還是很簡單的,一般作為了解知識也就足夠了,沒必要摳的那麼詳細。 

TCP IP協議 資料鏈路層

資料鏈路層的主要作用 網路層的資料單元是資料報package,資料鏈路層的作用就是把網路層傳下來的資料報封裝成幀frame,傳送給物理層 或者接收到的幀中的資料提取出來傳送給網路層。可以概括為下面三個 資料封裝成幀,或者從幀裡提取資料 控制真的傳輸,包括傳輸差錯,調節傳送速率與接收方匹配 在兩個網路...

TCP IP協議之資料鏈路層

tcp ip協議資料鏈路層對應osi七層模型中的物理層和資料鏈路層.物理層物理層是osi七層模型中的第一層,在進行資料傳輸時,物理層的作用是提供傳輸資料的環境,對於計算機,物理層可以理解為網路介面卡,而網路介面卡又可以分為虛擬網路介面卡和物理網路介面卡,物理網路介面卡例如 無線網絡卡,有線網絡卡等一...

TCP IP 2 資料鏈路層

資料鏈路層對應著七層模型中的物理層和資料鏈路層,tcp ip協議中的資料鏈路層的作用有 物理層 物理層處於 osi 七層模型的最底端,它的主要任務是將計算機的0和1轉化為能在電纜中傳輸的電子訊號。資料鏈路層 資料鏈路層處於 osi 七層模型的第二層,它定義了通過通訊介質相互連線的裝置之間,資料傳輸的...