有一些概念性的詞語,咱們先沒必要理解其具體含義,可是有必要把他們之間的邏輯層級關係理順清楚。。
首先鏈路是針對兩個直接節點之間,他倆是相鄰的,不經過任何中間設備的。物理鏈路自己又分爲有線鏈路,無線鏈路,局域網等。數據鏈路層是封裝的網絡層的數據報,而網絡層的數據報如今通常爲ip數據報。
數據鏈路層協議包括以太網,PPP,令牌環,FDDI等,前兩種最多見。數據鏈路層又劃分爲邏輯鏈路層LLC子層和介質訪問控制MAC層。其中後者是爲了解決局域網中公用信道產生競爭時解決如何分配信道使用權的問題,而ppp是點對點,不涉及此路控制。所以能夠說是局域網將數據鏈路層又分爲了LLC和MAC。
其中ppp能夠包含ip,ipx,novel。其中涉及ppp的概念有LCP,NCP。具體ppp的工做流程先略過。
而以太網算是一組協議規範,主要定義的是局域網內(LAN)的(Medium Access Control訪問控制(csma/cd|ca)、物理電器特性,以太幀封裝格式,以太網取代的是數據鏈路層的令牌環和FDDI.以太網早期是總線型拓撲,後來爲了減小衝突和提升效率,使用了交換機,構成星型拓撲。
能夠簡單理解,鏈路層的ppp和以太網都是對ip層協議的封裝。PPPoE另說。。
osi的網絡模型和tcp/ip的網絡模型都涉及到封裝數據的問題,而在數據鏈路層的傳輸單位爲幀frame。傳輸層的數據放到ip層,ip層的數據部分就爲傳輸層的數據。網絡層的ip數據報傳到數據鏈路層,就爲數據鏈路層的幀的數據部分。見下面兩個圖html
Win查看MTU服務器
若是是wlan的話第一列應該是1492,以太網Ethernet II是1500(Why 1500?)網絡
interface ipv4 show subinterfaces
tcp
MTU MediaSenseState 傳入字節 傳出字節 接口 ------ --------------- --------- --------- ------------- 4294967295 1 4552252 4865 Loopback Pseudo-Interface 1 1500 1 3022660347 234035687 以太網 1500 1 648 1443666 VirtualBox Host-Only Network
C:\Users\yaxia>ping -f -l 1473 10.70.30.1 正在 Ping 10.70.30.1 具備 1473 字節的數據: 須要拆分數據包可是設置 DF。 須要拆分數據包可是設置 DF。 10.70.30.1 的 Ping 統計信息: 數據包: 已發送 = 2,已接收 = 0,丟失 = 2 (100% 丟失), Control-C ^C C:\Users\yaxia>ping -f -l 1472 10.70.30.1 正在 Ping 10.70.30.1 具備 1472 字節的數據: 來自 10.70.30.1 的回覆: 字節=1472 時間<1ms TTL=255 來自 10.70.30.1 的回覆: 字節=1472 時間<1ms TTL=255 來自 10.70.30.1 的回覆: 字節=1472 時間<1ms TTL=255 來自 10.70.30.1 的回覆: 字節=1472 時間<1ms TTL=255 10.70.30.1 的 Ping 統計信息: 數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),往返行程的估計時間(以毫秒爲單位):最短 = 0ms,最長 = 0ms,平均 = 0ms
MTU通常爲68-1500B,通常更改MTU大小指的是三層MTU的修改。1472+包頭28字節=MTU(Maximum Transmission Unit),是數據鏈路層,當第三層(ip)收到打包以後,要將數據包分片以後再往二層傳輸。而通常說的修改MTU就是說的修改IP層分片的大小,而不是指的(固定)大小的數據鏈路層的分片。oop
ipconfig/all 以太網適配器 以太網: 鏈接特定的 DNS 後綴 . . . . . . . : 描述. . . . . . . . . . . . . . . : Intel(R) Ethernet Connection (5) I219-LM 物理地址. . . . . . . . . . . . . : 8C-EC-4B-5F-E9-49 DHCP 已啓用 . . . . . . . . . . . : 是 自動配置已啓用. . . . . . . . . . : 是 本地連接 IPv6 地址. . . . . . . . : fe80::ed9a:ac29:db44:2570%11(首選) IPv4 地址 . . . . . . . . . . . . : 10.70.30.47(首選) 子網掩碼 . . . . . . . . . . . . : 255.255.254.0 得到租約的時間 . . . . . . . . . : 2019年9月18日 15:43:11 租約過時的時間 . . . . . . . . . : 2019年9月23日 15:43:13 默認網關. . . . . . . . . . . . . : 10.70.30.1 DHCP 服務器 . . . . . . . . . . . : 10.70.1.36 DHCPv6 IAID . . . . . . . . . . . : 42789963 DHCPv6 客戶端 DUID . . . . . . . : 00-01-00-01-22-50-8C-EE-8C-EC-4B-5F-E9-49 DNS 服務器 . . . . . . . . . . . : 10.70.1.38 10.70.1.39 TCPIP 上的 NetBIOS . . . . . . . : 已啓用
以太網數據幀結構this
綜上最大應爲:7+1+6+6+2+1500+4=1526,可是物理網卡會去掉一頭的前同步碼8個字節,去掉一尾的crc4個字節,wireshark裏展現的爲核心須要解析的爲6+6+2+(46-1500),最大爲1514字節,最小爲60。以下圖spa
Ethernet II, Src: Dell_5f:e9:49 (8c:ec:4b:5f:e9:49), Dst: Cisco_8f:98:00 (84:b2:61:8f:98:00)code
Destination: Cisco_8f:98:00 (84:b2:61:8f:98:00) Source: Dell_5f:e9:49 (8c:ec:4b:5f:e9:49) Type: IPv4 (0x0800)
Ethernet II, Src: Cisco_8f:98:00 (84:b2:61:8f:98:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)htm
Destination: Broadcast (ff:ff:ff:ff:ff:ff) Address: Broadcast (ff:ff:ff:ff:ff:ff) .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default) .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast) Source: Cisco_8f:98:00 (84:b2:61:8f:98:00) Address: Cisco_8f:98:00 (84:b2:61:8f:98:00) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: ARP (0x0806) Padding: 000000000000000000000000000000000000
二層爲arp廣播,基本靠吼,經過arp廣播查到網關地址blog
14 0.826054 Cisco_8f:98:00 Broadcast ARP 60 Who has 10.70.30.1? Tell 10.70.30.1
三層爲路由,每一跳的mtu可能都不一樣,這就涉及到分包(DF),在發現下一跳路由器的MTU大小以後,會有兩個選擇:若是爲1且包大於本身的mtu,那就直接扔掉。若是爲0,那就準備ip分片發送。接收方收到後重組(reassemble)後放到本身的接收緩衝區。
Ethernet II和802.3
區別以及如何經過13和14字節區分,參考車總這個回答
參考資料: