网络数据在计算机内部的发送和接收处理(网络数据在计算机内部的发送和接收处理方式)

电脑教程
电脑教程
4319
文章
0
评论
2023年8月5日10:09:41 电脑教程 阅读 18,811

在高级语言中一般会使用类似HttpClient、TcpClient、UdpClient等封装好的API进行数据的发送和接收,它们的底层都是基于Socket,而Socket又是基于操作系统内核的TCP/IP协议栈,TCP/IP协议处理平常就很难接触到了,再往下内核和网卡又是怎么交互的呢?

这篇文章就来介绍网络数据在计算机内部的发送和接收处理过程。

网络数据在计算机内部的发送和接收处理(网络数据在计算机内部的发送和接收处理方式)

先来看一张示意图,左侧是数据的发送处理,右侧是数据的接收处理,下边会按照步骤进行说明。

网络数据在计算机内部的发送和接收处理(网络数据在计算机内部的发送和接收处理方式)

数据发送

1、应用程序从内存读取要发送的数据。这里的内存是应用程序进程管理的内存,也可称为用户空间内存。

2、应用程序通过Socket接口将读取到的数据发送到内核协议栈进行处理。

3、内核中的TCP/IP协议栈接收到Socket传递过来的数据,进行TCP、IP打包,zui终以IP数据包的格式写入到内核空间的一块缓存中。数据包写入后会触发一个软中断,通知底层模块来读取数据。

4、网卡中的DMA单元读取这些要发送的数据,然后发送到网卡的数据链路层和物理层,zui终发送到网络中进行传输。

5、DMA读取数据完毕后,会向CPU发送一个中断,触发清理内核空间中的发送数据缓存,以便下一次发送处理。

数据接收

1、网卡中的DMA从数据链路层接收到数据,然后写入到内核空间的一块缓存中。

2、缓存写入完毕后会发送一个CPU中断,触发程序读取缓存,并发送到内核协议栈。

3、内核中的TCP/IP协议栈对接收到的数据进行解包,去掉IP协议头、TCP协议头,然后继续向上传递数据。

4、应用程序通过Socket接口读取数据,这时读取到的数据就是发送方发出来的数据了。

5、然后应用将这些数据写入到自己的进程内存中,供进一步使用。


图中的线条和步骤主要描述了数据的流转,并没有提供控制逻辑和寻址逻辑的说明,比如DMA向内存写数据需要获取对应的内存地址,以及申请总线通道用来传输数据到内存。

以上就是网络数据在计算机内的发送和接收过程,希望对你有用,欢迎留言探讨。

以上内容来源于网络,由“WiFi之家网”整理收藏!

点击展开全文

相关推荐

台式电脑多少价位可剪辑视频 电脑教程

台式电脑多少价位可剪辑视频

在当今数字化时代,视频剪辑已经成为许多人日常生活中的重要一部分,尤其是在自媒体和短视频行业的快速发展下,越来越多的人开始尝试制作和编辑视频。然而,进行视频编辑并不仅仅依赖于软件的操...
台式电脑显卡推荐 电脑教程

台式电脑显卡推荐

在选购台式电脑时,显卡是一个至关重要的部件,因为它直接影响到电脑的图形处理能力和整体性能。无论是玩游戏、进行图形设计工作,还是观看高清视频,显卡的选择都直接关系到用户的体验。因此,...
台式电脑音响插哪个接口 电脑教程

台式电脑音响插哪个接口

在现代家庭或办公室中,台式电脑已成为不可或缺的设备,音响作为增强音频体验的重要配件,其连接方式也显得尤为重��。了解如何正确地将音响连接到台式电脑,不仅关系到音质的发挥,还能避免不...