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

详谈OSI七层模型和TCP/IP四层模型以及tcp与udp为什么是4层,http与https为什么是7层

一、网络模型:OSI七层 vs TCP/IP四层

    OSI七层模型 (理论参考模型):

        目的:提供一个标准化的理论框架,用于理解网络通信过程和各层的功能划分,促进不同厂商设备的互操作性。它是一个理想化的模型。

        分层 (从下到上):

  •  物理层:传输原始比特流 (光、电信号),定义物理接口特性。
  •  数据链路层:在直接相连的节点间可靠传输数据帧 (Frame),处理物理寻址 (MAC地址)、错误检测。
  •  网络层:负责跨网络的数据包 (Packet) 路由和寻址 (IP地址),实现主机到主机的通信。
  •  传输层:提供端到端 (进程到进程) 的可靠或不可靠数据传输服务 (TCP/UDP),处理分段、流量控制、错误恢复。
  •  会话层:管理、建立、维护和终止应用会话。
  •  表示层:处理数据的表示格式,如加密/解密、压缩/解压缩、字符编码转换。
  •   应用层:为应用程序提供网络服务接口 (HTTP, FTP, SMTP, DNS等)。

    TCP/IP四层模型 (实际应用模型):

        目的:描述互联网实际运行所依赖的核心协议栈。它是OSI模型的简化、实用化版本。

        分层 (从下到上):

  •  网络接口层:对应OSI的物理层和数据链路层。负责在本地链路上发送和接收数据帧 (如以太网、Wi-Fi)。
  •  网际层:对应OSI的网络层。核心协议是IP协议,负责主机到主机的逻辑寻址 (IP地址) 和路由。
  •  传输层:对应OSI的传输层。核心协议是TCP和UDP,负责端到端 (应用进程到应用进程) 的通信。
  •  应用层:对应OSI的会话层、表示层和应用层。包含了所有高层协议和应用 (HTTP, HTTPS, FTP, SSH, SMTP, DNS, Telnet等)。

关键区别总结

OSI七层模型TCP/IP四层模型
目的理论参考模型,标准化框架实际实现模型,描述互联网核心协议
分层7层 (物理、数据链路、网络、传输、会话、表示、应用)4层 (网络接口、网际、传输、应用)
对应关系---网络接口层 ≈ OSI物理+数据链路层
网际层 ≈ OSI网络层
传输层 ≈ OSI传输层
应用层 ≈ OSI会话+表示+应用层
实用性主要作为学习和设计参考是互联网实际运行的基础
核心协议无具体协议绑定明确绑定IP, TCP, UDP, HTTP等核心协议

二、为什么TCP和UDP是传输层(四层)协议?

    核心功能定位:

        TCP和UDP的核心职责是解决“端到端”(End-to-End) 的通信问题,即运行在不同主机上的应用程序进程之间如何可靠地或高效地传输数据。

        它们建立在网络层(IP层) 提供的“主机到主机”通信能力之上。IP层负责把数据包从源主机送到目的主机,但不关心主机上哪个应用程序接收数据。

        TCP/UDP通过端口号(Port) 来标识主机上的特定应用程序进程,从而实现了进程到进程的通信。

    提供的关键服务:

        连接管理: TCP提供面向连接的、可靠的通信 (建立连接、确认、重传、流量控制、拥塞控制)。UDP提供无连接的、尽最大努力交付的通信。

        数据分段与重组: 将应用层下传的大块数据分割成适合网络层传输的大小 (Segment),并在接收端重组。

        错误检测: 提供校验和机制检测传输过程中数据的损坏 (TCP/UDP头都有校验和字段)。

    在TCP/IP模型中的位置:

        它们直接位于网际层(IP层)之上,为应用层的各种协议提供服务。应用层协议(如HTTP、FTP、DNS)明确指定使用TCP还是UDP作为其传输载体。

        在TCP/IP四层模型中,它们位于第三层:传输层。

        在OSI七层模型中,它们位于第四层:传输层。

总结: TCP/UDP的核心职责是管理运行在不同主机上的应用程序进程之间的数据传输,这一定位清晰地划分在传输层。

