计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

简介: 计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

计算机网络是个非常复杂的系统。

早在最初的ARPANET设计时就提出了分层的设计理念。

"分层"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

下面,我们以五层原理结构体系,按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。

物理层

  • 采用怎样的传输媒体(介质)
  • 采用怎样的物理接口
  • 使用怎样的信号表示比特0和1

首先来看最简单的情况:

两台计算机通过一条网线连接起来,对于这种最简单的情况,我们需要考虑以下问题:

  • 采用怎样的传输媒体(介质)

例如,这是我们常见的双绞线网线

  • 采用怎样的物理接口

例如,这是RJ45以太网接口

  • 使用怎样的信号表示比特0和1

例如,使用这样的方波信号,低电平表示0,高电平表示1

解决了这些问题,两台计算机就可以通过信号来传输比特0或1了,

我们可以将这些问题划分到物理层

说明两点:第一,严格来说,传输媒体并不属于物理层,它并不包含在体系结构中。第二,计算机网络中传输的信号,并不是我们举例的方波信号。我们之所以举例成方波信号,是未来让初学者容易理解。在学习本身就不容易理解的、概念抽象的计算机网络体系结构时,不让其他的技术细节再造成学习障碍。

数据链路层

  • 如何标识网络中的各主机(主机编址问题,例如MAC地址)
  • 如何从信号所表示的一连串比特流中区分出地址和数据
  • 如何协调各主机争用总线

使用的计算机网络,一般都由多台主机构成。例如,主机ABCDE通过总线互连,构成了一个总线型网络。

假设,我们已经解决了物理层的问题,也就是说,主机间可以发送信号来传输比特0或者1了。

我们来看看,在这样一个总线型的网络上,还面临什么需要解决的问题。

  • 如何标识网络中的各主机(主机编址问题,例如MAC地址)

如图所示,主机A要给主机C发送数据,

但是,表示数据的信号会通过总线传播到总线上的每一个主机。那么主机C如何知道该数据是发送给自己的,自己要接受呢?而主机B、D、E又如何知道该数据并不是发送给自己的,自己应该拒绝呢?


这就很自然地引出了如何标识网络中各主机的问题,也就是主机编址问题。


网卡上的MAC地址,它就是主机在网络中的地址。


主机在发送数据时,应该给数据附加上目的地址,根据目的地址和自身地址,来决定是否接受数据。


这就又引出了一个问题:

  • 如何从信号所表示的一连串比特流中区分出地址和数据

目的主机如何从信号中区分呢?也就是解决分组的封装格式问题。

  • 如何协调各主机争用总线

另外,对于总线型的网络,还会出现下面这种典型的问题。

例如,某个时刻,总线总是空闲的,也就是没有主机使用总线来发送数据。片刻之后,主机B和D同时向总线发送数据,这必然会造成信号碰撞,因此,如何协调各主机争用总线,也是必须要解决的问题。


需要说明的是,这种总线型的网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连形成的交换式以太网。

那么,以太网交换机是如何实现的呢?


我们将这些问题,全部划分到数据链路层。


到这里,我们可能会发现,只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上传输了。


但是,我们每天都会使用的因特网,是由非常多的网络和路由器互连起来的,仅解决物理层和数据链路层的问题,还是不能正常工作。

网络层

  • 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
  • 路由器如何转发分组,如何进行路由选择

  • 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)

我们来看这个例子,这是一个由三个路由器,四个网络互连起来的小型互联网。我们可以把它看做是因特网中很小的一部分。


在之前的例子中,仅有一个网络,我们不需要对网络进行标识。而在本例中,有多个网络。很显然,我们面临着如何标识各网络以及网络中各主机的问题。


换句话说,也就是网络和主机共同编址的问题。例如,IP地址。

这是网络N1中各设备的IP地址。该类IP地址的前三个十进制数用来标识网络,第四个十进制数用来标识主机。

同理,这是网络N2上各设备的IP地址:


路由器如何转发分组,如何进行路由选择

我们再来看另一个问题,源主机与目的主机之间的传输路径往往不止一条。分组从源主机到目的主机可走不同的路径。这样就引出了路由器如何转发分组的问题,以及如何进行路由选择的问题。


我们将这些问题全部划归到网络层。


至此,我们解决了物理层、数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。


但是,对于计算机网络应用而言,这仍然不够。

运输层

  • 如何解决进程之间基于网络的通信问题
  • 出现传输错误时,如何处理

  • 如何解决进程之间基于网络的通信问题

例如,假设这台主机中运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是QQ进程。这台服务器中,运行着与网络通信相关的服务器进程。


某个时刻,主机收到了来自服务器的分组,那么,这些分组,应该交给浏览器进程处理呢,还是应该交给QQ进程处理呢?


这就引出了我们如何标识与网络通信相关的应用进程,进而解决进程之间基于网络的通信问题。


出现传输错误时,如何处理

另外,如果某个分组在传输过程中出现了误码,或者由于路由器繁忙,导致路由器丢弃分组。换句话说,若出现传输错误,应该如何处理。


我们将这些问题,全部划分到运输层。


至此,我们解决了物理层、数据链路层、网络层以及运输层各自的问题,则可以实现进程之间基于网络的通信。

应用层

在此基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。

  • 通过应用进程间的交互来完成特定的网络应用
  • 例如,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等。


我们将这些问题全部划归到应用层。


至此,我们将实现计算机网络所需要解决的各种主要问题,分别划归到了物理层、数据链路层、网络层、运输层和应用层,进而构成了五层协议体系的原理体系结构。


END



目录
相关文章
|
21天前
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
84 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
1月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
79 22
|
1月前
|
网络协议 数据安全/隐私保护 网络架构
|
2月前
|
机器学习/深度学习 数据可视化 PyTorch
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
292 7
深入解析图神经网络注意力机制:数学原理与可视化实现
|
2月前
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
|
3月前
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
72 6
|
3月前
|
网络协议 安全 网络安全
应用程序中的网络协议:原理、应用与挑战
网络协议是应用程序实现流畅运行和安全通信的基石。了解不同协议的特点和应用场景,以及它们面临的挑战和应对策略,对于开发者和用户都具有重要意义。在未来,随着技术的不断发展,网络协议也将不断优化和创新,为数字世界的发展提供更强大的支持。
105 1
|
4月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
969 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
5月前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
5月前
|
域名解析 网络协议 关系型数据库
【网络原理】——带你认识IP~(长文~实在不知道取啥标题了)
IP协议详解,IP协议管理地址(NAT机制),IP地址分类、组成、特殊IP地址,MAC地址,数据帧格式,DNS域名解析系统