关于数据传输丢失重传的机制
时间:10-02
整理:3721RD
点击:
最近在写无线传输程序涉及到丢包的算法。我们在写程序的时候为了让数据包传输更加可靠,也会用到像TCP这样的协议来传输东西。这里有几个问题,第一个问题:TCP协议里有每法送一个数据包后开启定时器,如果定时间到了发送方没有接到接收方的回应,此时重发数据包,,这里有点疑问,比如发送了123后 当你的超时时间到了没有接到对方的回应,此时又发送了456,程序相当于又循环执行了一遍,把456给发送出去了,此时才判断出超时,此时应该把123456一起发送出去,如果一起发送出去那下次接收到的回应是456的应答还是123456的应答,,一直没有明白这个过程! 第二个问题:会不是是发送123然后等着什么都不干让对时间超时 再次重发123,直到发送了123收到应答之后再发456吗 这样是不是太浪费资源了。希望大神们帮我答疑解惑。 好凉啊,希望有人回答,顶一个 嘿嘿 已经完美解决了 怎么解决的,求分享 可以分包传输 根据波特率的大小可以分为两包或者三包 对每一包的进行状态标记 如需要发送的包标记为1 正在发送的包标记为2 超时发送的包标记为3 分析这些状态为对数据进行打包,对方接收到包后回应了就把相应的状态为置零 这个确实可以哦,分包怎么分,用什么特殊软件 不用特殊软件 自己编写程序,模仿TCP/IP协议 发送超时重新发送,超时了如果此时来了新的数据包则超时数据和新数据包一起打包发送,对方收到数据包把包号解析出来以应答包的形式发送过来 接收到应答包与发送的包号对比一样的话则清零前面满足发送的各个状态位 栏目分类
|