cen's blog cen's blog
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • C++学习
    • C++数据结构
    • MySQL
    • Linux
    • 网络编程
算法
  • CLion
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

cen

十年饮冰,难凉热血
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • C++学习
    • C++数据结构
    • MySQL
    • Linux
    • 网络编程
算法
  • CLion
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • 网络基础
    • OSI 七层模型
    • TCP/IP 模型
    • 网络的地址管理
    • 网络传输基本流程
      • 同一局域网下主机通信
      • 跨网络的主机通信
    • 封装与解包
  • 套接字和UDP
  • 套接字和TCP
  • 网络协议
  • 网络
cen
2025-08-16
目录

网络基础

# OSI 七层模型

OSI(Open System Interconnection)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。

层级 名称 功能 协议/设备
7 应用层 针对特定应用的协议 HTTP, FTP, SMTP, DNS
6 表示层 设备固有数据格式和网络标准数据格式的转换 SSL/TLS, JPEG, ASCII
5 会话层 通信管理、负责建立和断开通信连接、管理传输层以下的分层 NetBIOS, RPC, SIP
4 传输层 管理两个节点之间的数据传输、负责可靠性传输 TCP, UDP
3 网络层 地址管理与路由选择 IP, ICMP, 路由器
2 数据链路层 互联设备之间传送和识别数据帧 交换机, MAC 地址
1 物理层 以 0/1 代表电压的高低以及灯光的闪灭、界定连接器和网线的规格 网线, 光纤, 集线器

# TCP/IP 模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇。TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

层级 名称 功能 对应 OSI
5 应用层 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等 应用层、表示层、会话层
4 传输层 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标 传输层
3 网络层 负责地址管理和路由选择. 例如在 IP 协议中, 通过 IP 地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网路层 网络层
2 数据链路层 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线 LAN 等标准. 交换机(Switch)工作在数据链路层。 数据链路层
1 物理层 负责光/电信号的传递方式。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。 物理层

注意:应用层由应用程序实现;传输层和网络层由操作系统实现;数据链路层由设备驱动程序实现;物理层由硬件实现。

# 网络的地址管理

认识 IP 地址

IP 协议有两个版本,分别是 IPv4 和 IPv6。IPv4 用 32 个比特位来标识 IP 地址,而 IPv6 用 128 个比特位来标识 IP 地址。

IP 地址是在 IP 协议中,用来标识网络中不同主机的地址。我们通常也使用“点分十进制”的字符串表示 IP 地址,例如 192.168.0.1,用点分割的每一个数字表示一个字节,范围是 0~255。

认识 MAC 地址

MAC 地址用来识别数据链路层中相连的节点,通常是唯一的。

长度为 48 位,及 6 个字节,一般用 16 进制数字加上冒号的形式来表示。

# 网络传输基本流程

# 同一局域网下主机通信

# 跨网络的主机通信

# 封装与解包

当对端主机收到数据后,需要自底向上贯穿协议栈,依次进行数据的解包与分用。在这个解包的过程中,每一层的协议只需要提取出数据中对应的报头,然后对该报头进行分析处理,而剩下的数据则直接交付给上层就行了,上层协议在数据封装时添加的报头信息,在下层协议进行数据解包时看来就是有效载荷。

  • 数据封装,实际就是不断给数据加上各种对应的报头,这些报头里面填充的就是对应的各种协议细节。
  • 数据解包,实际就是不断从数据中提取对应的报头,并对提取出来的报头进行数据分析。
#网络编程
上次更新: 2025/09/03, 18:26:17
套接字和UDP

套接字和UDP→

最近更新
01
网络协议
09-03
02
套接字和TCP
08-26
03
常用数据结构
08-23
更多文章>
Theme by Vdoing | Copyright © 2024-2025 京ICP备2020044002号-3 京公网安备11010502056119号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式