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

目录

一.   体系结构总览

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.rhkb.cn/news/427519.html

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

相关文章

.NET常见的几种项目架构模式,你知道几种?(附带使用情况投票)

前言 项目架构模式在软件开发中扮演着至关重要的角色,它们为开发者提供了一套组织和管理代码的指导原则,以提高软件的可维护性、可扩展性、可重用性和可测试性。 假如你有其他的项目架构模式推荐,欢迎在文末留言🤞!&a…

道路红外目标检测数据集 6500张 带标注 voc yolo

道路红外目标检测数据集 6500张 带标注 voc yolo 道路红外目标检测数据集 数据集描述 该数据集旨在用于道路环境中的红外目标检测任务,涵盖了多种场景下的红外图像。数据集包含大量的图像及其对应的标注信息,可用于训练计算机视觉模型,以识…

006.MySQL_查询数据

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

Java中的Stack(栈)(如果想知道Java中有关Stack的知识点,那么只看这一篇就足够了!)

前言:栈(Stack)是一种基础且重要的数据结构,以其后进先出(LIFO, Last In First Out)的特性广泛应用于计算机科学和编程中。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼…

VS code EXPLORER 中不显示指定文件及文件夹设置(如.pyc, __pycache__, .vscode 文件)

VS code EXPLORER 中不显示指定文件及文件夹设置 引言正文方法1打开方式1打开方式2 方法2 引言 VS code 号称地表最强轻量级编译器,其最大的优势在于用户可以根据自己的需求下载适合自己的 extension。从而定制个性化的编译器。然而,本人今天遇到了一个…

【machine learning-七-线性回归之成本函数】

监督学习之cost function 成本函数权重、偏置如何实现拟合数据成本函数是如何寻找出来w和b,使成本函数值最小化? 在线性回归中,我们说到评估模型训练中好坏的一个方法,是用成本函数来衡量,下面来详细介绍一下 成本函数…

IPv6路由基础

RIPng RIPng是一种较为简单的内部网关协议,是RIP在IPv6网络中的应用。RIPng主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。由于RIPng的实现较为简单,在配置和维护管理方面也远比OSPFv3和IS-IS for IPv6容易,因…

黑马头条APP手工测试项目

1.app有关概念 APP测试范围: 业务功能测试 专项测试:兼容性测试 、安装/卸载/升级测试、交叉事件测试 、push消息推送测试、性能测试、其他测试(用户体验、权限/边界、权限) 功能测试测试对象: 功能点(单…

JAVA虚拟机----JVM

(一)认识JVM JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。 常⻅的虚拟机:JVM、VMwave、Virtual Box。 (二)JVM运…

EmguCV学习笔记 C# 12.3 OCR

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

EmguCV学习笔记 C# 12.2 WeChatQRCode

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

【Android】Handler用法及原理解析

文章目录 用处基本用法用法一:使用sendMessage和handleMessage方法用法二:使用post方法 法一工作原理Handler的sendMessageMessage成员变量 MessageQueueLooper主线程自动初始化子线程手动创建prepareloop Handler的dispatchMessage 法二工作原理Handler…

electron多标签页模式更像客户端

Electron多标签页模式是指在Electron框架中实现的类似Web浏览器的多标签页功能。Electron是一个使用Web技术(HTML、CSS和JavaScript)来创建跨平台桌面应用程序的框架。在Electron中实现多标签页模式,通常需要借助一些特定的库或组件&#xff…

PMP--二模--解题--11-20

文章目录 14.敏捷--实践--每日站会--团队成员利用每日站会对彼此做出小的承诺,发现问题,并确保团队工作顺利进行。(不是项目经理说,是团队成员)11、 [单选] 在每日站会上,项目经理与团队成员逐个交流&#…

VMware ESXi 7.0U3q macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 7.0U3q macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版) ESXi 7.0U3 标准版集成 Intel 网卡、Realtek USB 网卡 和 NVMe 驱动 请访问原文链…

口哨声、歌声、boing声和biotwang声:用AI识别鲸鱼叫声

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

web基础—dvwa靶场(八)XSS

XSS(DOM) 跨站点脚本(XSS)攻击是一种注入攻击,恶意脚本会被注入到可信的网站中。当攻击者使用 web 应用程序将恶意代码(通常以浏览器端脚本的形式)发送给其他最终用户时,就会发生 XSS 攻击。允许这些攻击成…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第五集:再制作更多的敌人

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作敌人另个爬虫Crawler 1.公式化导入制作另个爬虫Crawler素材2.制作另个爬虫Crawler的Crawler.cs状态机3.制作敌人另个爬虫Crawler的playmaker状态机二、…

大型语言模型 (LLM) 劫持攻击不断升级,导致每天损失超过 100,000 美元

Sysdig 威胁研究团队 (TRT) 报告称,LLMjacking(大型语言模型劫持)事件急剧增加,攻击者通过窃取的云凭证非法访问大型语言模型 (LLM)。 这一趋势反映了 LLM 访问黑市的不断增长,攻击者的动机包括个人使用和规避禁令和制…

DNS服务

一.DNS介绍 DNS应用层协议 Domain Name System 域名系统 作用:实现域名解析,解析主机名所对应的IP地址, 在网络环境中设备与设备之间要想相互通信只能依赖IP地址,DNS服务器的作用是实现域名解析。 如上图所示,DNS存…