计算机网络笔记(七)——1.7计算机网络体系结构
1.7.1计算机网络体系结构的形成
一、计算机网络体系结构的形成背景
-
早期网络的问题
- 各厂商独立开发网络协议(如IBM的SNA、DEC的DECnet)
- 协议不兼容导致互联困难
- 缺乏统一标准,网络扩展和维护成本高
-
核心需求推动
- 统一标准的需求(兼容不同设备)
- 解决复杂性问题(通过分层降低复杂度)
- 实现"端到端"可靠通信
二、关键技术演进历程
-
分层思想的提出(1960)
- 将网络功能分解为独立模块
- 分层原则:每层依赖下层服务,并为上层提供服务
- "协议栈"概念的诞生
-
ARPANET实践(1969-1983)
- 早期使用NCP协议
- 1983年正式采用TCP/IP协议
-
标准化的竞争
- OSI模型(1983年)
- 理论完善但复杂度高
- TCP/IP模型
- 实践驱动,逐步成为事实标准
- OSI模型(1983年)
三、OSI参考模型与TCP/IP体系
四、核心驱动要素分析
-
问题驱动
- 解决异种机互联问题
- 实现可靠的端到端传输
- 提高协议的可扩展性
-
分层优势
- 模块化设计降低开发难度
- 各层独立演进不影响整体
- 明确的责任边界
-
协议三要素
五、历史经验总结
-
OSI的失败启示
- 过度设计导致实现复杂
- 标准化进程滞后于实际应用
- 未能适应快速发展的互联网需求
-
TCP/IP成功因素
- 实践驱动的发展模式
- 灵活的可扩展性设计
- 简单高效的实现方式
关键提示:现代网络体系本质是"沙漏模型",其中IP层是核心腰线,上下层可灵活扩展。理解TCP/IP四层模型的职责划分,是学习网络编程的基础。
1.7.2协议与划分层次
一、网络协议的三要素
网络协议是网络通信的基础规则,由三个核心要素构成:
要素 | 说明 |
---|---|
语法 | 数据与控制信息的结构或格式(例如:IP地址的格式、HTTP请求头格式) |
语义 | 控制信息代表的含义(例如:SYN表示建立连接,FIN表示断开连接) |
同步 | 事件发生的顺序和时间关系(例如:TCP三次握手过程中的ACK确认机制) |
二、协议分层的原因与优势
分层设计的核心优势:
- 解耦与独立:各层只关心本层功能实现,无需知晓其他层细节
- 灵活替换:单层技术升级不影响整体结构(如链路层从以太网升级到WiFi)
- 标准化接口:每层通过服务访问点(SAP)为上层提供统一服务接口
- 模块化开发:不同团队可并行开发不同层次
- 故障隔离:可快速定位问题层次(如网络不通时分层ping测试)
三、典型的五层协议体系
层次 | 核心功能 | 典型协议/设备 | 数据单元 |
---|---|---|---|
应用层 | 提供用户可直接使用的网络服务 | HTTP/FTP/SMTP/DNS | 消息/报文 |
传输层 | 实现端到端的可靠传输与流量控制 | TCP/UDP | 段(Segment) |
网络层 | 路由选择与IP寻址 | IP/ICMP/OSPF | 数据报(Datagram) |
链路层 | 相邻节点间的帧传输 | Ethernet/PPP/Wi-Fi | 帧(Frame) |
物理层 | 物理介质上的比特流传输 | RS-232/USB/光纤标准 | 比特(Bit) |
对等层通信示意图
四、分层的具体实现过程
以网页访问为例的分层处理流程:
- 应用层:浏览器生成HTTP请求报文
- 传输层:添加TCP头(源端口80,目标端口随机)
- 网络层:添加IP头(源IP 192.168.1.100,目标IP 220.181.38.148)
- 链路层:封装以太网帧(源MAC 00:11:22:33:44:55,目标MAC网关MAC)
- 物理层:转换为比特流通过网卡发送
分层处理示意图:
五、分层设计的工程实践
- 标准化接口:UNIX系统的Socket API统一网络编程接口
- 中间件技术:Web服务器(Nginx)基于分层架构处理请求:
- 应用层:解析HTTP协议
- 传输层:管理TCP连接池
- 网络层:处理IP路由
- 流量整形:QoS通过分层标记实现优先传输(如VLAN标签、IP TOS字段)
1.7.3具有五层协议的体系结构
五层模型概述
计算机网络五层模型结合了OSI七层模型的详细划分和TCP/IP模型的实用性,各层职责明确,协同完成端到端的数据传输:
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
各层功能及关键协议
1. 应用层(用户交互层)
- 功能:为用户提供直接的网络服务(如网页浏览、文件传输)。
- 数据单元:消息(Message)/ 报文。
- 协议举例:
- HTTP(网页加载)
- SMTP(邮件发送)
- DNS(域名解析)
- 设备:终端用户设备(电脑、手机)。
2. 传输层(端到端通信)
- 功能:确保数据在源主机到目标主机的进程间可靠传输。
- 数据单元:
- 段(Segment)(TCP,可靠)
- 数据报(Datagram)(UDP,快速)。
- 关键协议:
- TCP:面向连接,可靠传输(三次握手、流量控制)。
- UDP:无连接,高效传输(视频流、实时游戏)。
- 核心机制:端口号区分应用程序(如
80
端口对应HTTP)。
3. 网络层(路径选择与寻址)
- 功能:跨网络路由数据,解决主机间的逻辑寻址。
- 数据单元:数据包(Packet)。
- 协议:
- IP(无连接,尽力而为的传输)。
- ICMP(错误检测,如
ping
命令)。
- 设备:路由器(基于IP地址转发)。
4. 数据链路层(本地网络传输)
- 功能:确保同一链路中相邻节点(如局域网内)的可靠传输。
- 数据单元:帧(Frame)。
- 关键机制:
- MAC地址(唯一硬件标识,如
00:1A:2B:3C:4D:5E
)。 - 错误检测(CRC校验丢弃错误帧)。
- MAC地址(唯一硬件标识,如
- 设备:交换机(基于MAC地址转发帧)。
5. 物理层(物理信号传输)
- 功能:通过物理介质(电缆、光纤)传输二进制比特流。
- 数据单元:比特(Bit)。
- 关注点:
- 电压/光信号(如
0
=低电平,1
=高电平)。 - 接口标准(如RJ45网口、光纤规格)。
- 电压/光信号(如
- 设备:集线器(已淘汰)、中继器(放大信号)。
数据封装与解封装流程
数据从发送方到接收方需经历逐层封装和解封装:
分层协作示例
- 应用层:浏览器生成HTTP请求(“访问example.com”)。
- 传输层:TCP封装请求为段,加入源端口号和目标端口号(如
80
)。 - 网络层:IP协议添加源IP(
192.168.1.2
)、目标IP(93.184.216.34
)。 - 数据链路层:以太网帧填入源MAC(设备网卡地址)和目标MAC(路由器地址)。
- 物理层:转换为电信号传输。
- 接收端反向解析,最终网页内容送达浏览器。
五层模型与OSI七层模型的对比
五层模型 | OSI七层模型 |
---|---|
应用层 | 应用层、表示层、会话层 |
传输层 | 传输层 |
网络层 | 网络层 |
数据链路层 | 数据链路层 |
物理层 | 物理层 |
总结
五层模型简化了网络设计复杂度,各司其职:
- 应用层:用户交互。
- 传输层:端到端通信。
- 网络层:路由与寻址。
- 数据链路层:链路内传输。
- 物理层:物理信号传输。
通过分层架构,协议开发者可专注于单层设计,提升网络系统的模块化和兼容性。
1.7.4实体、协议、服务和服务访问点
一、核心概念
-
实体(Entity)
- 任何可以发送或接收信息的硬件/软件进程
- 例:客户端程序、服务器程序、路由器处理模块
-
协议(Protocol)
-
控制多个实体通信的规则集合
-
三要素:
-
-
服务(Service)
- 下层实体通过服务访问点向上层提供的功能
- 服务类型:
-
服务访问点SAP(Service Access Point)
- 层间的逻辑接口(类似邮箱投递口)
- 层间的逻辑接口(类似邮箱投递口)
二、层级关系图
三、关键特性对比
要素 | 协议 | 服务 |
---|---|---|
关系方向 | 水平(对等层之间) | 垂直(相邻层之间) |
可见性 | 不可见(被服务屏蔽) | 可见(通过SAP调用) |
实现方式 | 规范对等实体交互 | 定义层间接口功能 |
四、数据传输示意图
五、对话示例(客户-服务器模型)
关键总结:
- 协议是"how"(如何通信),服务是"what"(提供什么功能)
- SAP是层间交互的地址门牌号
- PDU是协议处理单元,SDU是服务传递内容
- 上层通过服务访问点使用下层能力,不感知具体协议实现