가상 머신의 IP 주소가 다른 경우 ping이 성공할 수 있는 이유는 무엇입니까?
다음 네트워크를 예로 들어보겠습니다. 머신 A, B, C, D가 4개 있고 라우터 RA가 1개 있고 서브넷 마스크는 모두 255.255.255.0이며 기본 경로는 192.168.0.1입니다. [1 ]
1. 동일한 네트워크 세그먼트에서
호스트 A에서 "Ping 192.168.0.5"를 실행한 후 무슨 일이 일어났습니까? 먼저 Ping 명령은 고정된 ICMP 요청 패킷을 구축합니다. 그러면 ICMP 프로토콜은 이 패킷을 주소 "192.168.0.5"와 함께 IP 계층 프로토콜(ICMP와 같이 실제로는 백그라운드에서 실행되는 일련의 프로세스임)로 전달하고 IP 계층 프로토콜은 주소 "192.168.0.5"를 대상 주소로 사용하고 로컬 IP 주소를 소스 주소로 사용하고 기타 제어 정보를 추가하여 IP 데이터 패킷을 구축하고 MAC 주소 192.168을 얻는 방법을 찾습니다. 0.5 (물리적 주소, 이것은 데이터 링크입니다. 계층 프로토콜은 데이터 링크 계층의 전송 단위를 구성합니다 - 프레임에 필요함). 이를 데이터 링크 계층으로 넘겨 데이터 프레임을 구성합니다. 핵심은 여기에 있습니다. IP 계층 프로토콜은 머신 B의 IP 주소와 자체 서브넷 마스크를 사용하여 해당 머신이 동일한 네트워크에 속해 있는지 확인합니다. 두 머신이 이 네트워크에 있는 경우 직접 검색합니다. 이전에 통신한 A 머신의 ARP 캐시 테이블은 머신 B의 IP와 해당 MAC 간의 매핑 관계를 가지고 있어야 합니다. 그렇지 않은 경우 머신 B의 MAC을 얻기 위해 ARP 요청 브로드캐스트를 보내고 이를 데이터 링크 계층으로 전달합니다. 후자는 데이터 프레임을 구성하고 대상 주소는 IP 계층에서 전달된 물리적 주소이고 소스 주소는 로컬 시스템의 물리적 주소이며 일부 제어 정보가 추가되어 미디어 액세스 규칙에 따라 전송됩니다. 이더넷의.
이 데이터 프레임을 수신한 후 호스트 B는 먼저 대상 주소를 확인하고 이를 호스트의 물리적 주소와 비교하여 일치하면 수신하고 그렇지 않으면 폐기합니다. 수신 후 데이터 프레임을 확인하고 프레임에서 IP 데이터 패킷을 추출하여 로컬 시스템의 IP 계층 프로토콜로 전달합니다. 마찬가지로, IP 계층 검사 후 유용한 정보가 추출되어 ICMP 프로토콜로 전달됩니다. 처리 후 후자는 즉시 ICMP 응답 패킷을 구성하여 호스트 A로 보냅니다. 프로세스는 호스트 A가 ICMP 요청을 보내는 것과 완전히 동일합니다. 호스트 B로 패킷을 보냅니다.
2. 동일한 네트워크 세그먼트에 있지 않음
호스트 A에서 "Ping 192.168.1.4"를 실행한 후 MAC을 얻는 방법은 위와 동일하게 시작됩니다. IP 프로토콜은 D 머신이 자신과 동일한 네트워크 세그먼트에 없는 것으로 확인되면 처리를 위해 라우터로 직접 전달됩니다. 즉, 라우터의 MAC을 가져옵니다. 라우터의 MAC을 얻는 방법은 위와 동일합니다. 먼저 ARP 캐시 테이블에서 검색하여 찾을 수 없으면 브로드캐스트합니다. 라우터는 이 데이터 프레임을 얻은 후 호스트 D에 연결합니다. 이를 찾을 수 없으면 호스트 A에 시간 초과 메시지를 반환합니다.