计算机网络五层模型

我们常说的"计算机网络五层协议模型",是一个实际应用中广泛采用的简化模型(介于OSI七层(Open System Interconnect)与TCP/IP四层之间),用于描述网络通信中各层的职责与作用。

文章目录

    • [第5层:应用层(Application Layer)](#第5层:应用层(Application Layer))
    • [第4层:传输层(Transport Layer)](#第4层:传输层(Transport Layer))
    • [第3层:网络层(Network Layer)](#第3层:网络层(Network Layer))
    • [第2层:数据链路层(Data Link Layer)](#第2层:数据链路层(Data Link Layer))
    • [第1层:物理层(Physical Layer)](#第1层:物理层(Physical Layer))
层次 功能 协议示例
应用层 提供具体应用服务,直接面向用户 HTTP、FTP、SMTP、DNS
传输层 提供端到端的通信服务,负责数据分段、重组、可靠性控制 TCP、UDP
网络层 实现不同主机间的通信与路由选择,负责寻址与转发 IP、ICMP、ARP、NAT
数据链路层 管理一跳内通信(如主机到路由器),负责成帧、差错检测MAC寻址 Ethernet、PPP、802.11(Wi-Fi)
物理层 负责比特流的物理传输,管理电信号/光信号的发送与接收 RJ45、光纤、无线电波(硬件标准)

第5层:应用层(Application Layer)

第4层:传输层(Transport Layer)

第3层:网络层(Network Layer)

ping

ping 命令用的ICMP协议、IP、Ethernet、ARP

域名解析用到了 DNS解析,UDP + DNS 协议

ICMP

为"网络诊断"设计的协议:

  • ping(检测连通性)
  • traceroute(追踪路由路径)
  • 报告 IP 层错误(如主机不可达)

ARP

将 IP 地址解析为 MAC 地址(以太网环境下)。实则是广播问,问到后存到ARP缓存表。

网络通信靠 IP 地址,但网卡收发数据靠的是 MAC 地址

当主机只知道对方的 IP,却不知道 MAC,就需要用 ARP 来"问一问"

NAT

在不同网络之间转换 IP 地址和端口,常用于"局域网访问外网"

IPv4 地址不够用,很多内网只能用私有地址(如 192.168.x.x)

外网不识别私有地址 → 需要 NAT 转换成公网 IP 才能访问外部网络

类型:

类型 说明
SNAT(源地址转换) 内网出网时,将源 IP 改为公网 IP
DNAT(目的地址转换) 外网访问内网服务时,目标 IP 改为内网 IP
NAPT(端口地址转换) 多个内网主机共享一个公网 IP(最常见)

NAPT 例子:

内网 IP:端口 公网 IP:端口
192.168.1.100:54321 8.8.8.8:40001
192.168.1.101:54321 8.8.8.8:40002

NAT 破坏【端到端通信】(P2P 协议/视频通话难打通)(NAT 会隐藏内网真实 IP,所有内网设备共享公网 IP,且端口会被重新映射。)

需要 NAT 穿透技术(如 STUN、TURN、ICE)

  • STUN(Session Traversal Utilities for NAT)
    帮助客户端检测自己的公网 IP 和 NAT 类型。
    尝试利用 NAT 映射的端口建立直接 P2P 连接。
  • TURN(Traversal Using Relays around NAT)
    如果直接 P2P 失败,流量会通过中继服务器转发。
    这样即使在严格 NAT 或防火墙后,也能保证通话连接。
  • ICE(Interactive Connectivity Establishment)
    综合利用多种网络路径(包括STUN、TURN),寻找最佳连接路径。

第1层:物理层(Physical Layer)

直接和物理介质(如双绞线、光纤、无线)打交道,负责将比特(0 和 1)转换成电信号、光信号或无线电波,并进行实际的传输。

常见的物理层标准

名称 用途 特点
RS-232 串口通信 老式串口
USB 外设连接 通用传输标准
IEEE 802.3 以太网物理层 定义网线电气特性
IEEE 802.11 Wi-Fi 定义无线通信物理特性
相关推荐
一只小bit2 小时前
Linux网络:阿里云轻量级应用服务器配置防火墙模板开放端口
linux·网络·阿里云
BachelorSC3 小时前
【网络工程师软考版】网络安全
网络·安全·web安全
(Charon)5 小时前
【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)
网络·网络协议·http
Bryce李小白5 小时前
Kotlin实现Retrofit风格的网络请求封装
网络·kotlin·retrofit
Lovyk6 小时前
Linux网络管理
服务器·网络·php
MC皮蛋侠客7 小时前
AsyncIOScheduler 使用指南:高效异步任务调度解决方案
网络·python·fastapi
DAWN_T178 小时前
关于网络模型的使用和修改/保存和读取
网络·人工智能·pytorch·python·深度学习·神经网络·机器学习
fake_ss1989 小时前
计算机网络基础(一) --- (网络通信三要素)
java·网络·tcp/ip·udp·信息与通信
GISer_Jing10 小时前
WebSocket双向通信——引入进行功能优化
网络·websocket·网络协议
2501_9200470310 小时前
python-网络编程
开发语言·网络·python