以太網(wǎng)數(shù)據(jù)包架構(gòu)
01概述
以太網(wǎng)這個(gè)術(shù)語(yǔ)一般是指數(shù)字設(shè)備公司(Digital Equipment Corp.)、英特爾公司(IntelCorp.)和Xerox公司在1982年聯(lián)合公布的一個(gè)標(biāo)準(zhǔn)。它是當(dāng)今TCP/IP采用的主要的局域網(wǎng)技術(shù)。幾年后,IEEE(電子電氣工程師協(xié)會(huì))802委員會(huì)公布了一個(gè)稍有不同的標(biāo)準(zhǔn)集,其中802.3針對(duì)整個(gè)CSMA/CD網(wǎng)絡(luò),802.4針對(duì)令牌總線網(wǎng)絡(luò),802.5針對(duì)令牌環(huán)網(wǎng)絡(luò)。
互聯(lián)網(wǎng)早期的時(shí)候,主機(jī)間的互連使用的是NCP協(xié)議。這種協(xié)議本身有很多缺陷,如:不能互連不同的主機(jī),不能互連不同的操作系統(tǒng),沒有糾錯(cuò)功能。為了改善這種缺點(diǎn),大牛弄出了TCP/IP協(xié)議。現(xiàn)在幾乎所有的操作系統(tǒng)都實(shí)現(xiàn)了TCP/IP協(xié)議棧。TCP/IP不是一個(gè)單一協(xié)議,而是一個(gè)協(xié)議族的統(tǒng)稱。里面包括了IP協(xié)議,IMCP協(xié)議,TCP協(xié)議,以及我們更加熟悉的HTTP、FHP協(xié)議等等。
首先我們看一下以太網(wǎng)數(shù)據(jù)結(jié)構(gòu)
注意數(shù)據(jù)長(zhǎng)度為46~1500
從物理層上看,一個(gè)完整的以太網(wǎng)幀有7個(gè)字段,事實(shí)上前兩個(gè)字段(前同步碼和SFD碼)并不能算是真正的以太網(wǎng)數(shù)據(jù)幀,它們是網(wǎng)卡在物理層上發(fā)送以太網(wǎng)數(shù)據(jù)時(shí)添加上的,是為了實(shí)現(xiàn)底層的正確傳輸。上圖中的目的地址,源地址,長(zhǎng)度/類型屬于以太網(wǎng)首部的部分。
特別說明:上面的目的地址和源地址是MAC,不是IP!!!!
關(guān)于OSI七層模型:應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、和物理層,如下圖
02TCP/IP四層模型
ISO制定的OSI參考模型的過于龐大、復(fù)雜招致了許多批評(píng)。與此對(duì)照,由技術(shù)人員自己開發(fā)的TCP/IP協(xié)議棧獲得了更為廣泛的應(yīng)用。下圖,是TCP/IP參考模型和OSI參考模型的對(duì)比示意圖
TCP/IP參考模型分為四個(gè)層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)互連層和主機(jī)到網(wǎng)絡(luò)層
在TCP/IP參考模型中,去掉了OSI參考模型中的會(huì)話層和表示層(這兩層的功能被合并到應(yīng)用層實(shí)現(xiàn))。同時(shí)將OSI參考模型中的數(shù)據(jù)鏈路層和物理層合并為主機(jī)到網(wǎng)絡(luò)層。下面,分別介紹各層的主要功能。
1、主機(jī)到網(wǎng)絡(luò)層
實(shí)際上TCP/IP參考模型沒有真正描述這一層的實(shí)現(xiàn),只是要求能夠提供給其上層-網(wǎng)絡(luò)互連層一個(gè)訪問接口,以便在其上傳遞IP分組。由于這一層次未被定義,所以其具體的實(shí)現(xiàn)方法將隨著網(wǎng)絡(luò)類型的不同而不同。
2、網(wǎng)絡(luò)互聯(lián)層
網(wǎng)絡(luò)互聯(lián)層是整個(gè)TCP/IP協(xié)議棧的核心。它的功能是把分組發(fā)往目標(biāo)網(wǎng)絡(luò)或主機(jī)。同時(shí),為了盡快地發(fā)送分組,可能需要沿不同的路徑同時(shí)進(jìn)行分組傳遞。因此,分組到達(dá)的順序和發(fā)送的順序可能不同,這就需要上層必須對(duì)分組進(jìn)行排序。
網(wǎng)絡(luò)互聯(lián)層定義了分組格式和協(xié)議,即IP協(xié)議(InternetProtocol)。
網(wǎng)絡(luò)互聯(lián)層除了需要完成路由的功能外,也可以完成將不同類型的網(wǎng)絡(luò)(異構(gòu)網(wǎng))互連的任務(wù)。除此之外,網(wǎng)絡(luò)互聯(lián)層還需要完成擁塞控制的功能。
3、傳輸層
在TCP/IP模型中,傳輸層的功能是使源端主機(jī)和目標(biāo)端主機(jī)上的對(duì)等實(shí)體可以進(jìn)行會(huì)話。在傳輸層定義了兩種服務(wù)質(zhì)量不同的協(xié)議。即:傳輸控制協(xié)議TCP(transmissioncontrol protocol)和用戶數(shù)據(jù)報(bào)協(xié)議UDP(userdatagram protocol)。
TCP協(xié)議是一個(gè)面向連接的、可靠的協(xié)議。它將一臺(tái)主機(jī)發(fā)出的字節(jié)流無差錯(cuò)地發(fā)往互聯(lián)網(wǎng)上的其他主機(jī)。在發(fā)送端,它負(fù)責(zé)把上層傳送下來的字節(jié)流分成報(bào)文段并傳遞給下層。在接收端,它負(fù)責(zé)把收到的報(bào)文進(jìn)行重組后遞交給上層。TCP協(xié)議還要處理端到端的流量控制,以避免緩慢接收的接收方?jīng)]有足夠的緩沖區(qū)接收發(fā)送方發(fā)送的大量數(shù)據(jù)。
UDP協(xié)議是一個(gè)不可靠的、無連接協(xié)議,主要適用于不需要對(duì)報(bào)文進(jìn)行排序和流量控制的場(chǎng)合。
4、應(yīng)用層
TCP/IP模型將OSI參考模型中的會(huì)話層和表示層的功能合并到應(yīng)用層實(shí)現(xiàn)。
應(yīng)用層面向不同的網(wǎng)絡(luò)應(yīng)用引入了不同的應(yīng)用層協(xié)議。其中,有基于TCP協(xié)議的,如文件傳輸協(xié)議(FileTransfer Protocol,F(xiàn)TP)、虛擬終端協(xié)議(TELNET)、超文本鏈接協(xié)議(HyperText Transfer Protocol,HTTP),也有基于UDP協(xié)議的。
各行信息分別為:
Frame: 物理層的數(shù)據(jù)幀概況
Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息
Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息
Transmission ControlProtocol: 傳輸層T的數(shù)據(jù)段頭部信息,此處是TCP
Hypertext Transfer Protocol: 應(yīng)用層的信息,
幾個(gè)常用的協(xié)議的功能我們通過一個(gè)形象的說法來展現(xiàn)
IP:I want to send data to 192.168.0.127
UDP:I want to send a datagram on the port N
TCP:I want to send data in a reliable way onthe port N (reliable:可靠的)
ARP:who knows 192.168.0.127's MAC address?
RARP:who knows 21.21.12.21.21.12's IP address?
ICMP:I send or receive queries or error message
DHCP:I want to get an IP address
DNS:what is the IP address of www.baidu.com?
本文轉(zhuǎn)載自微信公眾號(hào)「知曉編程」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系知曉編程公眾號(hào)。