目錄
數據鏈路層
以太網
以太網幀格式
MAC 地址
DNS(Domain Name System)
完!
數據鏈路層
這里的內容也是簡單了解,除非是做交換機開發,一般程序員不需要涉及~~
以太網
”以太網“不是一種具體的網絡,而是一種技術標準,既包含了數據鏈路層的內容,也包含了一些理層的內容。例如:規定了網絡拓撲結構,訪問控制方式,傳輸速率等等~~
例如,以太網中的網線必須使用雙絞線:傳輸速率有 10M 100M 1000M等等~~
以太網是目前使用最廣泛的局域網技術,和以太網并列的還有令牌環網,無線 LAN 等~~
以太網幀格式
源地址和目的地址:指的是網卡的硬件地址(也叫 MAC 地址),長度是 48 位(6 個字節的地址),是在網卡出場時候就固化了
幀協議類型字段有三種值,分別對應 IP,ARP,RARP
IP:此時意味著以太網數據幀是一個能夠攜帶業務數據的報文(大概率是業務數據,也有可能是一個攜帶 syn 這種的業務~~)
ARP 和 RARP 可以認為是兩個橫跨了網絡層和數據鏈路層的協議。
ARP:
在網絡通信中,源主機的應用程序知道目的主機的 IP 地址和端口號,卻不知道目的主機的硬件機制。數據包顯示被網卡接收到然后再去處理上層協議的,如果接收到的數據包的硬件地址與主機不符,則直接丟棄~因此在通訊前必須獲得目的主機的硬件地址
ARP效果就是能夠讓路由器 / 交換機建立一個內部的結構, IP -> MAC (類似于 hash表)(轉發表,并不是路由表,只是描述著一個設備和那些設備之間是連接著的~~)
RARP:
RARP 也是路由器和交換機也是建立一個內部的結構,不過是 MAC?-> IP
幀末尾是 CRC 校驗碼
以太網的數據幀,載荷部分是有長度要求的(46 - 1500 字節)。46 字節,是因為 ARP 是 46 字節,1500 字節,是硬件的限制,最大的載荷長度,稱為 MTU,我們前面在 IP 中講到 IP 數據報拆包組包往往就是因為這個 MTU 導致的~(數據鏈路層也不僅僅是以太網,還有其他的協議,不同的協議,對應的 MTU 也會有差別~)
MAC 地址
在數據鏈路層,引入了另外一套地址體系,稱為”MAC 地址“ / 物理地址
MAC 地址和 IP 地址是兩套獨立的地址體系。
IP 地址,側重于全局的轉發,從起點到終點,整個轉發過程,通過 IP 地址負責完成。
MAC 地址,側重于局部的轉發,兩個相鄰設備之間的轉發(一個電腦臉上一個路由器,這就是相鄰設備)
MAC 地址是用來識別數據鏈路層中相鄰的節點,一般用 16 禁止數字加上冒號的形式來表示(例如:08:00:27:03:fb:19)
MAC 地址表示的范圍比 IPv4 的地址大的多,當前的 MAC 地址都是和主機(網卡)一對一進行綁定的,IP 地址我們前面提到過,是動態分配的,但 MAC 地址就是靜態分配的,網卡出廠的時候,MAC 地址就寫死了~~
舉個栗子~~
從江西到山西大同,路程非常遠,沒辦法直達~有三條路線可選:
1. 江西 - 湖北 - 河南 - 山西 - 大同
2. 江西 - 安徽 - 河南 - 山西 - 大同
3. 江西 - 湖北 - 山西 - 山西 - 大同
上面的三種路線,就是網絡層的路由選擇的過程,一跳一跳的可以進行"投石問路"
如果確定了路線三:江西 - 湖北 - 山西 - 大同。
則就又有不同的出行方式:
1. 江西 - 湖北:
源 IP:江西,目的 IP:大同
源 MAC:江西,目的 MAC:湖北
(坐飛機)
2. 湖北 - 山西
源 IP:江西,目的 IP:大同
源 MAC:湖北,目的 MAC:山西
(坐火車)
3. 山西 - 大同
源 IP:江西,目的 IP:大同
源 MAC 山西,目的 MAC:大同
(坐大巴)
上述不同的出行方式,即是每經過一個路由器 / 交換機,路由器 / 交換機就會把上述數據包進行分用和重新分裝,其中的源 MAC 和目的 MAC 就會發生改變,如果不考慮 NAT 機制,源 IP 和目的 IP 是始終不變的~~(公網對公網)
DNS(Domain Name System)
DNS 是一整套從域名映射到 IP 的系統
TCP / IP 中使用 IP 地址和端口號來確定網絡上的一臺主機的一個程序,但是 IP 地址不方便記憶~
于是人們發明了一種叫主機名的東西,是一個字符串,并且使用 hosts 文件來描述主機名和 IP 地址的關系~~
hosts 文件里面的內容就是行文本,包含很多行,每一行都有 IP 和域名,每次訪問每個域名就會進行查詢,獲取到對應的 IP。hosts 文件目前仍然是有效的,只不過一般情況下都是空的內容~~
隨著互聯網不斷發展,域名和服務器都越來越多了,此時維護 hosts 文件,就非常麻煩了。
干脆就有大佬,搭建了一組服務器,來提供域名解析服務(將 hosts 內容放到了服務器里面了),某個主機想要訪問某個域名,就先查詢一下 域名解析服務器(DNS 服務器),查到的結果,就是域名對應的 IP,拿著 IP 進行訪問即可~~
DNS 服務器,并非只有一份,是有很多份的~~最開始的一套 DNS 服務器,稱為”根域名服務器“,這里面的內容是非常全的~~ 各個國家的網絡運營商,再根據域名服務器里面的內容,搭建出”鏡像服務器“,上網的時候,一般就是就近的訪問附近運營商的鏡像 DNS 服務器,鏡像 DNS 服務器會定期的從跟服務器中同步數據~~
搭建域名服務器的時候。還會對于域名進行分級管理,一級域名,二級域名,三級域名....這樣就可以控制每個服務器管理的數據都是適量的~~
例如,www.baidu.com ==> 一級域名:www 二級域名:baidu? 三級域名:com~~