이 MAC 주소, ARP 프로토콜 및 라우팅 테이블 기사, 보물에 대한 인터넷에서 발견. 개념을 네트워킹에 관련 기사는 분명하게 말한다.
원래는 51CTO 블로그에 게시되어 있지만 갈 404 포인트가 이유를 알고하지 않습니다. 나는 원래 기술 포럼에서 많은 좋은 기사가 있다는 것을 생각하지 않았다.
그럼, 다음은 문서의 텍스트는 다음과 같습니다
MAC 주소 테이블
는 MAC 주소 테이블에 올 때 스위치가 MAC 주소 테이블에 따라 데이터 프레임을 전송하기 때문에, 나는, 스위치의 작동 원리에 대해 말해야한다. 대응 관계 테이블은 스위치의 스위치와 LAN 인터페이스의 MAC 주소가 기록되면, 스위치는이 테이블에 따라 지정된 호스트로 데이터 프레임 전송에 대한 책임이있다.
스위치 작동
MAC 어드레스 테이블에 데이터 프레임 인터페이스에서, 우선, 소스 MAC 어드레스를 기록 데이터 프레임을 수신하고, 대응하는 이후의 스위치는 그 자신의 MAC 테이블의 데이터 프레임의 목적지 MAC 어드레스의 정보가 존재하는 경우 있는지 확인 상기 MAC 테이블의 대응하는 인터페이스가없는 경우, 인터페이스가 아닌 송신 (즉, 브로드 캐스트)로부터 데이터 프레임을 받아, 상기 데이터 프레임 전송 (즉, 유니 캐스트)에 기록한다.
도는 다음과 상세 설명을 데이터 프레임 스위치를 송신하는 과정을
1) 호스트 A는 소스 MAC 어드레스, 상기 스위치에 호스트 B 데이터 프레임의 목적지 MAC 어드레스를 보유한다.
2) MAC 어드레스 테이블에 기록 된 데이터 프레임이, 제 1 소스 MAC 어드레스 및 0/1 F 해당 데이터를 프레임 인터페이스 (인터페이스)를 수신 한 후 상기 스위치.
3) 다음 목적지 MAC 데이터 프레임의 자신의 MAC 어드레스 테이블의 어드레스 정보를인지 스위치 확인은 모든 경우가 아닌 경우,이 데이터 프레임은 비에서 입금 상기 MAC 어드레스 테이블에 기록 인터페이스로부터 송출 송신 수신 인터페이스의 모든 인터페이스 (0/1 F를 제외하고, 즉, 인터페이스).
4)이 때, LAN 수신되는 모든 데이터는 호스트의 프레임 있지만 데이터 프레임과 응답 데이터 프레임이 상기 데이터 프레임이 호스트 (B)의 MAC 주소를 포함하는 경우이 방송에 응답 만 호스트 B는 수신
5) 상기 스위치는 호스트 (A)와 호스트 B가 통신 할 때 다음이어서, 호스트 B의 (즉, MAC 주소)를 상기 데이터 프레임의 소스 MAC 어드레스를 기록하고 것이다 데이터 프레임에 응답하여 호스트 B를 수신하면, 스위치는 MAC에 의한 테이블의 주소 레코드가 하나의 방송을 달성했다.
아래와 같이 여러 개의 상호 연결된 스위치가 스위치된다 LAN, MAC 어드레스 테이블에있을 때 어떻게 기록 하는가?
1) 主机A将一个源MAC地址为自己,目标MAC地址主机C的数据帧发送给交换机
2) 交换机1收到此数据帧后,会学习源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧。
3) 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会广播此数据帧。
4) 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机1和交换机2都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。
5) 这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口f 0/1。
总结:从上面的两幅图可以看出,交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口。
注意:交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。
ARP缓存表
上面我们讲解了交换机的工作原理,知道交换机是通过MAC地址通信的,但是我们是如何获得目标主机的MAC地址呢?这时我们就需要使用ARP协议了,在每台主机中都有一张ARP表,它记录着主机的IP地址和MAC地址的对应关系。
ARP协议:ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。
如下图:详细讲解ARP的工作原理。
1) 如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。
2) 当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
3) 当主机B接受到此数据帧后,会校对IP地址是否是自己的,并将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,其中包括自己的MAC地址。
4) 主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。
windows/linux下可以通过命令行中输入"arp -a"查看本机的ARP缓存表。
路由表
路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。
直连路由:是直接连接在路由器接口的网段,由路由器自动生成。
非直连路由:就是不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由。
路由表中记录的条目有的需要手动添加(称为静态路由),有的测试动态获取的(称为动态路由)。直连路由属于静态路由。
路由器是工作在网络层的,在网络层可以识别逻辑地址。当路由器的某个接口收到一个包时,路由器会读取包中相应的目标的逻辑地址的网络部分,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。这就是数据路由的过程。
如下图:详细介绍路由器的工作原理
1) HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由A的转发。
2) HostA通过ARP请求获取网关路由A的E0口的MAC地址,并在链路层将路由器E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。
3) 路由器A从E0可接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器2的E1接口的MAC地址。
4) 路由B从E1口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E0口的直连网段,路由器B通过ARP广播,获知HostB的MAC地址,此时数据包在路由器B的E0接口再次封装,源MAC地址是路由器B的E0接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器的E0接口发送给HostB。
5) 此时HostB才会收到来自HostA发送的数据。
总结:
- 路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。
- Mac地址表主要用在交换机上,用来查询Mac地址和交换机接口的对应关系。
- arp用在查询IP地址和Mac地址的对应关系上,运行在交换机和主机上。
- 路由表则涉及更多的东西,简而言之就是规定了路由器把这个数据包下一跳发给谁。