计算机网络:概述 --- 体系结构

目录

一.   体系结构总览

1.1   OSI七层协议体系结构

1.2   TCP/IP四层(或五层)模型结构

 二.   数据传输过程

2.1   同网段传输

2.2   跨网段传输

三.   体系结构相关概念

3.1   实体

3.2   协议

3.3   服务


这里我们专门来讲一下计算机网络中的体系结构。其实我们之前在Linux系列的《网络基础入门》中已经略微提及了一下(点此查看),今天在这里着重讲一下吧。这也算是比较重要的一节了,因为基本的框架都是基于这个模型构建的。所以仔细来学习一下吧!!!

一.   体系结构总览

1.1   OSI七层协议体系结构

计算机网络是一个非常复杂的系统。也由此产生了不同的网络体系结构,而为了让不同的网络体系结构的计算机网络都能互联,国际标准化组织 ISO 于 1977 年成立了专门机构的开放系统互联基本参考模型 OSI/RM,简称为 OSI

开放:非独家垄断的。

系统:在现实的系统中与互联有关的各部分。

 OSI模型是一个七层协议的体系结构。他是法律上的国际标准。虽然在20世纪80年代,很多公司都表示支持OSI,但是到了20世纪90年代初期,由于基于 TCP/IP 的互联网已经在全球相当大的范围成功运行了。所以现在很多人认可的是TCP/IP四层模型。

 • OSI七层模型 是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;

• 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚, 理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

OSI(Open Systems Interconnection)七层模型每一层具有特定的功能和职责。下面是对OSI七层模型各层的详细解释:

  • 物理层(Physical Layer):物理层是最底层的一层,它负责传输数据的物理介质,如电缆、光纤等。物理层的主要任务是转换比特流(bits)为信号,并控制传输介质的物理连接。
  • 数据链路层(Data Link Layer):数据链路层负责将物理层传输的原始数据流转换为帧(Frame),并提供可靠的点对点数据传输。它在通信实体之间建立了逻辑连接,并通过差错检测和纠正机制来保证数据的可靠性。
  • 网络层(Network Layer):网络层通过IP(Internet Protocol)地址识别不同主机和网络之间的路径选择,以实现数据包的路由和转发。它负责将数据分割为数据包,并通过寻址、路由和流量控制等机制来确保数据的正确传输。
  • 传输层(Transport Layer):传输层负责提供端到端的可靠、无差错的数据传输服务。它通过协议(如TCP、UDP)和端口号来实现进程之间的通信,并提供流量控制、拥塞控制和错误恢复等功能。
  • 会话层(Session Layer):会话层为网络中两个应用程序之间建立和维护通信会话,并管理会话的控制和同步。它提供了会话的建立、维护和终止,以及数据传输的同步点标记和恢复机制。
  • 表示层(Presentation Layer):表示层负责数据的格式化和表示,确保不同系统之间的数据能够正确解释和理解。它处理数据的加密、压缩和转换等操作,以便于应用层的交互和共享。
  • 应用层(Application Layer):应用层是最高层也是最接近用户的一层,它提供了用户与网络服务的接口。应用层包含了各种网络应用和协议,如HTTP、FTP、SMTP等,用于实现特定的网络功能和服务。

1.2   TCP/IP四层(或五层)模型结构

其实在网络角度,OSI 定的协议 7 层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是 5 层协议(物理层我们考虑的比较少,我们只考虑软件相关的内容. 因此很多时候我们直接称为TCP/IP 四层模型)。 

TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇. TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的 wifi 无线网使用 电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗 干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线 LAN 等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在 IP 协议中, 通过 IP 地址来标识一台 主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据 可靠的从源主机发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.

该模型去掉了OSI七层模型中的表示层、会话层以及物理层。

  

一般而言

• 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;

• 对于一台路由器, 它实现了从网络层到物理层;

• 对于一台交换机, 它实现了从数据链路层到物理层;

• 对于集线器, 它只实现了物理层;

 所以可以知道,在模型中越在高层的一般会兼容下层的功能。

 二.   数据传输过程

2.1   同网段传输

网络传输流程如下:

用户在主机1应用层发送消息,不能直接传递到对方主机2应用层,而是往下层经过传输层、网络层、数据链路层,在经过每层时,会在数据前方添加对应层的报头,这个过程叫封装

再通过局域网发送给对方,对方拿到有多层报头修饰的数据时,由于各主机相同层报头属性相同,那么数据会在对方主机上向上层经过数据链路层、网络层、传输层,在经过每层时,会取下对应的报头,这个过程叫做解包与分用。由此对方就拿到了用户发送的数据。

