-2

我编写了一些程序,它假装建立连接,然后发送一个数据包;通过在 linux 中使用 raw-sockets 和 C 语言。

幸运的是,我已经实现了该程序,因为连接已建立。我现在遇到的问题是我不能花这么多时间来猜测必须如何填充 psh-ack(数据包),通过从服务器接收 ACK,并且还可以在 netcat 的输出缓冲区中看到数据...

所以,拜托,任何人都可以帮助格式化数据包吗?我花了很多时间,给你一个完整的流量日志很容易。

提前致谢。希望尽早提出建议... ;)。

PS:如果不清楚,我假装实现我自己的用户空间 tcp 堆栈只是为了加快 tcp 网络的进程,只是为了在非阻塞程序执行中嵌入一个网络进程,以及一个快速的网络进程结果集。

你们中的一些人可能知道,linux 机器会自动向发送了 SYN_ACK 的服务器发送一个应答,但 RST 连接,并且无法通过实现 TCP 堆栈来建立连接。所以,我应该说,我正在使用名为“TCP/UDP 黑洞 DoS 预防”的 grsec 保护,它可以防止 Linux 内核向“不连贯”的网络流量发送不希望的响应。

就这样。

4

1 回答 1

0
ip.len = tcp_data_sz + tcphdr_sz + iphdr_sz

tcp.id = id + 1
tcp.seq = same as ACK of three way handshake
tcp.ack_seq = same as ACK of three way handshake

pseudo_hdr.len = tcp_data_sz + tcphdr_sz

tcp.check = (size: psehdr + tcphdr + tcpdata) (pad with 00's until size % 2 = 0).

这个链接很有用:http ://www.arcesio.net/checksum/checksumTCP.html (西班牙语大部分和英语编辑)。

感谢所有 4 观看。

Linuxios:感谢您的精彩评论,现在我以自己的方式找到了解决方案。(我的方法比普通的 linux 接口快:)。

于 2013-03-26T15:50:32.917 回答