news 2026/4/24 1:41:20

网络编程基础知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络编程基础知识

一、物理层与 MAC 地址

  • 定位:OSI 模型第 1 层,负责硬件层面的「比特流传输」。

1.物理层

  • 核心作用:把二进制的 0/1 信号,通过电缆、光纤、无线电等物理介质传输出去。
  • 关注的是:电压、频率、信号编码方式、传输介质(网线、光纤),不关心数据内容。

2.MAC 地址(物理地址)

  • 全称:Media Access Control 地址,也叫硬件地址。
  • 特点:每个网卡出厂时就烧录了一个全球唯一的 48 位地址,格式如 AA:BB:CC:DD:EE:FF。
  • 作用:在同一局域网内,用来唯一标识一台设备,数据链路层(以太网)就是靠它来转发数据帧的。

二、网络层与 IP 协议

  • 定位:OSI 模型第 3 层,负责「跨网络的路由寻址」,核心是 IP 协议。

1.IP 协议(网际协议)

  • 核心作用:给不同网络的设备分配唯一的逻辑地址(IP 地址),并负责把数据包从源主机,通过路由器转发到目标主机。
  • 核心版本:
  1. IPv4:32 位地址(如 192.168.1.1),现在地址已经耗尽,是目前主流。
  2. IPv6:128 位地址,解决地址耗尽问题,同时支持更安全、更高效的传输。

2.IP 地址分类

  • A/B/C/D/E 类地址,其中 A/B/C 类是常用的单播地址,D 类用于组播,E 类保留。
  • 私有 IP 地址段(局域网内专用,不能公网路由):

A 类:10.0.0.0/8
B 类:172.16.0.0/12
C 类:192.168.0.0/16

3.子网划分与掩码

  • 子网掩码:用来区分 IP 地址中的「网络号」和「主机号」,如 255.255.255.0(/24)。
  • 作用:把大的 IP 网段划分成多个小的子网,方便管理和路由。

4.ARP 协议(地址解析协议)

  • 核心作用:把IP 地址解析成对应的 MAC 地址
  • 流程:主机 A 要给主机 B 发数据,先查 ARP 缓存,没有就发广播请求,主机 B 收到后单播回复自己的 MAC 地址,A 再更新缓存并发送数据。

5.ICMP 协议(互联网控制报文协议)

  • 核心作用:IP 协议的辅助协议,用来传递网络错误和控制信息。
  • 常见应用:ping 命令(测试网络连通性)、traceroute(追踪路由路径)。

三、传输层与接口

  • 定位:OSI 模型第 4 层,负责「端到端的数据传输」,给应用层提供可靠 / 不可靠的传输服务。

1.TCP 协议(传输控制协议)

  • 核心特点:面向连接、可靠传输、有序、有确认重传、流量控制、拥塞控制。
  • 适用场景:文件传输、网页浏览、邮件发送等,对数据完整性要求高的场景。
  • 关键机制:三次握手、四次挥手、滑动窗口、超时重传。

2.UDP 协议(用户数据报协议)

  • 核心特点:无连接、不可靠传输、无序、无确认、开销小、延迟低。
  • 适用场景:直播、游戏语音、视频通话、DNS 查询等,对实时性要求高、能容忍少量丢包的场景。

3.端口号

  • 作用:用来区分同一台主机上不同的应用进程(比如浏览器和微信都用 IP,但靠端口号区分)。
  • 范围:0-65535,其中 0-1023 是公认端口(如 HTTP 的 80、HTTPS 的 443、SSH 的 22)。

四、应用层与架构模式

  • 定位:OSI 模型第 7 层,直接和用户 / 应用交互,定义了应用之间通信的规则。

1.常见应用层协议

协议端口核心用途
HTTP/HTTPS80/443网页浏览、数据交互
FTP21/20文件传输
SSH22远程登录与管理
DNS53域名解析(域名→IP)
SMTP/POP3/IMAP25/110/143邮件发送与接收

2.常见架构模式

  • C/S(客户端 / 服务器)模式:客户端主动发起请求,服务器被动响应,如 QQ、游戏客户端。
  • B/S(浏览器 / 服务器)模式:客户端就是浏览器,无需安装专用软件,如网页版知乎、电商网站。
  • P2P(点对点)模式:节点之间直接通信,无中心服务器,如早期的迅雷、BT 下载。

五、套接字与网络字节序

  • 这部分是网络编程的核心基础,把前面的协议,变成你能写代码的接口

1.套接字(Socket)

  • 本质:操作系统给应用层提供的「网络编程接口」,是应用程序和传输层(TCP/UDP)之间的桥梁。
  • 分类:

流式套接字(SOCK_STREAM):基于 TCP,面向连接、可靠传输。
数据报套接字(SOCK_DGRAM):基于 UDP,无连接、不可靠传输。
原始套接字(SOCK_RAW):可以直接访问 IP 层,用于自定义协议、抓包等。

2.网络字节序(大端序)

  • 背景:不同 CPU 架构(x86 是小端序,部分服务器是大端序),多字节数据(如 IP 地址、端口号)的存储顺序不同,跨平台传输会出错。
  • 解决:网络传输统一使用大端序(高字节存低地址),所以主机在发送数据前,需要把主机字节序转换成网络字节序。
  • 常用转换函数:

htons():主机字节序转网络字节序(16 位,端口号)
htonl():主机字节序转网络字节序(32 位,IP 地址)
ntohs():网络字节序转主机字节序(16 位)
ntohl():网络字节序转主机字节序(32 位)

