zoukankan      html  css  js  c++  java
  • tcp中的发送窗口是啥意思?

    初始的三次握手:

    02:52:36.585412 IP 127.0.0.1.59764 > 127.0.0.1.8000: Flags [S], seq 3800457532, win 43690, options [mss 65495,sackOK,TS val 1597305 ecr 0,nop,wscale 7], length 0
    02:52:36.585442 IP 127.0.0.1.8000 > 127.0.0.1.59764: Flags [S.], seq 4218504248, ack 3800457533, win 43690, options [mss 65495,sackOK,TS val 1597305 ecr 1597305,nop,wscale 7], length 0
    02:52:36.585468 IP 127.0.0.1.59764 > 127.0.0.1.8000: Flags [.], ack 1, win 342, options [nop,nop,TS val 1597305 ecr 1597305], length 0
    02:53:30.192996 IP 127.0.0.1.59764 > 127.0.0.1.8000: Flags [P.], seq 1:4097, ack 1, win 342, options [nop,nop,TS val 1610707 ecr 1597305], length 4096
    02:53:30.193018 IP 127.0.0.1.59764 > 127.0.0.1.8000: Flags [.], seq 4097:25942, ack 1, win 342, options [nop,nop,TS val 1610707 ecr 1597305], length 21845
    02:53:30.193049 IP 127.0.0.1.8000 > 127.0.0.1.59764: Flags [.], ack 4097, win 1365, options [nop,nop,TS val 1610707 ecr 1610707], length 0

    首先是三次握手协议,发送了一个syn,然后初始序列号是3800457532,然后初始窗口大小是43690,并且最大段的长度是,服务器端首先回复的初始序列号是421850424,也就是说你下次给我发的序号应该是4218504248。但是为啥

    下面这些实际传送的数据包都是后期经过处理的,其实都是在seq上的。

    很奇怪,tcp上没有数据长度信息,tcp的数据包的长度信息是在ip包里

    到底是怎么确定的发送的窗口,在copy的时候会发现,总共80k的数据,下面就是每次拷贝的数据的量,

    Begin write 
    client copy:1456
    client copy:32768
    client copy:30936
    client copy:1832
    client copy:5408
    client copy:7240
    client copy:2280
    

     看下这里到底是咋整的啊

    rcv_wnd 这个就是reciver的窗口咯

    tcp的这些窗口落实在代码里都是咋整的?

    当把网卡的tso和gso特性全部都关掉了,发现数据包的大小就变成了1448

  • 相关阅读:
    LeetCode OJ-- Count and Say
    3dContactPointAnnotationTool开发日志(二)
    如何将PDF的背景色设置为保护眼睛的苹果绿色
    3dContactPointAnnotationTool开发日志(一)
    随便测测
    360浏览器重新打开不小心关闭的网页
    Unity3d学习日记(四)
    Unity3d学习日记(三)
    Unity3d学习日记(二)
    新的目标ヾ(◍°∇°◍)ノ゙
  • 原文地址:https://www.cnblogs.com/honpey/p/9536131.html
Copyright © 2011-2022 走看看