网络模型(四层)--应用层(http), 传输层(TCP,UDP),网络层(ip),数据的流转

1. 应用层 :

2. 传输层:

3. 网络层:

4.链路层:

通过网络发送信息时,数据在内存中的流转过程

一、用户内存中的流转

应用层数据生成

  • 当用户使用应用程序(如浏览器、即时通讯软件等)创建要发送的信息时,这些信息首先在应用程序的内存空间中以特定的数据结构存在。例如,在即时通讯软件中,消息可能包含发送者、接收者、消息内容、时间戳等信息,这些数据以结构体或者对象的形式存储在应用程序的堆或栈内存中。
  • 应用程序可能会对这些数据进行编码或格式化处理,例如将文本消息转换为适合网络传输的编码格式(如UTF - 8)。

向操作系统传递数据

  • 应用程序通过系统调用(如在Windows中的WSASend,在Linux中的send系统调用)将准备好的数据传递给操作系统。在这个过程中,数据从应用程序的内存空间复制到操作系统内核的缓冲区中。这个缓冲区可能是内核为网络通信专门设置的内存区域,如套接字缓冲区。

二、操作系统中的流转

协议栈处理

复制代码
 ##### **传输层**:

 * 在操作系统内核中,数据首先到达传输层。如果使用的是TCP协议,TCP模块会为数据添加TCP头部信息,包括源端口、目的端口、序列号、确认号、窗口大小等。这些信息有助于实现可靠的端到端通信。如果是UDP协议,则添加相对简单的UDP头部,主要包含源端口和目的端口。这个过程中,数据在传输层的内核缓冲区中进行处理,缓冲区的大小通常是有限制的(例如,在Linux中可以通过系统参数调整TCP缓冲区大小)。
复制代码
 ##### **网络层**:

 * 经过传输层处理的数据接下来到达网络层。网络层会添加IP头部,其中包含源IP地址、目的IP地址、协议类型(如TCP为6,UDP为17)等信息。在这个阶段,操作系统可能会根据目的IP地址进行路由选择,确定数据要发送到哪个网络接口(网卡)。数据在网络层的缓冲区中继续流转,等待进一步处理。
复制代码
 ##### **数据链路层**:

 * 当数据到达数据链路层时,会添加数据链路层头部和尾部信息。例如,在以太网中,会添加以太网头部(包含源MAC地址、目的MAC地址、帧类型等)和尾部(帧校验序列)。在这个过程中,数据被组织成适合在物理网络介质上传输的帧格式,并且存储在数据链路层的缓冲区中。

与网卡交互

  • 操作系统将构建好的数据帧从数据链路层的内核缓冲区移动到与网卡对应的驱动程序缓冲区。这个过程涉及到内存拷贝操作,以确保数据能够被网卡正确处理。

三、通过网卡发送出去

网卡初始化

  • 网卡在操作系统启动时被初始化,它有自己的内部缓冲区(发送缓冲区和接收缓冲区)。在发送数据之前,网卡会检查自身的状态,确保可以进行发送操作。

数据传输

  • 从驱动程序缓冲区来的数据被写入网卡的发送缓冲区。然后,网卡根据物理层的协议(如以太网的物理层标准)将数据转换为电信号或者光信号,通过网络介质(如网线、光纤等)发送出去。在这个过程中,网卡会按照一定的时钟频率和编码规则对数据进行处理,以确保数据能够在网络上正确传输。
相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
QYRdata3 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19923 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖3 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20233 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5553 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
z落落3 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp