1. 程式人生 > >TCP/IP協議--02資料鏈路層

TCP/IP協議--02資料鏈路層

資料鏈路層有三個目的:

  • 為IP模組傳送和 接收IP資料報。

  • 為ARP模組傳送ARP請求和接收ARP應答。

  • 為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協議和乙太網協議。

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

比如鍵入netstat -in

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

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

  • 傳給環回地址(一般是127.0.0.1)的任何資料均作為I P輸入。

  • 傳給廣播地址或多播地址的資料報復制一份傳給環回介面,然後送到乙太網上。這是 因為廣播傳送和多播傳送的定義包含主機本身。

  • 任何傳給該主機IP地址的資料均送到環回介面。

原文地址:https://mp.weixin.qq.com/s/IZgM5UFuNyvzva_lYr6Zxg