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

ops/2025/1/12 10:33:46/

关于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.ppmy.cn/ops/149120.html

相关文章

excel前缀和(递增求和)

方法一:https://www.zhihu.com/zvideo/1382164996659515392?utm_id0 假设输入数据在B2:B10,选中单元格C2,输入SUM(B2:B2,然后选中其中的B2,按F4(或者直接输入SUM(B$2:B2),回车确认&…

Elasticsearch复习笔记

ElasticSearch 倒排索引 keyword id (倒排索引) name 1001 zhang 1002 基础操作 索引操作 创建索引 index就是等于database (索引)发送put请求 (不能使用功能post)/shoping 就是创建索引 获取索引详细…

常用字符串处理函数

常用字符串处理函数 strcspn函数原型参数说明返回值使用示例注意事项 strpbrk函数原型参数说明返回值使用示例 strcasecmp函数原型参数说明返回值使用示例注意事项 strcspn strcspn 是一个 C 和 C 标准库函数,用于计算一个字符串中不包含任何指定字符的最长前缀的长…

[读书日志]从零开始学习Chisel 第五篇:Scala面向对象编程——类继承(敏捷硬件开发语言Chisel与数字系统设计)

3.3类继承 3.3.1Scala中的类继承 为了节省代码量和反映实际各种类之间的联系,通常采取两种策略,包含和继承。包含是说明一个类中包含另一个类的对象,但两者之间没有必然联系。继承是从一个宽泛的类派生出更具体的类的过程, 被继…

Django管理后台实现ECS服务管理:权限控制与重启功能

1. 引言 在现代Web应用开发中,管理ECS(Elastic Container Service)服务是一项常见且重要的运维任务。本文将详细介绍如何在Django管理后台中创建一个自定义的ECS服务管理界面,实现精细的权限控制和服务重启功能。我们将特别关注如何根据用户角色和服务特性来限制操作权限,…

西门子1200 ModbusTCP通信(服务器)

一、创建项目并设置PLC参数 二、添加数据块和参数 相关参数设置如下: 参数说明InterfaceId网口硬件标识符,对于本体网口为 64,即16#40。ID连接 ID,取值范围 1~4095Connection Type连接类型。TCP 连接默认为:16#0BAct…

单例模式5种写法

单例模式是设计模式中最简单的一种,其目的是确保一个类只有一个实例,并提供一个全局访问点。以下是单例模式的五种常见写法: ### 一、懒汉式(线程不安全) java public class Singleton { private static Singlet…

[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)

3.4特质 3.4.1什么是特质 特质使用trait开头,它与单例对象很像,两者都不能有输入参数,但单例对象是具体的,特质是抽象的。两者都不能用new实例化,类,单例对象,特质三者内部都可以包含字段和方…