网络协议头分析及抓包三次挥手四次握手

news/2024/12/23 17:00:05/
数据的封装与传递过程

思考:

  1. 应用层调用send后,是如何把数据发送到另一台机器的某个进程的。
  2. 接收的设备收到数据包后,如何处理给应用层?

MTU :

       Maximum Transmit Unit 最大传输单元

       物理接口(数据链路层)提供给上层(网络层(IP层))最大一次传输数据的大小。

       规定了数据链路层所能传送最大数据长度

       以太网为例,缺省MTU=1500字节,这是以太网接口对IP层的约束

       如果IP层<=1500字节需要发送,只需要一个IP包就可以

       如果IP层>1500字节需要发送,需要分片才能发送(分片:帧)

限制数据包大小的协议是什么协议:MTU  MSS

MSS:

       Maximum Segment Size 最大报文长度

       TCP提交给IP层最大分段大小,指TCP报文所允许传送数据部分最大长度。

       不包含TCP头,MSS式TCP来限制应用层最大发送字节数。

       如果MTU=1500,则MSS = 1500-20(IP header)-20(TCP header) =1460字节

       如果应用有2000字节要发,需要2 Segment

       第一个TCP Segment = 1460 第二个TCP Segment = 540

wireshark与包头分析

1. wireshark使用

1. 安装

wireshark的官方下载网站:www.wireshark.org/

	    1. 安装  
          sudo apt-get update
		   sudo apt-get install wireshark
		2. 运行
			sudo wireshark
		3. 过滤
			tcp.port == 8888
		4. 抓的是流经eth0网卡的数据
			服务器端代码运行在ubuntu
			客户端代码运行在windows下		ip.addr == 192.168.1.31注:抓包的过程,就是抓网卡流经的一些数据。启动时不加sudo找不到网卡,没有办法找到内容。
 如何抓包:1.启动wireshark 。//filter-》过滤器
	    2.想抓流经eth0网卡的数据,就点击一下eth0.
		3.想找到我想抓的数据,需要用到filter
    //在这之前,需要将ubuntu的ip修改固定ip和windows在同一网段。
		4.在filter,输入:tcp port==8888,回车查找端口号为8888的流经的数据。
		//通过端口号进行的过滤,也可通过ip(通过Expression按键可以查看过滤方式)

2.  wireshark 抓包

  • 开始抓包

开始界面

  1.  wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
  2. 双击需要的网卡,开始抓包
  • Wireshark 窗口介绍

3. wireshark与对应的OSI七层模型

2. 包头分析

2.1 以太网头

以太网中封装了源mac地址以及目的mac地址,还有ip类型,以太网又称之为mac头

0X0800 只接收发往本机的mac的ip类型的数据帧 

0X0806 只接收发往本机的ARP类型的数据帧

0x8035 只接受发往本机的RARP类型的数据帧

0X0003  接收发往本机的MAC所有类型:ip,arp,rarp数据帧,接收从本机发出去的数据帧,

 混杂模式打开的情况下,会接收到非发往本地的MAC数据帧

2.2 IP头

IP头中需要掌握用于拆包的部分:id flags fregment_offset

两个IP地址:源IP与目的IP地址。

TTL:time to live, 指定数据帧可以最多经过几个路由器。当数据帧被目标方接收后,TTL清除为0.

Linux TTL:64   Winodws:TTL 128

2.3UDP头

2.4 TCP头

Seq:序列号,占4个字节,用于给数据段进行编号的。所有非应答包的数据段,都有seq。

Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。告诉对方下一次从这个seq编号发送数据包。

SYN:握手包,连接的时候产生的包

FIN:挥手包,断开连接产生的包

PSH:数据包,传输数据时候产生的包

ACK:应答包

PSH      Ack = Seq+len;

SYN FIN    Ack = Seq+1;

2.5 三次握手(重点!!!)

三次握手的发起方,肯定是客户端

  1. 第一次握手:客户端发送SYN包(SYN=1, seq=0)给服务器,并进入SYN_SENT状态,等待服务器返回确认包。
  2. 第二次握手:服务器接收到SYN包,确认客户端的SYN,发送ACK包(ACK=1 , ack=1),同时发送一个SYN包(SYN=1, seq=0),并进入SYN_RCVD状态。
  3. 第三次握手:客户端接收到服务器的SYN包,以及ACK包,进入establish状态,同时向服务器发送ACK包(ACK=1, ack=1)。此时三次握手包发送完毕,服务器也进入establish状态
