计算机网络体系结构详解:协议与分层

在学习计算机网络时,理解网络协议与分层体系结构是至关重要的。本文将详细介绍这些概念,帮助基础小白快速入门。

1. 什么是网络协议

网络协议是计算机网络中用于数据交换的规则和标准。这些规则规定了数据格式时序以及发送和接收数据时的动作。网络协议主要由以下三要素组成:

  • 语法:数据与控制信息的结构或格式。例如,地址字段的长度及其位置。
  • 语义:各个控制信息的具体含义,包括需要执行的动作和响应。
  • 同步:事件实现的顺序和时间,包括数据发送的时机和速率。

举例说明

在我们的日常生活中也存在类似的协议。例如,在邮政系统中,信封的书写规范就是一种协议,规定了收信人和发信人的地址、姓名、邮政编码的书写要求。协议不仅存在于网络中,也在我们的生活中无处不在

20205244130)

在计算机网络中,任何一个通信任务都需要由多个通信实体协作完成,因此,网络协议是计算机网络不可缺少的组成部分。实际上,只要我们想让连接在网络上的另一台计算机做点什么事情(例如,从网络上的某个主机下载文件),就需要有协议。

协议必须在计算机上或通信设备中用硬件或软件来实现,有时人们将实现某种协议的软件也简称为协议。我们经常会听到有人说在计算机上安装某协议,注意,这里的协议指的是协议软件,即实现该协议的软件。

2. 计算机网络的分层体系结构

分层体系结构是将网络系统分为多个模块或子系统,方便处理和设计。这样可以将注意力集中在某个特定部分,更好地理解和管理复杂系统。常见的分层体系结构有OSI七层模型TCP/IP四层模型

在这里插入图片描述

2.1 OSI七层模型

OSI模型是一个七层协议体系结构,每一层都有特定的功能:

  1. 物理层传输比特流,考虑传输媒体的类型。物理层负责实际的物理连接,通过电缆、光纤或无线电波传输二进制数据。
  2. 数据链路层:在相邻结点之间传送帧。数据链路层确保数据在物理层上传输时不发生错误,并提供帧的同步、流量控制和错误检测
  3. 网络层:负责分组交换网上的不同主机提供通信服务。网络层选择路径,并通过路由器转发数据包
  4. 传输层:为应用进程之间提供通用的数据传输服务。传输层提供端到端的通信服务,确保数据包的有序和可靠传输。
  5. 会话层:管理会话,实现数据的顺序传输。会话层负责建立、管理和终止应用程序之间的会话
  6. 表示层数据格式和加密解密处理。表示层负责数据格式的转换、加密、解密和压缩。
  7. 应用层:为应用进程提供服务。应用层提供网络服务和应用程序的接口,如电子邮件、文件传输和远程登录。

2.2 TCP/IP四层模型

TCP/IP模型是一个四层协议体系结构,包含:

  1. 网络接口层:处理与传输媒体的接口。网络接口层负责数据链路层和物理层的功能,处理硬件设备和介质访问。
  2. 网际层:负责路由选择和数据包的传输。网际层主要协议是IP,负责数据包的寻址和路由选择。
  3. 传输层:提供可靠的数据传输服务(如TCP)和无连接的传输服务(如UDP)。传输层提供端到端的通信服务,确保数据包的有序和可靠传输。
  4. 应用层:支持各种网络应用(如HTTP、SMTP、FTP)。应用层为用户提供接口,支持各种网络应用和服务。

2.3 五层协议体系结构

为了简化学习,常用的五层协议体系结构综合了上述两种模型的优点:

  1. 应用层:提供网络应用服务。应用层协议定义了应用进程间的通信规则,如HTTP、SMTP、FTP等。
  2. 传输层:提供通用的数据传输服务。传输层协议如TCP和UDP,确保数据在网络中可靠传输。
  3. 网络层路由选择和数据传输。网络层负责将数据包从源地址传送到目的地址,主要协议是IP。
  4. 数据链路层:管理相邻结点之间的帧传输。数据链路层协议如以太网协议,确保数据在物理层上传输时不发生错误。
  5. 物理层传输比特流。物理层负责将数据转换为电信号、光信号或无线信号,通过传输介质进行传播。

在这里插入图片描述

3. 协议、服务与分层的关系

在网络体系结构中,协议定义了对等实体间的通信规则,服务则是由下层向上层通过接口提供的功能。分层设计的优点包括:

  • 各层独立:某一层的实现不影响其他层。每一层只需关心自己的任务,不需要了解其他层的实现细节。
  • 灵活性好:技术变化时,只需修改相关层,不影响整体。例如,网络层的路由算法变化不会影响传输层和应用层。
  • 易于实现和维护:将复杂系统分解为相对独立的子系统。每一层可以独立开发和调试,简化了系统的实现和维护。
  • 促进标准化:标准化有利于不同系统的互连和通信。各层功能定义明确,便于制定标准和实现互操作性。

举例说明

