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

TCP\IP标准与OSI标准

TCP/IP 模型和 OSI 模型都是用于描述网络体系结构的模型,但它们的设计理念和层次结构有所不同。TCP/IP 模型更注重实际实现,而 OSI 模型更注重抽象和标准化。

1. OSI 模型 (Open Systems Interconnection Model)

OSI 模型是一个七层模型,从下到上依次是:

物理层 (Physical Layer): 定义了网络中物理设备的特性,例如电缆类型、连接器、电压等。负责数据的物理传输。

数据链路层 (Data Link Layer): 负责在相邻节点之间可靠地传输数据帧。它包括链路访问控制(MAC地址)和错误检测机制。 常见的协议有以太网。

网络层 (Network Layer): 负责在网络之间路由数据包,确定数据包的路径。IP协议工作于此层。

传输层 (Transport Layer): 负责端到端的数据传输,提供可靠性(TCP)或非可靠性(UDP)的传输服务。TCP提供连接、排序和错误校验,UDP则提供简单的无连接服务。

会话层 (Session Layer): 负责管理两个应用程序之间的会话,例如建立、管理和终止会话。

表示层 (Presentation Layer): 负责数据的表示和转换,例如数据加密、压缩和格式转换。

应用层 (Application Layer): 提供网络应用程序使用的接口,例如HTTP、FTP、SMTP等。

2. TCP/IP 模型 (Transmission Control Protocol/Internet Protocol Model)

TCP/IP 模型是一个四层模型,从下到上依次是:

网络接口层 (Network Access Layer): 对应于OSI模型的物理层和数据链路层。负责将数据帧传输到物理网络。

网络层 (Internet Layer): 对应于OSI模型的网络层。负责数据包的路由和寻址,IP协议位于此层。

传输层 (Transport Layer): 对应于OSI模型的传输层。负责端到端的数据传输,包括TCP和UDP协议。

应用层 (Application Layer): 对应于OSI模型的会话层、表示层和应用层。包含各种网络应用程序,例如HTTP、FTP、SMTP等。

3. TCP/IP 模型与 OSI 模型的联系和区别

联系: 两者都描述了网络的层次结构,并都包含网络层和传输层。TCP/IP模型的应用层涵盖了OSI模型的会话层、表示层和应用层的功能。

区别:

层次: OSI模型有七层,TCP/IP模型只有四层。
设计理念: OSI模型更注重标准化和抽象,而TCP/IP模型更注重实际应用和实现。TCP/IP模型是自底向上发展起来的,而OSI模型是自顶向下设计的。
层的功能: 一些层的对应关系并不完全一致,例如TCP/IP模型的网络接口层融合了OSI模型的物理层和数据链路层的功能。OSI模型的会话层和表示层在TCP/IP模型中没有明确的对应层,其功能通常由应用层或传输层部分承担。
4. 各层协议示例

为了更好地理解,我们列举一些常见协议及其所在的层:
在这里插入图片描述

相关文章:

  • Springboot项目在win系统开发部署到linux服务器出现上传文件编码问题
  • Linux下的git开篇第一文:git的意义
  • 探索基于知识图谱和 ChatGPT 结合制造服务推荐前沿
  • MyBatis 动态 SQL 使用指南
  • react 常用hooks封装--useReactive
  • 【Y004】基于springboot+vue实现的图书管理系统
  • 利用 Page Visibility API 优化网页性能与用户体验
  • babylon.js-1:入门篇
  • 活体检测标签之2.4G有源RFID--SI24R2F+
  • 计算机毕业设计 基于Python的音乐平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • SQL学习1
  • 通过fdisk初始化Linux数据盘
  • Xcode16适配
  • 机器学习(1):机器学习的概念
  • android 系统默认apn数据库
  • CAP理论的例子讲解
  • CSS盒模型深入
  • go append函数以及写入
  • Hibernate最全面试题
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • React as a UI Runtime(五、列表)
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 手机端车牌号码键盘的vue组件
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​插件化DPI在商用WIFI中的价值
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #{}和${}的区别?
  • #etcd#安装时出错
  • #git 撤消对文件的更改
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++20) consteval立即函数
  • (day6) 319. 灯泡开关
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (三)elasticsearch 源码之启动流程分析
  • ******之网络***——物理***
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .gitignore
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 服务 ServiceController
  • .net 流——流的类型体系简单介绍
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET正则基础之——正则委托
  • /bin/bash^M: bad interpreter: No such file or directory
  • @Bean, @Component, @Configuration简析
  • @JsonFormat与@DateTimeFormat注解的使用
  • [Android]一个简单使用Handler做Timer的例子
  • [C++][opencv]基于opencv实现photoshop算法可选颜色调整
  • [C++]拼图游戏
  • [C++初阶]list的模拟实现
  • [CISCN2019 华东南赛区]Web11