zoukankan      html  css  js  c++  java
  • TCP/IP具体解释学习笔记--TCP的坚持和保活定时器

    TCP的坚持定时器

    1.基本概念

    TCP的接收方指名希望从发送方接收的数据字节(窗体大小)来进行流量控制,假设窗体大小为0。那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗体大小的ACK为止,那么假设接收方发送的这个ACK中途丢失了呢(这样的可能性是有的)?此时发送方收不到信息,就默认窗体大小还为0,那它就继续堵塞在那,这样就造成了死锁。

    那么怎样解决此类问题呢,解决方式就是我此片博文的题目。TCP的坚持定时器。为了防止上述死锁的发生。TCP的发送方使用了一个坚持定时器。来周期性的向接收方查询。以便发现窗体是否已增大

    2.糊涂窗体综合症

    假设大家曾经了解过TCP的话,那么相信大家也听说过糊涂窗体综合症吧。

    它的大致意思是这样的,就是当接收方窗体大小变为0时,发送方就会堵塞。上文中有提到。当接收方窗体大小刚空出来一个非常小的空间然后就去通知发送方,发送方相同也会发一个非常小的数据,然后导致接收方窗体变为0,等接收方略微在腾出来点空间。。。

    。如此往复。每次发送方和接收方都仅仅能弄到非常少的数据。严重减少了传输效率,这就是所谓的糊涂窗体综合症

    我们能够使用例如以下方法来解决此类问题
    (1)接收方不通告小窗体。除非窗体比MSS大或者比接收方缓存的一般空间小才通告发送方
    (2)发送方避免糊涂窗体的措施是仅仅有下面条件才发送数据
    .能够发送一个满长度的报文段
    .能够发送至少是接收方缓存区一半的报文段(主要针对小缓存区的主机)
    .能够发送手头全部数据,并不希望收到ACK(此算法可能禁止了Nagle算法)

    TCP的保活定时器

    当TCP的俩端建立连接后,而不发送不论什么数据。那么仅仅要这俩个主机不崩,不管经过多长时间,中间路由是否坏掉。电话线是否断掉,此连接会依旧存在
    这样的现象表明俩个应用都没有自己去检測非活动状态的定时器

    保活功能定时器

    当TCP连接的俩端暂时出现问题时。保活功能就会产生一个非常好的连接终止效果
    保活功能主要是为server程序提供的,server须要知道客户机是否已经崩溃

  • 相关阅读:
    c#中文字符串与byte数组互相转化
    c#的中英文混合字符串截取 public static string SubString(string inputString, int byteLength)
    c#的中英文混合字符串截取指定长度,startidx从0开始
    //字符是否为汉字
    //获得字节长度
    C# 截取中英文混合字符串分行显示宽度相同
    C#截取中英文混合字符串分行显示
    C#截取指定长度中英文字符串方法 (修改)
    截取字符串的长度(中英文)
    canvas贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6846988.html
Copyright © 2011-2022 走看看