一、常用的數據鏈路協議(hdlc、ppp)
? ?(一)分析協議的思路
? ? ? ? ?步驟一:了解協議的概貌,知道這個協議設計的目的、基本特征
步驟二:以協議數據單元(對于數據鏈路層而言是幀)的格式為主要線索來研究協議的 ? ? ?具體實現
步驟三:協議如何解決實際問題?
(二)HDLC協議(高級數據鏈路控制規程)(面向比特協議)
? ? HDLC協議是一個面向比特的協議,其主要解決了數據鏈路層鏈路管理、尋址、幀同步、差錯控 ? ? ? 制、流量控制,其具有了平衡系統的和非平衡系統兩個特性。
? ?1、HDLC的組成:
? ? ? ?幀結構(語法)
? ? ? ?規程元素(語法)
? ? ? ?規則類型(語義)
? ? ? ?使用HDLC語法可以定義多種具有不同操作特點的鏈路層協議。
? ?2、HDLC的描述
? ? ? ?HDLC在描述時提出了三個層次的概念:
? ? ? ?(1)所有參與通信的節點分類(數據站):主站、次站、組合站。
在以前的以單處理機為中心的多終端聯機系統的集中式控制,主站和次站時成對出現的,而對于現在的分布式結構(如分組交換網絡)來說,所有的站點都是組合站。
(2)鏈路類型:平衡型,非平衡型。
? 集中式控制屬于非平衡型,而分布式控制則屬于平衡型
(3)操作模式:正規響應模式、異步響應模式、異步平衡模式
? 對于平衡型來說其只有異步平衡模式,即每個站點自主發出通信,是自治系統。而對于由主站和次站構成的非平衡型來說,有正規響應模式,即次站必須受到主站的控制,在沒有得到主站許可的情況下,不能主動發起數據傳輸。而在異步響應模式下,次站可以主動發起數據傳輸。
3、HDLC協議數據單元的格式(幀格式)
(1)標志字段:幀首字段和幀尾字段在內容上看都是由“01111110”組成,其用來劃分幀的起始位置和結束位置
(2)地址字段:其有兩個缺陷:一,由于當時是為以單處理機為中心的多終端聯機系統設計的,所以只有一個地址(終端地址),不適用于現在的分布式計算機系統。二,地址只有8位,即最多只能表示256個節點。
(3)信息字段:協議數據單元的用戶數據部分,長度可變,但是一般情況下是1500個字節。
(4)幀校驗序列:使用CRC校驗法。
?(5)信息幀:發送方在發送數據時使用了固定尺寸的滑動窗口協議(窗口大小固定為7)
4、HDLC幀的類型
? ?幀類型:(1)信息幀:替上層的實體傳送數據使用的幀
? ? ? ?(2)監控幀:進行差錯控制和流量控制
? ? ?(3)無序號幀:鏈路管理控制,負責協商雙方如何通信、如何使用信道
? ?(三)協議工程設計
? ? ? ?1、協議說明(需求分析、功能設計):一般不用自然語言描述(冗余、多義性、結構性不 ? ? ? ? ? 好)。而用有限狀態機(FSM)、Petri網等形式描述
? ? ? ?2、協議驗證(協議工作模式是否把網絡環境所遇到的問題考慮全、是否能夠正常運行)
? ? ? ?3、協議測試:一致性測試、互操作性測試、性能測試?
? ? ? ?4、有限狀態機:其認為任何一個協議,就是要描述網絡中的各種狀態,而狀態是有限的。
(1)有限狀態機是一個四元組(S,M,I,T)
? ? S為狀態的集合,M是標號的集合,I是狀態的集合,T是變遷的集合
? ? 其基本思想為:當出現一個變遷時,會由一個狀態遷移到另外一個狀態,而變遷產生的原因是來自用戶的命令,信息的到達,內部的超時等事件
(2)狀態舉例:信道有錯的單工停等協議
? ? ?用三元組XYZ來表示狀態:XYZ
? ? ? ? ? X:發送方正發送的幀序號,為0或1
? ? ? ? ? Y:接收方正在等待的幀序號,為0或1;
? ? ? ? ?Z:信道狀態:為0(表示正在傳送序號為0的幀),
1(表示正在傳送序號為1的幀),
A(信道正在傳送應答幀)
或-(空)(表示信道沒有傳送數據或者傳送的數據出錯)
其初始狀態為000
(3)優點:簡單明了,比較精確
???? 缺點:對于復雜協議來說,事件數和狀態數會增加,處理困難。
5、perti網
?? (1)元素:
? ? ? ?位置:描述系統狀態,用一個圓圈表示
? ? ? ?變遷:描述修改系統狀態的事件,用一個長方形或線段表示
? ? ? ?弧:描述狀態與事件之間的關系,包括輸入弧和輸出弧,用用有向弧表示。
? ? ? ?黑點:標記,是當前的狀態
如圖為有錯單工停等協議的preti描述,其最大特點在于可以單獨描述三種不同的狀態
(四)Internet的數據鏈路層
??? 1、點到點通信的兩種主要情形(intenet工作的主要場合):
?????? (1)路由器到路由器:
? ? ? ? ?(2)通過調制解調器撥號上網,或者連入接入服務器
????? 接入INTERNET的方法:撥號接入(用戶要想連入internet,有一個路由器或主機相連,必須申請連入才能接入)、專線接入(線路實時開放,不需要申請就可以完成數據傳輸)
?? 2、SLIP(Serial LINE IP 串行線路IP協議)
????? 本協議1984年提出,發送原始IP數據包,用一個標記字節(0Xc0)來定界,采用字符填充技術。其存在的問題主要有不提供差錯校驗、只能支持IP協議且IP地址不能動態分配,不支持身份驗證,多版本不兼容等問題,現在已經不再使用。
? 3、PPP(point-to-point Protocol)協議(RFC 1661 16621663)
????? (1)特點:提供差錯校驗、支持多種協議、允許動態IP地址、支持身份認證
??? (2)與SLIP不同的是,其發送的不是原始IP數據包,而是以幀位單位傳輸。
???? (3)PPP協議為了增加協議的適應性和靈活性,協議被分為了兩個部分,一部分為鏈路控制協議LCP(LinkControl Protocol),可以建立、測試多種物理層服務,使得本數據鏈路層可以支持更加豐富的類型
?????? (4)PPPoE(Point to Point Protocol over Ethernet) 是基于以太網的點對點通訊協議
????? (5)幀格式:PPP協議的幀格式與HDLC協議的幀格式基本相同,但是有以下兩點不同:第一,HDLC協議面向比特,而PPP協議面向的是字符,其要求所有通信的節點支持ASCII字符集;第二,PPP協議是HDLC的簡化版本:
(1)幀首與幀尾的定界符與HDLC協議相同(00111111),
(2)地址字段保留了8位(為8個1),其不需要地址(應用環境是一條鏈路對應的兩段,不需要地址)
(3)控制字段(無序號幀)
(4)協議字段:處理完成之后指向哪個應用進程進行處理(IP/IPX。。)
(5)凈負荷域:缺省為1500字節(6)校驗和域:2或4個字節