Rdt1.0:(理想化)
假定底層信道完全可靠:
不會(huì)發(fā)送錯(cuò)誤(bit eror):傳輸中1,0可能會(huì)變換
不會(huì)丟棄分組
發(fā)送方和接受方得到FSM獨(dú)立咖祭,不需要糾錯(cuò)信息的交互
調(diào)用事件/活動(dòng)
Rdt2.0:(引入不可靠信道-->產(chǎn)生位錯(cuò)誤的信道)
產(chǎn)生錯(cuò)誤時(shí)橄仍,和發(fā)送方信息交互镀层,重新發(fā)送正確的數(shù)據(jù)包
底層信道可能翻轉(zhuǎn)分組中的位(bit)
如利用校驗(yàn)和檢測(cè)位錯(cuò)誤
如何從錯(cuò)誤中恢復(fù)锦针?
確認(rèn)機(jī)制(Acknowledgements巍举,ACK):接受方顯式地告知發(fā)送當(dāng)分組以正確接收
NAK:接收方顯式地告知發(fā)送方分組有錯(cuò)誤
發(fā)送方收到NAK后,重傳分組
Rdt2.0缺陷:
如果ACK/NAK消息發(fā)生錯(cuò)誤/被破壞?
1.為ACK/NAK增加校驗(yàn)和(成本大)
2.發(fā)送方增加額外的控制消息,(消息也可能壞掉)
3.如果ACK/NAK壞掉咨察,發(fā)送方重傳
不能簡(jiǎn)單的重傳:產(chǎn)生重復(fù)分組
如何解決重復(fù):
增加序列號(hào):發(fā)送方給每個(gè)分組增加序列號(hào),接收方丟棄重復(fù)的分組
Rdt2.1和2.2:(信道不可靠福青,ACK/NAK損壞)
發(fā)送方:
接收方:
如果接受方接受的包沒(méi)有被損壞摄狱,但是跟預(yù)期的序列號(hào)不同?
發(fā)送的(0无午,1)基于平等協(xié)議
Rdt2.2:無(wú)NAK消息協(xié)議二蓝,只使用ACK
如何實(shí)現(xiàn)?:接收方通過(guò)ACK告知最后一個(gè)被正確接收的分組
在ACK消息中顯式地加入被確認(rèn)分組的序列號(hào)
發(fā)送方收到重復(fù)ACK之后指厌,采取與收到NAK消息相同的動(dòng)作
重傳當(dāng)前分組
Rdt 3.0:
如果信道既可能發(fā)生錯(cuò)誤,也可能丟失分組踊跟,怎么辦踩验?
“校驗(yàn)和+序列號(hào)+ACK+重傳”不夠用
方法:發(fā)送方等待“合理”的時(shí)間
如果沒(méi)有收到ACK鸥诽。重傳
如果分組或ACK只是延遲而不是丟了(重復(fù),序列號(hào)機(jī)制能夠處理箕憾,接收方需要在ACK中顯式告知所確認(rèn)的分組)
需要定時(shí)器
機(jī)制1;
機(jī)制2:
Rdt3.0性能分析:
Rdt3.0能夠正確工作牡借,但性能差,網(wǎng)絡(luò)協(xié)議限制了物理資源的利用袭异。