乙太網
「乙太網」 不是一種具體的網路,而是一種技術標準,即包含了資料鏈路層的內容也包含了一些物理層的內容
例如乙太網中的網線必須使用雙絞線; 傳輸速率有10m, 100m, 1000m等
乙太網是當前應用最廣泛的區域網技術,和乙太網並列的還有令牌環網, 無線lan等
mac 位址
用於識別資料鏈路層中相連的節點
長度為 48 個位元位,即 6 個位元組,一般用 16 進製數字加上冒號來表示(08:00:27:03:fb:19)
mac 位址一般網絡卡出廠的時候就確定了,不能更改,而且是唯一的(有些網絡卡也支援更改 mac 位址)
對比 ip 位址和 mac 位址
ip 位址描述的是是路途總的起點和終點,mac 位址描述的是每個區間的起點和終點,路由選擇的一跳就是從源mac位址到目的mac位址的乙個區間
mtu
乙太網幀中的資料長度規定最小46位元組,最大1500位元組,arp資料報的長度不夠46位元組,要在後面補填充位,最大值1500稱為乙太網的最大傳輸單元(mtu),如果資料報長度大於mtu,則需要對資料報進行分片(fragmentation),對於不同的資料鏈路層標準mtu是不同的
mtu對ip協議的影響
由於資料鏈路層mtu的限制,對於較大的ip資料報要進行分包,每個小包ip協議頭的16位標識(id) 都是相同的,到達對端時再將這些小包,會按順序重組,拼裝到一起返回給傳輸層,一旦這些小包中任意乙個小包丟失,接收端的重組就會失敗,但是ip層不會負責重新傳輸資料
mtu對udp協議的影響
一旦udp攜帶的資料超過1472( 1500 - 20(ip首部) - 8(udp首部) ),那麼就會在網路層分成多個ip資料報,這多個ip資料報有任意乙個丟失,都會引起接收端網路層重組失敗,那麼這就意味著,如果udp資料報在網路層被分片,整個資料被丟失的概率就大大增加了
mtu對tcp協議的影響
tcp的乙個資料報也不能無限大,還是受制於mtu,tcp的單個資料報的最大訊息長度,稱為mss(max segment size),tcp在建立連線的過程中,通訊雙方會進行mss協商,最理想的情況下, mss的值正好是在ip不會被分片處理的最大長度(這個長度仍然是受制於資料鏈路層的mtu,雙方在傳送syn的時候會在tcp頭部寫入自己能支援的mss值,然後雙方得知對方的mss值之後,選擇較小的作為最終mss,mss的值就是在tcp首部的40位元組變長選項中
arp 協議源主機發出arp請求,詢問某個主機的硬體位址是多少,並將這個請求廣播到本地網段(乙太網幀首部的硬體位址填ff:ff:ff:ff:ff:ff表示廣播),目的主機接收到廣播的arp請求,發現其中的ip位址與本機相符,則傳送乙個arp應答資料報給源主機,將自己的硬體位址填寫在應答包中
每台主機都維護乙個arp快取表,快取表中的表項有過期時間(一般為20分鐘),如果20分鐘內沒有再次使用某個表項,則該表項失效,下次還要發arp請求來獲得目的主機的硬體位址
nat 技術
nat是一種將私有ip和公有ip進行相互轉換的方法,解決了32位的ipv4位址不夠用的情況
公有ip和私有ip
公有ip是絕對唯一的,但是私有ip不一定,但是在乙個公有ip的區域網下私有ip一定是唯一的,可否重複的標準是不能影響主機之間的通訊,ip位址起到的是唯一的標識一台主機的作用,兩個相鄰的公有ip下的區域網中可能會存在相同的ip位址,公有ip就相當於寄快遞過程中將快遞寄到了學校,私有ip就相當於具體收快遞的人
nat ip轉換過程
當一台主機給伺服器傳送資料的時候,不能將自己的ip直接告訴伺服器,因為自己的ip和其他區域網的ip可能會發生重複,因此nat轉換技術就是將私網ip和公網ip進行轉換的技術,傳送時路由器將私網ip轉換為公網ip,來自伺服器的資料也是先由路由器接收然後在傳送給主機
公網ip和私網ip的關聯關係建立在一張路由表中,利用ip位址+埠號的方式,這種方式叫做napt
nat缺陷
1)無法從外部向內部伺服器建立連線,只能從私網ip向公網ip建立連線,反過來不可以,因為路由表中沒有對映關係
2)路由表的生成和銷毀都需要占用額外開銷
3)一旦nat裝置出現異常,所有的tcp連線都會斷開
TCP IP詳解 資料鏈路層
鏈路層上最常見的封裝就是乙太網和ieee 802封裝,這裡就使用乙太網作為講解的物件。一 概述 資料鏈路層屬於計算機網路的底層,使用的通道主要有點對點通道和廣播通道兩種型別。在tcp ip協議族中,資料鏈路層主要有三個目的 1 為ip模組傳送和接收資料 2 為arp模組傳送arp請求和接收arp應答...
資料鏈路層
資料鏈路的定義 鏈路 計算機網路中相鄰節點的一段物理線路。資料鏈路 計算機網路中節點到節點相鄰的一段物理路線加上控制在這些路線上傳輸資料的協議。資料鏈路層解決的問題 對於計算機網路裡面的每一層,其實都是為了解決某乙個層面的問題而設計出來的,資料鏈路層也一樣 由於物理層只解決了訊號流在物理媒介的傳輸問...
資料鏈路層
首先撇清兩個概念 鏈路和資料鏈路。鏈路是指從乙個結點到另乙個結點的一段物理線路,而中間沒有任何其他的交換結點,在進行資料通訊時,兩個計算機之間的通訊路徑往往要經過許多段這樣的鏈路,可見鏈路只是一條路徑的組層部分,資料鏈路是除了一條物理鏈路外還需要加上一些必要的通訊協議來控制這些資料的傳輸。若把這些實...