TCP穿透NAT之如何获取connect函数发出的SYN包的序列号
程序调用connect函数向对方发起一个连接请求时,会向对方发送一个SYN包请求第一步握手。但此时程序本身如何利用原始套接字捕获这个SYN包从而知道这个SYN包的初始序列号呢?因为随后的TCP穿透中需要使用一个原始套接字来模拟这个SYN包实现三次握手建立连接,既然是模拟,就需要知道这个SYN包的序列号。故求大侠们帮忙。
貌似是使用原始套接字设置SIO_RCVALL选项以接收所有的包,但SYN包的结构如何定义?使用IP头?
如何用原始套接字模拟一个SYN包和一个ACK包发送给对方?这些是TCP穿透NAT建立点对点的关键,希望懂的朋友尽力帮忙,到时候做出来了开源之。