您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

网络传输的7个关键步骤

时间:2023-09-10 15:46:45  来源:微信公众号  作者:灵墨AI探索室

/ 发送数据包 /

我们前面已经了解到为什么网络需要分层,每一层都有自己的职责。在发送数据包的过程中,这些层扮演着不同的角色。它们的主要任务是将数据包进行层层封装后发送,并在接收端逐层解封装。

就像下面的示意图所展示的那样,在部署在 linux 服务器 B 上的服务端 NginxTomcat 通过 Socket 监听着 80 和 8080 端口。这时,内核的数据结构(包括七层网络协议等)就会记录下这些信息。当有数据包发送到这两个端口时,内核就会将这些数据包转发给相应的进程。

在 Linux 服务器 A 上的客户端,如果打开一个 Edge 并连接到 Nginx,同样通过 Socket 连接,客户端会被分配一个随机端口 12345。同理,如果打开一个 Chrome 并连接到 Tomcat,同样通过 Socket 连接,客户端会被分配一个随机端口 12346。这些客户端的端口都是随机分配的,因为作为客户端,你只需要与其他人的服务器建立连接,而不需要一个固定的端口供所有人访问,因为你不是服务器本身。

在客户端上,当需要发送数据包时,通常会将请求封装成一个 HTTP 协议,并通过调用 socket 发送到内核。然后在传输层(即 TCP 层),会创建用于维护连接、序列号和拥堵控制的数据结构。在封装好的 HTTP 包的外层,还会再封装一个刚包装好的 TCP 头,然后继续传输到网络 IP 层。

在网络 IP 层,需要将目标 IP 和本机 IP 等信息封装在 TCP 包的外层,即在 IP 头中。随后,数据包会继续发送到数据链路层(即 mac 层),这时需要将本机的 MAC 地址和目标 MAC 地址封装在 IP 包的外层,即在 MAC 头中。最后,数据包会被发送到硬件网卡,准备发送出去。需要注意的是目标主机的 IP 地址是用来确定数据包的目的地(也就是真实的目标服务器 IP),而目标主机的 MAC 地址是用来确定数据包在局域网中的具体物理地址(可以认为是网关的 MAC 地址,并不是目标服务器 MAC 地址)。

终于发送的数据包准备好了,现在我们来详细讲述一下数据包在传输过程中发生的一些不为人知的事情。

当数据包到达交换机层,也被称为二层设备或 MAC 设备,因为它主要处理 MAC 层的操作。交换机不会改变数据包的 MAC 地址,而是会寻找目标 MAC 地址。就像图上标识的那样,交换机会检查数据包中的目标 MAC 地址,并根据自己的 MAC 地址表找到相应的端口,然后将数据包转发给对应的端口。如果交换机找不到目标 MAC 地址的对应端口,它会采取一种特殊的方式来解决问题,就像是在大声喊叫一样。交换机会发送一个广播帧,向所有连接的设备询问“这是谁的 MAC 地址?”这样,如果目标设备在网络上,它就会回复交换机,并告诉它自己的 MAC 地址。交换机将收到的回复信息更新到自己的 MAC 地址表中,以便将来能够更快地找到目标设备。如果交换机还是找不到目标 MAC 地址,那你看看是不是断网了吧,你可能已经脱离了互联网。

当路由器接收到数据包后,它会开始解析数据包的 MAC 头,并查看是否与自己的 MAC 地址匹配。如果匹配成功,路由器就会将数据包交给 IP 层进行处理。在 IP 层,路由器会根据数据包的 IP 头中的信息,在路由表中查找下一跳的信息,以确定应该从哪个网络接口发出去。在这个例子中,根据路由表的信息,数据包将会从右边的网络接口发出去。我们通常将路由器称为三层设备,因为它主要处理到第三层(即网络层)。实际上,路由器在转发数据包时会修改数据包的源 MAC 地址和目标 MAC 地址。

当从路由器右侧的网口发送出去的数据包到达网络 2 的交换机时,它将经历一次二层处理,并被转发到交换机右侧的网口。

