当前位置: 首页 > news >正文

学习嵌入式的第三十三天——网络编程

数据的封包与拆包

MTU 最大传输大小:1500字节

拆包时每一层都会进行校验

以太V2的MAC帧格式

MAC为网卡地址,全球唯一

IP头

重点内容:

默认20个字节,可以增加

IP标志(flag):MF:MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个 

                           DF:标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。 

TTL(生命周期):国内常用初值为64,每请求一个节点寻找,TTL-1,当TTL=0时,不再寻找

TCP头

重点内容:

默认20个字节,可以增加

TCP标志(flag):

U(紧急数据):表示数据包中包含 “紧急数据”,此时 “紧急指针” 字段有效,接收方应优先处理紧急数据(绕过缓冲区直接提交给应用层)。常见于中断指令(如 Ctrl+C 终止远程进程)。

S(SYN)  :用于建立 TCP 连接,在 “三次握手” 中发起或响应连接请求,同时携带初始序列号(ISN)。

F(FIN)  :表示发送方已完成数据传输,请求正常关闭连接(“四次挥手” 中使用),但仍可接收对方的数据。

R(RESET)  :强制终止异常的 TCP 连接(如连接崩溃、协议错误),接收方收到 RST 后会立即关闭连接并释放资源,无需正常挥手。

P(PUSH):表示接收方应立即将数据 “推” 给应用层,而不等待缓冲区填满。用于需要实时处理的数据(如交互式命令行输入)。

A(ack):表示 “确认号” 字段有效,用于对收到的数据包进行确认(告知发送方 “已收到某序号前的数据”)。除了连接建立的第一个包(SYN),几乎所有 TCP 包都设置 ACK=1。

UDP头

8字节,网络开销小

仅包含:目标端口,源端口,长度,校验码

常用网络测试工具

wireshark

可视化界面

抓包工具

过滤规则:
1、根据ip地址过滤:ip.src == x.x.x.x
ip.dst == x.x.x.x
2、根据端口过滤:tcp.srcport == xx;
tcp.dstport == xx;
udp.srcport == xx;
udp.dstport == xx;
3、根据协议类型过滤:
tcp   udp  icmp .....
4、任意组合以上条件抓包:
如果与的关系:  and
ip.src == 192.168.1.100 and tcp.dstport == 9999
如果或关系 :   or
ip.src == 192.168.1.100 or ip.dst == 192.168.1.102

ssh2

在编程领域,ssh2 常指实现 SSH-2 协议的客户端 / 服务器库,最常用的是 Node.js 的 ssh2 模块。它允许通过代码创建 SSH 连接,执行远程命令、传输文件等,无需依赖系统命令行工具。

arg

地址解析命令

arp -an  ===>列出当前主机的地址ARP表
arp -d  ip地址

ping

测试网路的联通状况

ping ip地址
ping 域名

netstat

测试查看网络端口使用情况
netstat -anp 
netstat -n  ===>列出当前所有网络端口使用情况
netstat -n -t  ===>列出所有TCP通信的端口信息
netstat -n -u  ===>列出所有UDP通信的端口信息

netstat -n -i   ===>列出默认接口上的通信信息
netstat -lnp |grep 8888  ===>查看指定端口上的通信详情

telnet

 远程登录工具,默认都是系统安装。

使用格式: telnet ip地址  端口
eg: telnet 192.168.1.1  8888
注意:如果没有写端口,则默认登录23 号端口。

tcpdump

基于命令行

抓包工具

1、tcpdump -n ===>在默认的网卡上开始抓包。
2、根据ip过滤: tcpdump -n  src  x.x.x.x  
tcpdump -n  dst x.x.x.x
抓192.168.0.130上面发出和接受到的数据包
sudo tcpdump -n -x src or dst  192.168.0.130 
3、查看包中的内容:
tcpdump -n -x src x.x.x.x
tcpdump -n -x dst x.x.x.x

tcpdump -n -x src x.x.x.x  >xxx.log

4、根据端口过滤:
tcpdump -n src port xx
tcpdump -n dst port xx
tcpdump -n -p tcp port xx
tcpdump -n udp port xx
tcpdump -n port xx
5、根据协议过滤:
tcpdump -n -p icmp/tcp/udp

6、根据指定接口过滤:
tcpdump -n -i eth0
tcpdump -n -i lo

7、根据以上各种条件组合抓包:
与关系:  and
或关系:  or

HTTP协议( 超文本传输协议)(b/s模型)

html ,脚本语言,编写网页。

url,统一资源定位符 唯一表示互联网上的某个资源(网页,电影,图片)
http报文结构:两类:请求报文,响应报文

http交互步骤

1. 三次握手 
2. 发送请求报文 
3. 等待服务器回复 响应报文+数据 
4.断开链接

http://www.dtcms.com/a/366846.html

相关文章:

  • HTB Sau
  • 服务器异常磁盘写排查手册 · 已删除文件句柄篇
  • 稠密矩阵和稀疏矩阵的对比
  • C++面试突击(1)
  • 【面试】MySQL 面试常见优化问题
  • 面试官:如何确保动态线程池任务都执行完?
  • 计算机网络模型入门指南:分层原理与各层作用
  • EasyExcel:阿里开源的高效 Excel 处理工具,轻松解决 POI 内存溢出问题
  • SolidWorks对电脑的硬件配置要求具体有哪些
  • [Sublime Text]-显示菜单栏
  • 《云原生深坑实录:让团队卡壳的不是配置,是底层逻辑盲区》
  • 【Dify】使用工具节点实现 API 接口调用与 JSON 处理
  • 25高教社杯数模国赛【B题超高质量思路+问题分析】
  • 具身智能多模态感知与场景理解:视觉探索
  • 第二阶段WinForm-13:图表控件,N层架构,Dapper
  • 数据结构与排序算法:从理论到场景,解锁高效数据处理的核心逻辑
  • 【项目思路】基于STM32+ZigBee的智能家居--浴室场景设计
  • 服务器异常负载排查手册 · 隐蔽进程篇
  • QT面经(含相关知识)
  • elasticsearch学习(五)文档CRUD
  • 前端跨域终极指南:3 种优雅解决方案 + 可运行 Demo
  • App UI 自动化环境搭建指南
  • Java Stream 流式操作举例
  • QT Creator 使用
  • 【一文了解】C#泛型
  • 数据库集成:使用 SQLite 与 Electron
  • 新电脑硬盘如何分区?3个必知技巧避免“空间浪费症”!
  • [技术革命]Harmonizer:仅20MB模型如何实现8K图像_视频的完美和谐化?
  • 鸿蒙:AppStorageV2状态管理和数据共享
  • 泛型的通配符