本帖最后由 秋风·飞扬 于 2013-5-20 20:23 编辑
以下为最简单的ripv1协议在正常通信情况下的数据包。简单宣告。192.168.2.0 网络以及192.168.7.0网络。 /*第一段*/ Frame 221: 76 bytes on wire (608 bits), 76 bytes captured (608 bits) 第221帧,线路上传送的为76字节长度,我们捕获76字节。 Arrival Time: May 20, 2013 13:49:42.368826000 中国标准时间 捕获的日期和时间,是中国标准时间。(中国标准时间这几个字在捕获器里显示的是“麻将的4饼”)。 Epoch Time: 1369028982.368826000 seconds 公元时间 Time delta from previous captured frame: 0.343000000 seconds 此包与前面那次捕获的包相隔0.343s Time delta from previous displayed frame: 0.343000000 seconds 此包与前面显示的包相隔时间0.343s Time since reference or first frame: 720.409000000 seconds 此包与第一个包的时间间隔720.4090s(如果是第一个包的话就是0咯,第二个包的话,就和pre captured time相等) (说帧更准确些) Frame Number: 221 不解释了,帧序号,也就是第221帧 Frame Length: 76 bytes (608 bits) 帧长度76字节(608比特长度)76乘8=608,再不懂回小学从念。 Capture Length: 76 bytes (608 bits) 捕获到的帧长度76字节(608比特长度) Frame is marked: False 这帧没有被做标记 Frame is ignored: False 该帧被忽略?:没有 Protocols in frame: chdlc:ip:udp:rip 帧中协议:chdlc:ip:udp:rip Coloring Rule Name: TTL low or unexpected 染色规则 TTL值低的,或者不在预期内的 Coloring Rule String: ( ! ip.dst == 224.0.0.0/4 && ip.ttl < 5 && !pim) || (ip.dst == 224.0.0.0/24 && ip.ttl != 1) 被染色的字符串 满足条件,对方地址不是组播并且ttl值小于5并且没有启用pim 或运算后面的就不多说了 /*第二段*/ Cisco HDLC 思科HDLC封装 Address: Multicast (0x8f) 地址字段:组播(十六进制表示0x8f) Protocol: IP (0x0800) 封装的协议类型:IP (@标志位1)(此标志位不是抓包内容下面用到) Internet Protocol Version 4, Src: 192.168.1.1 (192.168.1.1), Dst: 255.255.255.255 (255.255.255.255) HDLC封装的IPV4协议:源地址192.168.1.1 目的地址:广播 Version: 4 第4版 Header length: 20 bytes IP协议报头所占长度为20字节(到底是哪20个字节,从哪到哪是报头,报头之后是啥) Differentiated Services Field: 0xc0 (DSCP 0x30: Class Selector 6; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) 1100 00.. = Differentiated Services Codepoint: Class Selector 6 (0x30) .... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00) 差分服务字段 Total Length: 72 IP包长度为72字节 Identification: 0x0000 (0) 标识字段(帮助重组切片的) Flags: 0x00 标记字段(在路由传输时,是否允许将此IP包分段) 0... .... = Reserved bit: Not set .0.. .... = Don't fragment: Not set ..0. .... = More fragments: Not set Fragment offset: 0 分段偏移量(将一个IP包分段后传输时,本段的标识) Time to live: 2 TTL值 [Expert Info (Note/Sequence): "Time To Live" only 2] [Message: "Time To Live" only 2] [Severity level: Note] [Group: Sequence] 以上4句,你觉得协议中会出现only 2 带有only的字段? 这是wireshark 自己加上去的。不属于IP头信息。 Protocol: UDP (17) 指明上层协议UDP Header checksum: 0xf63c [correct] 头部报文的校验和,据说跟TTL有关?TTL在每一条改变,那么它就重新校验一次。 [Good: True] [Bad: False] 好吧,上面的估计又是wireshark自己加的。 Source: 192.168.1.1 (192.168.1.1) 这个不解释了。 Destination: 255.255.255.255 (255.255.255.255) 这个也解释过了。 (@标志位2)(笔者自己添加) User Datagram Protocol, Src Port: router (520), Dst Port: router (520) UDP协议,源端口 路由器520 目的端口 路由器520 Source port: router (520) Destination port: router (520) 说过了 Length: 52 这里这个长度,在对比不同端口发出的包的时候是不同的。 这个是UDP从头到数据尾的长度。长度问题之后讨论,继续。 这里你们应该想到,都是宣告信息,为什么长度就不同,为什么? 好往下看。 Checksum: 0xad73 [validation disabled] 呵呵,校验码。很多人都会认为UDP应该没有校验码的,不可靠么,还校验个什么。 其实是存在的,只不过是可选字段,TCP当然是必选的咯。 [Good Checksum: False] [Bad Checksum: False] 好吧,应该还是wireshark的。 Routing Information Protocol 终于到它了,哎。rip Command: Response (2) 命令:是响应类型的 Version: RIPv1 (1) 1版的rip IP Address: 192.168.2.0, Metric: 1 地址类型 192.168.2.0网络的,跳数1(度量值1) Address Family: IP (2) 地址家庭成员或者说地址族?(从路由表中读出) IP Address: 192.168.2.0 (192.168.2.0) 对外宣告地址192.168.2.0 Metric: 1 度量值为1 IP Address: 192.168.7.0, Metric: 2 Address Family: IP (2) IP Address: 192.168.7.0 (192.168.7.0) Metric: 2 同上 注意:第一段为wireshark信息,第二段为HDLC思科封装信息 IP头长@标志位1到@标志位2,那么长,UDP之后就全是UDP了。 0000 8f 00 08 00 45 c0 00 5c 00 00 00 00 02 11 f6 27 HDLC ↑45指向了length(但怎么算出是20字节那么长呢?) 0010 c0 a8 01 02 ff ff ff ff 02 08 02 08 00 34 e9 9f IP UDP ↑length 后面数据长52字节 002002 01 00 00 00 02 00 00 c0 a8 02 00 00 00 00 00 0030 00 00 00 00 00 00 00 01 00 02 00 00 c0 a8 07 00 0040 00 00 00 00 00 00 00 00 00 00 00 02 看清楚了吧,一层一层封装的,先是2层HDLC 再3层IP 再4层UDP。后面没有颜色的是RIP协议。
在rip网络中还抓到cdp以及slarp的包,自己抓抓看。 GNS3模拟器加wireshark。 |