计算机网络抓包实战

打印 上一主题 下一主题

主题 869|帖子 869|积分 2607

介绍

计算机网络作为一门计算机专业课,平时都是各种抽象的协议和各种发送接收,很难具体的去感受其含义,因此也是借助wireshark对发送的包进行一个分析。
抓包分析


三次握手验证

在第一次访问到182.254.242.96这个ip时,首先是建立了TCP的三次握手。与书上写的一样:

  • 客户端发起握手请求,初始化一个SYN报文,将seq初始化一个值然后发送包给服务端。
  • 服务端收到SYN报文后,也会建立一个SYN-ACK报文,同时初始化一个seq,并将ack置为发送来的SYN报文的seq+1。
  • 客户端收到服务端发送的报文,会回一个ACK报文,其中ack为SYN-ACK报文的seq+1。
注意:在抓包软件中,初始的seq显示为0,但书上说是随机初始化的一个值。后来经过查询资料,原来是抓包软件做了优化,显示的是相对的seq,而不是实际的。
HTTP请求交互


四次挥手



  • 首先客户端发起关闭请求,发送一个FIN报文给服务端,请求断开TCP连接。然后客户端进入FIN_WAIT_1状态
  • 服务端收到FIN报文后,先回一个ACK报文,然后进入CLOSE_WAIT状态,准备将没有发送的数据最后进行发送,发送完毕后会回一个FIN报文,然后进入LAST_ACK状态。
  • 客户端收到ACK报文后进入FIN_WAIT_2状态,等待FIN报文的到来。收到后会回复一个ACK,然后进入TIME_WAIT状态,等待2MSL时间后完全关闭连接。
  • 服务端收到ACK后就直接进入CLOSE状态,关闭了连接。
在抓包这里可以看到,第二和第三次握手是连着的,也就是说四次挥手一下成了三次挥手。这里其实是因为一个TCP的延迟等待机制,因为单个ACK如果不带其他数据进行发送,那么它将会造成一个浪费,比较TCP固定20字节的头部开销还是比较大,因此会希望尽量能带着数据一起发送,避免一个资源浪费。TCP的延迟等待机制就是为此而设计。在第二次挥手发送ACK时,如果有数据它会直接就发送走ACK,如果没有数据要发送,它会等一下,然后和FIN报文一起发送,降低了这样一个发送开销。但前提是开启了该机制。
PING命令抓包

ping命令底层实际是用的ICMP协议,在IP层。

ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议
网络包在复杂的网络传输环境里,常常会遇到各种问题。
当遇到问题的时候,不能死个不明不白,没头没脑的作风不是计算机网络的风格。所以需要传出消息,报告遇到了什么问题,这样才可以调整传输策略,以此来控制整个局面。
ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。
在 IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表