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

网络传输的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:网络传输   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
网络传输的7个关键步骤
/ 发送数据包 /我们前面已经了解到为什么网络需要分层,每一层都有自己的职责。在发送数据包的过程中,这些层扮演着不同的角色。它们的主要任务是将数据包进行层层封装后发送,并...【详细内容】
2023-09-10  Search: 网络传输  点击:(282)  评论:(0)  加入收藏
毫米波网络传输性能测量及分析研究获进展
中国科学院计算机网络信息中心先进网络发展部在基于5G/B5G毫米波网络的传输协议性能测量工作中取得新进展,基于自有的60GHz毫米波网络试验床,从不同类别的拥塞控制算法(CCAs)粒...【详细内容】
2022-04-24  Search: 网络传输  点击:(227)  评论:(0)  加入收藏
电脑发送的信息是如何到达目的地的?简单了解下网络传输原理过程
我们现在基本上每天都在使用网络,在网络上进行互相通信,但你知道你电脑发送的信息是如何传递到远端电脑上的呢?本篇就讲述一下网络传输原理过程。首先,我们先得了解一下数据包的...【详细内容】
2020-09-21  Search: 网络传输  点击:(362)  评论:(0)  加入收藏
每天五分钟网络知识学习——网络传输介质
网络就是通过介质把终端互连而成的一个规模大、功能强的系统,从而使得众多的终端可以方便地互相传递信息,共享信息资源。 终端可以产生、发送和接收数据,网络是终端建立通信的...【详细内容】
2020-05-03  Search: 网络传输  点击:(558)  评论:(0)  加入收藏
解析音视频网络传输技术之一
前面讲解了音视频编解码的基本知识,相信阅读过的朋友,都有个基本的认识。音视频除了存储,还如何传输呢?比如直播互动,网上课堂等,这些场景中,音视频是如何实现在网络中传输呢?今天...【详细内容】
2020-01-16  Search: 网络传输  点击:(402)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(11)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(31)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(35)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(37)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(69)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(59)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(40)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(144)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(48)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(76)  评论:(0)  加入收藏
站内最新
站内热门
站内头条