最终,数据包将被转发到 Linux 服务器 B。服务器 B 会检查数据包的目标 MAC 地址是否与自身匹配,如果匹配,则将 MAC 头部取下,并将数据包交给上一层。接下来,在 IP 层,服务器 B 会检查数据包的目标 IP 地址是否与自己匹配,如果匹配,则将 IP 头部取下,并将数据包交给上一层。在 TCP 层,服务器 B 会根据 TCP 头部中的序列号等信息验证数据包的有效性,并将数据包缓存起来,等待应用层读取。

应用层通过 Socket 监听特定端口,当读取数据时,操作系统内核会根据 TCP 头部中的端口号,将数据包发送给相应的应用程序进行处理。这样应用程序就可以读取并处理网络包了。

在应用层中,我们需要解析 HTTP 头和正文,这是由应用层来处理的。应用框架(如 Tomcat 等)通常会帮助我们解析和处理数据包(粘包问题等),因此我们不需要过多考虑网络层面的细节。通过解析,应用层能够得知客户端的请求,例如购买商品或请求网页。一旦应用层处理完 HTTP 请求,结果会被封装为 HTTP 网络包,通过 Socket 接口发送给内核。

接下来,内核会对数据包进行多层封装,从物理网口发送出去,经过网络 2 的交换机和 Linux 路由器,最终到达网络 1。在网络 1 上,数据包经过网络 1 的交换机,再次经过 Linux 服务器 A 的层层解封装,然后通过 Socket 接口根据客户端的随机端口号发送给客户端应用程序,即浏览器。这样,浏览器就能够显示一个绚丽多彩的页面了。

需要注意的是,这个示例比较简单,所以返回请求的路径与发送路径相同。但在实际情况中,返回请求的路径不一定是原路返回,而是再次经过上述的网络处理逻辑。这是因为网络中的路由器会根据路由表选择最佳路径,以确保数据包能够快速、高效地到达目标设备。

即使在这个相对简单的网络环境中,发送数据包的过程也是非常复杂的。

/ 总结 /

发送数据包是一个复杂的过程,涉及到多个层次的封装和解封装。不同层次的协议和设备在这个过程中扮演着不同的角色,确保数据包能够快速、高效地到达目标设备。在发送数据包的过程中,数据包会经过多个网络设备和路由器,每一步都需要进行相关的处理和解析。发送数据包的过程需要考虑到各个层次的处理和协议的兼容性,以确保数据包能够正确地到达目标设备,并被相应的应用程序处理。这个过程中涉及到的细节非常复杂,需要各个层次的协议和设备之间的配合和交互,才能实现数据的传输和交换。



