- Packet Tracer 和 Wirshark 抓取数据包
- 1. IP 数据包
- 1.1 IP 协议介绍
- 1.2 IP 数据报文字段
- 1.3 Packet Tracer 抓取IP数据包
- 1.4 wireshark 抓取IP数据包
- 2. ARP协议
- 2.1 ARP协议介绍
- 2.2 ARP数据包字段
- 2.3 Packet Tracer 抓取ARP数据包
- 2.4 wireshark 抓取ARP数据包
- 3. TCP协议
- 3.1 TCP协议介绍
- 3.2 TCP数据包字段
- 3.3 Packet Tracer 抓取TCP数据包
- 3.4 wireshark 抓取TCP数据包
- 4. UDP协议
- 4.1 UDP协议介绍
- 4.2 TCP数据包字段
- 4.3 Packet Tracer 抓取TCP数据包
- 4.4 wireshark 抓取TCP数据包
- 5. DNS协议
- 5.1 UDP协议介绍
- 5.2 TCP数据包字段
- 5.3 Packet Tracer 抓取TCP数据包
- 5.4 wireshark 抓取TCP数据包
IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据
1.2 IP 数据报文字段
ARP协议指的是“地址解析协议”,在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
在任何时候,一台主机有IP数据报文发送给另一台主机,它都要知道接收方的逻辑(IP)地址。但是IP地址必须封装成帧才能通过物理网络,就意味着发送方必须有接收方的物理(MAC)地址,因此需要完成逻辑地址到物理地址的映射。而ARP协议可以接收来自IP协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给数据链路层。
(1) ARP请求
当主机需要找出这个网络中的另一个主机的物理地址时,它就可以发送一个包含发送方的MAC地址和IP地址以及接收方的IP地址ARP的请求报文,由于发送方不知道接收方的物理地址,所以这个查询分组会在网络层中进行广播。
(2) ARP响应
局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,只有验证成功的主机才会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址
ARP报文的总长度为64字节,Wireshark抓到的帧是包含帧头的,即包含以太网v2的帧头,长14 bytes;而ARP数据包的长度固定为28 bytes;
由于普遍的帧总长度 = 帧头 + 网络层包头 + 传输层报文头 + 应用数据,且ARP请求中ARP包已经是最高层,之上没有传输层和应用层,所以总长度为:
帧总长度 = 帧头 + ARP包头 = 14 + 28 = 42bytes
真正发包的时为了保证以太网帧的最小帧长为64 bytes,会在报文里添加一个padding字段,用来填充数据包大小
因为目标主机的MAC地址是未知的,所以使用广播的MAC地址FFFF.FFFF.FFFF,路由器接收到数据包会将数据包转发到局域网内的所有主机。
TCP是 传输层的协议,在IP的数据报服务之上增加了最基本的服务: 复用和分用以及差错检测。TCP 提供全双工地,可靠地传输系统。它能够保证数据被远程主机接收。并且能够为高层协议提供flow-controlled 服务。空间上,TCP需要在端系统中 维护连接状态,需要一定的开销。此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UDP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。
3.2 TCP数据包字段
UDP是传输层的协议,功能即为在IP的数据报服务之上增加了最基本的服务: 复用和分用以及差错检测。UDP提供不可靠服务,相比于TCP而言,它是无连接的,即时间上不存在建立连接需要的时间延迟,但是在空间上会有一定的开销
可以看到,到达服务器的时候,UDP报文和从PC2发出时完全一致,然后从服务器发出返回报文,返回的时候目标端口和源端口调换,并且UDP报文长度从29位变为48位。
返回阶段的报文在此就不展示了,格式和server发出时保持一致
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它和域名和IP地址的关系如下图所示:
DNS服务的工作过程如图:
(1) 在浏览器中输入域名(如www.tongji.edu.cn), *** 作系统会先检查本地hosts文件中是否有该网址的映射关系
a) 如果本地hosts有,则调用这个IP地址映射来完成域名解析
b) 如果本地hosts没有,则查找本地DNS解析器缓存
i. 如果本地DNS缓存器中有,则直接返回,完成域名解析,
ii. 如果本地DNS缓存器中没有,则跳到(2)
(2) 首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性
(3) 如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性
(4) 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS把请求发至根DNS,根DNS服务器收到请求后判断这个域名(.edu.cn)是谁来授权管理,并返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,会联系负责.edu.cn域的这台服务器。这台服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://tongji.edu.cn)给本地DNS服务器,当本地DNS服务器收到这个地址后,就会找http://tongji.edu.cn域服务器,重复上面的动作,进行查询,直至找到域名对应的主机。
(5) 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)