1. 停止等待协议

1.概述

发送方每次只能发送一个数据包,确认方每次只能发送一个确认。发送方收到重复的确认会丢弃(接收方已经接收),接收方收到重复的数据,会把数据丢弃,但是会发送确认(防止上一个确认消息丢失)

2. 信道利用率


信道利用率很低

2. TCP中可靠传输机制

1. 发送端与接收端行为

超时重传与快速重传,正常传送是针对发送方来说的,确认单个,确认一批(窗口)选择确认与重复确认是针对接收方来说的

  1. 发送端
    发送端超时重传与快速重传机制同时存在。当某个数据包超出计时器时间还没有收到确认,就重传该数据包,(超时重传)当某个数据包未超过计时器时间,但是已经连续收到三个确认,则重传(快速重传)。
  2. 接收端
    1. 接收端当前收到的数据包序号与之前收到的数据包序号相连(不丢包),则发送该数据包的序号。
    2. 如果当前数据包与之前收到的数据包序号有间隔(丢包),则发送ack(丢包)
      1. 为了指明哪些数据包已经接收,SACK字段指明哪些数据包已经被接受了,格式为【SACK左,SACK右),重传【ack,sack左)选择性确认
    3. 在接收窗口读取了若干连续的数据包,则ack(当前数据包)
    4. 当接收方已经接收到了数据,再次接收到同样的数据,SACK字段表示重复接收的数据 【SACK左,SACK右)

2. 各种机制解决的问题

  1. 超时重传
    单纯的超时重传解决数据包传输丢失与确认丢失问题,这是可靠传输的底线,即使其余机制出现问题,超时重传机制也能保证数据的可靠传输。
  2. 快速重传机制
    解决超时重传数据包等待时间过长的问题,提高传输速率(原先要等到到达重传时间再重传,现在由于接收端的通知,可以提前重传,数据传输速率增加)
  3. 选择确认
    解决快速重传时应该重传哪些数据包
  4. 重复确认
    解决了接收端重复接收数据包问题

    1. ack丢包
    2. 网络延迟

3. 常见的网络故障

  1. 数据丢失
    数据包传输过程丢失
  2. 数据延迟
    数据包传输过程中延迟
  3. 确认丢失
    确认数据包返回时丢失
  4. 确认延迟
    确认数据包返回时延迟

计算机网络03之可靠传输相关推荐

  1. 计算机网络(9)-----TCP可靠传输的实现

    TCP可靠传输的实现 以字节为单位的滑动窗口 滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明 ...

  2. 2021-04-05 计算机网络——什么是可靠传输

    可靠:通信的双方能保证发送的数据一定能够按正确的大小,正确的顺序原样的到达另一方,如果数据不能到达或者有其他的问题,发送方一定可以及时的得到通知 连接:通讯双方存在虚电路连接 可靠:指发送方的上层协议 ...

  3. 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★

    文章目录 一.数据链路层 功能 二.封装成帧 ★ 三.流量控制 和 可靠传输 ★★ 1.停止等待协议 ★ 2.后退 N 帧 ( GBN ) 协议 ★ 3.选择重传 ( SR ) 协议 ★ 四.差错控制 ...

  4. 5.3.1计算机网络传输层之TCP可靠传输

    文章目录 0.前言 1.TCP可靠传输简介 2.序号 3.确认 4.重传 0.前言 再看此篇文章之前,得熟悉一下TCP首部报文等知识 计算机网络传输层之TCP协议(tcp协议特点.tcp报文段首部格式 ...

  5. 无连接可靠传输_计算机网络-网络层和传输层

    计算机网络-网络层和传输层 网络层概述 面向连接的服务,即虚电路(virtual circuit) TCP/IP采用数据报服务,无连接的服务,因为网络层是整个互联网的核心,因此应当让网络层尽可能简单. ...

  6. 【计算机网络笔记】数据链路层(封装成帧,差错检测,可靠传输)

    链路:从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点. 数据链路:把实现通信协议的硬件和软件加到链路上 数据链路层以帧为单位传输和处理数据. 三个过程:封装成帧,差错检测,可靠传输 封 ...

  7. 【计算机网络】可靠传输

    [计算机网络]可靠传输 1.基本概念 2.三种可靠传输的实现机制 2.1停止-等待协议SW 2.1.1 错误状况 2.1.1.1确认与否认 2.1.1.2 超时重传 2.1.1.3 确认丢失 2.1. ...

  8. 计算机网络之流量控制与可靠传输机制

    计算机网络之流量控制与可靠传输机制 数据链路层的流量控制 较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作. 数据链路层的流量控制是点对点的,而传输层的 ...

  9. 【亡羊补牢】计算机网络灵魂之问 第10期 tcp是怎么去保证可靠传输的?

    这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! ...

最新文章

  1. 两个无序单链表,排序后合并成一个有序链表
  2. About darwin OS
  3. php和python性能-Node.js与PHP、Python的字符处理性能对比
  4. 学习总结:CSS(一)定义方式、选择器、选择器权重
  5. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析
  6. java 抽象类_什么是final?Java抽象类又是什么?抽象类能使用 final 修饰吗?
  7. python制作的游戏如何转化为swf_从纯Python中的Flash文件(.swf)获取维度
  8. 计算机组成原理第二版知识大纲
  9. 谷粒学院-第二天笔记
  10. ubantu下谷歌浏览器安装包
  11. java 链式调用_Java链式调用-Builder模式
  12. 你知道数据中台,但你肯定没听过报表中台,我靠它征服百万数据人
  13. 1585 Amount of Degrees
  14. 开源数值计算软件OCTAVE 、SCILAB、R、Matlab简介
  15. 数字人民币来了!它与支付宝、微信有什么区别吗?
  16. GOIP网关所有型号以及分辨方法 对接场景
  17. Tableau :蝴蝶图
  18. “羊毛党”们最喜欢用的手机号码分析
  19. 波波:App Store改版深入测评,生态改变,行业大洗牌
  20. 2021上半年程序员新书大盘点

热门文章

  1. 7-27 家谱处理c++ map
  2. 《微店大数据开发平台架构演进》读后感
  3. js的隐藏姓名方式保护用户隐私,只显示首个汉字也就是姓,后面的隐藏,匿名方式
  4. mongodb大批量删除数据的方案对比
  5. go 语言值传递和引用传递
  6. 正则表达式如何筛出数字
  7. for循环相关代码总结
  8. Linux-软RAID示例
  9. 激光雷达F4与D1坐标校正
  10. LV2之-----canvas 画布实现 自转时钟 大转盘