IP/ARP/ICMP/UDP 一些原理

1:主程序,在应用层请求发出一个文本信息

2:到达传输层(tcp)后,以udp包发送文本,等待接受3个消息。以太网包到达信息、ARP重载信息、ARP老化信息

3:组udp协议包->udp_send程序

4:组IP协议包->IP_send程序

在IP_send程序中调用ARP解析程序(ARP_resolve)如果得到了MAC地址,执行以太网发送程序。eth_send。如果得到了,则将发送的信息缓存。存在wait。

5:转ARP_reslove 程序。输入IP地址,在ARP表中寻找MAC,如果找到MAC,返回IP_send。 如果找不到发ARP请求广播命令。

6:发ARP广播命令,调用ARP_send程序:a 组arp协议包 b 调eth_send

7:此时状态由发送转为接收,并且设置好wait for arp标志

8:回到主程序等待接收,收到一个协议包->解包。包有可能是IP协议包和ARP包

9:如果收到的是一个arp数据包:可能是arp回应包,也可能是arp请求包。

10:如果是arp请求包,取出发送方的ip地址和mac地址,存入我们的arp表中。

a:查找arp表,看是否存在

b:如果存在修改年龄,设置为最年轻,如果不存在,先看arp表中是否有空位置,有则填入,并将年龄设置为最优。如果没有空位子,则把最老的挤走。

发arp响应包告诉对方我们的mac地址

11:如果是arp响应包,则我们得到mac地址,取消wait for arp标志,存入arp表,转IP_send程序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值