2.6 四次挥手(重点!!!)

四次挥手的发起方可能是服务器,也可能是客户端

  1. 第一次挥手,主动关闭方发送一个FIN包(FIN=1, seq = u)给被动方,进入FIN_WAIT_1状态;
  2. 第二次挥手:被动方接收到FIN包,给主动方发送一个ACK包(ACK=1, ack=u+1);并进入CLOKSE_WAIT状态。主动方接受到ACK包后,进入FIN_WAIT_2状态。如果有数据没有发送完毕,则继续发送,直到发送完毕为止;
  3. 第三次挥手:被动方发送一个FIN包(FIN=1, seq=w),进入LAST_ACK状态.
  4. 第四次挥手:主动关闭方收到FIN包,回复一个ACK包(ACK=1, ack=w+1)。被动关闭方收到主动关闭方的ACK后关闭连接。主动关闭方超时等待一会

http://www.ppmy.cn/news/1230993.html

相关文章

虚拟机配置完NAT模式之后可以和主机ping通但是ping 百度显示:网络不可达

具体linux网络配置看这&#xff1a;http://t.csdnimg.cn/KRami 解决方案如下&#xff1a; 如果这里网关为空&#xff0c;那么和我遇到的问题一样网关没有设置上&#xff0c;在这直接配置网关之后重启即可

什么是持续部署

管理软件开发和部署有 3 种常见的方法&#xff1a;持续集成、持续交付&#xff0c;然后是持续部署。尽管它们经常被混淆&#xff0c;但它们是明显不同的。 正如您将在本文后面看到的&#xff0c;它们相互融合&#xff0c;并补充彼此的风格。但这篇文章并不是关于他们三个。今天…

vue 鼠标移入移出事件执行多次(尤其ie)

mouseover 当一个定点设备&#xff08;通常指鼠标&#xff09;在一个元素本身或者其子元素上移动时&#xff0c;mouseover 事件在该元素上触发。 mouseenter 事件在定点设备&#xff08;通常指鼠标&#xff09;首次移动到元素的激活区域内时&#xff0c;在该元素上触发。 mouse…

如何入驻抖音本地生活服务商,附上便捷流程!

抖音作为一款短视频社交媒体应用&#xff0c;已经成为全球范围内数以亿计的用户的首选。而在普及的同时&#xff0c;短视频领域也在不断拓展自身的业务领域&#xff0c;其中之一就是本地生活服务。继抖音本地生活服务之后支付宝、视频号也相继开展了本地生活服务&#xff0c;用…

[Android] Amazon 的 android 音视频开发文档

https://developer.amazon.com/zh/docs/fire-tv/audio-video-synchronization.html#22-getplaybackheadposition-api-level-3https://developer.amazon.com/zh/docs/fire-tv/audio-video-synchronization.html#22-getplaybackheadposition-api-level-3

探伤仪的曲线

超声波检验DAC曲线、AVG曲线的区别、使用及制作方法 一、 概念 1.1 DAC曲线 DAC距离波幅曲线是描述某一确定反射体回波高度随距离变化的关系曲线。因此&#xff0c;AVG曲线和DAC曲线都有纵波、横波制作的曲线&#xff0c;并不是简单地由纵波、横波来划分何为AVG曲线&#xf…

美容仪器经营小程序商城的作用如何

美容仪器可以包含剃须刀、微针仪、微晶笔等&#xff0c;除了美容美业机构需要外&#xff0c;在家庭中也有不小的需求&#xff0c;对产品经营商家来说除了满足客户线下订购的需求外&#xff0c;还需要线上拓展更广的客群及多场景客户在线消费。 入驻第三方平台是商家们首先考虑…

每天分享五款工具,让大家工作生活更顺心

​ 快乐不是在于拥有什么,而在于我们和别人分享什么。每天分享五款工具&#xff0c;让大家工作办公更顺心就是我最大的快乐。 1.沙盒软件——Sandboxie ​ Sandboxie是一款可以在沙盒中运行程序的软件&#xff0c;它可以保护用户的系统和数据免受恶意软件、病毒和其他威胁的影…