1、概述
以太網這個術語一般是指數字設備公司(Digital Equipment Corp.)、英特爾公司(IntelCorp.)和Xerox公司在1982年聯合公布的一個標準,它是當今TCP/IP采用的主要的局域網技術,幾年后,IEEE(電子電氣工程師協會)802委員會公布了一個稍有不同的標準集,其中802.3針對整個CSMA/CD網路,802.4針對令牌總線網路,802.5針對令牌環網路,
互聯網早期的時候,主機間的互連使用的是NCP協議,這種協議本身有很多缺陷,如:不能互連不同的主機,不能互連不同的作業系統,沒有糾錯功能,為了改善這種缺點,大牛弄出了TCP/IP協議,現在幾乎所有的作業系統都實作了TCP/IP協議堆疊,TCP/IP不是一個單一協議,而是一個協議族的統稱,里面包括了IP協議,IMCP協議,TCP協議,以及我們更加熟悉的HTTP、FHP協議等等,
首先我們看一下以太網資料結構


注意資料長度為46~1500
從物理層上看,一個完整的以太網幀有7個欄位,事實上前兩個欄位(前同步碼和SFD碼)并不能算是真正的以太網資料幀,它們是網卡在物理層上發送以太網資料時添加上的,是為了實作底層的正確傳輸,上圖中的目的地址,源地址,長度/型別屬于以太網首部的部分,
特別說明:上面的目的地址和源地址是MAC,不是IP!!!!
關于OSI七層模型:應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、和物理層,如下圖

02、TCP/IP四層模型
ISO制定的OSI參考模型的過于龐大、復雜招致了許多批評,與此對照,由技術人員自己開發的TCP/IP協議堆疊獲得了更為廣泛的應用,下圖,是TCP/IP參考模型和OSI參考模型的對比示意圖

TCP/IP參考模型分為四個層次:應用層、傳輸層、網路互連層和主機到網路層

在TCP/IP參考模型中,去掉了OSI參考模型中的會話層和表示層(這兩層的功能被合并到應用層實作),同時將OSI參考模型中的資料鏈路層和物理層合并為主機到網路層,下面,分別介紹各層的主要功能,
1、主機到網路層
實際上TCP/IP參考模型沒有真正描述這一層的實作,只是要求能夠提供給其上層-網路互連層一個訪問介面,以便在其上傳遞IP分組,由于這一層次未被定義,所以其具體的實作方法將隨著網路型別的不同而不同,
2、網路互聯層
網路互聯層是整個TCP/IP協議堆疊的核心,它的功能是把分組發往目標網路或主機,同時,為了盡快地發送分組,可能需要沿不同的路徑同時進行分組傳遞,因此,分組到達的順序和發送的順序可能不同,這就需要上層必須對分組進行排序,
網路互聯層定義了分組格式和協議,即IP協議(InternetProtocol),
網路互聯層除了需要完成路由的功能外,也可以完成將不同型別的網路(異構網)互連的任務,除此之外,網路互聯層還需要完成擁塞控制的功能,
3、傳輸層
在TCP/IP模型中,傳輸層的功能是使源端主機和目標端主機上的對等物體可以進行會話,在傳輸層定義了兩種服務質量不同的協議,即:傳輸控制協議TCP(transmissioncontrol protocol)和用戶資料報協議UDP(userdatagram protocol),
TCP協議是一個面向連接的、可靠的協議,它將一臺主機發出的位元組流無差錯地發往互聯網上的其他主機,在發送端,它負責把上層傳送下來的位元組流分成報文段并傳遞給下層,在接收端,它負責把收到的報文進行重組后遞交給上層,TCP協議還要處理端到端的流量控制,以避免緩慢接收的接收方沒有足夠的緩沖區接收發送方發送的大量資料,
UDP協議是一個不可靠的、無連接協議,主要適用于不需要對報文進行排序和流量控制的場合,
4、應用層
TCP/IP模型將OSI參考模型中的會話層和表示層的功能合并到應用層實作,
應用層面向不同的網路應用引入了不同的應用層協議,其中,有基于TCP協議的,如檔案傳輸協議(FileTransfer Protocol,FTP)、虛擬終端協議(TELNET)、超文本鏈接協議(HyperText Transfer Protocol,HTTP),也有基于UDP協議的,

各行資訊分別為:
Frame: 物理層的資料幀概況
Ethernet II: 資料鏈路層以太網幀頭部資訊
Internet Protocol Version 4: 互聯網層IP包頭部資訊
Transmission ControlProtocol: 傳輸層T的資料段頭部資訊,此處是TCP
Hypertext Transfer Protocol: 應用層的資訊,

幾個常用的協議的功能我們通過一個形象的說法來展現
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?
點擊查看本文所在的專輯,STM32F207網路開發
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/267272.html
標籤:其他
