封裝成幀
定義:將網絡層傳過來的ip數據報添加首部和尾部封裝成一個幀。
幀長:ip數據報的長度加上幀首部和幀尾部的長度就是幀的長度。
幀的發送方向:幀的發送方向是從幀的首部開始的,
MTU(max transfer unit):幀中數據部分的最大長度,每一種鏈路層的協議都規定了MTU
幀定界符
當我們傳輸的數據是由ASCII編碼的文本文件時(ASCII可打印的字符有95個,即可從鍵盤輸入的字符,不可打印的有33個),幀定界可以使用十六進制的01和04分別代表幀的開始和結束。
幀的差錯判斷:因為幀包括了幀定界符,所以當接受方子接收到了單個定界符(開始或結尾),則可以判斷該幀是一個錯誤的幀,隨即將這個錯誤幀丟棄。
透明傳輸
當我們的幀的數據部分是ASCII組成的文本文件時,數據部分必然不會出現SOH和EOT界定符,這樣就實現了透明傳輸。而當傳輸的數據時圖像、視頻等數據的時候,數據部分可能出現SOH和EOT等界定符,這必然會導致接收端錯誤的接收幀。
透明:站在數據的角度,數據是不知道有數據鏈路層的存在,不知道有什么阻礙數據傳輸的障礙。
解決方法:要使接收端不會因幀的數據部分含有幀界定符而錯誤的接收幀,那就需要接收端可以在數據部分接收到幀界定符時不解釋為控制字符。
字符填充法:在幀的數據部分出現的幀界定符之前填充一個轉義字符(ESC,十六進制為1B,27),同樣在遇到幀數據部分含有轉義字符時,在其前面在加一個轉義字符。
差錯檢測
比特差錯:數據部分的0變為1或者1變為0.
傳輸差錯:包括比特差錯、幀重復、幀丟失、幀亂序。
誤碼率(Bit Error Rate):一段時間內,傳輸錯誤的比特數占傳輸比特總數的比率。
循環冗余檢驗(CRC,Cyclic Redundancy Check)
幀檢驗序列(FCS):為了進行檢錯而添加的冗余碼。
who實現:發送端FCS的生成和接收端CRC的檢驗都是硬件來完成的,速度很快。
原理:實現接受方和發送方商量出一個除數P,用原數據M1乘2的m-1次方,即在原數據M1的后面添加p-1個0得到M2,在用M2對P進行模2運算,得出余數R,R與M2相加,得到最后要發送的幀。接收方接收到幀首先進行對P的模2運算,余數為0表示幀正確,不為0表示出現了bit差錯。
可靠傳輸
前面提到的傳輸並不是可靠的傳輸,只是實現了無bit差錯的傳輸,而對於幀的丟失等錯誤並沒有解決。最先OSI認為必須讓數據鏈路層提供可靠的傳輸,即提供幀編號、確認、重傳等機制。現在由於因通信鏈路質量不好而引起差錯的概率大大降低,所以互聯網現在才去區別對待的方法,通信質量好的有線傳輸鏈路,數據鏈路層不用提供可靠的傳輸。而對於通信質量不好的無線傳輸,數據鏈路層提供可靠的傳輸。
PPP協議
由三部分組成
1.一個將IP數據包封裝到串行鏈路的方法。
2.一個用來建立、配置和測試數據鏈路連接的鏈路控制協議(LCP Link Control Protocol)。
3.一套網絡控制協議NCP(Network Control Protocol),其中每個協議支持不同的網絡層協議。
幀的格式
PPP幀的介紹:幀的頭部和尾部分別有3個字段和2兩個字段,帶有F的事幀的界定符(16進制的7E,126),這樣連續的兩個幀之間就只需要一個幀界定符,幀界定符的長度為1字節,如果出現連續的兩個7E代表空幀,應該丟棄。A和C對ppp幀沒有作用。ppp幀頭部還有第4個字段被我忘畫在上面了,第4個字段是兩字節的協議字段,當為0x0021代表ppp幀是IP數據報,若為0xC021,則信息字段是ppp鏈路控制協議的數據,而0x8021表示這是網絡層的控制數據。
字節填充
當PPP使用異步傳輸時,將轉義字符設為0x7D。
當信息字段出現了幀界定符7E,將其轉為7D和5E兩個字節
當信息字段出現了7D,將其轉為7D和5D兩個字節。
當信息字段出現ASCII碼的控制字符,則在前加上0x7D,同時將該字符的編碼改變。(在這里遇見ASCII部分字符,是因為在LCP和NCP等進行建立連接的過程中可能用到了ASCII的字符作為某種標志符。
零比特填充
當ppp使用同步傳輸時,采用零比特填充的方法。
原理:在發送端先對整個信息字段進行掃描,只要發現5個連續1立馬在后面填一個0,這樣信息字段就不會出現連續6個1,這樣接收端就可以確定幀的邊界,然后用硬件對信息字段掃描,當出現了連續的5個1就刪除后面的0,還原為原來的數據。
ppp協議的工作狀態
1.首先建立物理層的連接。
2.物理層建立連接后,鏈路層發送LCP配置請求幀,這是ppp幀,協議字段為LCP協議對應的代碼,信息字段包括特定的配置請求
鏈路另一端可以響應:配置確認幀(ACK)所有選項都接受,配置否認幀(NCK)所有選項都理解但不接受,配置拒絕幀(REJECT)選項無法識別或不能接受。LCP配置選項包括鏈路上的最大幀長、所使用的鑒別協議、不實用ppp幀的地址和控制字段,協商結束后就建立了LCP鏈路。
3.建立了LCP鏈路,進入鑒別狀態,在這個狀態只運行傳送LCP協議的分組、鑒別協議的分組、檢測鏈路質量的分組,若使用口令鑒別協議PAP,則需要通信發起方,發送身份標識符和口令。還可采用更復雜的口令握手鑒別協議。鑒別失敗,則斷掉所有的連接,鑒別成功,進入網絡層協議狀態。
4.進入網絡層協議狀態,ppp鏈路的兩端的網絡控制協議NCP根據網絡層的不同協議互相交換網絡層特定的網絡控制分組。(類似於兩台主機運行着不同的網絡層協議,但通過NCP可以使得兩台主機仍然可以使用同一種ppp協議進行痛惜)。
5.數據傳輸結束后,通信雙方可以通過發出終止請求,斷開連接。