Tags:网络传输   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除。
▌相关推荐
/ 发送数据包 /我们前面已经了解到为什么网络需要分层,每一层都有自己的职责。在发送数据包的过程中,这些层扮演着不同的角色。它们的主要任务是将数据包进行层层封装后发送,并...【详细内容】
2023-09-10  Tags: 网络传输  点击:(0)  评论:(0)  加入收藏
中国科学院计算机网络信息中心先进网络发展部在基于5G/B5G毫米波网络的传输协议性能测量工作中取得新进展,基于自有的60GHz毫米波网络试验床,从不同类别的拥塞控制算法(CCAs)粒...【详细内容】
2022-04-24  Tags: 网络传输  点击:(163)  评论:(0)  加入收藏
我们现在基本上每天都在使用网络,在网络上进行互相通信,但你知道你电脑发送的信息是如何传递到远端电脑上的呢?本篇就讲述一下网络传输原理过程。首先,我们先得了解一下数据包的...【详细内容】
2020-09-21  Tags: 网络传输  点击:(272)  评论:(0)  加入收藏
网络就是通过介质把终端互连而成的一个规模大、功能强的系统,从而使得众多的终端可以方便地互相传递信息,共享信息资源。 终端可以产生、发送和接收数据,网络是终端建立通信的...【详细内容】
2020-05-03  Tags: 网络传输  点击:(407)  评论:(0)  加入收藏
前面讲解了音视频编解码的基本知识,相信阅读过的朋友,都有个基本的认识。音视频除了存储,还如何传输呢?比如直播互动,网上课堂等,这些场景中,音视频是如何实现在网络中传输呢?今天...【详细内容】
2020-01-16  Tags: 网络传输  点击:(350)  评论:(0)  加入收藏
▌简易百科推荐
DNS,咱们网工配置网络连接或者路由器时,高低得和这玩意儿打交道吧。 它是互联网中用于将人类可读的域名(例如www.example.com)转换为计算机可理解的IP地址(例如192.0.2.1)的系统。...【详细内容】
2023-09-13  计算科学与信息化  微信公众号  Tags:DNS服务器   点击:(3)  评论:(0)  加入收藏
关于airpydumpairpydump是一款功能强大的无线网络数据包实时分析工具,airpydump的核心类似于Aircrack套件中的airodump-ng。在该工具的帮助下,广大研究人员将能够轻松捕捉和分...【详细内容】
2023-09-11    FreeBuf.COM  Tags:网络数据包   点击:(5)  评论:(0)  加入收藏
/ 发送数据包 /我们前面已经了解到为什么网络需要分层,每一层都有自己的职责。在发送数据包的过程中,这些层扮演着不同的角色。它们的主要任务是将数据包进行层层封装后发送,并...【详细内容】
2023-09-10  灵墨AI探索室  微信公众号  Tags:网络传输   点击:(0)  评论:(0)  加入收藏
正文 有关VLAN的技术标准IEEE 802.1Q早在1999年6月份就由IEEE委员正式颁布实施了,而且最早的VLNA技术早在1996年Cisco(思科)公司就提出了。随着几年来的发展,VLAN技术得到广泛的...【详细内容】
2023-09-08  计算科学与信息化  微信公众号  Tags:VLAN   点击:(7)  评论:(0)  加入收藏
HTTP和RPC什么是HTTPHTTP协议(Hyper Text Transfer Protocol),又叫做超文本传输协议。平时上网在浏览器上敲个网址就能访问网页,这里用到的就是HTTP协议。什么是RPCRPC(Remote Pr...【详细内容】
2023-09-07  做好一个程序猿  今日头条  Tags:HTTP   点击:(10)  评论:(0)  加入收藏
抖音,百度,阿里云,腾讯都是自建的数据中心,都是T级别出口带宽(总出口带宽),也就是达到1T=1024G/s的出口带宽,服务器总署基本都在20万台以上,甚至阿里云都超过了100万台。字节跳动的数...【详细内容】
2023-09-06  弱电工程师的圈子  微信公众号  Tags:抖音服务器   点击:(3)  评论:(0)  加入收藏
在计算机网络中,网络层是计算机通讯的重要组成部分,它负责处理数据包的传输和路由,是实现网络通信的必不可少的组件之一。网络层引入了三个协议:IP协议、ARP协议和路由协议。IP...【详细内容】
2023-09-06    王建立  Tags:   点击:(18)  评论:(0)  加入收藏
在信息时代,数据的高速增长使得计算机技术迎来了前所未有的机遇和挑战。在处理大规模数据时,如何有效地进行数据匹配和关联成为了一个重要课题。匹配网络(MatchingNetwork)作为...【详细内容】
2023-09-06  科技办公达人莱说    Tags:匹配网络   点击:(15)  评论:(0)  加入收藏
在当今数字化时代,计算机技术不断创新,孪生网络(TwinNetwork)作为其中的一项前沿技术,引起了广泛关注。孪生网络是一种将现实世界中的物体、过程或系统与数字模型相结合的方法,能...【详细内容】
2023-09-06  青瓜好吃吗    Tags:孪生网络   点击:(12)  评论:(0)  加入收藏
安全行业一直梦想着一个坚不可摧的互联网,威胁被消除,攻击者无法猖獗。许多人试图将这一理论概念化为现实,但目前它仍然是一个梦想。但Dark Cryptonite一家公司已经创建了这一...【详细内容】
2023-09-05  河南等级保护测评    Tags:互联网   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条