数据包分析面试题带答案

自己在学习Wireshark数据包分析实战过程中整理的问题。
1.请简单说明下数据包嗅探原理:
2.请写出几个常见的协议:
3.协议通常是用来解决什么问题的:
4.请写出七层OSI参考模型:
5.请简单写出七层OSI模型的功能:
6.半双工模式和全双工模式的区别是什么:
7.什么是广播流量、组播流量、单播流量:
8.什么是子网掩码:
9.请简单写出ARP协议的作用:
10.IPv4网络地址和主机地址如何区分他们的作用是什么:
11.请简单说明下IPv4的头部信息与功能:
12.IPv4中存活时间TTL的作用是什么:
13.一个正常的数据包中是否包含互联网协议,互联网协议是什么:
14.什么是IP分片他的作用是什么:
15.请写出IP分片的步骤:
16.ICMP协议的主要作用是什么:
17.请写出路由跟踪原理:
18.传输控制协议是指:
19.请简单写出传输控制协议报头:
20.请写出传输控制协议可用端口数量以及标准端口组和临时端口组分别代表的范围:
21.请写出传输控制协议的三次握手过程:
22.请写出传输控制协议断开连接的过程:
23.传输控制协议重置会改变的标志位是什么:
24.请简单写出用户数据报协议报文结构:
25.一个源地址为0.0.0.0目的地址为255.255.255.255,arp目标地址为FF:FF:FF:FF:FF,这是一个什么数据包
26.请简单写出动态主机配置协议报文结构:
27.动态主机配置协议默认开放的端口是:
28.动态主机配置协议对应的RFC为:
29.请简单写出动态主机配置协议续租过程:
30.什么是域名系统他的作用是什么:
31.请简单写出域名系统报文结构:
32.简单写出一次完整的DNS查询过程:
33.请写出DNS问题类型:
34.什么是DNS递归:
35.什么是超文本传输协议:
36.超文本传输协议如何进行浏览和传输数据:
答案在下面
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
1.数据包嗅探原理:
(1)通过网络线缆收集原始二进制数据,设网卡为混杂模式。
(2)将捕获的二进制数据转换为可读形式。
(3)对转换的数据包进行分析,识别他们的协议分析每个协议的属性。
2.不同的平台为了相互通信,使用了同一套语言成为协议
常见的协议分为
(1)TCP传输控制协议
(2)UDP用户数据报协议
(3)IP互联网协议
(4)DNS域名解析协议
(5)ARP地址解析协议
(6)DHCP动态主机协议
(7)HTTP超文本传输协议
(8)FTP文件传输协议
3.协议通常是解决什么问题的:
(1)发起连接:是客户端还是服务端的发起,在真正的通信之前双方要交换什么信息。
(2)协商参数:通信需要进行协议加密吗?加密的密钥如何在通信双方进行传输。
(3)数据格式:通信数据在数据包中如何排列,数据在接受设备时以什么方式处理(顺序来处理)
(4)错误检查与矫正:当数据包花费过长的时候才到达目标时该如何处理,当客户端与服务器无法与服务器通信建立时,该如何恢复连接。
(5)连接终止:一台主机告知另一台主机通信已经结束,应该发送什么终止信息。
4.七层OSI参考模型:
(1)应用层:数据
(2)表示层:数据
(3)会话层:数据
(4)传输层:数据段
(5)网络层:数据段
(6)数据链路层:帧
(7)物理层:比特
5.
(1)应用层:为用户访问网络资源提供的一种手段,这通常是唯一一层能够由最终用户看到的协议,因为他提供接口,是最终用户所有网络活动的基础。
(2)表示层:这一层将收到的数据转换成应用程序可以读取的格式,在表示层完成的数据编码与解码取决于发送与接收数据的应用层协议,表示层同时进行用来保护数据的加密与解密操作等。
(3)会话层:这一层管理两台计算机之间的对话(会话),负责在所有通信设备之间建立、管理、和终止会话链接。
(4)传输层:为底层提供可靠的数据传输服务,通过流量控制、分段/重组、差错控制等机制、传输层确保网络数据端到端的无差错传输
(5)网络层:这一层负责数据在物理层中的路由转发、主要负责网络主机的逻辑寻址(IP)
还会处理数据包分片和一些情况下的数据检测。
(6)数据链路层:这一层提供了通过物理网络传输数据的方法,其主要目的是提供一个寻址方案,用于确定物理设备(MAC地址),网桥和交换机是工作在数据链路层的物理设备。
(7)物理层:定义了所有网络硬件设备的物理和电气特性,包括电压、集线器、网络适配器、中继器、线缆等
6.半双工模式是不能同时进行上传和下传的,全双工模式可以同时进行上传和下传
7.广播流量:
广播流量将数据包发送到网段上的所有端口,直到延伸到路由器每个交换机或集线器组成的网络是广播流量的最大范围,不可通过路由器广播到其他位置,广播形式有两种一种是工作在数据链路层MAC地址为FF:FF:FF:FF:FF:FF是保留的广播地址,任何发送到这地址的流量都会被广播到整个网段,另一种是工作在网络层在一个IP网络范围中最大的IP地址被保留作为广播地址使用的,例如:192.168.X.X其中192是广播地址
组播流量:
组播流量:是将单一来源的数据包同时传输给多个目标的通信方式,组播的目的是尽可能少的使用网络资源在IP协议中224.0.0.0~239.255.255.255的地址很有可能是组播地址
单播流量:单播数据包会从一台计算机直接传输到另一台计算机,单播机制的具体实现要看具体协议。
8.子网掩码主要目的是划分子网,比如一个路由器的ip为192.168.66.10那么这个路由下面可能会存在多个网段,这些网段由交换机或者集线器管理被称为子网,通过子网掩码可以判断通信的目标是否在同一网段内即是否在同一个交换机或集线器内,如果在同一个网段即ip与子网掩码按位于相等则说明在同一网段可以直接通信,如果子网掩码不匹配说明该网络存在于其他子网段内即其他的集线器或交换机,那么就需要向他们网关发送数据包,通过网关即集线器或交换机来转发通信,他们ip都为192.168.66.10,子网掩码就是区分在路由下面的集线器或交换机之间的通信主要是用于局域网通信。
9.ARP是地址解析协议,用于获取对应ip的MAC地址,他工作在数据链路层上,ARP协议有ARP请求和ARP响应,ARP请求向目标IP地址发送ARP请求,交换机如果知道该IP对应的MAC地址则直接通过端口转发,如果不知道对应的MAC地址则会广播给所有主机询问该ip是谁,ARP响应就是对应ip主机响应给交换机并且告诉直接的MAC地址,不是对应ip的主机则会直接丢弃数据包。
10.网络地址是用来标识设备锁连接到的局域网,而主机地址则标识这个网络中的设备本身,用于决定IP地址的那部分属于网络地址那部分属于主机地址的划分并不唯一,实际上是由另一组名为网络掩码的地址信息决定的,有时候被称为子网掩码。
例子:ip是10.10.1.22子网掩码为255.255.0.0
那么网络地址就是10.10主机地址就是1.22,是和255对应的于此对应的完成表示地址是
10.10.1.22/16,这里的16是代表主机地址的内存位数1个255大小是1字节,1字节等于8bit两个255就是16bit因此是10.10.1.22/16
11.
标识符(Identification)
一个唯一的标识数字,用来识别一个数据包或者被分片数据包的次序
标识(Flags)
用来标识一个数据包是否是一组分片数据包的一部分。
分片偏移(FraGment Offset)
一个数据包是一个分片,这个域中的值就会被用来将数据包以正确的顺序重新组装
存活时间(Time to Live)
用来定义数据包的生存周期,以经过路由器的跳数/秒数进行描述
协议(Protocol)
用来识别在数据包序列中上层协议的数据包类型
首部校验和(Header Checksum)
一个错误检查机制,用来确认IP头的内容有没有被损坏或者篡改。
源IP地址(Source IP Address)
发出数据包的主机的IP地址。
目标IP地址(Destination IP Address)
数据包目的地的IP地址
选项(Options)
保留作为额外的IP选项,它包含着源站选路和时间戳的一些选项
数据(Data)
使用IP传递的实际数据
12.TTL是最大路有数,正常情况下每经过一个路由TTL数就减去1直到减少为0就丢弃数据包,TTL的主要作用是防止网络死循环数据包的出现,因为有些路由可能会出现配置错误导致数据包没有发送到正确的地址,一直存在网络中导致占用网络资源出现死循环数据,TTL就是为了防止死循环数据包的出现。
13.互联网协议是IP协议,在需要使用到IP的数据包中必须存在互联网协议常见的HTTP,FTP等等都需要互联网IP协议的支持。
14.数据包分片将一个数据流分为更小的片段,他是IP用于解决跨域不同类型网络时可靠传输的一个特性,数据包分片主要基于数据链路层所使用的最大单元的大小(MTU),默认以太网传输的最大报文是1500字节,当一个设备准备传输一个IP数据包时,它将会比较这个数据包的大小,以及将要把这个数据包传送出去的网络接口MTU,用以决定是否需要将这个数据包分片,如果大于MTU则分片。
15.IP分片步骤
(1)设备将数据分为若干个将要接下来进行传输的数据包。
(2)每个IP头的总长度字段会被设置为每个分片的片段长度。
(3)除了最后一个分片数据包外,之前所有分片数据包的标志位都被标识为1
(4)IP头中分片部分的分片偏移将被会被设置
(5)数据包被发送出去
16.
ICMP是互联网控制协议,是TCP/IP协议族中一个功能协议,负责提供TCP/IP网络上的设备、服务以及路由器的可用性信息,大多数网络检修技和工具都是基于常用的ICMP协议,消息类型在RFC792中定义
类型(type)ICMP消息基于RFC规范的类型或分类
代码(code)ICMP消息基于RFC规范的子类型
校验和(Checksum)用来保证ICMP头和数据在抵达目的地时的完整性
可变域(Variable)依赖于类型和代码域的部分
17.路由跟踪原理其实就是利用ICMP和IP协议完成的,首先设置TTL大小为1则他会经过第一个路由被丢弃,数据包虽然被丢弃了但是路由器会发送一个ICMP协议type为11,code为0,意思为传送超时,通过这种将TTL自增1的方式来计算途中的路由个数和路由IP直到,到达目标ip。
18.传输控制协议是TCP协议
19.TCP协议报文结构:
源端口(Source Port)用来传输数据包的端口
目的端口(Destination Port)数据包将要被发送到的端口
序号(Sequence Number)这个数字用来表示一个TCP片段,这个域用来保证数据流中的部分没有丢失
确认号(Acknowledgment Number)这个数字是在通信中希望从另一个设备中得到的下一个数据包的序号
标志(Flags):URG/ACK/PSH/RST/SYN/FIN标志表示锁传输的TCP数据包类型
窗口大小(Window Size)TCP接受者缓冲的字节大小
校验和(Checksum)用来保证TCP头和数据的内容在抵达目的地时的完整性
紧急指针(Urgent Pointer)如果设置了URG位,则这个域将被检查作为额外的指令,告诉CPU数据包的哪里开始读取数据
选项(Options)各种可选项,可以在TCP数据包中进行指定
20.
TCP协议最大端口号为65535即word大小
标准端口组1~1023
临时端口组1024~65535
源端口为系统随机端口
目的端口为对方监听的端口
21.
TCP三次握手的目的是,保证传输主机可以确定目的主机在线并且可进行通讯
过程:
客户端A向服务端B发送TCP SYN数据包含服务端B监听端口,初始的序号等
服务端B接收后发送给客户端A其中Flags标志中的SYN和ACK被置位,响应目标指定端口并回复初始化的序号(确认号)且附带新的序号
客户端A接受到服务端B的TCP SYN/ACK包之后响应TCP ACK包且包含确认号、序号、端口等信息。
22.
类似于TCP三次握手
1.主机A发送TCP ACK/FIN包
2.主机B接受到主机A的ACK/FIN包后发送ACK包
3.主机B继续发送一个ACK/FIN包
4.主机A接收到主机B的ACK/FIN包发送ACK包给他结束TCP链接。
23.
TCP重置会置位Flags中的RST位
RST位被置位代表连接异常中止,或拒绝连接请求
例子:
主机A发送主机B TCP SYN包
主机B回应主机A TCP ACK/RST包
连接终止
说明主机B拒绝连接或者异常中止,比如端口错误等
24.
UDP(用户数据报协议)报文结构
用户数据报协议,相较于TCP他是一种高速的传输模式,采用了无连接协议他不会像TCP协议那样存在握手和终止过程。
源端口:用来传输数据包的端口
目标端口:数据包将要被传输到的端口
数据包长度:数据包的字节长度
校验和:用来确保UDP头和数据到达时的完整性
25.这是一个广播数据包,广播流量是一个IP网络范围中最大的IP地址是被保留作为广播地址使用的,例如一个配置了192.168.0.2/8 子网掩码为255.255.255.0,该网络中的广播地址IP为192.168.0.255。
26.动态主机配置协议DHCP,主要作用是给连接到网络的设备自动分配地址,最早是由BOOTP协议发展来的,DHCP是应用层协议,负责让设备能够自动获取IP地址(以及重要的网络资源,比如服务器和路由网关的地址)。
结构:
操作码(OpCode)用来指出这个数据包是DHCP请求还是DHCP回复。
硬件类型(Hardware Type)硬件地址类型(10MB,以太网,IEEE802,ATM,以及其他)。
硬件地址长度(Hardware Length)硬件地址的长度
跳数(Hops)中继代理用以帮助寻找DHCP服务器
事物ID(Transaction ID)用来匹配请求和响应的的以随机数
消耗时间(Seconds Elapsed)从客服端第一次向DHCP服务器发出地址请求获得响应所需要的时间。
标志(Flags)DHCP客户端能够接受的流量类型(单播,广播,以及其他)
客户端IP地址(Client IP Address)客户端IP地址(由你的IP地址域派生)
你的IP地址(Your IP Address)DHCP服务器提供的IP地址(最终成为客户端IP的地址域的值)
服务器IP地址(Server IP Address)DHCP服务器的IP地址
网关IP地址(Gateway IP Address)网络默认网关的IP地址
客服端硬件地址(Client Hardware Address)客户端的MAC地址
服务器主机名(Server Host Name)服务器的主机名(可选)
启动文件(Boot File)DHCP所使用的启动文件(可选)
选项(Options)用来对DHCP数据包进行扩展,以提供更多功能
27.DHCP默认开放端口为67
28.RFC951
29.DHCP续租过程
(1)DHCP客户端----->(发现)DHCP服务器
互联网协议源0.0.0.0目标255.255.255.255寻找DHCP服务器
(2)DHCP客户端<-----(提供)DHCP服务器
响应客户端,引导协议操作码2类型解析0x2
(3)DHCP客户端----->(请求)DHCP服务器
客户端ACK,DHCP服务器互联网协议0.0.0.0目标255.255.255.255,option选项附带服务器IP(以广播的形式回应DHCP服务器接收到了)
(4)DHCP客户端<-----(确认)DHCP服务器
DHCP服务器发送确认数据包给客服端,Cilent IP Address,Server IP Address等信息被设置,option类型为0x5确认响应码为0x2
30.域名系统(DNS)
域名系统是最重要的互联网协议之一,DNS将例如Google的域名和74.125.159.99的IP地址捆绑起来,当我们想要和一台网络设备通信却不知道他的IP地址时,就可以使用它的DNS名称来进行访问,DNS服务器存储一个有着IP地址和DNS名字映射资源记录的数据库,并将其和客户端以及其他DNS服务器共享。
31.DNS域名解析协议报文结构:
DNS ID(DNS ID Nubmer)用来对应DNS查询和DNS响应
查询/响应(Query/Response OR)用来指明这个数据包是DNS查询还是响应
操作码(OpCode)用来定义消息中请求的类型
权威应答(Authoritative Answer,A A)如果响应数据包中设定这个值,则说明这个响应是由域内权威域名服务器发出的。
截断(Truncation,TC)用来指明这个响应由于太长,无法装入数据包而被截断
期望递归(Recursion Desired,RD)如果在请求中设定了这个值,则说明DNS客户端在目标域名服务器不含有所请求信息的情况下,要进行递归查询(即查询其他DNS服务器)
可用递归(Recursion Avaiable,RA)如果响应中设定了这个值,则说明域名服务器支持递归查询
保留(Z)在RFC1035的规定中被设置全0,但有时会被用来作为RCode域的拓展。
响应码(Response Code)在DNS响应中用来指明错误。
问题计数(Question Count)在问题区段中的条目数
域名服务器计数(Name Server Count)在权威区段的域名资源的记录数
额外记录计数(Addlitional Records Count)额外信息区段中其他资源记录数
问题区段(Question Section)大小可变,包含要被发送到DNS服务器的一条或多条的信息查询部分。
回答区段(Answer Section)大小可变,包含用来回答查询的一条或多条源记录,用以继续解析的过程。
额外信息区段(Additional Infomation Section)大小可变,包含于查询有关的额外信息,但对于回答查询并不是绝对必要的资源记录。
32.
DNS是基于UDP的一种协议,DNS已查询/响应的模式工作,当一个客户端将一个DNS名字解析成IP地址时,他会向DNS服务器发送一个查询,查询/响应为0x0,生成一个唯一的标识,然后服务器在响应中提供所请求的信息,查询/响应为0x1,回复对应的标识号,匹配上对应的问题计数和回答计数。
33.DNS问题类型
值 类型 描述
1 A IPV4主机地址
2 NS 权威域名服务器
5 CNAME 规范别名
15 MX 邮件交换
16 TXT 文本字符串
28 AAAA IPv6主机地址
251 IXFR 增量区域传送
252 AXFR 完整区域传送
34.DNS递归
由于互联网的DNS结构是层级式的,因此为了能够回答客户端提交的查询,DNS服务器必须能够彼此通信,我们的内部DNS服务器知道本地局域网服务器的名字和IP地址的映射,但不太可能知道Googls或者Dll的IP地址,当DNS服务器需要查找一个IP地址时,它会代表发出请求的客户端向另一个DNS服务器进行查询,实际上这个DNS服务器与客户端的行为相同,这个过程叫做递归查询。
35.
超文本传输协议(HTTP)是万维网的传输机制,允许浏览器通过连接web服务器浏览网页。
HTTP默认端口是80端口,在TCP三次握手建立连接后会客户端会发送给服务端一个HTTP请求该请求可能是POST或者Get请求,HTTP有8中不同请求方法每种方法对应了接受者采取的行动,比如GET方法就是请求/作为通用资源标识符,下载web服务器内容。
当服务器接收了数据包中的HTTP请求后,他会响应一个TCP ACK用以确认接收,HTTP只是被用来解决客户端和服务器端应用层的命令,当进行数据传输时,除了数据流的开始和结束就看不到应用层的控制信息了,大多数时候浏览包列表时,是无法直接看到可读的HTML数据,因为这些数据被gzip压缩以提高宽带利润率,这是由Web服务器的HTTP响应中内容偏码解决的,在查看完整的流时,数据才能被解码并易于读取。
HTTP使用了一些预定的响应码,来表示请求方法的结果。
HTTP传输数据,在完成初始的三次握手后,客户端发送了一个HTTP数据包,该数据包采用POST提交指明了是URI/wp-comments-post.php,以及HTTP1.1版本,如果想要查看上传数据的部分,可以展开数据包的Line-based Text Data部分,在POST数据包传输完成之后,服务器会发送一个ACK数据包。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚构之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值