可靠的数据传输的几要素

  • 可靠是指传输过程中不丢失与损坏数据
  • IP并不能保证数据传输可靠
  • 因此需要transport layer保证

acknowledgments

  • ack
  • 数据接收方在接受数据后发回positive ack表示正常,negative ack表示需要重新发送数据
  • 这种protocol一般被叫做ARQ (Automatic Repeat reQuest) protocols

sequence number

  • 在多个数据包同时传输时,对数据包编号有利于区分被正常传输的数据包和需要重新传输的数据包
  • 数据包编号与ack一同被发回发送方
  • 该编号初始值可以是随机的

timeout

  • 因为发回的ack也有可能丢失,发送方在这种情况下无法知晓接收方的接收情况
  • 在这种情况下,数据包发送一段时间但没有收到ack情况下,发送方会重新发送数据
  • 如果上次传输的数据是可用的,接受方接受数据后可以选择丢弃

pipelining

  • 单次仅发送一个数据包会造成主机资源的极大浪费,因为主机除了处理数据的时间外都在等待

window

  • 为了避免接收方无法一次接受太多数据,发送方需要限制在途的数据包数量在一定范围内
  • size不能超过数据包总量的一半

两种pipeline error recovery的方法

  • Go-Back-N (GBN) protocol
  • Selective Repeat
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 可靠数据传输对于应用层、传输层、链路层都很重要,是网络领域的Top10问题。对于传输层来说,由于相邻的网络层是不可...
    六尺帐篷阅读 6,540评论 1 15
  • 3.1传输层服务 3.1.1传输层服务概述 传输层服务和协议 ■传输层协议为运行在不同Host上的进程提供了一种逻...
    龟龟51阅读 772评论 0 0
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,990评论 1 13
  • 传输层-TCP, TCP头部结构 ,TCP序列号和确认号详解 TCP主要解决下面的三个问题 1.数据的可靠传输...
    抓兔子的猫阅读 4,559评论 1 46
  • 1、TCP状态linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lso...
    北辰青阅读 9,551评论 0 11