0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从“邮差”角度描述网络各层次所实现的功能

454398 来源:博客园 作者:Vamei 2020-10-22 14:51 次阅读

信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母。比如SOS(***---***, *代表短信号,-代表长信号)。这样“***= S, ---=O”就是摩尔斯码规定的协议。然而更进一层,人们会知道SOS是求助信息,原因是我们有“SOS=求救”这个协议存在在脑海里。所以“***---***=SOS=求救”是一个由两个协议组成的分层通信系统。

使用Morse Code的电报机

计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。

物理层(physical layer)

所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,比如亮度、电压或者振幅。对于数字应用来说,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列。

连接层(link layer)

在连接层,信息以帧(frame)为单位传输。所谓的帧,是一段有限的0/1序列。连接层协议的功能就是识别0/1序列中所包含的帧。比如说,根据一定的0/1组合识别出帧的起始和结束。在帧中,有收信地址(Source, SRC)和送信地址(Destination, DST),还有能够探测错误的校验序列(Frame Check Sequence)。当然,帧中最重要的最重要是所要传输的数据 (payload)。这些数据往往符合更高层协议,供网络的上层使用。与数据相配套,帧中也有数据的类型(Type)信息。连接层协议不关心数据中到底包含什么。帧就像是一个信封,把数据包裹起来。

以太网Ethernet)和WiFi是现在最常见的连接层协议。通过连接层协议,我们可以建立局域的以太网或者WiFi局域网,并让位于同一局域网络中的两台计算机通信。连接层就像是一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信(帧)交给他,让他送给同一社区的另一户人家。

连接层:社区小邮差

网络层(network layer)

不同的社区之间该如何通信呢? 换句话说,如何让WiFi上的一台计算机和以太网上的另一台计算机通信呢?我们需要一个“中间人”。这个“中间人”必须有以下功能: 1. 能从物理层上在两个网络的接收和发送0/1序列,2. 能同时理解两种网络的帧格式。路由器(router)就是为此而产生的“翻译”。一个路由器有多个网卡(NIC,Network Interface Controller),每个NIC可以接入多个网络,并理解相应的连接层协议。在帧经过路由到达另一个网络的时候,路由会读取帧的信息,并改写以发送到另一个网络。所以路由器就像是在两个社区都有分支的邮局。一个社区的邮差将信送到本社区的邮局分支,而邮局会通过自己在另一个地区的分支将信转交给另一个社区的邮差手中,并由另一个社区的邮差最终送到目的地。

通过路由连接的WiFi和以太网

整个通信过程如下:

WiFi上的计算机1 -》 路由WiFi接口 -》 路由以太网接口 -》 以太网上的计算机2

(蓝色表示WiFi网络,绿色表示以太网络)

在连接层,我们的一个帧中只能记录SRC和DST两个地址。而上面的过程需要经过四个地址 (计算机1,WiFi接口,以太网接口,计算机2)。显然,仅仅靠连接层协议无法满足我们的需要。由于连接层协议开发在先,我们无法改动连接层协议,只能在连接层的数据(payload),也就是信纸内部下功夫了。IP协议应运而生。

计算机1,路由器和计算机2都要懂得IP协议。当计算机1写信的时候,会在信纸的开头写上这封信的出发地址和最终到达地址 (而不是在信封上),而在信封上写上要送往邮局。WiFi网的邮差将信送往邮局。在邮局,信被打开,邮局工作人员看到最终地址,于是将信包装在一个新的信封中,写上出发地为邮局,到达地为计算机2,并交给以太网的邮差,由以太网的邮差送往计算机2。

(IP协议还要求写如诸如校验等信息,交通状况等信息,以保护通信的稳定性。)

转交给邮局

在连接层,邮差只负责在本社区送信,所以信封上的地址总是“第一条街第三座房子”或者说“中心十字路口拐角的小房子”这样一些本地人才了解的地址描述,这给邮局的工作带来不便。所以邮局要求,信纸上写的地址必须是一个符合官方规定的“邮编”,也就是IP地址。这个地址为世界上的每一个房子编号(邮编)。当信件送到邮局的时候,邮局根据邮编,就能查到对应的地址描述,从而能顺利改写信封上的信息。

每个邮局一般连接多个社区,而一个社区也可以有多个邮局,分别通往不同的社区。有时候一封信要通过多个邮局转交,才能最终到达目的地,这个过程叫做route。邮局将分离的局域网络连接成了internet,并最终构成了覆盖全球的互联网。

传输层(transport layer)

上面的三层协议让不同的计算机之间可以通信。但计算机中实际上有许多个进程,每个进程都可能有通信的需求(参看Linux进程基础和Linux进程间通信)。这就好像一所房子里住了好几个人(进程),如何让信精确的送到某个人手里呢?遵照之前相同的逻辑,我们需要在信纸上写上新的信息,比如收信人的姓名,才可能让信送到。所以,传输层就是在信纸的空白上写上新的“收信人”信息。每一所房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。

管理员

传输层协议,比如TCP和UDP,使用端口号(port number)来识别收信人(某个进程)。在写信的时候,我们写上目的地的端口。当信到达目的地的管理员手中,他会根据传输层协议,识别端口号,将信送给不同的人。

TCP和UDP协议是两种不同的传输层协议。UDP协议类似于我们的信件交流过程。TCP协议则好像两个情人间的频繁通信。一个小情人要表达的感情太多,以致于连续写了好几封信。而另一方必须将这些信按顺序排列起来,才能看明白全部的意思。TCP协议还有控制网络交通等功能。

应用层(application layer)

通过上面的几层协议,我们已经可以在任意两个人(进程)之间进行通信。然而每个人实际上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通信,会用严格的律师术语,以免产生纠纷。再比如外交官之间的通信,必须符合一定的外交格式,以免发生外交误会。再比如间谍通过暗号来传递加密信息。应用层协议是对信件内容进一步的用语规范。应用层的协议包括用于Web浏览的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。

