数据包的协议
我正在 Windows 7 x86 下用 C 语言编写离线数据包解码程序。
我想知道如何知道数据包协议,无论是 UDP
还是 TCP
?
I'm programming an offline packets decoding program in C under Windows 7 x86.
I wonder how it is possible to know packet protocol, either if it is UDP
or TCP
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过查看IP数据包头可以知道,数据包头中有一个
Protocol
字段,用于根据其值来指示数据包的类型:1
为ICMP6
是 TCP17
是 UDP等等。有关此内容的更多信息,请访问 维基百科
编辑: 这里是 < a href="https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers" rel="noreferrer">该字段的所有可能值的列表。
PS:
我这里假设是IPv4,不知道和IPv6是否一样
You can know by checking the IP packet header, there is a
Protocol
field in the packet header that is used to indicate the type of the packet according to its value :1
is ICMP6
is TCP17
is UDPand so on. More information on this is available on Wikipedia
Edit: Here's the list of all the possible values for that field.
P.S:
I'm assuming IPv4 here, I don't know if things are the same with IPv6
该协议可在 IP 标头中找到。了解更多此处
The protocol is available in the IP header. Read more here