【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

05-01 阅读 0评论

文章目录

  • 可靠数据传输
    • TCP:可靠数据传输
    • TCP发送方事件
    • 快速重传
    • 流量控制
    • TCP流量控制

      可靠数据传输

      TCP:可靠数据传输

      • TCP在IP不可靠服务的基础上建立了rdt
        • 管道化的报文段
          • GBN or SR
          • 累计确认(像GBN)
          • 单个重传定时器(像GBN)
          • 是否可以接受乱序的,可以缓存,也可以丢弃
          • 通过以下事件触发重传
            • 超时(只重发那个最早的未确认段:SR)
            • 重复的确认
              • 例子:收到了ACK50,之后又收到3个ACK50
              • 首先考虑简化的TCP发送方:
                • 考虑重复的确认
                • 忽略流量控制和拥塞控制

                  【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                  NextSeqNum = NextSeqNum + length(data):

                  发送窗口前沿向前移动。

                  SendBase = y

                  /* SendBase–1: last cumulatively ACKed byte */

                  if (there are currently not-yet-acked segments) start timer else stop timer:

                  发送窗口后沿向前移动,没有已发送未确认的字节,关掉定时器。

                  TCP发送方事件

                  从应用层接收数据:

                  • 用nextseq创建报文段
                  • 序号nextseq为报文段首字节的字节流编号
                  • 如果还没有运行,启动定时器
                    • 定时器与最早未确认的报文段关联
                    • 过期间隔:TimeOutInterval

                      超时:

                    • 重传后沿最老的报文段
                    • 重新启动定时器

                      收到确认:

                    • 如果是对尚未确认的报文段确认
                      • 更新已被确认的报文序号
                      • 如果当前还有未被确认的报文段,重新启动定时器

                        【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                        解释:这里发送方传送的序号从92开始的,8个字节,接收方收到给一个ACK100的确认,但是这个确认丢失,发送方又传了100开始,20个字节。这个时候就要重发92,8。

                        【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                        这里有几种情况:

                        ①隐忍不发,等多个报文在一起时候再一起发。

                        ②延时等待,下一个报文在延时时间发了的话,就一起发送。没发的话,就只发送一个ACK。

                        ③在发送重复的ACK,指明下一个期待的字节序号。

                        ④若报文中间有gap间隔,完全补齐的话,就发送所有的ACK,部分补齐的话,就发送补齐部分。

                        快速重传

                        • 超时周期往往太长:
                          • 在重传丢失报文段之前的延时太长
                          • 通过重复的ACK来检测报文段丢失
                            • 发送方通常连续发送大量报文段
                            • 如果报文段丢失,通常会引起多个重复的ACK
                            • 如果发送方收到同一数据的3个冗余ACK,重传最小序号的段:
                              • 快速重传:在定时器过时之前重发报文段
                              • 【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                                【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                                流量控制

                                TCP流量控制

                                流量控制:接收方控制发送方,不让发送方发送的太多,太快以致于让接收方的缓冲区溢出。

                                【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                                • 接收方在其向发送方的TCP段头部的rwnd字段“通告”其空闲buffer大小。
                                • 保证接收方不会被淹没。

                                  【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

                                  【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]