外交通信

总结

总过网络分层,我们从原始的0/1序列抽象出

本地地址(邮差)、邮编(邮局)、收信人(管理员)、收信人行业(用语规范)

这些概念。这些概念最终允许互联网上的分布于两台计算机的两个进程相互通信。

写信人必须按照各层的协议,封装好整个信封 (encapsulation);而收信人则按照相反的顺序,来拆开这个信封。整个过程是可读信息 -》 二进制 -》 可读信息。计算机只能理解和传输0/1序列,而计算机的用户则总是输入和输出可读信息。网络协议保证了可读信息在整个转换和传输过程中的完整性。

计算机协议本身还有更多的细节需要深入。这篇文章只是从分层的角度描述各个层次所实现的功能。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166234
  • IP协议
    +关注

    关注

    3

    文章

    80

    浏览量

    21542
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84521
  • WIFI
    +关注

    关注

    81

    文章

    5160

    浏览量

    199424
收藏 人收藏

    评论

    相关推荐

    USB数据流模型

    4-2示,  各层次的具体细节将在以后逐步介绍。特别地,有四个层次实现是较为集中的。  ·USB物理设备(USB Physical Device):USB上的一
    发表于 06-17 10:32

    嵌入式系统设计的3个层次

    、高速度、高性能、小体积、低电压、低功耗等指标的,特别是低功耗要求。单片系统设计要从整个系统性能要求出发,把微处理器、 模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在
    发表于 07-08 16:48

    行为逻辑层次低功耗设计

    功能单元的流水执行来实现低功耗结构。5采用低功耗的单元电路——所需的基本器件少,单元内部跃迁少。6对系统中的空闲单元模块关断电源或时钟[3]。(4)电路实现层电路实现
    发表于 05-16 20:00

    Altium Designer PCB的各层含义描述

    PCB的各层定义及描述1、TOP LAYER(顶层布线层):设计为顶层铜箔走线。如为单面板则没有该层
    发表于 07-17 08:27

    嵌入式网络设备联网服务器由什么组成?

    监控、经营管理、市场管理等各层次的汇通和数据共享,即实现“管理监控一体化”,是各个企业迫切需要解决的问题。工业控制网络和 Internet的无缝连接能够促进企业的网络化发展,顺应工业监
    发表于 08-27 08:19

    【精品】精通开关电源设计-349页PDF书籍

    和经验的经典之作! 分析开关变压器最基本器件——电感入手,由浅入深系统论述了宽输入电压DC-DC变压器及其磁件设计,解答了变换器拓扑的常见问题等,适合各层次开关电源工程师学习。`
    发表于 07-30 18:07

    嵌入式系统有何功能

    进行软硬件详细设计,包括硬件平台的功能模块划分及接口关系,交叉开发环境构建方案,各层次嵌入式软件的实现或移植方案
    发表于 10-27 10:11

    COMS电路中功耗分为两部分

    引起的功耗。低功耗设计方法对于系统是在低功耗下提高性能,还是高性能下降低功耗,这对采样什么样的低功耗技术很关键。下图是基于低功耗反馈的前向设计法,如图,可以看出五个层次下对系统的功耗进行优化,自顶向下分别对应系统级、行为级、RTL级、逻辑级和物理级。下图说明了各层次的具体
    发表于 11-11 08:06

    LINUX网络协议栈实现分析-SKBUFF的实现

    了解网络协议栈的人都知道,网络协议栈是一个有层次的软件结构,层与层之间通过预定的接口传递网络报文。网络报文中包含了在协议栈
    发表于 04-07 22:32 26次下载

    采用Nios处理器设计嵌入式系统

      SOC从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路、直至器件的设计紧密结合起来,在单个(或少数几个)芯片上完成整个系统的功能。SOC的设计以IP核为基础,以分层次
    发表于 09-21 16:41 10次下载
    采用Nios处理器设计嵌入式系统

    在SoPC系统中实现目标板Flash编程设计的创建

    算法、芯片结构、各层次电路,直至器件的实际电路紧密连接起来,在单个(少数几个)芯片上实现整个系统的功能
    的头像 发表于 04-22 08:00 1292次阅读
    在SoPC系统中<b class='flag-5'>实现</b>目标板Flash编程设计的创建

    华为发布好望云服务,实现了“1+3+N”战略的全面布局

    在此次发布会上,华为数据存储与机器视觉产品线总裁周跃峰发布好望云服务,从而实现了“1+3+N”战略的全面布局,更好地满足政企客户在数字化转型中对机器视觉的各层次需求。
    的头像 发表于 03-16 11:11 2163次阅读

    计算机网络层次结构

    TCP/IP四层模型与OSI体系结构对比: 1.3 层次结构设计的基本原则 各层之间是相互独立的; 每一层需要有足够的灵活性; 各层之间完全解耦。 1.4 计算机网络的性能指标 速率
    的头像 发表于 05-29 09:54 5557次阅读
    计算机<b class='flag-5'>网络</b>的<b class='flag-5'>层次</b>结构

    pcb各层的含义完整介绍

    大家都知道PCB线路板通常由多个层次或层组成,但其实每个层都有特定的功能和含义。今天就由深圳捷多邦小编为大家对pcb各层的含义完整介绍。
    的头像 发表于 09-11 10:22 3685次阅读

    osi七层模型各层功能及协议简述

    OSI七层模型是一种将计算机网络通信分为七个层次,并定制了每个层次功能和协议的标准模型。这个模型的设计是为了使不同的计算机网络设备和系统能
    的头像 发表于 02-04 18:06 932次阅读