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

数据的封装与传递过程

思考:

  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.mfbz.cn/a/156876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组按照传入的字段排序

排序方法 mounted () {const oldArr [{name: a123,code: a,snapshotId: ff8081818bd09640018bd09640860000,showList: null,orderList: null,sortOrder: null,sortNumber: 2,isSelected: false}, {name: 端口流量,code: throughput,snapshotId: 37,showList: null,orderList:…

Linux基础命令(2)

现在class03下面有这些 用ls -R看到test里面也是有东西的&#xff0c;也就是test目录文件非空 那么现在在03下面mkdir建一个空的目录文件tes&#xff0c;刚建好里面还什么都没有放 那么想要删除操作的话——要用什么命令 1.rmdir&#xff1a;用来删除空的目录文件的命令 删除刚…

【嵌入式开发学习】__扒一扒单片机串口IAP原理

一、什么是IAP&#xff1f; IAP 是 In Application Programming 的首字母缩写&#xff0c;IAP是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写&#xff0c;目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 在重新编程过程…

HCIA-综合实验(三)

综合实验&#xff08;三&#xff09; 1 实验拓扑2 IP 规划3 实验需求一、福州思博网络规划如下&#xff1a;二、上海思博网络规划如下&#xff1a;三、福州思博与上海思博网络互联四、网络优化 4 配置思路4.1 福州思博配置在 SW1、SW2、SW3 上配置交换网络SW1、SW2、SW3 运行 S…

Matlab通信仿真系列——变量、矩阵及其运算

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、变量 (1)变量的赋值…

DNS服务器的访问日志

DNS服务器的访问日志的目录位置取决于具体使用的DNS服务器软件和操作系统。一般来说&#xff0c;常见的DNS服务器软件如Bind、PowerDNS、Unbound等会有各自的默认日志目录&#xff0c;例如&#xff1a; Bind&#xff1a;默认存储在/var/log/named/目录下。PowerDNS&#xff1a…

AI创作系统ChatGPT网站源码/支持DALL-E3文生图/支持最新GPT-4-Turbo模型+Prompt应用

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

mysql查询json字符串内容

参考文章&#xff1a;mysql json 基础查询_mysql json查询-CSDN博客 mysql查询json字符串内容 &#xff08;多层数组嵌套&#xff09; select id,nameJSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(config_json), $.baseInfo)), $.template_list[*].sms_content) s…

3.3主存储器与CPU的连接

存储器芯片的输入输出信号 增加主存的存储字长-位扩展 增加主存的存储字数-字扩展 线选法译码片选法n条线->n个选片信号n条线->2的n次方个选片信号电路简单电路复杂地址空间不连续地址空间可连续 主存容量扩展-字位同时扩展 译码器 双端口RAM和多模块存储器 双端口RAM …

3D应用开发引擎HOOPS如何促进AEC数字化架构革新?

随着科技的不断发展&#xff0c;建筑、工程和施工&#xff08;AEC&#xff09;行业正在掀起令人瞩目的数字化转型浪潮。在这一变革的过程中&#xff0c;Tech Soft 3D的HOOPS SDK&#xff08;软件开发工具包&#xff09;正扮演着关键的角色&#xff0c;为构建世界一流的AEC和BIM…

经纬恒润为国产化芯片的AoU功能安全软件赋能

近日&#xff0c;经纬恒润成功为旗芯微FC4150开发出符合功能安全要求的AoU功能安全组件&#xff0c;并适配到门模块配套产品&#xff0c;为国产化芯片完善了符合功能安全的生态链。 AoU&#xff08;Assumption of Use,安全假设&#xff09;需求是芯片厂商在safety manual对最终…

Flutter笔记: 在Flutter应用中使用SQLite数据库

Flutter笔记 在Flutter应用中使用SQLite数据库&#xff08;基于sqflite&#xff09; 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/q…

Ansible密码正确但无法登录目标服务器

问题 通过ansible-playbook批量管理服务器&#xff0c;需要事先编写inventory文件&#xff0c;目标服务器均使用随机密码。在使用ansible-playbook和ansible命令时&#xff0c;均出现其中一台无法登录成功的问题。通过ssh命令&#xff0c;使用inventory中记录得用户名、密码测…

企业电脑监控软件,五款好用的员工电脑监控软件

企业电脑监控软件&#xff0c;五款好用的员工电脑监控软件 企业在日常工作中&#xff0c;为了保护企业信息安全和提高工作效率&#xff0c;通常会使用员工电脑监控软件&#xff0c;可以有效地保护企业的核心信息&#xff0c;避免员工泄露机密信息或者利用企业资源进行非法活动…

智能巡视新飞跃,揭秘巡检无人机的应用与意义

在科技迅猛发展的今天&#xff0c;无人机技术逐渐渗透各行各业&#xff0c;巡检领域尤为引人关注。本文将深入探索巡检无人机的广泛应用与其背后的深远意义。 一、巡检无人机的应用场景 如今巡检无人机已成为各行各业的利器&#xff0c;在电力、交通、环保等领域&#xff0c;…

数据增删改

Insert 添加数据 -- DNL 数据操作语句 -- DML 插入数据 -insert-- 1为 tb_emp 表 username &#xff0c;name gender 字段插入值insert into tb_emp ( username, name, gender,crete_time,update_time) values (weoji,将无极, 1 ,now(),now());-- 2 为 tb_emp 表的 所有字段…

测试Bard和ChatGPT关于法规中劳动时间的规定,发现chatgpt更严谨

Bard是试验品&#xff0c;chatgpt是3.5版的。 首先带着问题&#xff0c;借助网络搜索&#xff0c;从政府官方网站等权威网站进行确认&#xff0c;已知正确答案的情况下&#xff0c;再来印证两个大语言模型的优劣。 想要了解的问题是&#xff0c;在中国&#xff0c;跟法定工作…

麒麟信安助力长沙市就业与社保数据服务中心政务系统向自主创新演进

应用场景 长沙市就业与社保数据服务中心依托长沙市“政务云”的公共基础资源和相应的支撑能力&#xff0c;围绕社保、就业、人事人才、劳动关系等人社全量业务服务&#xff0c;力求建立以“智慧服务、智慧监管、智慧决策”为核心的“智慧人社”综合服务平台&#xff0c;实现人…

leetcode刷题日志-58最后一个单词的长度

给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1&#xff1a; 输入&#xff1a;s “Hello World” 输出&#xff1a;5 解释&a…

uni-app 蓝牙打印, CPCL指令集使用

先上代码: GitHub - byc233518/uniapp-bluetooth-printer-demo: 使用uniApp 连接蓝牙打印机 Demo, CPCL 指令简单实用示例 (内含 芝珂,佳博,精臣 多个厂家指令集使用文档) 文件结构: ├── App.vue ├── CPCL 指令手册.pdf // 指令集参考手册 ├── LICENSE ├── R…
最新文章