資料鏈路協議

2021-10-08 02:37:30 字數 1167 閱讀 4394

鏈路就是一條無源的從點到點的物理線路段,中間沒有任何其他的交換節點。在進行通訊時,兩台計算機的通訊通路是由多條鏈路串接而成的。

當需要在一條鏈路上通訊時,除了需要物理鏈路,還需要一些規程來控制這些資料的傳輸,把實現這些規程的硬體和軟體加到鏈路上,就構成了資料鏈路

差錯控制自動請求重發又可以稱為後向糾錯,包括停止等待arq協議和連續連續arq協議

原理如下,傳送方a向接收方b傳送資料幀0,並設定超時定時器t0,開始等待,接收方收到資料幀0後,開始校驗,如果正確傳送ack給a,a收到ack,取消定時器t0,開始傳送資料幀1,並設定超時定時器t1,如下圖

如果接收方b校驗發現錯誤,則傳送nak給a,請求重傳,a收到nak後,重新傳送資料幀0,設定超時定時器t0,開始等待,如下圖

上面都是沒有考慮丟包的情況,那如果資料丟失了會怎樣呢?

那麼這樣的協議有什麼問題呢?

傳送方在傳送完乙個資料幀後,不是停留下來等待確認,而是可以連續傳送若干個資料幀,由於減少了等待時間,提高了吞吐率

每個資料幀都需要進行編號並關聯乙個定時器,當接收到ack(n)時取消定時器tn-1 傳送方a不斷傳送資料幀data0,data1,datan,並設定相應的定時器t0,t1,tn

這時候接收方b做什麼呢,和停止等待arq協議一樣,乙個乙個接收資料幀,校驗正確傳送ack(n),錯誤傳送ack(n-1),這時候為什麼不是傳送nak了呢,這邊的ack(n),代表n-1個資料幀已經接收到了,現在需要傳送方傳送n個資料幀,當有問題或者沒有收到時,就需要傳送ack(n-1)讓傳送方重發n-1個資料幀。這是傳送方收到ack後直接傳送資料幀麼,不是,因為傳送方是連續傳送的,所以所需的資料幀很可能已經在路上了,這是需要把n-1的定時器取消。

那如果資料丟失了會怎樣呢?

那麼傳送方能無限制的傳送資料麼,無限的傳送會出現什麼問題呢

資料鏈路層 高階資料鏈路協議

允許傳送方連續傳送多個幀,通過滑動視窗實現流量控制 比如剛開始時 傳送方的傳送視窗為,接收方的接收視窗為,此時傳送視窗寬度為4,接收視窗寬度為2。方案一 出錯幀後的幀丟棄,從出錯幀開始重新傳送 後退n幀 方案二 出錯幀後的幀保留,只重發出錯幀 選擇性重傳 選擇重傳協議的滑動視窗協議,要求n位元編碼的...

網路協議基礎(二) 資料鏈路

1 資料鏈路相關技術 2 共享介質型網路 有兩種介質訪問控制方式 非共享介質網路 網路中的每個站直連交換機,由交換機負責 資料幀,大多數情況下採用全雙工通訊方式 半雙工 只傳送或只接收資料 全雙工 同時收發資料 環路檢測技術 生成樹法,源路由法 2 乙太網 1 連線方式 早期採用多台終端使用同一根同...

Linux 資料鏈路訪問

緬懷stevens大師。1.師從網際網路。2.linux man 命令 man netlink,man rtnetlink。3.unp v1第29章 原始套介面使得我們可以讀寫核心不處理的ip資料報,而對資料鏈路層訪問則把這種能力進一步擴大 讀寫任何型別的資料鏈路幀,而不僅僅是ip資料報。訪問資料鏈...