这取决于iphdr.saddr
字段。
当它设置为我自己的地址或随机多播地址时,我可以看到服务器回复了 syn/ack 数据包。
如果设置为其他ip,服务器不会回复。
怎么解释呢?
多播地址情况:
13:55:08.242535 IP 240.151.224.61.13579 > localhost.5223: 标志 [S],seq 123456,win 4096,长度 0
E..(g+..@......=....5..g...@....P...$X..
13:55:14.906511 IP 239.151.224.61.13579 > localhost.5223: 标志 [S],seq 123456,win 4096,长度 0
E..(g+..@......=....5..g...@....P...%X..
13:55:14.906549 IP localhost.5223 > 239.151.224.61.13579:标志[S.],seq 3502093187,ack 123457,win 43690,选项[mss 65495],长度0
E..,..@.@.........=.g5........A
...N.......
13:55:15.904599 IP localhost.5223 > 239.151.224.61.13579:标志[S.],seq 3502093187,ack 123457,win 43690,选项[mss 65495],长度0
`
我自己的地址案例:
14:14:22.989225 IPslave1.domain.com.13579 > localhost.5223:标志[S],seq 123456,win 4096,长度0
E..(g+..@......m....5..g...@....P...3...
14:14:22.989236 IP localhost.5223>slave1.domain.com.13579:标志[S.],seq 3228604881,ack 123457,win 43690,选项[mss 65495],长度0
E..,..@.@........................m.g5..p.....A
...A5......
14:14:22.989259 IPslave1.domain.com.13579 > localhost.5223:标志[.],ack 3228604882,win 4096,长度0
E..(..@.@......m....5..g...A.p..P.......
`
无 syn/ack 回复情况:
14:16:18.719629 IP 223.151.224.61.13579 > localhost.5223: 标志 [S],seq 123456,win 4096,长度 0
E..(g+..@......=....5..g...@....P...5X..
14:16:46.511299 IP 240.151.224.61.13579 > localhost.5223: 标志 [S],seq 123456,win 4096,长度 0
E..(g+..@......=....5..g...@....P...$X..
最佳答案
iphdr.saddr
表示IP数据包的源地址。我假设您的 SYN
数据包的接收端将尝试使用 ACK
响应您在 IP 数据包中提供的任何源地址。
关于linux - 当我尝试通过原始套接字连接 TCP 服务器时,为什么它不回复我的 syn 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26646282/