美文网首页
Wireshark-TCP协议+包的传输

Wireshark-TCP协议+包的传输

作者: 6a91e15c5cde | 来源:发表于2018-12-31 16:25 被阅读20次

    包的传输

    问题: 假设有3000字节数据,通过tcp进行传输,是如何从A机器传输到B机器的?

    TCP传输.png

    假设现在A机器要发送3000个字节的数据给机器B

      1. 首先数据从A的应用层将3000字节的数据给到传输层
      1. A传输层接到后,A和B建立三次握手,过程中协商到MSS大小1460, B窗口大小2920
      1. 更具协商得到的信息, A将3000字节切分为3个包,大小分别为1460,1460, 80
      1. 由于B的窗口大小是2920,所以一次最大可以传输2个包,第三个包80要单独传送
      1. A将2个包扔给网络层
      1. A将数据经过网络层,数据链路层传输给B
      1. B从网络层读取数据到传输层
    • 重复5到7的步骤,直到3个包传输完毕,然后将数据给到应用层

    这里2到4体现了,传输层的“控制”机制

    滑动窗口 可以参考这篇文章理解

    • 为什么要有滑动窗口?解决了什么问题?
    • 滑动窗口的运作原理是什么?
    • 数据传输出错了怎么处理?如何进行的重传?A的缓存有什么作用?
    • A的速度快,B的速度慢,A 向B传输,B出现了0窗口怎么办?会有什么影响吗?
    • 窗口为社么会不停的调整大小?
    • 什么是集中确认?出现在那个场景下?
    • 快速重传是怎么被触发的?
      假设现在传输三个包,传输过程中,第二包丢失掉了:
      • A的第一个包发出去,ack是100
      • B回一个ack=1100
      • A的第二个包丢失,A的第三个包也到达了B
      • 此时B收到A的第三个包后,应该回复给A的ack是多少呢?
      • 这种情况,B给A回复的ack是1100,即对第一个包回复的ack的值,原因是B没有收到A的第二个包
      • 此时,A在传输第5个包,第6个包,收到的ack依然是1100
      • 这时A连续收到3个确认的ack都是1100, A直到自己的第二个包丢失了,于是触发了快速重传机制。
      • A对第二个包进行了重传之后,B应该回复给A的ack是多少?(是第五个包的seq+len),为什么?
    快速重传.png

    流控机制

    • 窗口因子

    拥塞控制机制

    • 拥塞窗口和滑动窗口的区别

    • 为什么要有拥塞窗口

      • 假设b的拥塞窗口是3000,a向b发送数据。
        1) a先向b发送了一个1000的数据包
        2) 这时候a收到b的窗口是3000
        3) 然后,如果a立即发送3000的数据包给b,那么可能会出现,b还没有处理完上一次的
        1000的数据包,这样3000+1000大于了b的处理能力,3000中可能有1000会被丢弃。
        4)因为有这样的问题,所以a有一个拥塞控制的窗口
        5) 拥塞控制窗口,a不会立即发送满的数据给b,而是试探式的发送,比如先发一个包,得到对方的ack后,将拥塞窗口大小加1,每确认一次加1,以此类推,逐渐的加大拥塞窗口。
        6) 当拥塞窗口大于滑动窗口,接收端丢包,出现超时重传,超时重传是需要重新建立tcp
        连接的。
      1. 为了减少超时重传带来的消耗,于是有了慢启动阀值的概念。
        8) 慢启动阀值,是为了避免拥塞窗口大于滑动窗口。算法是:2倍的mss/拥塞窗口。当在
        阀值以下的时候,每次增加1mss, 阀值以上每次增加 2mss/拥塞窗口字节,因此超过阀
        值越大,拥塞窗口增长速度越慢。
        慢启动阀值,并不是开始就有,而是在出现过一次超时重传后才有,这时的阀值是超时
        时的阀值/2.
    • 超时重传: 需要重新建立tcp连接!---->比如拥塞窗口大于滑动窗口的情况

    • 快速重传: 不需要重新建立tcp连接!--->比如丢包重传的情况

    tcp拥塞窗口.png

    提高网络利用率的算法

    • nagle算法
    • 延迟确认应答
    • 稍待应答

    Sack

    sack机制1.png

    TCP调优

    [图片上传中...(网络调优02.png-48baa5-1546244600299-0)] 网络调优02.png 网络调优04.png 网络调优05.png

    相关文章

      网友评论

          本文标题:Wireshark-TCP协议+包的传输

          本文链接:https://www.haomeiwen.com/subject/bronkqtx.html