目录
1.PC和PPPOE服务器建立连接的流程以及包含LCP配置选项的PPP帧
0.前言
该篇为网络协议分析的分析题部分,分值一般而言较重,请重点关注!
该篇为网络协议分析的分析题部分,分值一般而言较重,请重点关注!
该篇为网络协议分析的分析题部分,分值一般而言较重,请重点关注!
1.PC
和
PPPOE
服务器建立连接的流程以及包含
LCP
配置选项的
PPP
帧
答:
PPPoE
协议流程
-Discovery阶段
(1
)
PPPoE Client
广播发送一个
PADI
报文,在此报文中包含
PPPoE Client
想要得到的服务类型信息。
(2
)所有的
PPPoE Server
收到
PADI
报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个
PADO
报文。
(3
)根据网络的拓扑结构,
PPPoE Client
可能收到多个
PPPoE Server
发送的
PADO
报文,
PPPoE Client
选择最先收到的
PADO
报文对应的
PPPoE Server
做为自己的
PPPoE Server
,并单播发送一个
PADR
报文。
(4
)
PPPoE Server
产生一个唯一的会话
ID
(
SESSION ID
),标识和
PPPoE Client
的这个会话,通过发送一个
PADS
报文把会话
ID
发送给
PPPoE Client
,如果没有错误,会话建立后便进入
PPPoE Session
阶段。
-Session阶段
可划分为两部分,一是PPP
协商阶段,二是
PPP
报文传输阶段。
PPPoE Session上的
PPP
协商和普通的
PPP
协商方式一致,分为
LCP
、认证、
NCP
三个阶段。
PPPoE Session
的
PPP
协商成功后,其上就可以承载
PPP
数据报文。
-Terminate
阶段
PPP通信双方应该使用PPP协议自身(比如PPP终结报文)来结束PPPoE会话,但在无法使用PPP协议结束会话时可以使用PADT报文。
包含
LCP
配置选项的
PPP
帧如下:
自己去看下各个参数的值怎么对应
2.ARP
的步骤以及过程中的具体
ARP
报文
当主机A要与主机B通信时,地址解析协议ARP可以将主机C的IP地址(192.168.1.3)解析成主机C的MAC地址,以下为工作流程:
Step1
:查看路由表项以及本地的
ARP
缓存表
根据主机A的路由表表项,确认其访问主机C的IP地址为192.168.1.3,然后在主机A本地的ARP缓存表检查是否存在主机C对应的MAC地址,如果存在,则直接根据该地址封装报文并转发;如果不存在,则进行下一步;
Step2
:发送
ARP
请求广播
由于主机A的ARP表中不存在主机C对应的MAC地址,则缓存该数据报文,并以广播方式发送ARP报文。
报文内容如下:
OP字段为1表示该报文为ARP请求报文,ARP请求报文中的源MAC地址以及源IP地址为主机A的MAC和IP地址,目的地址的MAC为全0,目的IP为主机C的IP;
Step3
:同一广播域内主机对
ARP
请求报文进行处理
同一广播域下的主机B、C、D都能够收到该请求报文,但只有主机C会对该ARP报文进行处理,主机C比较自己的IP地址和ARP请求报文中的目的IP地址,发现两者一致,进行如下处理:将ARP请求报文中的源IP地址和源MAC地址(即主机A的IP地址和MAC地址)存入自己的ARP表中。之后以单播方式发送ARP应答报文给主机A;
报文内容如下:
OP字段为2表示该报文为ARP应答报文,源MAC地址和源IP地址为主机C的MAC地址和IP地址,目的MAC地址和目的IP地址为主机A的MAC地址和IP地址;
Step4
:主机
A
对
ARP
应答报文进行处理
主机A收到ARP应答报文后,将主机C的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将数据报文进行帧封装,并将数据报文发送给主机C。
附:
ARP
报文格式
3.
已知
IP
包内
容,分析报文内容及作用
47 00 00 44 11 e6 00 00 40 01 62 3c ac 1e 80 3a 3c d2 0e 11 83 07 04 1b c8 38 3e 00 08 00 4d 2a 00 01 00 31
需要了解IP协议的报文结构(P46 4-2图),给的报文信息是十六进制的,在写的时候要写成十进制的,(一个16进制数字是4位),去看下十六进制和十进制的转换,计算完成后根据其协议字段,分析出其数据内容。
例:在该题中,
这是一条IPv4数据报文,包含以下字段:
– 版本号:
4(占4位,即第一个字节的前4个二进制位)。这表示使用的是IPv4协议。
– 首部长度:
5(占4位,即第一个字节的后4个二进制位)。由于首部长度以4字节为单位,这里的值5表示首部长度为20字节。
– 区分服务:
00(占8位,即第二个字节)。这里的值为0,表示未使用区分服务字段。
– 总长度:
0044(占16位,即第三和第四个字节)。这里的值为68字节。
– 标识:
11e6(占16位,即第五和第六个字节)。这是一个标识符,用于区分不同的数据报文。
– 标志:
010(占3位,即第七个字节的前3个二进制位)。第一个比特位为0,标志该数据报文没有被分片;第二个比特位为1,表示还有更多的数据报文;第三个比特位为0,表示该段数据包禁止进行片段重组。
– 片偏移:
0000000000000(占13位,即第七个字节的后5位和第八个字节全部,共13个二进制位)。由于标志位表明该数据报文没有分片,这里的值为0。
– 生存时间:
40(占8位,即第九个字节)。这个值(64)指示该数据报文可以通过多少个路由器,因为,该值由发送端设置并随着每个路由器通过该报文而递减1。
– 协议:
01(占8位,即第十个字节)。这个值(1)指示该数据报文中承载的上层协议是ICMP。
– 校验和:
623c(占16位,即第十一个和第十二个字节)。这是校验和,用于检查数据包的完整性。
– 源IP地址:
172.30.128.58(占32位,即第十三到第十六个字节)。这是源计算机的IP地址。
– 目标IP地址:
60.210.14.17(占32位,即第十七到第二十个字节)。这是目标计算机的IP地址。
– 数据:
8307041bc8383e0008004d2a00010031。这部分数据承载了上层协议ICMP的报文内容,具体内容需要进一步解析。
整体来看,这些数据构成了一条IPv4数据报文,用于在不同的计算机之间传输数据。通过分析数据报文中的各个字段,可以了解该数据报文的源计算机、目标计算机、上层协议和数据报文的完整性等信息。其中,源IP地址为172.30.128.58,目标IP地址为60.210.14.17。
自己算下,然后去查IP数据报中协议字段数字,对应起来就行,协议字段含义在压缩包的另一个文件有。
4.
一个节点收到两个
IP
包的首部如下
(1)45 00 05 dc 18 56 20 00 40 01 bb 12 c0 a8 00 01 c0 a8 00 67
(2)45 00 00 15 18 56 00 b9 49 01 e0 20 c0 a8 00 01 c0 a8 00 67
分析并判断这两个IP包是不是同一个数据报的分片?如果是那将二者排序,并判断是否能重组完成。
看标识位,一致则在同一分片,最低位代表MF
为
1
时表示后面还有分片,为
0
时代表是若干数据包片的最后一个包。中间位是
DF
标志位,代表不允许分片,
DF
为
0
时允许分片,自己算自己算。
该题解答如下:
我们可以看到两个数据报片段的首字节都是0x45,这表明它们都是IPv4数据报文。数据报文中有一个标识符字段,可以用于标识同一个数据报文的不同片段。分析数据包可以知道,这两个数据报片段的标识符都是一样的,都是0x1856。此外,片偏移(占13位,即第七个字节的后5位和第八个字节全部,共13个二进制位)也不相同。第一个数据报片段的片偏移为0,而第二个数据报片段的片偏移为0xb9(占16位)。这表明它们确实是同一个数据报文的不同片段。