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滑动窗口分为接受窗口,发送窗口滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没 ...
随机推荐
- 使用boost.asio实现网络通讯
#include <boost/asio.hpp> #define USING_SSL //是否加密 #ifdef USING_SSL #include <boost/asio/ss ...
- 从零开始一个http服务器(一)-开始
从零开始一个http服务器 (一) 代码地址 : https://github.com/flamedancer/cserver git checkout step1 一个简单的socket serve ...
- 实验4 [BX]和loop指令
实验内容: 1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0441H. 实验结果: 若填充的数据为:0403h,则实验结果转变为: ...
- asp.net微信公众平台本地调试设置
1.首先要开启内网穿透功能,我这边使用自己搭建的ngrok内网穿透服务(具体如何搭建ngrok内网穿透服务,另开一篇说) 2.开启内网穿透后,即可实现互联网访问 www.tbkmama.cn 指向 1 ...
- 如何使用GeoServer发布地图
本文所采用的系统为Windows 10 64bit操作系统,使用FireFox浏览器 一.安装配置Java的SDK 1. 安装JavaDevelopment Kit (JDK) 8,java开发环境, ...
- spring之HttpInvoker
一.HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目.顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信 ...
- excell 导入 导出
1.jar包 2.POIUtils工具类 package com.esstglobal.service.utils; import java.io.BufferedInputStream; impor ...
- create-react-app创建react项目 css模块化处理
用的css预处理器用sass,其他大同小异. 用create-react-app创建项目,执行npm run eject弹出配置文件(此操作不可逆): 配置sass,用的最新的CRA,webpack4 ...
- uvaoj 101 - The Blocks Problem(vector应用+技巧)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=835&page= ...
- leetcode-颜色分类
颜色分类 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示 ...