서브넷 마스크가 네트워크의 개별 컴퓨터와 관련된 이유는 무엇입니까?

서브넷 마스크가 네트워크의 개별 컴퓨터와 관련된 이유는 무엇입니까?

네트워크를 하위 네트워크로 나누는 데 서브넷 마스크가 어떻게 사용되는지 이해합니다. 그런데 네트워크의 모든 컴퓨터가 라우터뿐만 아니라 서브넷 마스크를 알아야 하는 이유는 무엇입니까?

각 컴퓨터가 물리적으로 유선으로 서로 연결되어 있지만 어쨌든 모든 패킷은 라우터를 통과해야 한다는 점을 이해할 수 있습니다.

네트워크에 192.168.0.0/255.255.255.0IP가 있는 컴퓨터가 있다고 가정해 보겠습니다 192.168.0.1.

해당 컴퓨터가 하위 네트워크 외부의 컴퓨터에 연결하려고 하면 192.168.1.1라우터로 메시지를 전송하고 라우터는 IP가 하위 네트워크 IP 범위 외부에 있음을 식별하고 하위 네트워크에서 전송하지 않습니다. 네트워크에 연결되어 있는 네트워크(아마도 다른 라우터)로 이를 전송합니다.

답변1

귀하의 원래 가정은 완전히 정확하지 않습니다. "라우터"라고 부르는 것은 두 개의 장치가 하나로 통합된 것입니다. 즉, 내부적으로 다중 포트에 연결된 2포트 라우터입니다.이더넷 스위치. (여기에 예가 있습니다.도표.)

이는 컴퓨터가~이다레이어 2에 직접 연결되어 서로 패킷을 보낼 수 있습니다.없이라우터 코어를 통과하여 스위치 칩에 의해 포트 간에 간단히 전달됩니다. (라우터는 스위치에 자체 "포트"를 가지고 있습니다.)

따라서 Wireshark를 사용하여 패킷을 살펴보면 서로의 MAC 주소를 직접 사용하는 반면 "외부" 패킷은 항상 라우터의 MAC를 대상으로 사용하는 것을 볼 수 있습니다.

(대부분의 가정에서 볼 수 있는 일반적인 "무선 라우터"에 대해 이야기하고 있다고 가정합니다. 이것이 바로 이러한 질문의 일반적인 원인입니다. 더 큰 네트워크는분리된서브넷당 하나의 포트가 있는 라우터, 몇 개의 별도 스위치(아마도 마스터 하나와 층/방당 하나), 그리고 이러한 스위치에 연결된 수십 대의 컴퓨터.)

"스위치"가 "액세스 포인트"라고도 불리는 "무선 브리지"로 대체된다는 점을 제외하면 Wi-Fi 네트워크와 거의 동일합니다. 두 경우 모두 연결된 컴퓨터는 레이어 2에서 서로에게 직접 패킷을 보낼 수 있습니다.없이라우터를 통과합니다.


코멘트:

내가 라우터를 언급했을 때 실제로는 스위치를 의미했습니다. 내 실수. 내 요점은 하위 네트워크의 각 컴퓨터가 서로 연결되어 있는 것이 아니라 스위치에 연결되어 패키지를 올바른 대상으로 전달할 수 있다는 것입니다. 이더넷 프레임에는 서브넷 마스크가 포함되어 있지 않습니다. 스위치가 이미 이 지식을 갖고 있으므로 올바른 전환을 수행하는 데 필요하지 않기 때문입니다.

또 틀린 말이군요. 스위치에는 이러한 지식이 없습니다. 스위칭 코어는 레이어 2에서 작동하지만 이를 알지 못합니다.아무것IP 정보 – 순수하게 '대상 MAC 주소' 필드를 기반으로 이더넷 프레임을 전달합니다.

따라서 호스트는 대상으로 사용할 MAC 주소를 파악하기 위해 서브넷 마스크가 필요합니다.

  • 피어가 동일한 서브넷 내에 있는 경우 다음으로 간주됩니다.온링크정의에 따르면 이더넷 프레임은 피어의 MAC를 대상으로 갖습니다.

  • 동료를 위한밖의서브넷, 이더넷 프레임에는게이트웨이의MAC을 대상으로 합니다.

