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

关于TCP/IP五层结构的理解

关于TCP/IP五层结构的理解

TCP/IP五层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 5 层组成:

1. 应用层:应用层是体系结构中的最高层,定义了应用进程间通信和交互的规则。本层任务就是通过应用进程间的信息数据流通完成特定的网络应用(软件、Web应用等)。因为不同的应用程序都需要不同的应用层协议,所以应用层协议较多。请将应用层交互的数据称为报文,以免产生概念的混淆。 协议:**HTTP、HTTPS、FTP、**等。
 2. 运输层:运输层的任务是负责向两个计算机中进程之间的通信提供一种通用的数据传输服务,应用层通过运输层可以传输报文。通用是指不会针对特定的应用层协议进行详细的划分,多种应用层协议公用同一个运输层服务,所以运输层有复用的功能。当然也有分发的功能,指将接受到的信息分别交付到应用层不同的进程中。 协议:UDP、TCP。
 3. 网络层:网络层的任务是负责为网络上不同的主机提供通信服务。在发送数据时,网络层将运输层产生的报文段或者用户数据报封装成分组或者包(packet)进行传送。由于网络层使用IP协议,所以分组或包(packet)也叫IP数据报。网络层还需要寻找合适的路由路线,让源主机运输层发送下来的数据报能通过路由器找到目的主机。 协议:IP(IPv4、IPv6)、ARP 。
 4. 数据链路层:两个节点传输数据时,链路层将网络层交下来的数据报组装成帧,在链路上传送帧。每一帧都包括数据和控制信息(同步信息、地址信息、差错控制等)。
 5. 物理层:物理层上数据的单位是Bit比特,数据的传输都是通过0(或1)比特流来实现的,而0(或1)比特流与电压的高低有关。

总是记不住5层模型的功能。特意写了这篇博客帮助理解。

理解5层模型就必须有这样的认知,计算机发展历史的认知。计算机发展是从一台计算机到两台计算机再到多台计算机,再到应用程序不断丰富的过程。

  • 当一台计算机时是不需要进行数据通信的,所以不存在通信模型

  • 当两台计算机时,这时只有物理层和数据链路层。所以只需要把数据转成比特,然后封装成帧再物理层传输就行。不需要进行路由,因为就两台计算机,也不需要进行可靠或不可靠的保证,两台计算机,收不到直接重发就行。也没有什么各类各样的应用,就更别提应用层了。

  • 这时,计算机发展越来越好了,计算机越来越多了,两台计算机中通信,会存在多条路径了。如下图所示。那么怎么选择这些路径了,有哪些路径是能通过的呢,这个时候就需要路由了,需要路由来找到通信路径。于是对帧再包上一层数据,增加了路由信息。也就是网络层出现了。网络层就是选择通信网络路线的层级。

在这里插入图片描述

  • 但是,这时又发现,比如PC 1到PC 5会找到多条路径,就像平时开车一样,有的路快有的路慢,甚至有些路直接封路、堵塞,而且不同路的通信速度可能随时变换,那么怎么确保这些消息能顺利到达PC5,并且顺序是对的呢?这时就出现了TCP和UDP协议,保证数据是否一定能传输到目的主机。也就出现了运输层。运输层就是是否保证数据可靠运输到目的地的层级。

  • 最后,随着发展,出现了不同的应用,软件应用、web应用等,不同的应用程序有不同的需求和特性,各自需要使用最适合的协议。例如,文件传输协议、即时通讯协议、Web 协议等。


http://www.kler.cn/a/501426.html

相关文章:

  • 缩放 对内外参的影响
  • 如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦
  • 为AI聊天工具添加一个知识系统 之26 资源存储库和资源管理器
  • 腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏
  • USB学习——基本概念
  • java项目之房屋租赁系统源码(springboot+mysql+vue)
  • Python 中的错误处理与调试技巧
  • 【Elasticsearch】批量操作:优化性能
  • 海外招聘丨卡尔斯塔德大学—互联网隐私和安全副高级讲师
  • Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton)
  • 【Uniapp-Vue3】表单focus和blue事件的用法
  • VTK知识学习(33)-交互问题2
  • 基于Springboot的汽车维修预约服务系统设计与实现
  • 掌握NI-VISA与SCPI协议:用C#实现高效仪器控制
  • 原生微信小程序中使用Sass
  • 15.2 hana 修改 tenantDB中SAPHANADB用户的密码
  • 9.4 visualStudio 2022 配置 cuda 和 torch (c++)
  • UnityDemo-TheBrave-制作笔记
  • c++——类和对象(中)
  • 《零基础Go语言算法实战》【题目 2-4】一个函数中的多个值
  • Clojure语言的数据结构
  • 【微服务】面试 7、幂等性
  • 【零基础入门Go语言】struct 和 interface:Go语言是如何实现继承的?
  • 高可用虚拟IP-keepalived
  • 51单片机——I2C-EEPROM
  • 视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp