news 2026/2/7 13:20:04

嵌入式第四十篇——网络编程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式第四十篇——网络编程

一、网络分层模型

OSI七层模型(理论参考模型)

  • 应用层:直接面向用户应用,提供网络服务如邮件、文件传输、网页访问。
  • 表示层:处理数据格式转换、加密/解密,解决不同主机间的数据兼容问题。
  • 会话层:管理进程间会话的建立、维护和终止,协调通信时序。
  • 传输层:实现端到端可靠/不可靠传输(如TCP/UDP),负责流量控制和差错恢复。
  • 网络层:通过IP地址寻址和路由选择实现跨网络通信(如IP协议)。
  • 数据链路层:管理相邻节点的帧传输(MAC寻址、差错控制),分为LLC和MAC子层。
  • 物理层:定义电/光信号传输的机械和电气特性(如双绞线、光纤)。

TCP/IP四层模型(实际应用)

  • 应用层:合并OSI的应用层、表示层、会话层,协议包括HTTP、DNS、FTP。
  • 传输层:对应OSI传输层,核心协议为TCP(可靠)和UDP(高效)。
  • 网络层:对应OSI网络层,协议包括IP、ICMP、RIP/OSPF(路由协议)。
  • 接口层:合并OSI数据链路层和物理层,协议如ARP(IP转MAC)、RARP。

二、核心协议功能

应用层协议

  • HTTP:网页数据传输。
  • DNS:域名解析为IP地址。
  • FTP/TFTP:文件传输(FTP支持认证,TFTP轻量无认证)。

传输层协议

  • TCP:面向连接,保证数据可靠传输(三次握手、流量控制)。
  • UDP:无连接,低延迟,适用于实时应用(如视频流)。

网络层协议

  • IP:基于逻辑地址的路由选择和数据包转发。
  • ICMP:网络诊断工具(如ping、traceroute)。
  • RIP/OSPF:动态路由协议,自动更新路由表。

接口层协议

  • ARP:解析局域网内IP对应的MAC地址。
  • RARP:反向解析(现已被DHCP替代)。

三、IP地址与配置

IP地址结构

  • IPv4:32位地址,分网络位和主机位(如192.168.1.0/24)。
  • IPv6:128位地址,解决IPv4耗尽问题(如2001:0db8::1)。

Linux网络配置

  • 永久配置:修改/etc/network/interfaces,设置静态IP、子网掩码、网关后重启服务。
  • 临时配置:使用ifconfig ens33 192.168.0.13/24 up立即生效,重启后失效。

常用命令

  • ifconfig:查看或配置网卡信息。
  • ping:测试网络连通性(基于ICMP)。
  • netstat -anp:监控网络连接和端口状态。

四、关键网络概念

Socket与端口

  • Socket是IP地址和端口号的组合,唯一标识通信端点。
  • 端口范围:1-1023(系统预留),1024-65535(用户应用)。

字节序

  • 网络字节序为大端(高位在前),主机字节序通常为小端(x86/ARM架构)。

DHCP

  • 自动分配IP、子网掩码、网关等参数,减少手动配置成本。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 5:57:39

PyTorch DataLoader worker_init_fn初始化函数用途

PyTorch DataLoader worker_init_fn 初始化函数用途 在现代深度学习训练中,数据加载早已不再是简单的“读文件、喂模型”过程。随着批大小增大、数据增强策略复杂化以及多卡分布式训练的普及,我们对数据管道的稳定性、效率和可复现性提出了更高要求。尤其…

作者头像 李华
网站建设 2026/2/5 9:14:12

LLMs之VF:《Asking LLMs to Verify First is Almost Free Lunch》翻译与解读

LLMs之VF:《Asking LLMs to Verify First is Almost Free Lunch》翻译与解读 导读:本研究提出了一种名为“验证优先”(Verification-First, VF)的创新提示策略,旨在以极低的成本显著提升大型语言模型(LLM&a…

作者头像 李华
网站建设 2026/2/3 5:16:02

PyTorch Lightning与原生PyTorch对比优劣分析

PyTorch Lightning与原生PyTorch对比优劣分析 在深度学习项目开发中,一个常见的困境是:刚写完的实验代码还没来得及复现结果,就已经因为冗长的训练循环、设备管理混乱和日志缺失而变得难以维护。更别提当团队协作时,每个人都有自己…

作者头像 李华
网站建设 2026/2/5 10:44:29

Keil5 Debug调试怎么使用实现PID控制回路的图解说明

如何用Keil5调试实现PID控制回路的图解式开发?——从变量监控到波形可视化一个常见的工程困境:PID调参靠“烧录猜”你有没有过这样的经历?写好了温度控制程序,下载进STM32板子,启动加热后却发现:- 温度冲过…

作者头像 李华
网站建设 2026/2/4 0:44:13

嵌入式通信入门:CANFD与CAN的关键差异解析

嵌入式通信进阶:为什么CANFD正在取代CAN? 你有没有遇到过这样的情况?在调试一个车载ECU时,总线负载突然飙升到80%以上,CPU中断频繁触发,系统响应变慢——而你只是想传一组雷达点云数据。问题出在哪&#x…

作者头像 李华