六、整体知识串联

  1. 应用层(浏览器)要发数据,通过 Socket 接口,把数据交给传输层。
  2. 传输层(TCP/UDP)给数据加上端口号,封装成段 / 报文,交给网络层。
  3. 网络层(IP 协议)加上 IP 地址,封装成数据包,同时用 ARP 协议解析 MAC 地址,交给数据链路层。
  4. 数据链路层加上 MAC 地址,封装成帧,通过物理层的信号传输到目标主机。
  5. 目标主机按相反的顺序,逐层解封装,把数据交给对应的应用进程。

七、核心考点:应用层协议 vs 传输层协议

1. 只使用 TCP 的协议(必须可靠传输)

协议端口号核心用途为什么用 TCP?
HTTP/HTTPS80 / 443网页浏览、API 接口数据不能丢、不能乱序,否则网页会出错
FTP21(控制)/20(数据)文件传输文件数据必须完整,不能丢包损坏
SSH22远程登录、安全管理交互命令必须可靠传输
Telnet23明文远程登录(已淘汰)早期远程管理,依赖可靠传输
SMTP25邮件发送邮件内容必须完整送达
POP3110邮件接收邮件内容必须完整
IMAP143邮件接收(同步)邮件状态同步需要可靠传输

2. 只使用 UDP 的协议(优先低延迟)

协议端口号核心用途为什么用 UDP?
DNS(查询)53域名解析单次查询数据量小,延迟优先,丢包可重发
DHCP67/68自动分配 IP 地址广播通信,无连接更方便
TFTP69简单文件传输(嵌入式设备用)轻量级、无连接,适合资源受限设备
SNMP161/162网络设备监控监控数据小,延迟优先

3. 既用 TCP 又用 UDP 的协议(看场景)

协议端口号使用场景说明
DNS53普通查询用 UDP(快),超过 512 字节的响应 / 区域传输用 TCP(可靠)

💡补充考点:网络层 / 数据链路层相关协议

  1. 网络层协议(IP 层)

IP 协议:核心,提供 IP 寻址和路由
ICMP 协议:IP 的辅助协议,用于 ping、traceroute 等网络诊断
ARP 协议:IP 地址 → MAC 地址解析(部分教材认为属于数据链路层)
RARP 协议:MAC 地址 → IP 地址解析(已淘汰)

  1. 数据链路层协议

以太网协议(Ethernet):局域网帧传输,用 MAC 地址寻址
PPP 协议:点对点通信协议,常用于拨号、VPN

💡答题小技巧(秒选方法)

  1. 优先记 “必须用 TCP” 的:HTTP/HTTPS、FTP、SSH、邮件协议,看到这些直接选 TCP。
  2. 优先记 “必须用 UDP” 的:DNS(默认)、DHCP、TFTP,看到这些优先选 UDP。
  3. 特殊情况:DNS 只有在大数据量时才用 TCP,绝大多数题目里都默认用 UDP。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 1:41:16

GB/T34944-2017 合规:Java 代码漏洞测试用例编写(附案例)

依据GB/T34944-2017标准,一个常规的软件代码测试的测试流程一般包括以下几个阶段:需求分析阶段。项目负责人沟通清楚测试的需求,明确测试目的、测试进度要求、测试报告提交时间等,制定测试计划,明确测试对象、测试内容…

作者头像 李华
网站建设 2026/4/24 1:39:24

更强、更轻、更耐热:机器学习正帮我们设计“下一代超级合金”!

学习目标: 1. 建立“从数据到设计”的范式思维:理解材料信息学如何推动合金研究从传统“经验试错”向“数据与模型驱动”的智能化范式变革。掌握“预测→设计→验证→反馈”的闭环逻辑,并明晰在合金设计中,特征物理意义、模型泛化…

作者头像 李华
网站建设 2026/4/24 1:38:16

石家庄日语学不会?来石家庄帝京日语试试!

在石家庄,日语学习的需求日益增长,无论是为了留学、高考、考研,还是提升职场竞争力,大家都希望找到性价比高的日语培训机构。那么,石家庄日语培训究竟多少钱呢?今天就以石家庄帝京日语为例,为大…

作者头像 李华
网站建设 2026/4/24 1:36:19

时间序列预测中基线模型的重要性与实践

1. 时间序列预测中的基线模型重要性在时间序列预测项目中,建立性能基线是至关重要的第一步。就像盖房子需要先打地基一样,没有合理的基准比较,我们无法判断后续复杂模型的实际价值。基线预测模型为我们提供了一个"最低及格线"——任…

作者头像 李华
网站建设 2026/4/24 1:32:21

时间序列预测模型回测策略与实战技巧

1. 时间序列预测模型回测的核心价值做时间序列预测最怕什么?不是模型不够复杂,而是过拟合——在历史数据上表现完美,一到真实场景就崩盘。我见过太多团队花了三个月调参,上线一周就撤回的惨痛案例。回测(Backtesting&a…

作者头像 李华
网站建设 2026/4/24 1:31:54

Yjy 作业2

一、本学期机器学习学习过程总结本学期课程中,我系统学习了机器学习完整开发流程,熟练掌握KNN近邻算法、Kmeans聚类算法、决策树算法三大课堂核心算法。 完整学习了机器学习项目标准流程:数据采集→数据清洗预处理→特征提取→模型训练→模型…

作者头像 李华