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
tcp中的发送窗口是啥意思?的更多相关文章
- TCP滑动窗口(发送窗口和接受窗口)
TCP窗口机制 TCP header中有一个Window Size字段,它其实是指接收端的窗口,即接收窗口.用来告知发送端自己所能接收的数据量,从而达到一部分流控的目的. 其实TCP在整个发送过程中, ...
- TCP发送窗口更新tcp_ack_update_window
在tcp_ack接收ACK处理函数中,如果确认当前走慢速路径,那么会调用tcp_ack_update_window函数检查窗口是否需要更新并更新之,并且更新未确认数据的位置,即更新窗口左边沿: sta ...
- Linux2.6内核协议栈系列--TCP协议1.发送
在介绍tcp发送函数之前得先介绍很关键的一个结构sk_buff,在linux中,sk_buff结构代表了一个报文: 然后见发送函数源码,这里不关注硬件支持的分散-聚集: /* sendmsg系统调用在 ...
- TCP中的RST复位信号
TCP中的RST复位信号 在TCP协议中RST表示复位,用来关闭异常的连接,在TCP的设计中它是不可或缺的. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包.而接收 ...
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
一.实现功能 1.服务器端选择待发送的文件,可以是多个 2.开启服务器,支持多客户端接入,能够实时显示每个客户端接入状态 3.等待所有客户端都处于已连接状态时,依次发送文件集给每个客户端,显示每个客户 ...
- TCP中ECN的工作原理分析二(摘自:RFC3168)
英文源:http://www.icir.org/floyd/ecn.html 发送端和接收端处理: The TCP Sender For a TCP connection using ECN, new ...
- TCP协议的滑动窗口协议以及流量控制
参考资料 http://blog.chinaunix.net/uid-26275986-id-4109679.html http://network.51cto.com/art/201501/4640 ...
- 三十天学不会TCP,UDP/IP网络编程 -- TCP中的智慧之连续ARQ
突然发现上一篇文章贴图有问题,关键我怎么调也调不好,为了表达歉意,我再贴一篇gitbook上的吧,虽然违背了我自己的隔一篇在这里发一次的潜规则~其余完整版可以去gitbook(https://www. ...
- TCP协议的滑动窗口具体是怎样控制流量的
首先明确: 1)TCP滑动窗口分为接受窗口,发送窗口滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没 ...
随机推荐
- Golang通道的无阻塞读写的方法示例
无论是无缓冲通道,还是有缓冲通道,都存在阻塞的情况,但其实有些情况,我们并不想读数据或者写数据阻塞在那里,有1个唯一的解决办法,那就是使用select结构. 这篇文章会介绍,哪些情况会存在阻塞,以及如 ...
- Python 1.2 列表和字典基础
一. List创建.索引.遍历和内置增删函数 1.列表是Python的内置可变对象,由Array实现,支持任意类型的添加.组合和嵌套. L = [] # list declare L = [1, 1. ...
- python类的多态
1. 什么是多态 多态指的是同一种/类事物的不同形态 2. 为何要用多态 多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象 多态性的精髓:统一 ...
- python2和python3的一些区别
性能:py3.x起始比py2.x效率低,但是py3.x有极大的优化空间,效率正在追赶. 编码:py3原码文件默认utf-8编码,使得变量名更为广阔. 语法:1,去除了 <> ,改用了 ...
- express with bower in websotrm
0. To install bower , run the following command in webstorm terminal(alt+f12) npm install bower bowe ...
- Tomcat7 调优及 JVM 参数优化
Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU 的频率,保证 ...
- MySQL高级第四章——MySQL的锁机制
一.概述 1.定义 锁是计算机协调多个进程或线程并发访问某一资源的限制. 2.分类 操作类型来分: 读锁(共享锁)和写锁(排它锁) 数据粒度来分: 表锁和行锁 二.三锁 1.表锁——偏读 特点: 偏向 ...
- Uber优步北京第二、三组奖励政策
优步北京第二.三组: 定义为2015年6月1日至今激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最 ...
- python+selenium 环境配置
配置环境: python:3.5 selenium:3.3.0 安装方式:python pip install -u selenium windows: 10 firefox:52 因为firefox ...
- CodeForces - 913C(二进制)
链接:CodeForces - 913C 题意:给出 n 瓶饮料的花费 C 数组,每瓶的体积是 2^(i-1) 升,求至少买 L 升的最少花费. 题解:二进制数的组合可以表示任何一个数.第 i 的饮料 ...