이더넷 프레임을 로컬 네트워크의 다른 시스템으로 보내는 올바른 방법은 무엇입니까?

이더넷 프레임을 로컬 네트워크의 다른 시스템으로 보내는 올바른 방법은 무엇입니까?

저는 최근 OSI 모델, 네트워킹 등에 대해 배우기 시작했습니다.
나는 C로 코딩하는 것을 좋아하기 때문에 나만의 이더넷 프레임을 보내고 싶었습니다.

이제 작동하게 되었습니다. 그러나 나는 아직도 한 가지에 대해 확신하지 못합니다.
컴퓨터에서 이더넷 프레임을 보낼 때기계로(두 컴퓨터가 동일한 네트워크에 있다고 가정할 때) 어떤 MAC 주소를 지정해야 합니까?목적지프레임의 MAC 주소는 무엇입니까?
라우터의 MAC 주소와 컴퓨터의 MAC 주소를 모두 시도했습니다., 두 가지 방법 모두 작동합니다. 기계의 MAC 주소를 얻으려면, 저는 단순히 ARP 요청을 했습니다.

그러나 올바른 방법은 무엇입니까?

컴퓨터에서 Wireshark로 트래픽을 모니터링했습니다.그리고tcpdump기계에서. 그게 기계의 출력이야( e0:d5:5e:c6:52:9a는 컴퓨터의 MAC 주소입니다.):

기계를 지정할 때의 MAC 주소를 대상 주소로 사용( a0:ce:c8:10:75:8c머신의 NIC MAC)):

18:42:46.152800 a0:ce:c8:10:75:8c > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 64: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5

라우터의 MAC 주소를 대상 주소( c8:0e:14:fd:f3:23라우터의 NIC MAC)로 지정하는 경우:

18:45:04.735375 c8:0e:14:fd:f3:23 > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 60: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5

이 결과는 라우터가원천MAC 주소를 사용하고 아마도 그의 캐시를 사용하여 대상 IP의 올바른 대상 MAC 주소를 결정합니다.

라우터는 기계의 MAC 주소가 있는 프레임을 어떻게 처리합니까?지정되어 있나요?

두 가지 방법에 차이가 있나요?

선호하는/올바른 방법이 하나 있습니까?

답변1

일반적으로 올바른 방법은 대상 시스템이 로컬 서브넷에 있다는 것을 알고 있는 경우 대상 시스템의 MAC 주소를 직접 사용하는 것입니다(필요한 경우 ARP 조회 수행). 이것은 작동합니다~에 관계없이프레임의 이더넷 유형이나 내용을 변경하며 일반적으로 라우터를 우회합니다(이더넷 스위치를 통해 단락됩니다).

만약에프레임에 IPv4 또는 IPv6가 포함되어 있으면 이를 서브넷의 라우터로 보낼 수 있습니다. 그러면 라우터는 ARP 조회를 수행하고 대상 IP 주소가 속한 호스트에 프레임의 페이로드를 전달합니다. (결국 라우터가 그렇죠.하다:IP 패킷을 전달합니다. 비록 그것이 단지 동일한 인터페이스에 다시 반영한다는 의미일지라도 말이죠.)

그러나 라우터를 통해 로컬 패킷을 보내는 것은 대부분의 경우 비효율적이며 완전히 불필요합니다. 저렴한 라우터의 경우 매우 느린 CPU(이더넷 스위치의 전체 회선 속도와 비교)로 패킷을 처리해야 할 수도 있습니다.

즉, 두 번째 방법~이다스위치 및 액세스 포인트의 "클라이언트 격리"(일명 "개인 VLAN") 기능과 함께 실제로 사용되는 경우가 있습니다.

답변2

이더넷에는 라우터가 없다는 점을 기억하십시오. 라우터는 이더넷 위의 계층인 계층 3(예: IP가 있는 네트워크 계층) 개념으로, 이더넷 자체는 이를 알 수 없습니다.

이더넷 헤더의 대상 필드에 넣을 올바른 주소는 대상 호스트의 이더넷 MAC 주소입니다.

귀하의 질문에서 이더넷 프레임을 호스트로 보내는 것에 대해서도 언급했는데, 이더넷 프레임에는 보낸 이더넷 대상과 다른 IP 호스트에 대한 IP 데이터그램이 포함되어 있는 것으로 나타났습니다. 따라서 IP 호스트는 우연히 라우터 역할을 했고 IP 데이터그램을 동일한 이더넷 LAN으로 다시 전송하여 라우팅했지만 이번에는 IP 호스트 주소에 해당하는 올바른 이더넷 대상 주소를 사용하여 IP 데이터그램이 주소였습니다. 에게.

관련 정보