tcp(tcp抓包fenxi)

本次文章仅仅是对数据包分析。

12:21:09.892968 IP 10.104.238.179.38677 > 10.225.30.181.http: Flags [S], seq 1306005652, win 14600, options [mss 1460,sackOK,TS val 1281185831 ecr 0,nop,wscale 6], length 0
12:21:09.898798 IP 10.225.30.181.http > 10.104.238.179.38677: Flags [S.], seq 3293540432, ack 1306005653, win 14280, options [mss 1404,sackOK,TS val 192469720 ecr 1281185831,nop,wscale 1], length 0
12:21:09.898820 IP 10.104.238.179.38677 > 10.225.30.181.http: Flags [.], ack 1, win 229, options [nop,nop,TS val 1281185837 ecr 192469720], length 0

三次握手的顺序如上 Flags 表示当前报文是什么报文 seq随机序号接受win窗口大小建立 报文的数据部分长度是option可选项(所以滑动窗口的大小是在三次握手的时候确定的)烙铁!!!

基本三次握手就是这个顺序

发送数据时flag位psh

2:21:09.898954 IP 10.104.238.179.38677 > 10.225.30.181.http: Flags [P.], seq 1:200, ack 1, win 229, options [nop,nop,TS val 1281185837 ecr 192469720], length 199
12:21:09.904035 IP 10.225.30.181.http > 10.104.238.179.38677: Flags [.], ack 200, win 7676, options [nop,nop,TS val 192469722 ecr 1281185837], length 0
12:21:09.904049 IP 10.104.238.179.38677 > 10.225.30.181.http: Flags [P.], seq 200:807, ack 1, win 229, options [nop,nop,TS val 1281185842 ecr 192469722], length 607
12:21:09.909123 IP 10.225.30.181.http > 10.104.238.179.38677: Flags [.], ack 807, win 8283, options [nop,nop,TS val 192469723 ecr 1281185842], length 0
12:21:09.909216 IP 10.225.30.181.http > 10.104.238.179.38677: Flags [P.], seq 1:128, ack 807, win 8283, options [nop,nop,TS val 192469723 ecr 1281185842], length 127
12:21:09.909224 IP 10.104.238.179.38677 > 10.225.30.181.http: Flags [.], ack 128, win 229, options [nop,nop,TS val 1281185848 ecr 192469723], length 0faso
浅谈psh标志只会在发送数据时候出现通知尽快读取 数据,对方收到数据进行回复


具体如图所示

说道这边说一下listen

listen的第二个参数的意义

1:未完成队列:每个这样的SYN分节对应其中一项,已有某个客户端发出并到达服务器,而服务器正在等待完成相应的TCP三路握手过程。这些套接口处于SYN_RCVD


2:已完成队列:每个已经完成TCP三路握手过程的客户对应其中一项。 这些套接口处于ESTABLISHED

???队列的大小是。。。。。。。。。。。。。。。。。。。。。。。。决定的!

并且现在的第二个参数表示的是已完成三次握手的队列长度,原来是表示未完成三次握手的长度。并且未完成三次握手的队列长度也可以设置。

已完成三次连接的的队列大小可以根据第二个参数设置

这里说下对着两个队列的理解
假设未完成队列设置为100,  有并发1000个请求过来。假如系统处理过慢。那么系统会做以下几件事
1) 因为未完成队列只有100个。先放100个请求过来处理三次握手。其他的请求直接拒绝。TCP会忽略该分节,也就是不送RST,这样客户端将重发SYN,期望在未完成队列中找到位置
2)每处理完一个三次握手动作。就放一个SYN请求过来。并站住未完成队列一个位置。除非三次握手完成(成功或者失败)、或者超时就把该请求连接移除未完成队列。如果系统性能好。这个动作会很快。
3)完成TCP三次握手的请求放到已完成队列里

具体 todo》》》》》》》》》》》》》》》》》》》》》》》》》》》》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值