一、网络数据包
1.传输过程
1)应用层:
定义应用程序间通信和交互的规则和标准;协议:HTTP、HTTPS
- 应用进程通过系统调用 Socket 库,来委托协议栈工作,将消息/报文传输给传输层
2)传输层:
提供了可靠的数据传输服务,确保数据在端到端之间的可靠传输;协议:TCP、UDP
- 经过TCP三次握手建立连接后,数据会被以 MSS 的长度为单位进行拆分,拆分出来的每一块数据都会加上 TCP 头信息,放进单独的网络包中,然后交给网络层
3)网络层:
负责在不同网络之间传输数据包,处理数据包的路由和转发;协议:IP、ICMP
- 网络层根据路由表规则找到对应网卡的IP地址,加上IP报头,然后交给网络接口层
4)网络接口层:
负责网络包在物理网络中的传输,比如网络包的封帧、 MAC 寻址、差错检测,以及通过网卡传输网络帧等;协议:ARP、以太网
-
网络接口层通过ARP协议找到接收路由器的MAC地址,加上MAC头部
-
然后网卡驱动程序会在其开头加上报头和起始帧分界符,在末尾加上用于检测错误的