在TCP/IP模型中,应用层的HTTP协议定义了浏览器与服务器之间的通信规则,而传输层的TCP协议则保证数据可靠传输。这种分层设计使得每一层只需关注自己的任务,简化了系统的实现和维护。

4. OSI模型与TCP/IP模型的比较

OSI模型的优点

  • 标准化了路由器、交换机、主板等硬件。
  • 降低复杂性,促进模块化工程。
  • 确保技术间的互操作性。
  • 允许协议替换,支持连接式和无连接式服务。

OSI模型的缺点

  • 协议适配复杂。
  • 仅用作参考模型,未定义具体协议。
  • 层间重复服务,不允许层并行工作。

TCP/IP模型的优点

  • 协议适配复杂。
  • 仅用作参考模型,未定义具体协议。
  • 层间重复服务,不允许层并行工作。

TCP/IP模型的缺点

  • 设置和管理复杂。
  • 传输层不保证数据包传递。
  • 替换协议困难。
  • 无明确的服务、接口和协议分离。

5. 五层协议体系结构的详细介绍

在这里插入图片描述

5.1 应用层

应用层是原理体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则。不同的网络应用需要不同的应用层协议。互联网中的应用层协议很多,比如支持万维网应用的HTTP、支持电子邮件的SMTP,支持文件传送的FTP等。我们将应用层交互的数据单元称为报文(Message)。

5.2 运输层

运输层的任务是向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付上面应用层中的相应进程。

互联网中主要有以下两个运输层协议:

  1. 传输控制协议(TCP) :提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。
  2. 用户数据报协议(UDP) :提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。

5.3 网络层

网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP,因此分组也叫作IP数据报,或直接称为IP分组。

网络层的一个重要任务是选择合适的路由(Route) ,将源主机运输层所传下来的分组,通过网络中的路由器的转发,最后送达目的主机。

5.4 数据链路层

数据链路层常简称为链路层。计算机网络由主机、路由器和连接它们的链路组成,从源主机发送到目的主机的分组必须在一段一段的链路上传送。数据链路层的任务是将分组从链路的一端传送到另一端。我们将数据链路层传送的数据单元称为帧(Frame) 。因此数据链路层的任务是确保数据在相邻结点之间传输的可靠性。

5.5 物理层

物理层是原理体系结构的最底层,完成计算机网络中最基础的任务,即在传输媒体上传送比特流,将数据链路层帧中的每个比特从一个结点通过传输媒体传送到下一个结点。物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要考虑所采用的传输媒体的类型,如双绞线、同轴电缆、光缆等。

6. 实体、协议和服务

当研究开放系统中的信息交换时,我们往往使用实体(Entity) 这一较为抽象的名词来表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。

协议是控制两个对等实体(或多个实体)进行通信的规则的集合其次,协议是“水平的”,即协议是控制对等实体之间通信的规则;但服务是“垂直 的”,即服务是由下层向上层通过层间接口提供的。 协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则定义了发送者或接收者所要完成的操作,例如,在何种条件下数据必须重传或丢弃。

在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

7. TCP/IP体系结构

在互联网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示互联网所使用的整个TCP/IP协议簇,互联网的体系结构也被称为TCP/IP体系结构。

图1—19用另一种方法来表示TCP/IP协议簇,它的特点是上下两头大而中间小:应用层和网络接口层都有多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个协议中。这种沙漏计时器形状的TCP/IP协议簇表明,TCP/IP可以为各式各样的应用提供服务,同时TCP/IP也允许IP在各式各样的网络构成的互联网上运行。正因为如此,互联网才会发展到今天的全球规模。从图中不难看出IP在互联网中的核心作用。

在这里插入图片描述

结论

通过理解网络协议和分层体系结构,可以更好地掌握计算机网络的基本概念。这些知识不仅有助于优化网络性能,还能提升数据传输的效率和可靠性。希望这篇详细的文章能帮助基础小白快速入门计算机网络。


希望这篇文章对你有所帮助!如果你觉得有用,请点赞、收藏并分享给更多人。💡
图文来源:《计算机网络教程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/370029.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全新桌面编辑器

目录 前言 一、链接 ONLYOFFICE 8.1版本 官网下载链接: ONLYOFFICE 在线工具: 下载版本推荐: 二、使用体验 1. 界面设计: 2. 文档编辑功能: 3. 电子表格功能: 4. 演示文稿功能: 5.PDF编…

面向对象案例:电影院

