当前位置: 首页 > backend >正文

计算机网络笔记(七)——1.7计算机网络体系结构

1.7.1计算机网络体系结构的形成

一、计算机网络体系结构的形成背景

  1. 早期网络的问题

    • 各厂商独立开发网络协议(如IBM的SNA、DEC的DECnet)
    • 协议不兼容导致互联困难
    • 缺乏统一标准,网络扩展和维护成本高
  2. 核心需求推动

    • 统一标准的需求(兼容不同设备)
    • 解决复杂性问题(通过分层降低复杂度)
    • 实现"端到端"可靠通信

在这里插入图片描述

二、关键技术演进历程

  1. 分层思想的提出(1960)

    • 将网络功能分解为独立模块
    • 分层原则:每层依赖下层服务,并为上层提供服务
    • "协议栈"概念的诞生
  2. ARPANET实践(1969-1983)

    • 早期使用NCP协议
    • 1983年正式采用TCP/IP协议
  3. 标准化的竞争

    • OSI模型(1983年)
      • 理论完善但复杂度高
    • TCP/IP模型
      • 实践驱动,逐步成为事实标准

三、OSI参考模型与TCP/IP体系

在这里插入图片描述

四、核心驱动要素分析

  1. 问题驱动

    • 解决异种机互联问题
    • 实现可靠的端到端传输
    • 提高协议的可扩展性
  2. 分层优势

    • 模块化设计降低开发难度
    • 各层独立演进不影响整体
    • 明确的责任边界
  3. 协议三要素

在这里插入图片描述

五、历史经验总结

  1. OSI的失败启示

    • 过度设计导致实现复杂
    • 标准化进程滞后于实际应用
    • 未能适应快速发展的互联网需求
  2. TCP/IP成功因素

    • 实践驱动的发展模式
    • 灵活的可扩展性设计
    • 简单高效的实现方式

关键提示:现代网络体系本质是"沙漏模型",其中IP层是核心腰线,上下层可灵活扩展。理解TCP/IP四层模型的职责划分,是学习网络编程的基础。

1.7.2协议与划分层次

一、网络协议的三要素

网络协议是网络通信的基础规则,由三个核心要素构成:

要素说明
语法数据与控制信息的结构或格式(例如:IP地址的格式、HTTP请求头格式)
语义控制信息代表的含义(例如:SYN表示建立连接,FIN表示断开连接)
同步事件发生的顺序和时间关系(例如:TCP三次握手过程中的ACK确认机制)

二、协议分层的原因与优势

在这里插入图片描述

分层设计的核心优势:

  1. 解耦与独立:各层只关心本层功能实现,无需知晓其他层细节
  2. 灵活替换:单层技术升级不影响整体结构(如链路层从以太网升级到WiFi)
  3. 标准化接口:每层通过服务访问点(SAP)为上层提供统一服务接口
  4. 模块化开发:不同团队可并行开发不同层次
  5. 故障隔离:可快速定位问题层次(如网络不通时分层ping测试)

三、典型的五层协议体系

层次核心功能典型协议/设备数据单元
应用层提供用户可直接使用的网络服务HTTP/FTP/SMTP/DNS消息/报文
传输层实现端到端的可靠传输与流量控制TCP/UDP段(Segment)
网络层路由选择与IP寻址IP/ICMP/OSPF数据报(Datagram)
链路层相邻节点间的帧传输Ethernet/PPP/Wi-Fi帧(Frame)
物理层物理介质上的比特流传输RS-232/USB/光纤标准比特(Bit)

对等层通信示意图

在这里插入图片描述

四、分层的具体实现过程

以网页访问为例的分层处理流程:

  1. 应用层:浏览器生成HTTP请求报文
  2. 传输层:添加TCP头(源端口80,目标端口随机)
  3. 网络层:添加IP头(源IP 192.168.1.100,目标IP 220.181.38.148)
  4. 链路层:封装以太网帧(源MAC 00:11:22:33:44:55,目标MAC网关MAC)
  5. 物理层:转换为比特流通过网卡发送

分层处理示意图:

在这里插入图片描述

五、分层设计的工程实践

  1. 标准化接口:UNIX系统的Socket API统一网络编程接口
  2. 中间件技术:Web服务器(Nginx)基于分层架构处理请求:
    • 应用层:解析HTTP协议
    • 传输层:管理TCP连接池
    • 网络层:处理IP路由
  3. 流量整形:QoS通过分层标记实现优先传输(如VLAN标签、IP TOS字段)

1.7.3具有五层协议的体系结构

五层模型概述

计算机网络五层模型结合了OSI七层模型的详细划分和TCP/IP模型的实用性,各层职责明确,协同完成端到端的数据传输:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层
  5. 物理层

各层功能及关键协议

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地址转发帧)。

