一.数据链路层
1.抓包分析帧
2.
ping子网内的
ping qige.io
ping www.cqjtu.edu.cn
后两个MAC地址为网关的地址,同一子网内MAC地址为目的主机的MAC。
问题1:Wireshark所展示的帧是已经经过校验的,所以不会展示。
问题2:访问同一个子网内的主机可以通过ARP或者查表得到目的MAC如果不在子网内就没办法查询只能交给一定会经过的网关有网关一步一步查询。
3.ARP
因为在家使用的是手机无线网,所以ping手机IP地址是网关回复,回复的是自己的IP地址以及MAC地址如下图
ping qige.io
此时回复者是网关。
问题:发送方式是广播是因为要让所有子网内的主机收到后进行目的主机验证,如果验证通过则回复, ARP请求只能在同一子网内发送广播,所以当目的地址不是同一个子网内的时候此时网关就会回复自己的地址
二.
1.ip包结构
2.
有版本号,头长,总长,标识符,源ip,目的ip头部校验码,protocol,Fragment offset(小分段位于原来的总包的哪个位置) 等。
问题:遇到一个大的数据包,要么就走允许大数据包通过的路径,要是没有的话直接丢弃。
3.TTL
通过不断的增长TTL的长度去试探出路径
问题:一般TTL会设置64或者128,当收到的TTL是50是可以考虑14跳或者78跳
三.
1.tcp和udp
TCP结构如下图所示
其中有源端口、目的端口、序列号、确认号、各种标志位等字段。
UDP如下图所示
其中有源端口、目的端口、长度等字段。
问题:源端口和目的端口用来确定确定设备的访问以及请求情况不同的端口提供不同的服务,比如访问页面则一般为ip地址80端口。
2.三次握手和四次挥手
Step1:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;
Step2:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
Step3:服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
四次挥手
问题1:因为这个连接属于短连接,为了可以实现多个用户访问且频率不高的业务,不让其长期占用。
问题2:服务器向客户端发送确认收到断开申请和申请断开连接合成一次挥手。
四.应用层
1.DNS
先向53端口发送
53端口回应
问题:DNS不止一个的原因可能是DNS解析过程是先从浏览器的DNS缓存中检查是否有这个网址的映射关系,如果有,就返回IP,完成域名解析;如果没有,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就返回IP,完成域名解析;如果还没有,电脑就要向本地DNS服务器发起请求查询域名;本地DNS服务器拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话直接返回;没有的话本地DNS服务器会从配置文件中读取根DNS服务器的地址,然后向其中一台发起请求;直到获得对应的IP为止。
2.HTTP
qige.io使用的是https,使用http过滤无法抓取信息,换一个HTTP抓
200 | OK (成功) | 请求成功.成功的意义根据请求所使用的方法不同而不同.GET: 资源已被提取,并作为响应体传回客户端.HEAD: 实体头已作为响应头传回客户端POST: 经过服务器处理客户端传来的数据,适合的资源作为响应体传回客户端.TRACE: 服务器收到请求消息作为响应体传回客户端.PUT, DELETE, 和 OPTIONS 方法永远不会返回 200 状态码 | HTTP/0.9 可用 |
1开头 基本是消息响应
2开头 基本是成功响应,200——OK
3开头 基本是重定向,即文件换位置了,比如304——Not Modified没有修改,在缓存中有
4开头 基本就是客户端错误了,比如404——Not Found,403——Forbidden
5开头 基本是服务段错误了,比如502——Bad Gateway
问题:304表示浏览器无需变化修改,所以说浏览器所需要的东西以及放入缓存中了可以直接调取使用