ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

90DaysOfDevOps 网络篇(Day 22):OSI 模型与 7 层详解——从物理介质到应用层的数据旅程

90DaysOfDevOps 网络篇(Day 22):OSI 模型与 7 层详解——从物理介质到应用层的数据旅程 文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载本篇是 90DaysOfDevOps 网络学习路线中承上启下的关键一课在 Day 21 认识了 Host、IP 地址、交换机与路由器等基础设备之后本文将以 OSI开放系统互联参考模型的 7 个抽象层为主线系统拆解两台主机之间从应用数据到物理比特流的完整封装encapsulation与解封装过程。读完本文你将掌握每一层的职责边界、MAC 地址与 IP 地址为什么必须同时存在以及数据在穿越交换机与路由器时各层头部header如何层层叠加。本文内容主体源自 Practical Networking 的 Networking Fundamentals 系列是 Day 22 官方文档2022/tr/Days/day22.md的完整解读与仓库级扩充。为什么网络需要规则OSI 模型的存在意义网络行业存在的根本目的是让两台主机host之间能够共享数据。在真正意义上的网络出现之前若想将数据从主机 A 传送到主机 B只能把存储介质物理地插入一台主机、人工搬运到另一台主机再插入读取。而网络的出现让这一过程自动化主机可以自动地通过有线或无线介质共享数据。但自动化有一个前提——所有参与通信的主机必须遵守一套共同规则。这与人类语言并无不同英语有英语的语法西班牙语、法语各有自己的规则体系网络通信同样拥有属于自己的语法。当前应用最广泛的网络规则被划分为7 个不同的层次这套分层规则就是OSI 模型。尽管业界还有其他模型存在OSI 模型因成为事实标准而最为普及。从 DevOps 视角看这一点尤为重要Day 212022/tr/Days/day21.md反复强调网络设备交换机、路由器、防火墙只有被当作基础设施即代码IaC来管理、测试、版本控制与自动化部署才不会成为整体交付链上的瓶颈而要做到这一点前提就是先扎实理解这些设备工作在哪一层、数据如何在层间流转。OSI 模型正是理解这一切的通用坐标系。OSI 模型入门7 层抽象框架OSI 模型Open Systems Interconnection Model开放系统互联模型是一个用于描述网络系统功能的框架。它把计算机的通信功能划分为一组通用规则与要求从而支持不同厂商产品与软件之间的互操作性。在 OSI 参考模型中计算机系统之间的通信被拆分为 7 个不同的抽象层层号层名英文核心职责7UygulamaApplication应用层为应用程序提供网络服务6SunumPresentation表示层数据格式化、加密与语法转换5OturumSession会话层建立、管理与终止会话4TaşımaTransport传输层服务到服务Service to Service的交付引入端口3AğNetwork网络层端到端End to End交付引入 IP 地址2Veri BağlantıData Link数据链路层节点到节点Hop to Hop交付引入 MAC 地址1FizikselPhysical物理层通过物理介质传输原始比特流接下来逐一深入每一层。第 1 层物理层Physical Layer——比特流的物理承载物理层是 OSI 模型中的第 1 层其使命非常纯粹让数据能够通过某种物理手段从一台主机到达另一台主机。这里的物理手段既包括网线双绞线、光纤等有线介质也包括 Wi-Fi 等无线介质。本层不关心数据内容只负责把上一层的0 和 1以电信号、光信号或无线电波的形式发送到介质上。在本层我们还会看到一些偏传统的硬件设备例如Hub集线器和Repeater中继器它们的作用就是帮助把数据从一台主机中继到另一台主机弥补信号衰减。第 2 层数据链路层Data Link Layer——节点到节点的成帧传输数据链路层是第 2 层实现节点到节点node to node的传输数据在此被封装为帧frame。同时本层还提供一定程度的差错纠正能力以补偿物理层传输过程中可能引入的错误。更重要的是MACMedia Access Control地址在本层首次登场。MAC 地址是设备网卡的物理地址具有本地链路唯一性交换机正是依据 MAC 地址表把帧精确转发给目标端口。这也正是 Day 21 中提到的Switch交换机主要工作的层次——交换机工作在数据链路层负责同一网络内部主机之间的帧转发。原文档2022/tr/Days/day22.md明确呼应了 Day 21 的内容Gun 21 中定义的交换机大多工作在这一层。第 3 层网络层Network Layer——端到端的 IP 寻址网络层是第 3 层目标是端到端end to end交付。与 Day 21 呼应IP 地址正是在本层出现每个主机拥有一个在网络范围内唯一的 IP 地址用于在整个互联网路径上标识源主机与目标主机。路由器Router与主机Host都位于第 3 层。路由器的核心能力是在多个网络之间进行路由——它维护路由表知道如何到达它所连接的各个网络只要一个设备拥有 IP 地址就可以被视作第 3 层设备。值得一提的是Day 21 文档还澄清了一个常见误区家用路由器实际是路由器 交换机 接入点 调制解调器的组合体而这里讨论的是纯粹执行路由功能的设备。为什么第 2 层和第 3 层需要两套寻址方案MAC vs IP一个自然而然的问题是既然有了 IP 地址为什么还要 MAC 地址原因在于两者服务的交付目标完全不同IP 地址第 3 层 端到端End to End交付IP 地址会跟随数据包一路同行直到抵达最终目标主机为止途中跨越多少跳hop都不改变。MAC 地址第 2 层 逐跳Hop to Hop交付MAC 地址只负责主机到交换机/路由器这一段每经过一跳帧中的源/目的 MAC 地址都会被改写MAC 只关心当前这一跳的物理转发。设想数据从主机 A 到主机 B 的旅程两台主机各有一个 IP 地址但它们之间隔着多台交换机和路由器而每一台中间设备都有自己的第 2 层 MAC 地址。IP 负责整体路线MAC 负责每一段接力两者分工互补缺一不可。原文档还预告了一个后续会详述、但 Day 22 不展开的协议ARPAddress Resolution Protocol地址解析协议——它正是把第 3 层 IP 地址与第 2 层 MAC 地址关联起来的桥梁。该协议在 Day 232022/tr/Days/day23.md中作为网络协议专题之首展开讲解其本质是把 IP 地址映射到同一二层网络上的物理 MAC 地址对应 RFC 826 标准。IP 地址第 3 层 端到端交付MAC 地址第 2 层 逐跳交付。ARP 协议负责连接这两套寻址方案。第 4 层传输层Transport Layer——服务到服务的端口寻址传输层是第 4 层职责是服务到服务Service to Service交付用于区分不同的数据流data streams。就像第 3 层有 IP 寻址、第 2 层有 MAC 寻址一样第 4 层的寻址方案是端口Port。端口让一台主机上同时运行的多个应用如 Web 服务、邮件服务、SSH能够各取所需数据到达主机后依靠目的端口号被准确投递给对应的应用程序。传输层最常见的两大协议就是TCP面向连接、可靠与UDP无连接、尽力而为二者将在后续协议专题中深入讨论。第 5/6/7 层会话、表示与应用层——边界逐渐模糊的上三层第 5 层Oturum会话层、第 6 层Sunum表示层与第 7 层Uygulama应用层之间的界限在现实中已经变得相当模糊。原文档建议参考 TCP/IP 模型以获得更贴合现代互联网的理解——在 TCP/IP 模型常称为 4 层或 5 层模型中会话、表示、应用三层常被合并为单一的应用层。理解 5/6/7 层的现实意义在于我们日常接触的大多数应用协议HTTP/HTTPS、DNS、DHCP、FTP、SMTP、SSH 等都被归入高层范畴它们依赖下层的传输、网络与链路服务完成实际数据传输。Day 23 的网络协议专题正是从高层视角逐个展开这些协议。核心实战封装Encapsulation——数据是如何逐层穿上外衣的理解 7 层模型的最好方式是完整跟踪一次数据发送的旅程。假设源主机上的某个应用产生了一批要发送给另一台主机的数据源主机将经历所谓的封装encapsulation过程——数据从第 7 层一路向下每一层都会为数据追加一个属于自己的头部header。第 1 步第 4 层为数据添加端口头 → 形成段Segment数据首先被交给第 4 层。传输层为这份数据添加一个头部以达成其服务到服务交付的目标该头部包含源端口source port和目的端口destination port使用的端口协议为 TCP 或 UDP。数据 端口头被称为段Segment。第 2 步第 3 层为段添加 IP 头 → 形成包Packet段随后沿 OSI 栈下传至第 3 层网络层。网络层为数据再添加一个头部以达成端到端交付的目标头部中包含源 IP 地址和目的 IP 地址。头部 数据被称为包Packet。第 3 步第 2 层为包添加 MAC 头 → 形成帧Frame第 3 层将包交给第 2 层数据链路层。数据链路层再次为数据添加头部以达成逐跳交付的目标该头部包含源 MAC 地址和目的 MAC 地址。第 2 层头部 数据被称为帧Frame。第 4 步第 1 层把帧转换为比特流发送帧最终被转换成一串 0 和 1通过第 1 层的物理介质网线或 Wi-Fi 无线链路发送到网络中。整个封装过程可以用一张图串起来从数据 → 段Segment→ 包Packet→ 帧Frame→ 比特流每一层的命名都对应着该层头部 数据的组合理解这套命名是阅读网络抓包如 Wireshark与排障的基础。接收端解封装De-encapsulation——逐层脱掉外衣数据被发送到目标地址后接收过程基本是上述流程的逆过程比特流到达接收主机的物理层随后依次向上穿过数据链路层、网络层、传输层最后到达会话/应用层每一层都剥离并检查属于自己的头部最终把原始数据交给目标应用。仓库佐证封装与寻址在真实网络脚本中的落点上述IP 负责端到端、MAC 负责逐跳的分工并非只停留在理论上——在 90DaysOfDevOps 仓库的网络实战目录2022/Days/Networking中有一组基于 Netmiko 与 Paramiko 的真实设备管理脚本可以佐证这套分层寻址在 netmiko_con_multi.py 中一台路由器R1192.168.169.115与四台交换机SW1~SW4192.168.169.178/193/125/197各自通过第 3 层 IP 地址被唯一定位脚本用ConnectHandler逐一建立 SSH 会话并执行show ip int brief——这正体现了拥有 IP 即可视为第 3 层设备的论断在 netmiko_con_multi_vlan.py 中脚本对四台交换机执行show int trunk观察的是交换机之间第 2 层 VLAN 中继链路的状态——这正是数据链路层成帧、逐跳转发的工作范畴目录中的 backup.py、netmiko_sendchange.py、paramiko_show.py 等脚本则从网络即代码的角度演示了如何批量备份与变更配置——呼应 Day 21 提出的 NetDevOps 自动化理念。透过这些脚本可以看到管理面第 3 层 IP与数据面第 2 层 MAC 逐跳转发在同一套基础设施中共存OSI 模型的分层正是理解这些真实设备行为的关键。小结与下一步Day 22 的核心收获可浓缩为三点OSI 模型把网络通信划分为 7 个抽象层从物理层到应用层逐级分工是实现多厂商互操作性的通用标准框架两套寻址方案各司其职IP 地址第 3 层负责端到端交付MAC 地址第 2 层负责逐跳交付二者由 ARP 协议衔接封装与解封装是数据通信的实际机制数据下行时逐层加头Segment → Packet → Frame → 比特流接收端上行时逐层拆头还原。下一课 Day 232022/tr/Days/day23.md将进入网络协议专题逐个剖析 ARP、FTP、SMTP、HTTP、SSL/TLS、HTTPS、DNS、DHCP 等协议并顺带讲解子网划分Subnetting——届时你会看到它们分别落在 OSI 模型的哪些层上。参考资源Networking Fundamentals 系列OSI 模型实战视角第 1/2/3 层 与 第 4/5 层 两个视频Computer Networking 完整课程后续章节Day 23 网络协议、Day 24赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 网络篇OSI 模型七层详解与数据封装全流程Day 2290DaysOfDevOps 网络篇OSI 模型七层详解与数据封装全流程Day 22 本文是 90DaysOfDevOps 2022 网络章节Day 2文档/教程90DaysOfDevOps 网络基础系列Day 22OSI 七层模型——从物理比特到应用数据的层次化封装90DaysOfDevOps 网络基础系列Day 22OSI 七层模型——从物理比特到应用数据的层次化封装 90DaysOfDevOps 在进入网络主题的文档/教程90DaysOfDevOps 网络篇OSI 七层模型与数据封装/解封装全解析Day 2290DaysOfDevOps 网络篇OSI 七层模型与数据封装/解封装全解析Day 22 本篇技术指南围绕 90DaysOfDevOps 2022 网络章文档/教程上一篇Lance v2 存储格式三条设计线40 字节 footer 与 4Gi 列如何接住宽表下一篇Docker快速部署wger教程3分钟搭建你的私人健身服务器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表