当前位置:首页 > > C语言与CPP编程
[导读]我们用手机连接上网的时候,会用到许多网络协议。从手机连接 WiFi 开始,使用的是 802.11 (即 WLAN )协议;手机自动获取网络配置,使用的是 DHCP 协议。这时手机已经连入局域网了,可以访问局域网内的主机和资源,但还不能使用互联网应用,例如:微信、抖音等。想要访问互联网,还需要在手机的上联网络设备上进行配置,即在无线路由器上配置 NAT、 PPPOE 等功能,才能把局域网接入到互联网中,手机就可以上网玩微信、刷抖音了。

目录

网络协议

我们用手机连接上网的时候,会用到许多网络协议。从手机连接 WiFi 开始,使用的是 802.11 (即 WLAN )协议;手机自动获取网络配置,使用的是 DHCP 协议。这时手机已经连入局域网了,可以访问局域网内的主机和资源,但还不能使用互联网应用,例如:微信、抖音等。想要访问互联网,还需要在手机的上联网络设备上进行配置,即在无线路由器上配置 NATPPPOE 等功能,才能把局域网接入到互联网中,手机就可以上网玩微信、刷抖音了。

网络协议示意图

局域网 :小范围内的私有网络,一个家庭内的网络、一个公司内的网络、一个校园内的网络都属于局域网。

广域网:把不同地域的局域网互相连接起来的网络。运营商搭建连接远距离区域的广域网。

互联网:由世界各地的局域网和广域网连接起来的网络。互联网是一个开放、互联的网络,不属于任何个人和任何机构。

简单来说,就是手机、无线路由器等设备通过网络协议实现通信。网络协议又是谁规定的呢?ISO 制定了一个 OSI 参考模型,被用于网络协议的制定。

OSI 参考模型

OSI 参考模型将网络协议提供的服务分成 7 层,并定义每一层的服务内容,实现每一层服务的是协议,协议的具体内容是规范。上下层之间通过接口进行交互,同一层之间通过协议进行交互。OSI 参考模型只对各层的服务做了粗略的界定,并没有对协议进行详细的定义。但是许多协议都对应了 7 个分层的某一层。所以要了解网络,首先要了解 OSI 参考模型。

OSI 参考模型图

应用层

OSI参考模型的第 7 层(最高层)。应用程序和网络之间的接口,直接向用户提供服务。应用层协议有电子邮件、远程登录等协议。

应用层示例图

表示层

OSI参考模型的第 6 层。负责数据格式的互相转换,如编码、数据格式转换和加密解密等。保证一个系统应用层发出的信息可被另一系统的应用层读出。

表示层示例图

会话层

OSI参考模型的第 5 层。主要是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。

传输层

OSI参考模型的第 4 层。为上层协议提供通信主机间的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。

传输层示例图

网络层

OSI参考模型的第 3 层。将数据传输到目的地址,主要负责寻址和路由选择。

网络层示例图

数据链路层

OSI参考模型的第 2 层。负责两个相邻主机间的通信传输,即数据帧的生成与接收。

数据链路层示例图

物理层

OSI参考模型的第 1 层(最底层)。负责逻辑信号(比特流)与物理信号(电信号、光信号)之间的互相转换,利用传输介质为数据链路层提供物理连接。

物理层示例图

TCP/IP 参考模型

由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。TCP/IP 模型则正好相反,通过已有的协议归纳总结出来的模型,成为实际的主流网络协议标准。

先介绍下 TCP/IP 与 OSI 分层之间的对应关系,以及 TCP/IP 每层的主要协议。

TCP/IP 参考模型

网络接入层

在 TCP/IP 分层中,有把物理层和数据链路层合并称为网络接入层,有把物理层和数据链路层分别称为硬件、网络接口层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据,但是对物理层和数据链路层在通信过程中起到了不一样的作用。所以 TCP/IP 分为四层或者五层都可以,只要能理解其中的原理就行。

网络层

相当于 OSI 模型中的第 3 层网络层,使用的是IP协议,作用是将数据包从源地址发送到目的地址。

网络层
  • IP

    IP 是跨越网络传送数据包, 使整个互联网都能收到数据的协议,它使用 IP 地址作为主机的标识。IP 协议独立于底层介质,
    实现从源到目的的数据转发。

  • ICMP

    用于在 IP 主机、路由器之间传递控制消息。被用来诊断网络的健康状况。

  • ARP

    从数据包的 IP 地址中解析出 MAC 地址的一种协议。

传输层

相当于 OSI 模型中的第 4 层传输层,主要功能就是让应用程序之间互相通信,通过端口号识别应用程序,使用的协议有面向连接的 TCP 协议和面向无连接的 UDP 协议。

传输层
  • TCP

    TCP 是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例如文件传输。

  • UDP

    UDP 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用,例如:IP电话、视频会议、直播等。

应用层

相当于 OSI 模型中的第 5 - 7 层的集合,不仅要实现 OSI 模型应用层的功能,还要实现会话层和表示层的功能。HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP都是应用层协议。

