zhu*_*wei 4 tcpdump netcat tcpreplay
在服务器中
\n\n# nc -lp 2424\nhi server\nhi client\n1\n2\n3\nRun Code Online (Sandbox Code Playgroud)\n\n在客户端
\n\n\xe2\x9e\x9c ~ nc 139.224.xxx.xx 2424\nhi server\nhi client\n1\n2\n3\nRun Code Online (Sandbox Code Playgroud)\n\n然后在客户端
\n\n\xe2\x9e\x9c ~ sudo tcpdump -i en0 -nn -s0 -v src port 2424 -c 10 -w 2424.pcap\ntcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 262144 bytes\n10 packets captured\n93 packets received by filter\n0 packets dropped by kernel\n\n\xe2\x9e\x9c ~ tcpdump -r 2424.pcap\nreading from file 2424.pcap, link-type EN10MB (Ethernet)\n16:49:47.874743 IP 139.224.xxx.xx.kofax-svr > 192.168.199.171.53511: Flags [P.], seq 2832846522:2832846524, ack 587632101, win 227, options [nop,nop,TS val 1632491736 ecr 751973860], length 2\n16:49:48.795743 IP 139.224.xxx.xx.kofax-svr > 192.168.199.171.53511: Flags [P.], seq 2:4, ack 1, win 227, options [nop,nop,TS val 1632492657 ecr 752338627], length 2\n16:49:49.786093 IP 139.224.xxx.xx.kofax-svr > 192.168.199.171.53511: Flags [P.], seq 4:6, ack 1, win 227, options [nop,nop,TS val 1632493648 ecr 752339543], length 2\nRun Code Online (Sandbox Code Playgroud)\n\n但是当我重播它时,客户端 nc 控制台没有任何输出
\n\n\xe2\x9e\x9c ~ tcpreplay -ien0 2424.pcap\nWarning: May need to run as root to get access to all network interfaces.\nActual: 10 packets (681 bytes) sent in 10.84 seconds\nRated: 62.7 Bps, 0.000 Mbps, 0.92 pps\nStatistics for network device: en0\n Successful packets: 10\n Failed packets: 0\n Truncated packets: 0\n Retried packets (ENOBUFS): 0\n Retried packets (EAGAIN): 0\nRun Code Online (Sandbox Code Playgroud)\n\n什么原因?我认为执行 tcpreplay 就像从服务器发送数据一样。那么服务器 nc 控制台发送数据与客户端 tcpreplay 有什么区别呢?
\n原因很简单;您无法使用重播数据包tcpreplay并期望客户端(或服务器)将数据视为连接的一部分。
这件事情是由很多原因导致的。这里只是三个。
1)当客户端连接到服务器时,它选择一个(实际上是随机的,尽管可能只是递增的)临时端口作为源。重播的数据将包含原始连接的端口,这几乎肯定与客户端现在使用的端口不同。
2) 当建立连接时,客户端和服务器各自为彼此的连接建立一个随机初始序列号。这个数字在新连接中更不可能相同。
3) 当客户端向服务器发送 SYN 时,即使您正在重放数据,服务器也会发回 RST ACK,从而关闭连接(无论重放的数据包如何),因为侦听器不再可用。
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |