在服务器中
# nc -lp 2424
hi server
hi client
1
2
3在客户端中
➜ ~ nc 139.224.xxx.xx 2424
hi server
hi client
1
2
3然后在客户端
➜ ~ sudo tcpdump -i en0 -nn -s0 -v src port 2424 -c 10 -w 2424.pcap
tcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 262144 bytes
10 packets captured
93 packets received by filter
0 packets dropped by kernel
➜ ~ tcpdump -r 2424.pcap
reading from file 2424.pcap, link-type EN10MB (Ethernet)
16: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
16: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
16: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但是当我重放它时,客户端nc控制台没有任何输出
➜ ~ tcpreplay -ien0 2424.pcap
Warning: May need to run as root to get access to all network interfaces.
Actual: 10 packets (681 bytes) sent in 10.84 seconds
Rated: 62.7 Bps, 0.000 Mbps, 0.92 pps
Statistics for network device: en0
Successful packets: 10
Failed packets: 0
Truncated packets: 0
Retried packets (ENOBUFS): 0
Retried packets (EAGAIN): 0理由是什么呢?我认为执行tcpreplay就像从服务器发送数据一样。那么服务端nc控制台发送数据和客户端tcpreplay发送数据有什么区别呢?
发布于 2018-12-09 05:37:20
原因很简单;您不能使用tcpreplay重放数据包,并期望客户端(或服务器)将数据视为连接的一部分。
这是有很多原因的。这里只有三个。
1)当客户端连接到服务器时,它选择一个(实际上是随机的,但可能只是递增的)临时端口作为源。重放的数据将包含来自原始连接的端口,该端口几乎肯定不会与客户端现在使用的端口相同。
2)当建立连接时,客户端和服务器分别为其到对方的连接建立一个随机初始序列号。这个数字在新连接中甚至更不可能是相同的。
3)当客户端向服务器发送SYN时,即使您正在重放数据,服务器也会发回RST ACK,关闭连接(不管重放的数据包是什么),因为监听器不再可用。
https://stackoverflow.com/questions/53681108
复制相似问题