应用层
  • HTTP

    是 WWW 浏览器和服务器之间的应用层通信协议。HTTP 定义高级命令或者方法供浏览器用来与Web服务器通信。

  • POP3

    简单邮件传输协议,邮件客户端和邮件服务器使用。

  • TELNET

    远程终端协议,用于远程管理网络设备。

  • SSH

    安全外壳协议。通过使用SSH,可以把所有传输的数据进行加密。

  • SNMP

    简单网络管理协议,用于网管软件进行网络设备的监控和管理。

封装与解封装

数据发送前,按照参考模型从上到下,在数据经过每一层时,添加协议头部信息,这个过程叫封装

封装

数据接收后,按照参考模型从下到上,在数据经过每一层时,去掉协议头部信息,这个过程叫解封装

解封装

经过传输层协议封装后的数据称为,经过网络层协议封装后的数据称为,经过数据链路层协议封装后的数据称为,物理层传输的数据为比特

实际数据传输举例

实际生活中,互联网是使用的 TCP/IP 协议进行网络连接的。我们以访问网站为例,看看网络是如何进行通信的。

数据传输举例
发送数据包

访问 HTTP 网站页面时,打开浏览器,输入网址,敲下回车键就开始进行 TCP/IP 通信了。

应用程序处理

首先,应用程序中会进行 HTML 格式编码处理,相当于 OSI 的表示层功能。编码转化后,不一定会马上发送出去,相当于会话层的功能。在请求发送的那一刻,建立 TCP 连接,然后在 TCP 连接上发送数据。接下来就是将数据发送给下一层的 TCP 进行处理。

TCP 模块处理

TCP 会将应用层发来的数据顺利的发送至目的地,实现可靠传输的功能,需要给数据封装 TCP 头部信息。TCP 头部信息包括源端口号和目的端口号(识别主机上应用)、序号(确认哪部分是数据)以及校验和(判断数据是否被损坏)。随后封装了 TCP 头部信息的段再发送给 IP 。

IP  模块处理

IP 将 TCP 传过来的数据段当做自己的数据,并封装 IP 头部信息。IP 头部信息中包含目的 IP 地址和源 IP 地址,以及上层协议类型信息。

IP 包生成后,根据主机路由表进行数据发送。

网络接口处理

网络接口对传过来的 IP 包封装上以太网头部信息并进行发送处理。以太网头部信息包含目的 MAC 地址、源 MAC 地址,以及上层协议类型信息。然后将以太网数据通过物理层传输给接收端。

接收数据包

包的接收流程是发送流程的反向过程。

网络接口处理

收到以太网帧后,首先查看头部信息的目的 MAC 地址是否是发给自己的帧。如果不是发送给自己的帧就丢弃。如果是发送给自己的帧,查看上层协议类型是 IP 包,以太网帧解封装成 IP 包,传给 IP 模块进行处理。

IP  模块处理

收到 IP 包后,进行类似处理。根据头部信息的目的 IP 地址判断是否是发送给自己包,如果是发送给自己的包,则查看上一层的协议类型,并把 IP 包解封装发送给 TCP 协议处理。

TCP 模块处理

收到 TCP 段后,首先查看校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端口号,确定具体的应用程序。

数据接收完毕后,发送一个 “ 确认回执 ” 给发送端。

数据被完整接收后,会把 TCP 段解封装发送给由端口号识别的应用程序。

应用程序处理

应用程序收到数据后,通过解析数据知道了发送端请求的网页内容,然后按照 HTTP 协议进行后续数据交互。

网络构成

搭建一套网络涉及各种线缆和网络设备。下面介绍一些常见的硬件设备

网络构成要素 主要设备及作用表

通信介质

主机可以通过有线线缆进行连接。有线线缆有双绞线、光纤、串口线等。根据网络接口选择对应的线缆。传输介质还可以被分为电波、微波等不同类型的电磁波。

网卡

主机连接网络时,必须要使用网卡。可以是有线网卡,用来连接有线网络,也可以是无线网卡连接 WiFi 网络。每块网卡都有一个唯一的 MAC 地址,也叫做硬件地址或物理地址。

二层交换机

二层交换机

二层交换机位于 OSI 模型的第 2 层(数据链路层)。它能够识别数据链路层中的数据帧,并将帧转发给相连的另一个端口。

数据帧中有一个数据位叫做 FCS ,用以校验数据是否正确送达目的地。二层交换机通过检查这个值,将损坏的数据丢弃。

二层交换机根据 MAC 地址自学机制判断是否需要转发数据帧。这类功能也是数据链路层所具有的功能。

路由器 / 三层交换机

路由器

路由器是在 OSI 模型的第 3 层(网络层)上连接两个网络、并对报文进行转发的设备。二层交换机是根据 MAC 地址进行处理,而路由器 / 三层交换机则是根据 IP 地址进行处理的。因此 TCP/IP 中网络层的地址就成为了 IP 地址。

路由器可以连接不同的数据链路。比如连接两个以太网,或者连接一个以太网与一个无线网。家庭里面常见的无线路由器也是路由器的一种。

四层及以上交换机

四层及以上交换机负责处理OSI模型中从传输层至应用层的数据。例如,下载和视频网站的服务器会用到的负载均衡设备,就是四层及以上交换机的一种。还有广域网加速器、防火墙等。


end


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