zoukankan      html  css  js  c++  java
  • TCP/IP学习笔记:TCP

    TCP协议提供可靠的数据流服务,有以下5个特征

    1. 面向数据流

    2. 虚电路连接

    3. 有缓冲的传输

    4. 无结构的数据流

    5. 全双工连接

    TCP使用确认、重传来保障可靠性,采用滑动窗口机制来保障传输效率和进行流量控制


    TCP报文段格式


    6位code bit


    其中窗口是16bit的捎带窗口通告


    TCP报文段的最佳长度L的确定:当携带尽可能长的报文段的IP数据报在从源站到目的站的路径上不会被分片的长度就是L。

    TCP和UDP一样引入了伪首部来进行校验和计算。


    TCP可靠性传输的几种保障机制
    确认机制

    TCP采用累计确认机制,确认包的序号比最后收到的包的序号大1,指出了期望收到下一个包的序号。

    累计确认的优点是减少了确认次数,但也可能导致不必要的重传。


    重传机制

    TCP超时重传机制采用了自适应重传算法来检测各个连接的时延,并调整相应的超时参数。

    TCP的累计确认机制天生存在确认二义性问题,对于超时时间的估算采用Karn算法和定时器补偿,其核心思想是忽略重传报文的样本并采用补偿策略。


    拥塞处理机制

    加速递减:一旦发现报文段丢失,立即减半拥塞窗口直减到1同时加倍重传定时器。

    慢启动恢复:在启动新连接传输或在拥塞之后增加通信量时仅以1个报文段作为拥塞窗口初始值,每收到一个确认拥塞窗口增加1

    拥塞避免:当拥塞窗口恢复到原来一半时,进入拥塞避免状态降低窗口增长速度。

    RED: 随机早期丢弃


    TCP建立连接


    TCP关闭连接


    TCP有限状态机


    糊涂窗口综合症

    为避免糊涂窗口TCP标准推荐接收方采用推迟确认技术,策略是在通过零窗口之后要等到缓冲区可用空间至少达到总空间的一半或达到最大报文

    段长度之后才发送更新的窗口通告。为了避免潜在问题TCP标准规定了TCP在实现时对确认最多推迟500毫秒。

    发送方采用Nagle算法实现启发式策略来自适应推迟传输

  • 相关阅读:
    又学到的2个小技巧
    CSS3 简写animation
    CSS3 区别Transform,Transition,Animation一句话
    纠错【2012年5月9日 JQuery跑马灯(文字无缝向上翻动)(自已封装的第三个插件)】
    jQuery计算选中的文本字数,并弹出一个层(插件四)
    html5Canvas绘制线条closePath();
    html5循环方式绘制矩形
    jQuery过滤not()与filter();
    javascript在firebug调试时用console.log
    jQuery插件在光标定位的地方插入文字(插件5)
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147674.html
Copyright © 2011-2022 走看看