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

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

数据的封包与拆包

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.xdnf.cn/news/20050.html

相关文章:

  • fpga iic协议
  • Leetcode 876. 链表的中间结点 快慢指针
  • 2025国赛B题保姆级教程思路分析 碳化硅外延层厚度的确定
  • IDEA终极配置指南:打造你的极速开发利器
  • AES介绍以及应用(crypto.js 实现数据加密)
  • Ubuntu 24.04 中 nvm 安装 Node 权限问题解决
  • 2020年_408统考_数据结构41题
  • #数据结构----2.1线性表
  • 谈谈你对ThreadLocal的理解
  • 2025数学建模国赛高教社杯B题思路代码文章助攻
  • C++字符串字符替换程序
  • 【系统架构设计(16)】软件架构设计二:软件架构风格:构建系统的设计模式与选择指南
  • 学习机器学习能看哪些书籍
  • 白盒审计绕过
  • [bat-cli] docs | 控制器
  • 网络计算工具ipcalc详解
  • C++11 智能指针的使⽤及其原理
  • A股大盘数据-20250904分析
  • SAP HANA Scale-out 01:表分布
  • Vue.js 面试题集合
  • 钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例
  • 【C++】计算地球上两个地理坐标点之间的距离和航向角
  • 期货市场上证50期权沪深300期权中证500期权那个好?
  • git命令行打patch
  • 支付域——支付与交易概念
  • 龙虎榜——20250904
  • 深度剖析:智能驾驶到底给2025带来了什么
  • 用服务器搭 “私人 AI 助手”:不用联网也能用,支持语音对话 / 文档总结(教程)
  • Hoppscotch:开源轻量API测试工具,秒启动高效解决临时接口测试需求
  • git基础命令 git基础操作