数据包的传输

本文详细解析了192.168.1.2主机访问7.7.7.7 HTTP服务器的过程,包括TCP/IP封包、路由查找、ARP请求与响应、TCP三次握手以及HTTP请求的发送。深入探讨了网络通信中的子网计算、系统路由表、以太网封包和TCP/IP协议栈的工作原理。
摘要由CSDN通过智能技术生成

1. 192.168.1.2 欲访问 7.7.7.7 的 HTTP 服务器

2. 192.168.1.2 的 HTTP 客户端构造完成 HTTP 请求后通过套接字送由系统 TCP/IP 协议栈进行 TCP/IP 封包并开始握手 

3. 192.168.1.2 根据子网掩码算得自身与 7.7.7.7 处于不同的 IP 子网(《计算机网络》中管 VLSM 子网(无类网络)叫超网),因此需要查系统路由表(去往 7.7.7.7 的路由是多少?)

4. 根据系统路由表(终端主机的系统路由表通常就是默认路由去网关,根据最长匹配原则,去往 7.7.7.7 的下一跳是默认网关 192.168.1.1)

5. 开始依次执行 TCP、IP、以太网封包(封包顺序为自顶向下)

6. 首先执行 TCP 封包,flags 置 SYN 已经确定,目的端口 TCP 80,源端口由系统协议栈随机分配,源目 IP 分别为 192 和 7777(构造 TCP 伪首部需要源目 IP 信息),根据伪首部、真首部和 payload 算得 TCP 报文校验和,TCP 封包完成

7. 然后执行 IP 封包,源目 IP 192 和 7777

8. 最后执行以太网封包,源 MAC 为 192.168.1.2 的出接口网卡 MAC,目的 MAC 为下一跳 IP 的 MAC(也就是 192.168.1.1 的路由器接口 MAC),系统会首先查找系统 ARP 表(包含静态 ARP 和 ARP 缓存),如果没查到则发送 ARP 请求进行 ARP 学习

9.主机发送ARP数据报给交换机,交换机通过地址学习记录端口和MAC地址,并且将ARP请求数据包泛洪


10.  ARP广播包到达其他三台主机丢弃,路由器接收到ARP发现目的IP是自身,发送ARP单播回应包给交换机,交换机转发给192.168.1.2,主机将MAC地址记录ARP表中

11. 完成以太网封包后,首个 TCP SYN 握手包送由网卡发出(此时尚未携带任何 HTTP 载荷)

12.192.168.1.2发送TCP包给服务器,服务器接收到主机发送SYN,将SYN中的Seq+1作为自己的ACK,并且发送自己的SYN


13. 主机接收到SYN+ACK后将SYN再+1作为自己的ACK再给服务器

14. TCP 握手顺利完成后,开始发送 payload 携带 HTTP 请求载荷的 TCP 报文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌菜小包包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值