1rdt1.0:经完全可靠信道的可靠数据传输

rdt1.0是假设使用最可靠的通道情况。主要有传输端与接收端两个部分。发送端等待上层传数据传进来,将数据打包为分组并将其发送到信道中;接收端收到分组以后,将封包解开,将其发送到上层应用。

(1)底层信道完全可靠

a.无比特差错

b.无分组丢失-分组按序到达

(2)发送方和接收方有各自的FSM

a.发送端通过底层信道发送数据

b.接收端通过底层信道接收数据

2rdt2.0:经具有比特差错信道的可靠数据传输

rdt2.0考虑到了数据错误的情形。

发送端等待上层传数据传进来,将数据和检验和打包为分组并将其发送到信道中然后等待,如果接受到ACK则数据无误,回到等待调用状态,如果收到NAK则说明发送的数据有误则进行重传。

当接收端收到资料,会有ACK(肯定确认)与NAK(否定确认请重传)两种讯息,当数据分组接收到以后确认无误,会发送ACK给发送方已确定数据无误。当发现有错误时,会传回NAK通知发送端重传。

在这里引入停等协议:当发送方处于等待ACK或NAK的状态时,它不能从上层获得更多的数据。(发送方不会发送一块新数据,除非发送方确信接收方已正确接收当前分组)

注意:rdt2.0重大缺陷!!!!:

a.发送端不知道在接收端发生了什么

b.ACK/NAK受损可能会导致重传-解决:序号机制(一个字节即可)

3rdt2.1

rdt2.1在rdt2.0的基础上新增了sequence number,分组的号码可以让发送方知道是否需要重传以及让接收方确认这是否是一次重新传输的分组。

例如接收端在等待编号0的封包,结果收到封包1,此时会回传ACK1给来源端,而正在等候ACK0的来源端收到ACK1,表示封包0可能遗失,所以会再重送封包0。

4rdt2.2

rdt2.2和rdt2.1的区别在于去掉了NAK,接收方必须包括一个ACK报文所确认的分组序号,通过在make_pkt中包括参数ACK0和参数ACK1来实现,发送方必须检查接收到的ACK中的报文中被确认的分组序号。

5rdt3.0:经具有比特差错的丢包信道的可靠数据传输

rdt3.0同时考虑到分组遗失与错误的情形,除了使用rdt2.2的机制,另外在发送端增加多了到技术定时器,封包送出去如果超时仍未收到ACK或是收到不正确编号的ACK,则重发。

过程:

  1. 每次发送一个分组时,便启动一个定时器
  2. 响应定时器中断
  3. 终止定时器

粗浅的rdt协议介绍相关推荐

  1. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  2. open source license主流的开源软件协议介绍

    open source license主流的开源软件协议介绍(20190222) 文章目录: 一.开源软件的直观介绍 二.常用开源协议介绍 三.常用开源协议之间的对比 当Adobe.Microsoft ...

  3. SNMP协议介绍和操作截图

    第一章 SNMP协议介绍 SNMP协议 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的 ...

  4. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

  5. Python教程之udp和tcp协议介绍

    UDP介绍 UDP - 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据 ...

  6. (4)ZYNQ AXI4总线协议介绍

    1.1 ZYNQ AXI4总线协议介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)ZYNQ AXI4总线协议介绍: 5)结束语. 1.1.2 本节引言 " ...

  7. 音视频直播流程及常见视频流协议介绍

    音视频直播流程介绍 常见视频流协议介绍 HLS HLS是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统 ...

  8. SNMP 网络协议介绍

    这里填写标题 1. SNMP 网络协议介绍 1.1. 什么是 SNMP 1.1.1. 概述 1.1.2. SNMP 版本 1.2. OIDs 1.2.1. 什么是 OID 1.2.1.1. 可查询数量 ...

  9. AMBA协议介绍(1)——APB协议

    系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...

  10. Thingsboard 物联网平台 CoAP 协议介绍

    可复制:121202538 中文社区:http://thingsboard.org.cn TB的MQTT设备协议 TB官网: https://thingsboard.io/ TB GitHub: ht ...

最新文章

  1. Cracking the coding interview--Q1.7
  2. [BZOJ5292][BJOI2018]治疗之雨(概率DP+高斯消元)
  3. java logout_Java Core.logout方法代码示例
  4. 人工智能与大数据开发的12个注意事项
  5. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
  6. ServletContextListener 解析用法
  7. ssl1643-最小乘车费用【dp练习】
  8. lambda表达式可以用来声明_lambda表达式可以用来创建包含多个表达式的匿名函数...
  9. vscode同时打开多个文档方法,简直了
  10. Spring Cloud Alibaba Sentinel之入门篇
  11. mysql 中文社区版_mysql数据库下载官网_mysql中文官方网站下载
  12. 【Proteus仿真】CD4026秒脉冲0-9循环计数
  13. 机器人领域的SCI期刊和会议
  14. javaScript中this以及window对象和window对象的name属性
  15. ROMS海洋模式笔记
  16. WORD插入摄氏华氏度及换算
  17. 将网页添加至收藏夹代码
  18. Android进阶之路 - onTouch从简入繁
  19. JVM_常见【面试题】
  20. C#学习笔记——sin函数

热门文章

  1. 手机网页点击按钮给指定号码发送短信
  2. IDEA常用插件、设置、注释
  3. C++程序的设计机制1:NVI机制(Non-Virtual Interface )
  4. 个人支付微信支付宝接口
  5. 清华山维EPS二次开发基础篇
  6. 华硕重装后进入bios_华硕电脑重装系统后开机直接进入BIOS原因分析及解决方法...
  7. 优客在线大学计算机基础答案,优课在线大学计算机基础答案.pdf
  8. BouncyCastle使用
  9. CSS | 盒模型的宽度计算规则
  10. maven发布SNAPSHOT版本到私服仓库