Linux中网络包的发送流程和接收流程
Linux中网络包的发送流程和接收流程如下:
发送流程:
- 应用程序通过Socket API发送数据。
- 数据被传递到协议栈中的传输层。
- 传输层将数据分成一个个数据包,并加上TCP/UDP头部信息。
- 数据包被传递到网络层,网络层将数据包加上IP头部信息。
- 数据包被传递到数据链路层,数据链路层将数据包加上MAC头部信息。
- 数据包被发送到物理层,通过物理介质传输到目的地。
接收流程:
- 网卡接收到数据包。
- 数据链路层将MAC头部信息去掉,并检查数据包的校验和。
- 数据包被传递到网络层,网络层将IP头部信息去掉,并检查数据包的校验和。
- 数据包被传递到传输层,传输层将TCP/UDP头部信息去掉,并将数据传递给应用程序。
- 应用程序接收到数据。
原文地址: https://www.cveoy.top/t/topic/fmr7 著作权归作者所有。请勿转载和采集!