网络原理-初识(2)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 网络原理-初识(2)

协议分层

对于网络协议来说,往往分成几个层次进行定义.

网络通信的过程中,需要涉及到的细节,其实非常多.如果要有一个协议来完成网络通信,就需要约定好方方面面的内容,导致非常复杂. 而如果拆分的话,就十分复杂,庞大,因此需要分层.

什么是协议分层

即只有相邻的层次可以沟通,不能跨层次调用.

协议分层类似于打电话时,定义不同层次的协议:

某一层的协议替换之后,对于其它层没有影响

在这个例子中,我们的协议只有两层;但实际的网络通信会更加复杂,需要分更多的层次.

分层的作用

为什么需要网络协议的分层?

分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接

在代码中,类似定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):

对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可.

对于提供方来说,利用封装的特性,隐藏实现的细节,只需要开放接口即可.

上层协议直接使用下层协议即可,不需要了解下层协议的细节.(相当于下层协议把细节封装好了).

这样就能很好的扩展和维护,如下图:

OSI七层模型

OSI:即Open System Interconnection,开放系统互连.

OSI七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了七层.

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

OSI:七层模型划分为以下七层:

OSI七层模型既复杂又不实用:所以OSI七层模型没有落地,实现.

实际组件网络时,只是以OSI七层模型设计中的部分分层,也即是以下TCP/IP五层(或四层)模型来实现.

TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.

应用层:负责应用程序间的沟通,如简单电子邮件传输,文件传输协议,网络远程访问协议等.我们的网络编程主要就是针对应用层.(程序拿到数据之后,要用来干啥,解决什么问题)

传输层:负责两台主机之间的数据传输.如传输控制协议,能够确保数据可靠的从源主机发送到目的主机.(负责关注网络数据的起点和终点(从哪里来到哪里去),端与端的运输).

网络层:负责地址管理和路由选择.例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由).路由器工作在网络层.

数据链路层:负责设备之间的数据帧的传送和识别.例如网卡设备的驱动,帧同步(就是说从网线上检测到什么作为新的帧的开始),冲突检测(如果检测到冲突就自动重发),数据差错校验等工作.有以太网,令牌环网,无线LAN等标准.交换机工作在数据链路层.(负责两个相邻结点的运输)

物理层:负责光/电信号的传递方式.比如现在的以太网通用的网线,早期以太网采用的同轴线缆(现在主要用于有线电视),光纤,现在的wifi无线网使用电磁波都属于物理层的概念.物理层的能力决定了最大传输速率,传输距离,抗干扰性.集线器工作在物理层.(通信过程之间的物理措施)

说是五层,实际上下面都是在操作系统内核,硬件,驱动程序中已经实现了的(计算机内置的).作为程序员,在网络编程中影响到的只有应用层.

网络设备所在分层

对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型中的下四层.

对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;

对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP模型的下两层;

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

注意这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层),三层路由器(工作在TCP/IP五层模型的下三层).

随着现在网络技术的不断发展,也出现了很多3层或者4层交换机,4层路由器.

网络分层对应

网络数据传输时,经过不同的网络结点(主机,路由器)时,网络分层需要对应.

以下为同一个网段中两台主机进行文件传输:

两台计算机通过TCP/IP协议通讯的过程如下图所示:

TCP/IP通讯过程:

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

封装和分用

网络传输数据的过程中,最核心的流程.

1.不同协议层对数据包有不同的称谓:包(packet)->IP数据包, 段(segment)->TCP数据段,

报(datagram)->UDP数据报,帧(frame)->以太网数据帧.

2.应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装

3.首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议是什么等信息.

4.数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥离出相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理

下面以A给B通过QQ发送一条"hello"信息来讲解以下具体过程.

封装

1.应用层(应用程序)QQ

QQ从消息输入框中获取到用户输入的hello.就要把这个字符串构造成一个应用层的数据包.QQ这样的程序内部就设置了一个应用层协议,应用层数据包就是按照这个应用层协议约定的格式(字符串拼接)来构造的.

eg:约定格式如下:

应用程序就会调用操作系统的api,把这个数据包交给传输层.

2.传输层

传输层就会把上述数据作为一个整体,再构成一个传输层的数据包.传输层涉及到的协议,最主要的就是TCP/UDP.此时假定使用UDP来通信,就会构成一个UDP的数据包

形如上述,添加报头的过程,就叫做封装,其实就是字符串拼接,不过拼的报头,具有一定结构

拼好传输层数据包之后,就要把这个数据包进一步交给下层,网络层就继续封装了.

交给下层:指的是下层协议提供一组api(函数),上层调用这个api,并且把刚才构造好的数据通过参数传递下去,下层协议就可以处理这个数据了.

UDP报头,虽然不能保护数据,但可以起到贴标签的类似效果.就能承载一些的关键的用来发数据信息.

对于UDP系统,承载的最重要的信息就是源端口和目的端口.

3.网络层(这里涉及到最核心的IP协议)

网络层IP协议就是把刚才的传输层UDP数据包作为一个整体,再拼上IP协议的报头,构成一个IP数据包.

IP协议,相当于整个UDP数据包视为一个整体了.