下面来明确一下概念:

  • 报头部分,就是对应协议层的结构体字段,我们一般叫做报头
  • 除了报头,剩下的叫做有效载荷
  • 故,报文 = 报头 + 有效载荷

然后,我们在明确一下不同层的完整报文的叫法:

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.

那么不同层对应的协议:

 

2.2   跨网段传输

上述是同一个网段(以太网)内传输,那么如果两台主机分别位于不同的网段呢?

跨网段的主机的数据传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

根据封装与解包流程:

三.   体系结构相关概念

3.1   实体

我们首先来看实体,实体是指任何可发送或接收信息的硬件或软件进程。例如这是通信双方的五层原理体系结构,我们在他们的各层中用标有字母的小方格来表示实体。

有了实体的概念,那么对等实体就是指通信双方相同层次中的实体

例如,A与F就是对等实体。

3.2   协议

介绍完实体,我们再来介绍协议,协议是控制两个对等实体进行逻辑通信的规则的集合

在网络中,为了确保数据传输的稳定性、高效性,实现互联互通,也定义了属于网络的协议-----网络协议。那为什么要存在网络协议呢?以及网络协议解决了什么问题?

我们可以看到,随着网络的发展,客观事实是主机之间距离越来越远了,这就产生了问题:

  • 如何使用数据的问题
  • 可靠性问题
  • 主机定位问题
  • 数据包局域网转发的问题

那我们就需要一种解决方法来解决这些问题。即我们的网络协议,也就是说,网络协议是一种解决方案。

在实际生活中,网络协议是按层划分的。为什么呢?是因为这样层与层之间是松耦合的,方便维护与随时替换。

3.3   服务

我们再来介绍一下服务:在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。

每个层次在实现本层功能之前,本层协议还需要使用下面一层所提供的服务:

很明显,协议是水平的,而服务是垂直的。需要特别注意的是,实体看得见下层所提供的服务,但并不知道实现该服务的具体协议。换句话说,下层的协议对上层的实体是透明的,这就好比我们肯定看得见电脑为我们提供的各种服务,但我们只是享受这些服务,而没有必要弄懂电脑的工作原理。


总结:

好了,到这里今天的知识就讲完了,大家有错误一点要在评论指出,我怕我一人搁这瞎bb,没人告诉我错误就寄了。

祝大家越来越好,不用关注我(疯狂暗示)

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

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

相关文章

Go语言Mutex的优化与TryLock机制解析

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 Go语言中的Mutex优化与goroutine调度机制 Go语言的开发团队于2011年6月30日对Mutex进行了重大调整,这次调整主要目的是优化并发场景下的锁竞争,尤其是在多goroutine争抢同一把锁时的处理。这次优化不仅改进了锁…

Android中的页面跳转机制

在Android应用开发中,页面跳转是构建用户界面和导航流程的核心功能之一。它允许用户在不同的视图或活动(Activity)之间无缝切换,以执行不同的任务或查看不同的信息。本文将详细介绍Android中实现页面跳转的基本方式、最佳实践以及…

Qt5 常见宏定义 记录

1. 处理器类型 Q_PROCESSOR_X86_32 : x86 32 位处理器 Q_PROCESSOR_X86_64 : x86 64 位处理器Q_PROCESSOR_ARM Q_PROCESSOR_ARM_V5 Q_PROCESSOR_ARM_V6 Q_PROCESSOR_ARM_V72. 操作系统类型 Q_OS_AIX Q_OS_IOS Q_OS_UNIX Q_OS_LINUX Q_OS_QNX# windows 平台 Q_OS_WIN Q_OS_WIN…

当大语言模型应用到教育领域时会有什么火花出现?

当大语言模型应用到教育领域时会有什么火花出现? LLM Education会出现哪些机遇与挑战? 今天笔者分享一篇来自New York University大学的研究论文,另外一篇则是来自Michigan State University与浙江师范大学的研究论文,希望对这个话题感兴趣…

GPT理论

1.GPT发展 Transformer是一个用作翻译任务的模型,谷歌出品。 GPT全称 lmproving Language Understanding by Generative Pre-Training,用预训练语言理解模型。OPENAI出品。 BERT全称Pre-training of Deep BidirectionalTransformers for Language Unde…

关于Cursor使用的小白第一视角

