zoukankan      html  css  js  c++  java
  • Tcp学习笔记

    //应用,传输,网络
         //TCP:提供可靠数据传输,通过使用流量控制,序号,确认和定时器等技术
         //拥塞控制
    
    
         /*1.自动重传机制
             A---->B(ACK,NAK)
             不知道是数据分组丢失,ACK丢失,或者二者延迟。采用的动作是重传,
             发送方:1每次发送一个分组启动一个定时器 2响应定时器中断 3终止定时器
    
             校验和,序号,定时器,肯定确认,否定确认
    
         2.流水线技术
            停等效率很低
    
            流水线差错回复 1.回退N步 2.选择重传
            base    nextseqnum
            |    |
            ----------------------------------
            {  滑动窗口长度N      }
    
            base:最小的未被确认的序号
            nextseqnum:最小未被使用的序号
            滑动窗口:即已经发送但未被确认的可以达到的最大数量
            为什么要限制:1.流量控制 2.TCP拥塞控制
    
            发送方:如果滑动窗口满了,暂停发送
            接收方:对序号为n的分组的确认采取累积确认,表明接收方已正确接收到序号n包括n的所有分组
    
            GNB:重传
            选择重传
    
            加倍超时间隔:TCP重传时间间隔加倍
    
            快速重传:在某报文段的定时器过期之前重传丢失的报文段
    
         3.流量控制
            用以消除发送方使接收方缓存溢出的可能性,使发送方的速率和接收方的速率匹配
            A->B  A保存一个B的接收缓冲区大小,通过B通知A
    
         4.连接管理
            三次握手
            c:syn比特 = 1 客户端起始序号client_isn放入序号字段中
            s:syn比特 = 1 确认字号client_isn+1 序号字段server_isn
            c:syn比特 = 0 确认字段server_isn+1 序号:client_isn
    
            fin->
            <-ack
            <-fin
            ->ack
            time_wait:客户端最后一步,使得tcp客户端重传最终确认报文,以防止该ack丢失,30s,1分钟。。
    
         4.拥塞控制
            如果不存在拥塞,TCP会增加其发送速率,如果有拥塞,TCP减小发送速率
            1.TCP发送方如何限制向连接发送流量的速率
                (LastByteSent - LastByteAcked)(未被确认的数据量) <= min(CongWin, RcvWindow)
                假如RcvWindow足够大,则CongWin限制,如果发送CongWin字节数据,RTT时间内进行确认,则发送速率CongWin/RTT,通过调节CongWin(拥塞窗口)就能调节发送速率
            2.如何感知路径上存在拥塞
                超时或者收到接收方3个冗余ACK
            3.当拥塞发送时采用什么算法来改变发送速率
                TCP拥塞控制算法 1.加性增 乘性减 2慢启动 3对超时事件做出反应
                1.加性增 乘性减:当TCP发送方端到端无拥塞时就加性的增加其发送速率,当察觉到有路径拥塞时就乘性的减小其发送效率每次/2
                2.慢启动 TCP发送方在初始阶段不是线性的增加发送速率,而是以指数的速度增加,即每一个RTT将CongWin值翻倍。直至出现丢包,然后减半,然后走普通流程
                --->    ---->    -----> 1,2,4这样,每发送一个MSS,如果在超时之前返回,则CongWin+1,在慢启动阶段,每过一个RTT,CongWin的值将有效的增加一倍
                        ---->    ----->
                                ----->
                                ----->
                3.对超时事件作出反应
                    1.收到3个冗余ACK,会将拥塞窗口减半,然后线性增长(快速恢复)
                    2.如果超时 则将拥塞窗口置为1,然后窗口以指数级别增长
  • 相关阅读:
    Android学习---- 十月
    第17章 使用PHP和MySQL实现身份验证
    第13章 MySQL高级编程
    第12章 MySQL高级管理
    第11章 使用PHP从Web访问MySQL数据库
    第10章 使用MySQL数据库
    第9章 创建Web数据库
    第5章 代码重用与函数编写
    NOIP模拟赛-奶牛晒衣服(dry)
    BZOJ1008 /乘法原理+快速幂 解题报告
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/13970048.html
Copyright © 2011-2022 走看看