TCP/IP協議架構是通信協議的統稱,常被稱為 TCP/IP協議族,包括兩個核心協議: TCP(傳輸控制協議)和 IP(網際協議),TCP/IP協議的開發始於20世紀60年代后期,早於OSI參考模型,由於TCP/IP模型更加簡潔易用,目前大多采用TCP/IP模型。一共包括4層:應用層、傳輸層、網絡層和網絡接口層。
OSI模型與TCP/IP模型:
物理層
負責0、1 比特流(0/1序列)與電壓的高低之間的轉換
數據的單位稱為比特(bit)
屬於物理層定義的典型規范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi令牌環網等
OSI采納了各種現成的協議,其中有RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4、和IEEE802.5的物理層協議
數據鏈路層
負責物理層面上的互聯的、節點間的通信傳輸(例如一個以太網項鏈的2個節點之間的通信);
該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。在這一層,數據的單位稱為幀(frame)
-
封裝成幀: 把網絡層數據報加頭和尾,封裝成幀,幀頭中包括源MAC地址和目的MAC地址。
-
透明傳輸:零比特填充、轉義字符。
-
可靠傳輸:在出錯率很低的鏈路上很少用,但是無線鏈路WLAN會保證可靠傳輸。
-
差錯檢測(CRC):接收者檢測錯誤,如果發現差錯,丟棄該幀。
主要協議
①點對點協議PPP(Point to Point Protocol)
②以太網(Ethernet)
③高級數據鏈路控制協議HDLC(High-Level Data Link Control)
④ 幀中繼(Frame Relay)
⑤異步傳輸模式ATM(Asynchronous Transfer Mode)
MAC地址
MAC(Medium/Media Access Control)地址,媒體訪問控制,或稱為物理地址、硬件地址,48位
MAC地址
- 組織唯一標識符(OUI)由IEEE(電氣和電子工程師協會)分配給廠商
- I/G(Individual/Group)位,如果I/G=0,則是某台設備的MAC地址,即單播地址;如果I/G=1,則是多播地址(組播+廣播=多播)。
- G/L(Global/Local,也稱為U/L位,其中U表示Universal)位,如果G/L=0,則是全局管理地址,由IEEE分配;如果G/L=1,則是本地管理地址,是網絡管理員為了加強自己對網絡管理而指定的地址。
MAC幀
IP地址負責表示計算機的網絡層地址,網絡層設備(如路由器)根據IP地址來進行操作;
MAC地址負責表示計算機的數據鏈路層地址
IP和MAC地址這種映射關系由ARP(Address Resolution Protocol,地址解析協議)協議完成。
PPPoE 協議
基於以太網的點對點通訊協議PPPOE(Point to Point Protocol over Ethernet)
- 單純的以太網沒有驗證功能,也沒有建立和斷開連接的處理,因此無法按時計費。
- 如果采用PPPoE管理以太網連接,就可以利用PPP的驗證等功能使各家ISP可以有效地管理終端用戶的使用。
- 分成發現階段(Discorvery)和PPP會話階段(Session)
報文的以太網類型:
- 當值為0x8863時表示Discovery階段或Terminate階段。
- 當值為0x8864時表示Session階段。
PPPoE撥號過程
PPPoE Discovery發現階段
- 用戶主機用廣播的方式發出**PADI **(PPPOE Active Discovery Initiatio) 包,准備去獲得所有可連接的接入設備(獲得其MAC地址);
- PPPoE服務器收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作為回應;
- 用戶主機從收到的多個PADO包中,根據其名稱類型名或者服務名,選擇一個合適的接入設備,然后發送PADR (PPPOE Active Discovery Request) 包,另外如果一個用戶主機在發出PADI后在規定時間內沒有收到PADO,則會重發PADI,並且加倍等待時間;
- PPPoE服務器收到PADR包后,返回PADS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一個唯一session ID,雙方進入PPP會話階段。
code | 報文 | ||
---|---|---|---|
0x09 | PADI | PPPoE Active Discovery Initiation | PPPoE發現初始報文 |
0x07 | PADO | PPPoE Active Discovery Offer | PPPoE發現提供報文 |
0x19 | PADR | PPPoE Active Discovery Request | PPPoE發現請求報文 |
0x65 | PADS | PPPoE Active Discovery Sessionconfirmation | PPPoE發現會話確認報文 |
0xa7 | PADT | PPPoE Active Discovery Terminate | PPPoE發現終止報文 |
Discovery階段:以太網幀的ETHER_TYPE域都設置為 0x8863
PPPoE Session 會話階段
1 LCP協商階段(Link Control Protocol)
鏈路協商
- LCP用於建立、拆除和監控PPP數據鏈路
- 還用於鏈路層參數的協商,如MRU、驗證方式
協商雙方互相發送一個LCP Config-Request報文,確認收到的Config-Request報文中的協商選項,根據這些選項的支持與接受情況,做出適當的回應。若兩端都回應了Config-ACK,則標志LCP鏈路建立成功,否則會繼續發送Request報文,直到對端回應了ACK報文為止。
2 認證階段
會話雙方通過LCP協商好的認證方法進行認證,如果認證通過了,才可以進行下面的網絡層的協商。認證過程在鏈路協商結束后就進行。
-
PAP(Password Authentication Protocol,口令認證協議)
PAP為兩次握手協議,它通過用戶名及口令來對用戶進行驗證。
-
CHAP(Challenge Handshake Authentication Protocol,質詢握手認證協議)
CHAP為三次握手協議。只在網絡上傳輸用戶名,並不傳輸用戶口令,因此它的安全性要比PAP高。
Md5算法
3 NCP協商階段
網絡層協商:IPCP、BCP、IPv6CP等
-
協商PPP報文的網絡層參數,如IP地址,DNS Server IP等。
-
PPPoE用戶主要通過IPCP來獲取訪問網絡的IP地址或IP地址段,網關,DNS等。
-
用戶和接入設備對IP服務階段的一些要求進行多次協商,以決定雙方都能夠接收的約定。如:IP業務階段使用的IP壓縮協議等。
-
雙方的協議是通過報文中包含的Option項進行協商的,每一個Option都是一個需要協商的問題。最后雙方都需要對方答復Configure_Ack的同意報文。
-
IPCP的協商過程是基於PPP狀態機進行協商的。
-
經過雙方協商,通過配置請求、配置確認、配置否認等包文交換配置信息,最終由initial (或closed)狀態變為Opened狀態。
-
IPCP狀態變為Opened的條件必須是發送方和接收方都發送和接收過確認報文。
-
IPCP協商過程中,協商報文可包含多個選項,即參數。
-
各個選項的拒絕或否認都不能影響IPCP的UP,IPCP可以無選項協商,無選項協商也同樣能夠UP。選項有IP Address、網關、掩碼等,其中IP Address是最重要的一個選項,有些廠家的實現必須這個選項得到確認,大多數廠家的實現允許這個選項為空。
PPPoE Terminate階段
- PPP通信雙方可以使用PPP協議自身來結束PPPoE會話
- 當無法使用PPP協議結束會話時可以使用PADT(PPPoE Active Discovery Terminate)報文。
- 進入PPPoE Session階段后,PPPoE Client和PPPoE Server都可以通過發送PADT報文的方式來結束PPPoE連接。
- PADT數據包可以在會話建立以后的任意時刻單播發送。在發送或接收到PADT后,就不允許再使用該會話發送PPP流量了。
文章標題:TCP/IP協議架構介紹(一):網絡接口層
本文作者:hiyo
本文鏈接:https://www.cnblogs.com/hiyong/p/14358731.html
歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!