最近看破局感觉洋哥总是提到cursor,感觉好火,所以打算学习一下怎么用Cursor,如果可以希望能做一个我自己的网站。 之前从来没用过Cursor。所以,这是一篇小白视角的Cursor使用教程。 如果你也是一个小白,并且对Cursor…

中国空间计算产业链发展分析

2024中国空间计算产业链拆解 空间计算设备主要包括AR、VR、MR等终端设备。VR设备通常包括头戴式显示器(VR头盔)、手柄或追踪器等组件,用以完全封闭用户视野,营造虚拟环境体验。这些设备配备高分辨率显示屏、内置传感器和跟踪器。 …

【C++】 vector 迭代器失效问题

【C】 vector 迭代器失效问题 一. 迭代器失效问题分析二. 对于vector可能会导致其迭代器失效的操作有:1. 会引起其底层空间改变的操作,都有可能是迭代器失效2. 指定位置元素的删除操作--erase3. Linux下,g编译器对迭代器失效的检测并不是非常…

ArduSub程序学习(11)--EKF实现逻辑①

1.read_AHRS() 进入EKF,路径ArduSub.cpp里面的fast_loop()里面的read_AHRS(); //从 AHRS(姿态与航向参考系统)中读取并更新与飞行器姿态有关的信息 void Sub::read_AHRS() {// Perform IMU calculations and get attitude info//----------…

Linux常用命令记录

Linux常用命令记录 1.文件相关1.1 创建文件夹1.2 删除文件夹1.3 创建文件1.4 删除文件1.5 移动文件1.6 解压文件 2.防火墙相关2.1 查看firewall服务状态2.2 停止firewalld服务2.3 禁用firewalld服务,使其不会开机自启 3.程序进程相关3.1 查看程序对应的进程号3.2 查…

优化iOS日志管理:构建高效的日志体系

引言 在现代应用程序开发中,日志记录不仅仅是调试工具,它也是性能监控和安全审计的关键组成部分。有效的日志管理能够帮助开发者快速识别和理解问题,同时提供系统运行状态的深刻洞察。在这篇博客中,我们将深入讨论日志的重要性&a…

408算法题leetcode--第17天

101. 对称二叉树 101. 对称二叉树思路:递归,对称即两个子树的左边和右边分别一样;一个子树是左中右遍历,另一个是右中左遍历;写的时候可以分三步,确定函数参数以及返回类型,确定终止条件&#…

解决方案:如何将字段名转成列,并将对应权重数值做好拼接

文章目录 一、现象二、解决方案 一、现象 如何将字段名转成列,并将对应权重数值做好拼接? 二、解决方案 案例如下: data_columns pd.DataFrame(data.columns[:-2]) # 剔除最后值(日期及标签) data_columns.rename(columns …

golang格式化输入输出

fmt包使用类似于C的printf和scanf的函数实现格式化I/O 1输出格式化 一般的: 动词效果解释%v[1 -23 3]、[1 -23 3]、&{sdlkjf 23}以默认格式显示的值,与bool(%t)、int, int8 etc(%d)、uint, uint8 et…

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…

影响6个时序Baselines模型的代码Bug

前言 我是从去年年底开始入门时间序列研究,但直到最近我读FITS这篇文章的代码时,才发现从去年12月25号就有人发现了数个时间序列Baseline的代码Bug。如果你已经知道这个Bug了,那可以忽略本文~ 这个错误最初在Informer&#xff0…

web入门

什么是spring 特点:配置繁琐,入门难度大,提出了springboot 1.springbootweb入门例子 2.http协议 2.1概述 2.2请求协议 由三部分组成:请求行、请求头、请求体 2.3响应协议 2.4协议解析

云桌面+数字人:开启直播新纪元

随着科技的飞速发展,直播行业也在不断变革。云桌面和数字人直播作为新兴力量,正逐渐崭露头角,受到了广泛关注。 云桌面技术的出现,为直播带来了全新的可能性。它不再依赖传统的本地硬件设备,而是通过云计算提供弹性可…

如何快速熟悉项目

背景 最近新入职,对项目很不熟悉,也不能全部依赖别人(别人也不会全心全意去帮你),你大部分还是只能靠自己。材料就是:文档,代码,开发环境。 但是文档,代码,都…

我与Linux的爱恋:命令行参数|环境变量

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:Linux的学习 文章目录 一.命令行参数二.环境变量1.环境变量的基本概念2.查看环境变量的方法3.环境变量相关命令4.环境变量的组织方式以及获取环境变量的三种方法 环境变量具有全局属性 一…