TCP可靠传输的实现

以字节为单位的滑动窗口

    滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明的窗口的大小,来确定收到确认前的最大发送数据量,如果A接收到的B发来的确认报文中标明的窗口大小为0,则停止发送数据,直到收到不为0的确认报文,再继续发送。发送窗口表示在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去,凡是已发送过的数据,在没有收到确认前都要暂时保留,以便超时重传时使用。

   需要注意的一点是:使用TCP滑动窗口协议时,接收方不必确认每一个收到的分组,在TCP中,ACK确认是累积的,可以在接收到几个序号连续的报文段后只发送一个ACK确认报文,但累积等待的时间最长不能超过0.5秒,以防止发送端超时重传。

  另外,要注意滑动窗口的三种变化:

  1、窗口合拢。窗口左边沿向右边沿靠近,这种情况发生在数据被发送后收到确认时;

  2、窗口张开。窗口右边沿向右移动,说明允许发送更多的数据,这种情况发生在另一端的接收进程从TCP接收缓存中读取了已经确认的数据时;

  3、窗口收缩。窗口右边沿向左移动,一般很少发生,RFC也强烈不建议这么做,因为很可能会产生一些错误,比如一些数据已经发送出去了,又要收缩窗口,不让发送这些数据。

  另外,窗口的左边沿是肯定不可能左移的,如果接收到一个指示窗口左边沿向左移动的ACK,则它被认为是一个重复ACK,并被丢弃。

总结以下几点:

  1、发送方不必发送一个全窗口大小的数据,一次发送一部分即可。

   2、窗口的大小可以减小,但是窗口的右边沿却不能向左移动。

  3、接收方在发送一个ACK前不必等待窗口被填满。

  4、窗口的大小是相对于确认序号的,收到确认后的窗口的左边沿从确认序号开始。

转载于:https://www.cnblogs.com/a294098789/p/5656241.html

计算机网络(9)-----TCP可靠传输的实现相关推荐

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

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

  2. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  3. 计算机网络之传输层:5、TCP可靠传输

    传输层:5.TCP可靠传输 TCP可靠传输: 伪首部校验: 实现可靠传输的过程: 实现可靠传输的工作原理: 实现流量控制的工作原理: TCP可靠传输: 伪首部校验: 与UDP校验一样,增加伪首部进行校 ...

  4. TCP 可靠传输机制详解

    目录 TCP协议的特点 TCP 报文段 TCP "三次握手" TCP "四次挥手" 客户端和服务器端所经历的状态 TCP 可靠传输 TCP流量控制 TCP拥塞控 ...

  5. 5.3.3 TCP可靠传输

    5.3.3 TCP可靠传输

  6. 滑动窗口——TCP可靠传输的实现[转]

    滑动窗口--TCP可靠传输的实现[转] 转自:  http://hi.baidu.com/bellgrade/blog/item/935a432393b949ae4723e828.html (1).窗 ...

  7. 计算机网络实验传输文件,湖大计算机网络实验-tcp文件传输实验

    实验二 tcp文件传输 信息安全2班莫胜吕 20100830215 一,实验目的 掌握实现网络文件传输的方法,并了解TCP连接是字符流的二,实验内容 1,单线程的文件传输 2,多线程的文件传输 3,加 ...

  8. 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)

    传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...

  9. tcp可靠传输的机制有哪些(面试必看

    一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层 ...

最新文章

  1. 波士顿大学数学与计算机科学,2021战报 | 美国波士顿大学金融数学硕士录取
  2. uniapp开发微信小程序时,报错:Now you can provide attr `wx:key` for a `wx:for` to improve performance
  3. android+read_logs这权限有什么用,READ_LOGS是正常或危险的Android权限吗?
  4. Sqoop导入数据--split by 和 --m(大于1)配合使用
  5. 动态内存分配(malloc函数)
  6. NPOI导出 The maximum column width for an individual cell is 255 characters
  7. 在计算机设备中 麦克风属于( ),计算机一级考试基础及MSOffice应用单选真题
  8. 看不懂简明python教程_简明python教程
  9. Overlay网络和VXLAN
  10. python中的chardet模块
  11. E430 加装固态硬盘(SSD)参考
  12. php 设置允许跨域请求
  13. 在视图列中显示文档所有读者和作者
  14. 由英雄无敌Online开源 想到的
  15. hr面试性格测试30题_面试性格测试题60道
  16. PAT乙级 1052 卖个萌 (0/20 分) Java 未实现
  17. 计算机和计算机之间如何传送文件,两台电脑实现互传文件:多种方法可选择
  18. opencv计算机视觉_opencv是计算机视觉的至尊工具
  19. 高效办公——Excel表格-02篇(if函数常见用法 + 条件格式的使用)
  20. 360误删mysql_回收站里的文件被清空如何还原?360安全卫士快速恢复误删文件方法...

热门文章

  1. 新手找客户,牢记20句话
  2. ASP.NET 2.0中的Session状态丢失的解决办法
  3. @开发者,第二届“马栏山”杯国际音视频算法大赛高分攻略请查收,心动大奖等你来战!...
  4. 上达最高精度,下到最快速度,Scaled-YOLOv4:模型缩放显神威
  5. 谷歌大脑推出机器人强化学习平台,硬件代码全开源,花最少的钱,训超6的机器人...
  6. 重磅快讯:CCF发布最新版推荐中文科技期刊目录
  7. 万万没想到,EfficientNet居然这么火!
  8. 【人工智能】深度学习专项课程精炼图笔记!必备收藏
  9. PyTorch 1.8版本!正式支持AMD GPU
  10. 带你自学Python系列(十四):Python函数的用法(四)