ARP&路由

主机A———— >路由器1———>路由器2————>主机B

前提:主机A和主机B不在同一个网段上,但是主机A需要和主机B进行通信;
交互过程如下:
1.首先主机A将本地的ip和B的ip封装到网络包中,然后再检查B的ip地址和本机的ip地址是否在同一个网段上,如果不在同一个网段上,就将该网络包的源MAC地址设置成本机A的MAC地址,将目标MAC地址设置成FF-FF-FF-FF,并发送一个ARP的请求,”我的ip是AXXX,谁的ip是BXXX ?告诉我一下你的MAC地址,我想与你进行通信。”(交互的主机和本机不在同一个网段,只能将数据包发送给网关。)
2.路由器接收到A发送出去的请求后,发现A要与B进行通信,必须将网络包发送给我,然后由我进行中转,于是给A发送一个响应包,响应包里面的内容带有路由器1的MAC地址。
3.主机A收到路由器1返回的响应包后,将目标的MAC地址设置为路由器1的MAC地址,并将网络包送给路由器1。
4.路由器1收到网络包后,剥离MAC层,得到源ip和目标ip,并根据目标ip查找路由表,发现要将网络包送给主机B,必须要先将网络包(将源MAC地址设置为路由器1的MAC地址,目标MAC地址设置为路由器2的MAC地址)转发给路由器2。
5.同理,路由器剥离MAC层,得到源ip和目标ip,根据目标ip查找路由表,发现目标ip和我的某某端口在同一个网段上,于是发送arp请求,”谁的ip是BXXX,告诉我一下你的MAC地址,我想与你通信。”
6.主机B收到请求包后,发现找的就是我,于是返回一个响应包,里面包含主机B的MAC地址。
7.路由器2收到该响应包后,将源MAC地址设置成路由器2的MAC地址,目标MAC地址设置成主机B的MAC地址,然后将网路包发送给主机B
8.至此,主机A已将网络包发送给了主机B

关键:
1.路由表记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的
2.IP地址和MAC虽然能为一标识某一台主机,但是两者地址缺一不可。
只知道MAC地址,人们无法知道这台机器所处的位置。
3.网络层:区分不同的计算机是否属于同一个子网路
4.端口:其实通过上面交互只能确定两个主机,但是不知道对应的应用程序(哦,来了一个网络包,是给QQ的还是给迅雷的呢?),如是伟大的科学家发明了端口号用来唯一标识应用程序的。 端口它其实是每一个使用网卡的程序的编号。 关于端口,上次有一个同事问我,是不是每一个进程都占有一个端口,哈哈,当然不是,只是那些需要进行网络通信的才会占用端口号,简答点说,就是我这个进程有数据包要通过网卡发送出去(或者接受)才会占有端口号。 再比如说:我现在有一个程序,里面就一句hello,world打印,那么请问他占用的是哪个端口号啊?呵呵。。。
5.传输层的功能:建立”端口到端口”的通信。
6.网络层的功能:建立”主机到主机”的通信。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值