ARP&路由
来源:互联网 发布:网络打印机维修 编辑:程序博客网 时间:2024/06/16 04:33
主机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.网络层的功能:建立”主机到主机”的通信。
- ARP&路由
- 路由表 arp高速缓存
- nat,路由,arp个人理解
- Linux-理解ARP、网关、路由
- 对网关,路由,DNS,ARP,ARP欺骗的比喻
- 对网关、路由、DNS、ARP、ARP欺骗的经典比喻
- 网络 路由表和ARP缓存
- arp/ip地址/路由--总之很乱
- ARP表、交换机转发表、路由表
- ARP表、交换机转发表、路由表
- ARP表 MAC表 路由表
- 路由表与FIB, arp fdb
- 关于网关,路由,路由协议,ARP的精彩解释
- ping不使用路由时,内核不更新arp高速缓存
- ip,dns,路由表,ARP表形象比喻
- ip,dns,路由表,ARP表形象比喻
- 帮你理解网关、ARP、IP、MAC、路由
- 小故事 网关、ARP、IP、MAC、路由的形象比喻
- TPLINK渗透
- java中对数组的操作
- lua学习之table类型
- js闭包详解
- opencv 垂直投影分割字符
- ARP&路由
- iOS开发之正则表达式快速教程(NSPredicate、NSRegularExpression)
- LinkedList基本操作
- CodePUsh回滚
- Codeforces 805D Minimum number of steps
- 用函数fopen_s打开数据文件
- vmware 安装centos后的准备工作
- 安装Win10注意事项
- 金融系统中加密机的简介