VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
wexlayer优惠活动

网络图形(实际TCP 3握手)(TCP 3握手SYN)

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

abstract

Preparing a Network Display Practical TCP 3 Handshake Problem

Preparing a Network Display

tcpdump Command

Example

Example

Description

-i

tcpdump-i eth0

Interface

-nn

tcpdum -nn

dissolves the names of IP addresses and port numbers

-c

tcpdump -c 5

Limits the number of network packets. file.pcap

Storing crawled packets to a file

tcpdump -nn filtering

Options

Example

Description

Description

Filter

Port, SRC port, DST port

tcpdump -nn port 80

端口过滤器

IP,IP6,ARP,TCP,UDP,ICMP

tcpdump -nn Tcp

tcpdump -nn host192.192.168.1.1.1.1.1.100和port 80

</pp </pp </pp pp

tcpdump -nn“ tcp [tcpflags]&tcpsyn!准备环境

使用docker拉起两个容器。容器是:T-code execution time: 0 run copy # pull ubuntu clientdocker run -ubuntu_client -itd ubuntu #pull nginx serverdocker run--name nginx -d nginx #view contain docker infection ubuntu_clientdockerinsept Name

ip

ubuntu_client

172.17.0.3

nginx

172.17.0.0.2

nginx server canter canter canter

在ubuntu ubuntu ubuntu

中爬上ubuntu nginx服务器172.17.0.2 在nginx容器中运行以下命令代码语言:JavaScript代码执行时间:/bin/bash#数据包捕获命令tcpdump -i Eth0 -nn icmp和主机172.17.0.0.0.0.3 写的信息仍然相对较少。 在Linux服务器上爬行的软件包通常保存为PCAP文件,并在本地导出Wireshark工具进行分析。

Code Language: javascript Code Runtime: 0 run <copy # Packet capture and write files tcpdump -i eth0 -nn icmp and host 172.17.0.3 -w icmp.pcap # Run on the host, copy the container file, and copy the file for cotker cp nginx:imginx:imcp.pp> pids Wireshark to see detailed如下图所示,每一层的信息:

实用的TCP 3握手问题

详细解释了3架握手的过程,但现实通常并不完美。 TCP的第二个握手SIN + ACK数据包丢失了TCP的第三个握手ACK数据包,

当然可以保证包装丢失和重新启动,但是我们以前没有解释了收录的数量,所需的时间,或者我们是否可以设置收录次数。今天,我们将捕获一个数据包并查看上述问题。

tcp缺少

在这里,我们将在Nginx服务器上更改nginx服务器上的防火墙:drop

在ubuntu_client中运行以下命令,如下所示:e class =“ javaScript”>#数据包捕获并写入文件tcpdump -i eth0 -nn TCP和主机172.17.0.2和端口80 -W http.pcap##pcap###pcap##pcull uncept and curl request nginxdate;卷曲http://172.17.0.2;几分钟后,卷曲返回了超时错误。

分析捕获的数据包。

总计六次的客户端。每个RTO时间都不同,每个RTO几乎翻了一番。

谁确定Linux上第一握的重新发行数量?

代码语言:JavaScript代码运行时:0运行复制 cat/sys/net/net/ipv4/tcp_syn_retries

由内核参数tcp_syn_retries确定。从上图可以看到,这里的默认值为6。

读者可以将上述参数更改为2。您还可以看到超时会立即超时。

可以从上面得出有关第一个握手的结论。

客户端在RTO时间内未收到SYN数据包。每个重传时间都翻了一番。内核参数tcp_syn_retries指定了最大重传次数的数量。

丢失了TCP SYN+ACK数据包的第二个握手

还原上面添加到服务器上的拒绝规则,以便服务器可以成功接收客户端数据。

代码语言:javascript代码运行:0运行复制#input iptables -d输入1

删除向客户端配置防火墙规则的第一个规则,拒绝NGINX服务器软件包如下:

代码语言:JavaScriptCode运行时间:0运行复制#denty nginx Server -S 172.17.0.0.2 -J drop#drop#运行数据包捕获和写文件captary and File capture tcp and host host host tcp.pcap#pccap#pccap#pccap#cull ngin curl curl curl卷曲http://172.17.0.2;日期

从上图中,您可以看到SYN+ACK数据包的丢失会导致以下操作:数据包和服务器时间超时以重新发送SYN+ACK数据包。

设置防火墙后,为什么可以向客户抓取数据包?

这主要取决于iPtables的限制。

如果添加了输入规则,则可以原始数据包。如果添加了输出规则,则数据包不能是原始的。原因是输入主机后的网络数据包的顺序如下:Wire-> NIC-> nic-> tcpdump-> netFilter/iptables这是离开主机的网络数据包的顺序:

最大重新授权的数量由Kernel parameter参数tcp_synack_retries确定。

代码语言:javascript代码运行:0运行复制#默认值是5cat/proc/proc/sys/net/ipv4/tcp_synack_retries <下面,您将对客户端和服务器进行以下更改:

代码语言:JavaScript代码运行时间:0运行#在nginx服务器上运行此命令,以更改ubunties in ubuntries上的um u u u u u ubunties ubunties 1>/proc/proc/proc/proc/proc/net/net/tcp_syn_retries </code </code </code </客户端的SYN数据包一次不满,服务器上的SYN+ACK对SYN+ACK感到不满。

TCP第三握手ACK数据包损失

在开始实验之前,请不要忘记恢复客户端和服务器iptables,然后对服务器上的iptable进行以下更改。 172.17.0.3 -P TCP -TCP -FLAG ACK ACK -J drop

通过运行以下客户端命令捕获数据包:使用另一个窗口telnet telnet 172.17.0.0.2 80.2 80

在客户端和服务器上显示以下命令以显示以下命令TCP连接建立状态:

代码语言:JavaScript代码运行时:0运行复制 netstat -lantp

从上图中,您可以看到客户端TCP连接已建立,并且已经建立了TCP连接状态。 但是,该服务器无法接收第三次握手的ACK数据包,因此它始终处于Syn_RECV状态,如下图所示。

一段时间,在telnet窗口中输入123,456个字符,然后从上图中抓住数据包一段时间,如下图所示。当时,服务器上的TCP连接被积极中断,因此Syn_RECV状态中的连接消失了。

由于客户连接没有中断,因此我输入123456将其发送到服务器,但是服务器已断开连接,客户端的数据始终令人讨厌(Push + ACK消息)。那么,是什么控制客户端建立连接后的最大重传次数呢?

由内核参数tcp_retries控制。

代码语言:运行javaScript代码:0复制#当我运行下一个命令时,默认值为15cat/sys/sys/sys/sys/net/net/ipv4/tcp_retries2

更改客户的tcp_retries2参数,将其显示为12456个字符,并在duiple中clip clip clip clip n i Sheck clip ins y i Sheck clip ins y时2 clip clip clip ins in y时2.下图:

假设客户端未发送数据,何时会断开连接?

目前,您必须使用TCP保护我们已经谈到了维持生命的机制。如果不清楚,您可以对其进行审查。

有关PHP速度学习视频(从初学者学习)的免费教程

如何学习PHP? 如何开始PHP? 我在哪里可以学习PHP? 如何立即学习PHP? 不用担心,这是PHP速度学习教程(向初学者学习)。需要它的朋友可以保存和下载并学习它!

下载

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:网络图形(实际TCP 3握手)(TCP 3握手SYN) https://zhujicankao.com/147791.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 网络图形(实际TCP 3握手)(TCP 3握手SYN)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!