主机参考: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速度学习教程(向初学者学习)。需要它的朋友可以保存和下载并学习它!
下载
这几篇文章你可能也喜欢:
- 如何在WordPress帖子之间移动评论(简单的方式)
- 基于PHP和MySQL构建电子商务网站的数据库设计(创建PHP和数据库网站的示例)
- 如何管理DEWECM中的模板缓存如何清洁缓存文件
- 如何使用商店迷你计划出售商品? 他在10分钟内创建了一个迷你计划,每周获得50,000元人民币(如何销售迷你计划)
- 基于PHP和MySQL的招聘网站的职位发布和查询(PHP网站编辑招聘)
本文由主机参考刊发,转载请注明:网络图形(实际TCP 3握手)(TCP 3握手SYN) https://zhujicankao.com/147791.html
评论前必须登录!
注册