TOC 思路 代码 结构 具体代码 Movie.java public class Movie {//一共七个private int id;private String name;private double price;private double score;private String director;private String actors;private String info;//get和setpublic int getId() {return id;…

【qt】如何获取网卡的信息?

网卡不只一种,有有线的,有无线的等等 我们用QNetworkInterface类的静态函数allInterfaces() 来获取所有的网卡 返回的是一个网卡的容器. 然后我们对每个网卡来获取其设备名称和硬件地址 可以通过静态函数humanReadableName() 来获取设备名称 可以通过静态函数**hardwareAddre…

在centos7上部署mysql8.0

1.安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。查看是否安装mariadb rpm -qa | grep mariadb 2. 卸载mariadb rpm -e --nodeps 查看到的文件名 3.下载MySQL安装包 MySQL官网下载地址: MySQL :: Download MySQL Community Serverhttps://dev.mys…

【React Hooks原理 - useCallback、useMemo】

介绍 在实际项目中,useCallback、useMemo这两个Hooks想必会很常见,可能我们会处于性能考虑避免组件重复刷新而使用类似useCallback、useMemo来进行缓存。接下来我们会从源码和使用的角度来聊聊这两个hooks。【源码地址】 为什么要有这两个Hooks 在开始…

STM32 看门狗 HAL

由时钟图可以看出看门狗采用的是内部低速时钟,频率为40KHz 打开看门狗,采用32分频,计数1250。 结合设置的分频系数和重载计数值,我们可以计算出看门狗的定时时间: 32*1250/40kHz 1s 主函数中喂狗就行 HAL_IWDG_Ref…

SQL使用join查询方式找出没有分类的电影id以及名称

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 现有电影信息…

第一次作业

作业1 1.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&…

vue require引入静态文件报错

如果是通过向后端发送请求&#xff0c;动态的获取对应的文件数据流很容易做到文件的显示和加载。现在研究&#xff0c;一些不存放在后端而直接存放在vue前端项目中的静态媒体文件如何加载。 通常情况下&#xff0c;vue项目的图片jpg&#xff0c;png等都可以直接在/ass…

Android --- 新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死,鼠标和键盘都操作不了

新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死&#xff0c;鼠标和键盘都操作不了 大概原因就是,初始化默认Google的安卓模拟器占用的RAM内存是2048&#xff0c;如果电脑的性能和内存一般的话就可能卡死&#xff0c;解决方案是手动修改安卓模拟器的config文件&…

大数据期末复习——hadoop、hive等基础知识

一、题型分析 1、Hadoop环境搭建 2、hadoop的三大组件 HDFS&#xff1a;NameNode&#xff0c;DataNode&#xff0c;SecondaryNameNode YARN&#xff1a;ResourceManager&#xff0c;NodeManager &#xff08;Yarn的工作原理&#xff09; MapReduce&#xff1a;Map&#xff0…

机器学习 C++ 的opencv实现SVM图像二分类的训练 (二)【附源码】

本节讲机器学习 C 的opencv实现SVM图像二分类的训练&#xff0c;下节讲测试&#xff1a; 数据集合data内容如下&#xff1a; 下载地址为&#xff1a;https://download.csdn.net/download/hgaohr1021/89506900 #include <stdio.h> #include <time.h> #include…

AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x02.初识与安装 CUDA 并行计算平台和编程模型 什么是 CUDA? CUDA&#xff08;Compute Unified Device Architecture&#xff09;是英伟达&#xff08;NVIDIA&#xff09;推出的并行计算平台和编…

LLMs之gpt_academic:gpt_academic的简介、安装和使用方法、案例应用之详细攻略

LLMs之gpt_academic&#xff1a;gpt_academic的简介、安装和使用方法、案例应用之详细攻略 目录 gpt_academic的简介 1、版本更新历史 版本: 1、新增功能及其描述 新界面&#xff08;修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换&#xff09; 所…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.7 迁移学习&#xff08;Transfer learning&#xff09; 第三门课 结构化机器学习项目&#xff0…

2024年加密货币市场展望:L1、L2、LSD、Web3 和 GameFi 板块的全面分析与预测

随着区块链技术的快速发展&#xff0c;加密货币市场在2024年继续展现出蓬勃的生机和创新的潜力。本文将深入分析L1、L2、LSD、Web3和GameFi这五大板块的发展趋势和预测&#xff0c;帮助投资者和爱好者更好地理解和把握市场机遇。 一、L1&#xff1a;基础层协议的持续进化 L1&a…

基于Java中的SSM框架实现物流管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现物流管理系统演示 摘要 企业的发展离不开物流的运输&#xff0c;在一个大型的企业中&#xff0c;商品的生产和建设&#xff0c;推广只是前期的一些工作&#xff0c;在后期的商品销售和物流方面的建立&#xff0c;才能让一个企业得到大力的发展。 企业…

Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成

Java经典面试题将一个字符串数组进行分组输出&#xff0c;每组中的字符串都由相同的字符组成 题目&#xff1a; 将一个字符串数组进行分组输出&#xff0c;每组中的字符串都由相同的字符组成 举个例子&#xff1a;输入[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”] 输出…

多个tomcat同时使用 不设置CATALINA_HOME环境变量

通常一台服务器只使用一个tomcat&#xff0c;设置一个CATALINA_HOME的环境变量。但有些时候需要一台服务器启动多个tomcat&#xff0c;那就不能设置CATALINA_HOME了&#xff01;因为会串~ 我们可以在对应tomcat的startup.bat启动脚本中&#xff0c;加入对应的CATALINA_HOME。 …

Cesium与Three相机同步(3)

Cesium与Three融合的案例demo <!DOCTYPE html> <html lang"en" class"dark"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content&q…