Groups
Groups
Sign in
Groups
Groups
姚博士的论坛-教学
Conversations
About
Send feedback
Help
协议分析
6 views
Skip to first unread message
paska
unread,
Mar 15, 2008, 12:48:39 PM
3/15/08
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to 姚博士的论坛-教学
如何识别捕获的网络数据包是属于哪个协议的呢?这需要了解数据包的封包格式,数据包头部各字段的含义以及各种协议的特点。以以太网中传输的数据包为例,
数据包头是一个以太网头,以太网头部格式是
目的MAC地址(6字节)+源MAC地址(6字节)+类型(2字节)
类型说明了封装的协议类型,比如0800表示封装了TCP/IP包,0806表示封装了ARP包,0835封装了RARP包。
如果类型值是0800,那么以太网头部后面就是IP头部,了解IP头部格式的人都知道IP头部有一个协议字段,它表明了IP层封装的高层协议类型,比如
1代表ICMP协议,2代表IGMP协议,3代表GGP协议,6代表TCP协议,17代表UDP协议等。
TCP、UDP等又服务于了应用层协议,这些协议一般是根据端口号来识别的,比如TCP头部端口字段的值为21时表示FTP协议,80表示HTTP协
议,UDP头部端口字段值为53时表示DNS协议,等等。但是一些应用层协议不使用固定的端口号,我们需要采用其它的方法。比如BT协议,BT数据包是
封装在TCP中传输的,它采用的端口号是随机的,通过学习BT协议文档可以知道,BT的peers在建立连接时的握手阶段,会发送一个包含特征
串“BitTorrent Protocol”的请求连接数据包,建立连接之后,peers之间的数据传输则采用固定的端口号,因此,如果捕获
到“BitTorrent Protocol”这个特征串之后记录下此时的端口号,以后通过这个端口的数据都可以判定为BT数据。
所以,如果想要识别某种协议的数据包,多去看看这些协议的RFC文档吧。
Ethereal对一个非常好的协议分析软件,它是基于Winpcap开发出来的。Ethereal界面包括三部分:第一部分为捕获到的所有数据包的简
单说明;第二部分是对选中的某个数据包的详细说明,它标出了数据包的格式以及每个字段的含义;第三部分是原始数据包的十六进制表示。如果对数据包的格式
不是很了解的话,可以借助这个软件来分析一下。
Reply all
Reply to author
Forward
0 new messages