OSI模型及TCP/IP:
數據封裝:
應用數據需要經過TCP/IP每一層處理之后才能通過網絡傳輸到目的端,每一層上都使用該層的協議數據單元PDU(Protocol Data Unit)彼此交換信息。不同層的PDU中包含不同的信息,因此PDU在不同層被賦予不同的名稱。
傳輸層在上層數據中加入TCP報頭后得到的PDU為:數據段Segment
數據段被傳遞到網絡層,網絡層添加IP報頭得到的PDU被成為:數據包Packet
數據包被傳遞到數據鏈路層,封裝數據鏈路層報頭得到PDU被稱為:數據幀Frame
最后,幀被轉換為比特,通過網絡介質傳輸
協議棧向下傳遞數據,並添加報頭和報尾的過程成為封裝。數據被封裝並通過網絡傳輸后,接收設備將刪除添加的信息,並根據報頭中得信息決定如何將數據沿協議棧上傳給合適的應用程序,這個過程成為解封裝
終端之間的通信
數據包在以太網物理介質上傳播之前必須封裝頭部和尾部信息,封裝后的數據包稱為數據幀,數據幀中封裝的信息決定了數據如何傳輸。以太網上傳輸的數據幀有兩種格式,選擇哪種格式由TCP/IP協議簇中的網絡層決定。
幀格式
以太網上使用兩種標准幀格式。第一種是上世紀80年代提出的DIX v2格式,即Ethernet II格式。第二種是1983年提出的IEEE 802.3格式。
兩種格式得區別在於Ethernet 格式種包含一個Type字段,標識以太網幀處理完之后將被發送到哪個上層協議進行處理,IEEE 802.3格式種,同樣位置是長度字段。
Ethernet II 格式相對使用廣泛。
從Type/Length字段值可以區分兩種幀類型:當Type字段值小於等於1500(0x05DC)時,幀使用的是IEEE 802.3格式。當Type字段值大於等於1536(0x0600)時,幀使用的是Ethernet II格式
Ethernet II格式
Ethernet II格式種Data字段長度在46-1500B,故以太網數據幀的長度在64(6+6+2+46+4)-----1518(6+6+2+1500+4)字節之間
DMAC:目的MAC地址。字段長度6個字節,標識幀的接收者
SMAC:源MAC地址。字段長度6個字節,標識幀的發送者
Type:類型字段,字段長度2個字節,用於標識數據字段種包含的高層協議。
0x0800 代表 IP協議幀
0x0806 代表ARP協議幀
Data:數據字段是網絡層數據,最小長度必須為46字節
FCS:循環冗余校驗字段,提供了一種錯誤檢測機制,字段長度為4個字節
IEEE802.3
Length字段定於了Data字段包含的字節數
LLC(Logical Link Control)邏輯鏈路控制,由目的服務訪問點DSAP(Destination Service Access Point)、源服務訪問點SSAP(Source Service Access Point)和Control字段組成。
SNAP(Sub-network Access Protocol)由機構代碼(Org Code)和類型Type字段組成。Org Code三個字節都為0。Type字段的含義與Ethernet II中Type字段相同。
IEEE802.3幀根據DSAP和SSAP字段的取值,又可以分為以下幾類:
1:當DSAP和SSAP都取特定值0xff時,802.3幀就變成了Netware-ETHERNET幀,用來承載NetWare類型的數據
2:當DSAP和SSAP都取特定值0xaa時,802.3幀就變成了ETHERNET_SNAP幀。此幀可以用於傳輸多種協議。
3:DSAP和SSAP其他的取值均為純IEEE802.3幀
故可以說4種以太網幀
以太網MAC地址
MAC地址由兩部分組成,分別時供應商代碼和序列號。其中前24位代表供應商代碼,由IEEE管理和分配。剩下的24位序列號由廠商自己分配。
每一台網絡設備都用物理地址來標識自己,MAC地址是全球唯一的。