为什么使用PCap.NET发送的数据包没有填写TCP选项?

问题描述 投票:0回答:1

我正在尝试使用PCap.NET将SYN数据包发送到目标。使用WinSock API时,我可以在Wireshark中看到TCP选项....但是当我使用PCap.NET构建和发送数据包时,不包括选项。这是我用来构建数据包的TCP层:

 TcpLayer tcpLayer = new TcpLayer
                {
                    SourcePort = _sourcePort,
                    DestinationPort = _destinationPort,
                    SequenceNumber = _seqNumber,
                    ControlBits = TcpControlBits.Synchronize,
                    Window = _windowSize,
                };

这是一个WireShark ScreenGrab,用于使用WinSock发送SYN,其中TCP选项可见。

enter image description here

这是Wireshark ScreenGrab使用PCap.NET发送SYN,其中TCP选项不可见。

enter image description here

我知道在构建Pcap TCP层时你可以将options属性设置为None ....我没有这样做,认为将它保留为默认选项将以与WinSock相同的方式发送。任何人都可以为此问题提供任何解释或建议。在此先感谢您的帮助!

c# network-programming tcpclient winsock pcap.net
1个回答
1
投票

如果创建新的TcpLayer,则需要设置Options属性以便在TCP层中具有选项。如果未设置Options属性,则默认情况下将设置为None

© www.soinside.com 2019 - 2024. All rights reserved.