目錄
一. 以太網
二. 以太網數據幀
三. MAC地址
四. MTU
?五. ARP協議
?六. DNS
?
一. 以太網
以太網是一種基于有線或無線介質的計算機網絡技術,定義了物理層和數據鏈路層的協議,用于在局域網中傳輸數據幀。
二. 以太網數據幀
1)目標地址
?接收方的MAC地址(6個字節)
2)源地址
?發送方的MAC地址(6個字節)
3)類型
?現在常用的類型是DIX標準,用于標識上層協議
- IPv4:
0x0800
- ARP:
0x0806
- IPv6:
0x86DD
RARP:Ox8035
可以直接支持多種上層協議,無需額外封裝。?
4)數據
?數據大小的范圍:46~1500字節
- 最小46字節:若上層數據不足,需填充(Padding)至46字節,確保幀總長≥64字節。
- 最大1500字節:避免過長幀導致緩沖區溢出或延遲過高(稱為最大傳輸單元MTU)。
5)校驗(CRC)
?循環冗余校驗,判斷傳輸的數據是否正確
三. MAC地址
MAC地址是數據鏈路層中用于唯一標識網絡設備的物理地址,確保數據在同一局域網中準確傳輸到目標設備?,類似于身份證號
- MAC地址通常使用16進制表示,字節之間使用—進行分割
- 從出廠的時候,就已經規定好了,不能進行修改,由于這種靜態分配和不可變性,一般使用MAC地址作為機器唯一標識
- 全球唯一性:由IEEE統一分配,確保每個設備的MAC地址不重復
IP地址和MAC地址的區別?
MAC地址的作用和IP地址類似,都是用于定位設備
MAC地址和IP地址是兩個獨立的地址體系
- IP地址側重于全局的轉發,從起到到終點整個轉發的過程,通過路由表一直查詢IP地址完成通信
- MAC地址側重于局部的轉發,兩個相鄰設備之間的通信
如果是公網傳播,不涉及NAT機制,那么以太網數據幀的IP部分一直不回改變
但是每經過一個路由器或交換機,以太網幀頭中的源MAC地址和目的MAC地址都會發生改變
四. MTU
?MTU是網絡通信中的一個關鍵參數,用于限制數據鏈路層可承載的網絡層數據包的最大大小
在不進行分片的前提下。某一個網絡接口可以傳輸的最大數據量,MTU對網絡傳輸效率有顯著的影響
較大的MTU可減少頭部開銷,提高吞吐量;較小的MTU可降低延遲,適合實時通信。
以太網數據幀對載荷部分,具有一定的要求,最小位46字節,最大是1500字節,46字節是因為ARP最小是46字節,1500字節(實際不到)是硬件設備的限制
MTU對IP協議的影響(分包)
若IP數據包大小超過路徑MTU,路由器會分片(Fragmentation),接收端再重組。
注意:如果出現了小包的丟失,就會導致整個的重組失敗,但是IP層不會負責重發
MTU對UDP協議的影響
UDP數據報如果攜帶的數據超過了1472字節(1500-20(IP首部)-8(UDP首部)),那么就會把這個數據在網絡層分成多個IP數據包進行傳輸,如果小包丟失了,數據重組失敗,但是IP層不會重發,就會導致整個數據丟包的概率增加
MTU對TCP協議的影響
?這里要介紹一個新的概念:MSS
MSS:TCP協議中一次可傳輸的最大應用層數據量(不含TCP和IP頭部)
TCP相對于UDP而言,會在建立連接的時候,進行MSS協商,在建立連接的時候,客戶端發送SYN請求報文的時候,會攜帶MSS值,服務器會根據收到的MSS值和本端的MTU值,取其中的最小值,告知給客戶端,客戶端返回ACK中確認協商后的MSS值,這就是MSS協商
如果應用層的數據超過了MSS值,會在傳輸層進行分段,每個段的大小不會超過MSS值
由于網絡傳輸的復雜性,這個MSS并不是一味不變,會動態調整MSS以適配路徑最小MTU。
?在數據鏈路層中,不止存在以太網協議,還存在其他協議,協議不同,MTU也是不同的
?五. ARP協議
?ARP協議建立了主機IP地址和MAC地址的映射關系
目的主機硬件地址的重要性?
- 在網絡通信中,源主機知道目的主機的IP地址和端口號,但是不知道目的主機的硬件地址
- 如果不知道目的主機的硬件地址,數據到達不了網卡,也意味著上層協議無法收到數據
- 所有在通訊前必須要知道,目的主機的硬件地址
?如何得知硬件地址?(ARP協議)
源主機發送ARP請求(廣播發送),廣播詢問這個IP地址的硬件地址是什么?
目的主機收到這個請求之后,發現這個IP地址對應的是自己,那么就會將自己的主機硬件地址發送給源主機(ARP應答包)
每臺主機都維護?個ARP緩存表,緩存表中的表項有過期時間(?般為20分 鐘),如果20分鐘內沒有再次使?某個表項,則該表項失效,下次還要發ARP請求來獲得?的主機的硬件地址
?六. DNS
DNS也就域名解析系統,在網絡通信中,使用IP地址來標識一個網絡設備的位置,一串點分十進制的數字,是不好被記憶的,就使用一些可讀性好的單詞(域名),來標識一個IP地址
這種從域名到IP地址的解析過程,就是DNS
- 起初域名和服務器沒有這么多,使用hosts文件進行管理,每次訪問時,在hosts文件中,找到這個域名對應的IP地址,然后進行訪問
- 隨著域名和服務器越來越多,使用hosts文件進行管理,維護起來很麻煩,于是就使用一個專門的服務器提供這個域名解析的服務,主機每次訪問一個服務器之前,都要先訪問一下這個DNS服務器,進行域名解析操作,然后拿著IP地址,去訪問
最開始的這些DNS服務器,也稱為根域名服務器(數量有限),全世界同時有這么多人同時上網,根域名服務器肯定承載不住,于是各個國家的運營商,就根據根域名服務器,搭建出非常多的鏡像DNS服務器,用戶一般訪問的時候,是訪問附近的鏡像DNS服務器