(이는 기본 구성에 적용됩니다. 일부 특수 눈송이 네트워크는 이를 변경합니다. 예를 들어 대부분의 운영 체제에서는 추가 서브넷에 대한 추가 "온링크" 경로 추가를 허용합니다. 반대로 일부 스위치는 "온링크"도 허용하도록 스푸핑 ARP 응답을 구성할 수 있습니다. " 트래픽이 게이트웨이를 통과하도록 강제됩니다.)

답변2

컴퓨터는 다음 사항을 어떻게 알 수 있나요?목적지 주소같은 서브넷에 있고 다른 서브넷에 있나요?

확인 중현지 주소그리고서브넷 마스크.

몇 가지 예를 확인해 보겠습니다.

내 컴퓨터에 IP가 있고 192.168.0.1마스크가 있으면 에서 까지 의 모든 주소가 동일한 서브넷에 있음 255.0.0.0을 의미합니다 . 다른 모든 컴퓨터에 대한 패킷은 라우터를 통과할 필요 없이 직접 보낼 수 있습니다. ARP 패킷을 보내 대상 컴퓨터의 MAC 주소를 가져온 다음 패킷을 보냅니다.192.0.0.0192.255.255.255

그러나 내 컴퓨터에 IP가 있고 192.168.0.1마스크가 있는 경우 255.255.255.128동일한 서브넷에 있는 컴퓨터는 IP 주소부터 192.168.0.0까지만 입니다 192.168.0.127. 직접 연결할 수 있습니다(ARP 전송, MAC 주소 찾기 등). 예를 들어 다른 주소는 192.168.0.200라우터를 통과하여 도달해야 합니다.

답변3

IP에 대해 분명하지 않은 점은 모든 IP 장치가그 자체가 라우터입니다.

이는 "route print" 명령을 사용하여 일반 PC에서 볼 수 있습니다. 로컬 이더넷 또는 Wi-Fi 세그먼트와 localhost 네트워크라는 두 개의 네트워크에 연결되어 있습니다. 모든 패킷은 어떤 네트워크에 넣을지 결정해야 합니다.

컴퓨터를 "공용" 네트워크와 "개인" 네트워크라는 두 네트워크에 연결하면 이러한 현상이 더욱 분명해집니다. 이제 패킷을 보낼 네트워크를 결정하려면 서브넷 마스크가 필요합니다.

많은 사람들은 단일 네트워크 연결이 있는 PC가 잘못 구성된 서브마스크와 작동할 수 있다는 사실을 우연히 발견하게 됩니다. 그들은 결국 모든 것을 게이트웨이로 전송하게 됩니다.

답변4

TCP/IP는 귀하가 제안한 대로 설계되었을 수 있습니다. 리프 노드는 모든 것을 라우터로 보내고 이를 보낸 사람과 동일한 서브넷에 있을 수 있는 대상으로 전달합니다.

그러나 이는 다음 두 가지 이유로 최적의 설계가 아닙니다.

  1. 더 많은 대역폭을 사용합니다. 동일한 서브넷에 있는 장치 간의 모든 패킷은 두 번 전송되어야 합니다. 한 번은 발신자에서 라우터로, 다시 한 번 라우터에서 수신자로 전송됩니다. 라우터가 네트워크 스위치이기도 한 네트워크에서는 어쨌든 스위치를 통과하게 되므로 이는 실제로 추가 대역폭이 아닙니다. 그러나 모든 네트워크 기술이 그렇게 작동하는 것은 아닙니다. 원래 이더넷 설계는 중앙 스위치나 중계기가 없는 버스 기술이었습니다.

  2. 라우터에 더 많은 부하가 걸립니다. 라우터가 스위치이기도 하지만 단순한 레이어 2 스위칭이 아닌 레이어 3 라우팅 구현으로 이동했기 때문에 작업량이 조금 더 많습니다.

TCP/IP 설계를 구현하는 일반적인 철학은 최종 노드가 지능형 장치이므로 일부 작업을 수행할 수 있다고 가정한다는 것입니다. 백본 라우터처럼 전체 네트워크 토폴로지를 알 필요는 없지만 초기 로컬 대 원격 라우팅 작업 중 일부를 수행할 수 있을 만큼 로컬 환경에 대해 충분히 알고 있습니다. 이 간단한 초기 라우팅을 구현하는 데는 많은 코드가 필요하지 않습니다.

또한 라우터가 아닌 장치가 반드시 하나의 서브넷에만 있을 필요는 없습니다. PC에는 여러 개의 네트워크 카드를 쉽게 가질 수 있습니다. 많은 네트워크 카드에는 이더넷과 WiFi가 모두 있습니다. 그리고 각각은 서로 다른 서브넷에 연결될 수 있으며 주소와 서브넷 마스크를 사용하여 사용할 네트워크 카드를 결정합니다. 가상 머신을 실행하는 경우 가상 머신을 호스트 시스템에 연결하는 가상 서브넷이 있을 가능성이 높습니다.

관련 정보