TCP

面向连接的可靠数据传输协议

首部20字节,主要包括序号(32bit),确认号,源端口,目的端口号(16bit)

序号+累积确认+重传

流量控制:发送方维护接受窗口(接收方缓存空间大小)

 

四次挥手:全双工,一方请求断开连接,不代表另一方发送数据完毕。fin_wait1---(接收ack)--->fin_wait2---(接收fin,发送ack)--->timewait---()--->closed,time_wait为了给对方重发fin包的时间,且确保该次连接产生的报文段全部消失。

 

拥塞控制:

1. 慢启动:cwnd初始值为1,每rtt时间翻倍,直到>=ssthresh,进入拥塞避免。或发生一个由超时指示的丢包事件时,ssthresh被置为cwnm/2,cwnd被置为1,并重新开始慢启动。

2. 拥塞避免:每rtt时间cwnd增加1。

3. 快速重传+快速恢复:收到3个冗余的ack将重发未确认的报文段,然后进入快速恢复阶段。

快速恢复:

step1:
            if(dupacks>=3){
                    ssthresh=max(2,cwnd/2);
                    cwnd=ssthresh+3;    
    }                
step2:
            重新发送丢失的分组
step3:
            此后每收到一次重复的ack,cwnd++。
step4:
            收到非重复ack,置cwnd为ssthresh,进入拥塞避免阶段。

  

posted @ 2019-08-22 15:32  zpncepu  阅读(115)  评论(0编辑  收藏  举报