TCP

面向链接、可靠的字节流服务,全双工

1、头部,socket也指一个IP、端口对

  

2、三次握手  同时打开

3、连接超时  SYN间隔递增,大约75秒放弃

4、MSS TCP传往另一端的最大块数据的长度

    只在SYN出现,MSS限制数据包最大值,滑动窗口与缓冲期有关

5、四次挥手  TIME_WAIT

6、状态变迁图

            

7、backlog  三次握手完成,应用层还没accept,积压队列长度

8、tcp确认延迟机制  ack不立即发送,数据捎带ack

9、nagel算法,任何时刻网络仅有一个未确认的tcp数据包,可以解决网络拥塞

    1)达到MSS

    2)包含FIN

    3)超时

    4)未启用nagle

  cork算法将小数据包集中发送

10、滑动窗口  流量控制

      

11、tcp拥塞控制采用拥塞窗口(cwnd)控制

       拥塞依据,即重传:

      1.把ssthresh降低为cwnd值的一半

      2.把cwnd重新设置为1

        3.重新进入慢启动过程。

 

   慢启动  当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,

      每当有一个报文段被确认,cwnd就增加1个MSS大小

   拥塞避免  慢启动达到一定门限ssthresh不再指数级上涨,而是加法增加,慢慢达到cwnd最佳值

  快速重传:如果一连串收到3个或3个以上的重复ACK,就非常可能是一个报文段丢失了。

       于是我们就重传丢失的数据报文段,而无需等待超时定时器溢出。

  快速恢复:接下来执行拥塞避免算法

 

12、tcp四个定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器

    RTT往返时间  传播时间+未端处理时间+路由处理缓存排队时间

    坚定定时器:当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端

            查询窗口是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到0窗口就再开一个新的定时器准备下一次查询。

        糊涂窗口综合症

    保活定时器:Keepalive  SO_KEEPALIVE选项

            每隔2小时(可以调整)发送保活探测报文

 

13、优化tcp性能

    路径MTU发现

    窗口扩大因子,序号回绕保护

    为事务用的tcp扩展,即T/TCP

 

posted @ 2016-03-05 20:09  zhou09  阅读(205)  评论(0编辑  收藏  举报