5. 物理层(物理信号传输)

  • 功能:通过物理介质(电缆、光纤)传输二进制比特流。
  • 数据单元:比特(Bit)。
  • 关注点
    • 电压/光信号(如0=低电平,1=高电平)。
    • 接口标准(如RJ45网口、光纤规格)。
  • 设备:集线器(已淘汰)、中继器(放大信号)。

数据封装与解封装流程

数据从发送方到接收方需经历逐层封装和解封装:
在这里插入图片描述

分层协作示例

  1. 应用层:浏览器生成HTTP请求(“访问example.com”)。
  2. 传输层:TCP封装请求为段,加入源端口号和目标端口号(如80)。
  3. 网络层:IP协议添加源IP(192.168.1.2)、目标IP(93.184.216.34)。
  4. 数据链路层:以太网帧填入源MAC(设备网卡地址)和目标MAC(路由器地址)。
  5. 物理层:转换为电信号传输。
  6. 接收端反向解析,最终网页内容送达浏览器。

五层模型与OSI七层模型的对比

五层模型OSI七层模型
应用层应用层、表示层、会话层
传输层传输层
网络层网络层
数据链路层数据链路层
物理层物理层

总结

五层模型简化了网络设计复杂度,各司其职:

  • 应用层:用户交互。
  • 传输层:端到端通信。
  • 网络层:路由与寻址。
  • 数据链路层:链路内传输。
  • 物理层:物理信号传输。

通过分层架构,协议开发者可专注于单层设计,提升网络系统的模块化和兼容性。

1.7.4实体、协议、服务和服务访问点

一、核心概念

  1. 实体(Entity)

    • 任何可以发送或接收信息的硬件/软件进程
    • 例:客户端程序、服务器程序、路由器处理模块
  2. 协议(Protocol)

    • 控制多个实体通信的规则集合

    • 三要素:

      在这里插入图片描述

  3. 服务(Service)

    • 下层实体通过服务访问点向上层提供的功能
    • 服务类型:
      在这里插入图片描述
  4. 服务访问点SAP(Service Access Point)

    • 层间的逻辑接口(类似邮箱投递口)
      在这里插入图片描述

二、层级关系图

在这里插入图片描述

三、关键特性对比

要素协议服务
关系方向水平(对等层之间)垂直(相邻层之间)
可见性不可见(被服务屏蔽)可见(通过SAP调用)
实现方式规范对等实体交互定义层间接口功能

四、数据传输示意图

在这里插入图片描述

五、对话示例(客户-服务器模型)

在这里插入图片描述

关键总结

  1. 协议是"how"(如何通信),服务是"what"(提供什么功能)
  2. SAP是层间交互的地址门牌号
  3. PDU是协议处理单元,SDU是服务传递内容
  4. 上层通过服务访问点使用下层能力,不感知具体协议实现
http://www.xdnf.cn/news/1538.html

相关文章:

  • Linux系统学习----概述与目录结构
  • JSON实现动态按钮管理的Python应用
  • Java大师成长计划之第1天:Java编程基础入门
  • docker在windows下wsl存储路径的变更与数据迁移
  • 18487.1-2015-解读笔记之四-交流充电之流程分析
  • 大数据人工智能概述
  • Saas、Paas、Faas、Baas的概念学习与对比
  • 什么是鸿蒙南向开发?什么是北向开发?
  • 信息学奥赛一本通 1505:【例 2】双调路径 | 洛谷 P5530 [BalticOI 2002] 双调路径
  • bedtools coverage 获取每个位置的测序深度
  • springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 前端基础之《Vue(8)—内置组件》
  • 第二批流程!合肥市各地文化创意园区认定申报条件时间和申报材料方式归纳
  • 通信安全员考试重难点考哪些?
  • 如何计算光伏电站需要多少光伏板
  • 4.19-4.26学习周报
  • 【Tools】Git常见操作
  • 从并发问题衍生出的Spring的七种事务传播行为
  • 4.7 字符串到整形的相互转换
  • 机器学习分类算法详解:原理、应用场景与测试用例
  • 深入理解 Python 协程:单线程下的高效并发方案
  • JWT的token泄露要如何应对
  • 关于编译原理——语义翻译器的设计
  • 异构迁移学习(无创脑机接口中的跨脑电帽迁移学习)
  • 开发体育直播系统后台权限设计实践分享|ThinkPHP 技术栈落地案例
  • -PHP 反序列化POP 链构造魔术方法流程漏洞触发条件属性修改
  • 开源版「v0」OpenUI:根据文本生成UI界面代码
  • Sqlserver 自增长id 置零或者设置固定值
  • 【工具变量】各市ZF数字治理指标数据集(2001-2024年)
  • RabbitMQ 详解(核心概念)