通过mac地址查找ip_TCP/IP 基础

本文根据华为数据通信课程,做的笔记。

可以在 B站 华为数据通信官方账号下观看对应课程。

https://www.bilibili.com/video/BV1WV411U7L4

e3012704cd1da0a17c767d73f7c84b45.png

404ece5989d3a6af59347e0bdc99ab0a.png

addda4d122576ef8d64b8166c0f98370.png

b9cba947078341e02bd0feed59d20fd4.png

三次握手:

A发送SYN给B,通知B建立连接。

B回复A,OK。

这时候A收到B的回复,表示A已经知道B是收到了A想建立连接的消息了。但是此时B是不知道A是否收到B发出想建立连接的消息。所以需要第三次握手。

A发送 seq=1是因为自己上一条发出的消息seq=0,所以+1, ack=1 是回复B的seq=0的消息,所以+1。

62e2f06f1ab7f750fc0e1f03868c51ff.png

1、A同时B要断开连接。

2、B发送ACK给A,避免A没有收到消息,一直发送请求断开连接的消息。

3、B处理完数据后,发送FIN 和ACK给A。请求断开连接。

4、A给B发送ACK。这样B才能确认A收到自己要断开连接的请求。

cea5572043d9a45819c609990b66743b.png

第一步构造数据

b83608b27a60599b62b09a0f1727354a.png

第二步,数据传送给了传输层,传输层添加了头部信息,端口号。

0f84e221256b441e20d5df06680e8d79.png

第三步,补充IP头信息。

810d67a420d4900d667d24940bf193f8.png

第四步,补充MAC地址。一开始没有MAC地址时,通过广播获得。

类型 0x0800 表示后面是IPV4的报文。

4e0ef69cf10c6a67575b990e9878f50b.png

第五步,通过MAC地址找到要发送给R1,于是将二进制的数据传输给R1。

d8cd6d4a97ef890f93864f27a47be0d0.png

检查帧头的MAC地址是自己。

6d593e571869ea3b26ef19fb6ba83e95.png

拆开帧头,看到IP不是自己。于是查找路由表。

bf10cd1b6cefa74d09c93de4620f8213.png

把源MAC地址修改为自己 的MAC地址,将R2的MAC设置为目标MAC地址。

66dba37baef84efa44371237b533c9bf.png

3083173362fcab2cd5e4f9730fab979b.png

68616495a1864cca3efcaa3b8ca858f3.png

同样的,R2路由器拆开帧头,看到IP地址是自己直连机器。于是通过路由表找到对应ip的MAC地址,设置为目标MAC。将数据发送出去。

Server收到消息,确认目标MAC是自己。

检查IP地址是自己。

看到端口是80,于是检查自己机器的80端口是开放的。

于是将DATA数据交给监听80端口的程序去处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值