流量分析一之数据包传输过程
封装与解封装
封装报文是从上层到下层(应用层-->传输层-->网络层-->数据链路层-->物理层),解封装报文是从下层到上层。
应用数据需要经过TCP/IP每一层处理后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)交换信息。
不同层的PDU中包含不同的信息,在不同层有不同的名称。
应用层数据在传输层添加TCP报文后的PDU称为Segment(数据段);
Segment(数据段)被传递到网络层,添加IP报文头得到的PDU称为Packet(数据包);
Packet(数据包)传递到数据链路层,添加Ethernet_Ⅱ或IEEE802.3报文后得到的PDU称为Frame(数据帧)。
最后,帧转换为比特,通过网络介质传输。这种逐层向下传递数据,并添加报头和报尾的过程称为封装。
从物理层逐层传递到目的端,向上传递的过程则是解封装。
数据包传输过程
数据包传输过程中,源IP地址和目标IP地址不会变,除非遇到NAT(SNAT或DNAT),源MAC和目标MAC遇到网关会变。
数据链路层通过MAC寻址,网络层通过IP寻址。
当一个数据包的目的地址不是本机,则需要查询路由表,当查到路由表中的网关之后,需要获取网关的MAC地址,并将数据包的MAC地址修改成网关地址,然后发送到对应的网卡。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】