构造成完整的IP数据包之后,IP协议继续调用链路层的api,把数据再交给链路层这里的协议进行处理.

4.数据链路层(这里涉及到的核心协议-以太网(以太指的是网络传输的介质))

以太网就是目前最常见到的"有线网络",以太网数据帧:也是以一个数据包作为整体,在此基础上加上帧头,帧尾.

5.物理层(硬件设备)

把上述这样的以太网数据帧,二进制结构(一串010101这样的数据),转换成电信号(网线)/光信号(光纤)/电磁波(无线wifi)进行发送.

分用

暂时不考虑中间过程,假定数据包已经到达B的网卡了,B如何处理,B的处理过程,就称为分网

1.B的物理层收到了光信号/电信号/电磁波,就会把这些物理信号转换为数字信号(二进制0101)

得到一个以太网数据帧,进一步将数据帧交给数字链路层处理.

2.数据链路层,以太网(发送方和接收方一样的协议才行).按照以太网数据帧的格式来解析,取出其中的载荷,再交给上层协议.

3.网络层IP协议:按照IP协议的格式进行解析,取出其中的载荷,再交给上层协议.

4.传输层UDP协议:按照UDP协议的格式进行解析,取出其中的载荷,再交给上层协议.

5.应用层QQ程序:按照QQ应用程序的应用层协议格式解析数据.

分用过程,就是逆向的封装过程.

中间传输

真实情况下,两个主机一般不太会通过网线直连的.而是通过一系列的交换机或者路由器进行数据转发的.

但是实际上,即使是经过交换机或者路由器,上述封装分用的过程,也是同样适用的.只不过,分装分用的程度不一定是要到应用层(5层都有)

经典交换机来说,就需要封装分用到链路层即可

经典路由器来说,只需要封装分用到网络层即可.

取上图一个节点来说,

假设是交换机:

交换机就会把上述广电信号转换为以太网数据帧二进制数据,交给数据链路.

交换机的数据链路层就会对上述数据进行解析.

这个解析过程,一方面要取出载荷部分,另一方面,就要解析到帧头中的关键信息.

根据帧头中的信息,决定下一步把数据往哪里发送.根据这个情况进一步构造出新的以太网数据帧.

把这个数据通过物理层发送出去.

如果是路由器的话:

情况就要更加复杂.封装分用到网络层,先是物理层拿到光电信号,转换成二进制数据交给数据链路层.

数据链路层对上述数据进行解析,拿到载荷,交给网络层-IP协议.IP协议又会进一步对这个数据进行解析,取出载荷,当然也要解析这里的报头.

路由器需要通过IP报头中的目的IP来知道具体接下来应该如何转发.

取出的数据,IP协议重新进行封装.

继续交给数据链路层,继续加上帧头和帧尾.再交给物理层,转成光电信号,继续传输.

相关文章
|
2月前
|
网络协议 安全 5G
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
71 3
|
3月前
|
并行计算 安全 网络协议
探索未来网络:量子互联网的原理与应用
本文深入探讨了量子互联网的基本概念、技术原理及其潜在应用。通过对量子纠缠、量子叠加和量子隐形传态等核心概念的解释,文章展示了量子互联网如何利用量子力学特性来实现超高速、超高安全性的通信。此外,还讨论了量子互联网在金融、医疗、国防等领域的应用前景,以及当前面临的技术挑战和未来的发展方向。
91 2
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:探索神经网络的核心原理
本文将深入浅出地介绍深度学习的基本概念,包括神经网络的结构、工作原理以及训练过程。我们将从最初的感知机模型出发,逐步深入到现代复杂的深度网络架构,并探讨如何通过反向传播算法优化网络权重。文章旨在为初学者提供一个清晰的深度学习入门指南,同时为有经验的研究者回顾和巩固基础知识。
85 11
|
1月前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
66 3
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
215 1
|
2月前
|
网络协议 Linux 应用服务中间件
Socket通信之网络协议基本原理
【10月更文挑战第10天】网络协议定义了机器间通信的标准格式,确保信息准确无损地传输。主要分为两种模型:OSI七层模型与TCP/IP模型。
|
2月前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。
|
2月前
|
存储 安全 自动驾驶
探索未来网络:量子互联网的原理与应用
【10月更文挑战第2天】 本文旨在探讨量子互联网的基本原理、技术实现及其在通讯领域的革命性应用前景。量子互联网利用量子力学原理,如量子叠加和量子纠缠,来传输信息,有望大幅提升通信的安全性和速度。通过详细阐述量子密钥分发(QKD)、量子纠缠交换和量子中继等关键技术,本文揭示了量子互联网对未来信息社会的潜在影响。
|
2月前
|
人工智能 安全 网络协议
探索未来网络:量子互联网的原理与应用
本文深入探讨了量子互联网的基础原理、关键技术及其在未来通信领域的应用前景。通过分析量子纠缠、量子叠加等核心概念,揭示了量子互联网相较于传统互联网的优势所在。同时,文章还讨论了当前量子互联网领域面临的技术挑战和解决方案,为读者呈现了一个关于量子互联网的全面且深入的视角。
69 6