三、为什么HTTP和HTTPS是应用层(七层)协议?

    核心功能定位:

        HTTP和HTTPS定义了特定应用程序 (主要是Web浏览器和Web服务器) 之间交换信息的语义和语法。它们关注的是数据的内容和交互逻辑。

        HTTP定义了客户端如何请求资源 (如网页、图片),服务器如何响应请求 (状态码、返回资源内容),以及请求/响应的格式 (方法GET/POST、URL、Headers、Body)。

        HTTPS在HTTP的基础上增加了安全层 (通常由TLS/SSL协议实现),提供加密、身份认证和数据完整性保护。

    依赖下层服务:

        HTTP/HTTPS本身不关心数据如何在网络中传输、路由或保证可靠性。它们将这些任务完全委托给传输层协议 (通常是TCP)。

        HTTP/HTTPS协议报文 (请求和响应) 是作为TCP连接上传输的应用层数据存在的。TCP负责将这些数据可靠地、有序地从浏览器进程传输到Web服务器进程(或反之)。

    在模型中的位置:

        TCP/IP模型: 它们位于最顶层:应用层。它们利用传输层(TCP)提供的服务来实现Web应用的功能。

        OSI模型:

            HTTP: 主要属于应用层(第7层),因为它定义了应用级的交互。但其Header信息也涉及一些表示层(如字符编码Content-Type)和会话层(如Cookie管理会话状态)的功能。

            HTTPS: 更加复杂。

                HTTP部分:仍属于应用层。

                TLS/SSL部分:主要工作在表示层(第6层),负责会话建立时的握手协商、加密算法协商、密钥交换、数据加密/解密、数据完整性校验。它也涉及会话层(管理安全会话)。最终,加密后的HTTP数据仍然通过TCP传输。

总结: HTTP/HTTPS定义了Web应用程序做什么和怎么做 (请求什么资源、如何响应、如何保证安全),这些是最高层次的、面向具体应用的逻辑。它们直接为最终用户或应用程序提供服务,并依赖于下层的传输层(TCP)来处理数据传输的细节,因此属于应用层协议。

四、关键结论

    分层思想的核心: 每一层利用下一层提供的服务,并为上一层提供服务。下层关注“如何传输”,上层关注“传输什么”和“为什么传输”。

    TCP/UDP (传输层): 解决进程到进程的通信问题(用端口号标识),提供可靠性(TCP)或效率(UDP)。位于OSI第4层 / TCP/IP第3层。

    HTTP/HTTPS (应用层): 定义特定应用程序(Web) 的交互规则和数据格式。它们依赖传输层(TCP)来传输数据。HTTPS的安全功能(TLS/SSL)主要在OSI的表示层实现。位于OSI最高层(第7层为主) / TCP/IP最高层(第4层)。

    模型对应: TCP/IP的应用层 ≈ OSI的会话层+表示层+应用层。TCP/IP的传输层 ≈ OSI的传输层。因此说HTTP/HTTPS在TCP/IP是4层(应用层),在OSI是7层(应用层),本质上是同一层级(最高层)在不同模型中的名称差异。

http://www.dtcms.com/a/297646.html

相关文章:

  • SQL 查询与自定义管理工具设计:释放数据底层价值
  • linux C — udp,tcp通信
  • Docker技术入门与实战(附电子书资料)
  • 第七章 愿景10 小杨的立项课
  • 【Practical Business English Oral Scene Interpretation】入职面试No.8~9
  • [NLP]UPF+RTL联合仿真的VCS命令及UPF-aware 波形工具的使用
  • 练习实践-基础设施-文件共享-windows和linux之间的文件共享-smb服务搭建
  • 开发笔记 | 优化对话管理器脚本与对话语音的实现
  • Day 21: 常见的降维算法
  • 5G基站信号加速器!AD8021ARZ-REEL7亚德诺 超低噪声高速电压放大器 专利失真消除技术!
  • Web前端:JavaScript Math对象应用 随机背景颜色生成器
  • 【STM32项目】智能家居(版本1)
  • 关于“PromptPilot”
  • 详解:YOLO 系列演进趋势
  • 计算机网络(第八版)— 第2章课后习题参考答案
  • day 35打卡
  • 图像梯度处理与边缘检测
  • Firefox 国际版关于标签页的一些常用设置
  • 电商数据采集API与爬虫技术结合的全网比价方案
  • 【Java、C、C++、Python】飞机订票系统---文件版本
  • 北斗短报文兜底、5G-A增强:AORO P1100三防平板构建应急通信网络
  • 【Agent】API Reference Manual(API 参考手册)
  • Elasticsearch-ik分析器
  • 【硬件】LT3763中文手册
  • 深入解析MongoDB分片原理与运维实践指南
  • 怎么放大单片机输出电流
  • k8s-MongoDB 副本集部署
  • vue2+node+express+MongoDB项目安装启动启动
  • pytest 测试报告生成方案有哪些?
  • Springboot整合springmvc