• Hurry
    2019-08-31
    例子中都是丢了一个数据包的情况,连续丢多个数据报,接收方如何返回ack序列号?

    作者回复: 每次仍然返回应收、但未收到的sequence

     1
     1
  • Lengend
    2019-10-25
    老师,您好,请教您两个问题,望您解惑,谢谢!
    1、为什么会出现连续收到3个ack报文的情况 ,既然已经收到1个了,为什么还会继续收到剩下的两个?
    2、因为发送方发送tcp报文段,是并发发送的(tcp优化章节),所以有可能会出现pk4早于pk3被接收方收到,那接收方怎样判断失序的?
    3、收到三个ack后,接收端要马上发送下一个期望的ack,下一个期望的ack是指发送方已发送报文,但还没有收到的最近的一个ack,如ac9(ppt图片中没有画发送pk9,确认下)

    作者回复: 1、中转路由器可能出现重启、队列满丢包、变更网络路径等,所以会出现重复报文。
    2、TCP报文段都有sequence,接收方凭这个字段来判断是否失序;
    3、是的。
    后两个问题都靠sequence字段的设计解决。但这个设计也导致了基于TCP的多路复用协议出现队头阻塞,所以http3才选择抛弃tcp

    
    
  • kissingers
    2019-09-02
    老师,快速恢复后为什么cwnd 为ssthresh加3MSS,规定吗?又是出于什么考虑?谢谢

    作者回复: 基于当时调研过的网络环境的经验数据

    
    
  • 胡波 allenhu
    2019-09-01
    老师, 在接收端,是不是只要当他收到的包中的sequence number和接收窗口中的rcv.nxt一样的情况下,接收端才会把ACK中的acknowledge number更新为rcv.nxt的值。如果不一样,那么acknowledge的值就一直不变。这样在发送端在连续收到ACK中发现acknowledge number没变,就可以断定某个包接收端没有收到,从而可以快速重传这个包?

    作者回复: 是的

    
    
我们在线,来聊聊吧