본문 바로가기
개발공부 개발새발/Network

Network ) 통신 방식 , MAC 주소, IP 주소 (서브네팅)

by 휴일이 2024. 5. 30.

통신 방식

유니캐스트

출발지와 목적지가 명확히 하나로 정해져있는 1:1 통신 방식

  • 대부분의 통신이 유니캐스트

브로드캐스트

로컬 네트워크 내의 모든 호스트에 패킷을 전달해야 할 때 사용. 목적지 주소가 모든 주소

  • 유니캐스트로 통신하기 전, 상대방의 정확한 위치를 알기 위해 주로 사용.

멀티캐스트

멀티캐스트 그룹 주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷 전송.

  • 사내 방송 또는 증권 시세 전송처럼 단방향으로 다수에게 동시에 같은 내용을 전달해야 할 때 사용.

 

💡 IPv6 기반 주소 체계에는 브로드캐스트 대신 링크 로컬 멀티캐스트로 대체하여 사용한다.

 

애니캐스트

애니캐스트 주소가 같은 호스트들 중, 가장 가깝거나 가장 효율적으로 서비스할 수 있는 호스트와 통신하는 방식.

  • 가장 가까운 DNS 서버를 찾을 때 또는 가장 가까운 게이트웨이를 찾는 애니캐스트 게이트웨이 기능에.
  • 최종 통신은 1:1로 유니캐스트와 애니캐스트가 동일하나, 통신할 수 있는 후보자가 다르다.
    • 유니캐스트는 출발지, 목적지가 전부 한 대 씩.
    • 애니캐스트는 같은 목적지 주소를 가진 서버가 여러 대. → 통신 가능한 다수의 후보군

 

타입 통신 대상 범위 IPv4 IPv6 예제
유니캐스트 1:1 전체 네트워크 O O HTTP
브로드캐스트 1:모든 서브넷 (로컬 네트워크) O X ARP
멀티캐스트 1:그룹 정의된 구간 O O 방송
애니캐스트 1:1 전체 네트워크 사용하긴하는데.. O 6 to 4 DNS

 

💡 통신방식을 구분할 때 중요한 점은 목적지 주소 를 기준으로 구분한다는 것.

BUM 트래픽

브로드캐스트 B, 언노운 유니캐스트 U, 멀티캐스트 M

언노운 유니캐스트

목적지 주소는 명확하지만 네트워크 동작이 브로드캐스트와 같은 통신 방식

  • 목적지 주소는 한군데인데 학습이 안 되어(어떻게 가는지 몰라서) 패킷을 모든 포트로 플러딩(전송)
    • 단말 NIC 에서는 도착지 주소를 확인해 본인이 아니면 패킷을 버린다.
  • 유니캐스트지만 겉으로 보이는 동작 방식은 브로드캐스트에 가깝다.
  • 네트워크 상에서 불필요한 BUM 트래픽이 많아지면 성능이 저하됨…
  • 하지만 이더넷 환경에서는 ARP 브로드캐스트 를 먼저 보낸 이후 통신을 시작하므로, BUM 트래픽이 많이 발생하지 않는다.

MAC 주소

2계층(데이터 링크 계층)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자. 네트워크에 접속하는 모든 장비는 MAC 주소를 가지고 있어야 하며 이 주소를 이용해 서로 통신한다.

MAC 주소 체계

변경할 수 없도록 하드웨어에 고정되어 출하. 네트워크 구성 요소마다 다른 주소를 가지고 있다.

  • 48비트의 16진수 12자리로 표현함.
    • OUI 앞 24비트는 제조사 코드
    • UAA 뒤 24비트는 제조사가 자체할당하는 코드
💡 사실 MAC 주소는 유일하지 않을 수도 있다. 제조사 실수이거나 의도적으로 중복될 수도 있음.
- 동일 네트워크에서만 중복되지 않으면 동작하는 데에는 문제가 없긴 하다. 어차피 라우터에서 다른 네트워크로 넘겨줄 때는 출발지/도착지 MAC 주소가 변경되므로..
💡 MAC 주소도 결국 메모리에 적재되어 구동되므로 MAC 주소를 변경해서 NIC 를 동작할 수 있긴 하다.

MAC 주소 동작

  1. 2계층에서 전기 신호를 패킷으로 변환하여 내용을 구분한 후 도착지 주소 확인.
  2. 도착지 MAC 주소가 자신이거나 브로드캐스트, 멀티캐스트와 같은 그룹 주소이면 처리해야할 주소로 인지해 패킷 정보를 상위 계층으로 넘겨줌.
    1. 도착지 MAC 주소가 본인이 아니면 폐기

본인의 주소, 브로드캐스트 주소는 NIC 자체적으로 패킷을 처리하는 게 아니라 OS 나 애플리케이션에서 처리하여 시스템 부하가 작용한다.

무차별 모드

자신의 MAC 주소와 상관없는 패킷이 들어와도 이를 분석할 수 있도록 메모리에 올려 처리할 수 있게 함.

  • 다른 목적지를 가진 패킷을 분석하거나 수집해야 할 경우
  • 예시 ) Wireshark (네트워크 패킷 분석 애플리케이션)

MAC 주소가 여러 개 인 경우

  • MAC 주소는 단말에 종속되는 게 아니라 NIC 에 종속된다.
  • 한 단말은 여러개의 NIC 를 가질 수 있으니 MAC 주소도 여러개가 될 수 있다.
    • 멀티레이어 스위치, 라우터

IP 주소

3계층이 사용하는 논리 주소

특징

참고로 프로토콜 스택의 3계층 주소의 특징이다.

  • 사용자가 변경 가능하다.
  • 주소에 레벨이 있다.
    • 네트워크 주소
    • 호스트 주소

IP 주소 체계

v4 (32비트), v6 (128비트) 두 체계가 사용된다.

IPv4

옥텟

  • 8비트 단위로 4개로 나누며, . 으로 구분한다.

네트워크 주소

  • 호스트들을 모은 네트워크를 지칭함. 네트워크 주소가 동일하면 로컬 네트워크.

호스트 주소

  • 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소.

특징

  • MAC 주소와 달리 네트워크 주소와 호스트 주소를 구분하는 경계점이 고정되어있지 않다.
    • 클래스 개념을 사용.

클래스

  • 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당.
  • A - B - C 클래스까지 있으며 각 1, 2, 3 번째 옥텟에 구분자가 있다.
    • 이 구분자가 바로 서브넷마스크.
  • 구분자가 이동하며 네트워크의 크기가 달라짐.
    • 다른 고정된 네트워크 주소체계에 비해 주소를 절약할 수 있다.

 

참고: 127 만 예외로 자신을 의미하는 루프백 주소로 사용 (로컬호스트)

  • A 클래스 사용할 수 있는 주소 예시
    • 127 을 제외한 1.0.0.0 ~ 126.255.255.255
  • B 클래스 128 ~ 191
  • C 클래스 192 ~ 223

 

💡 현재는 클래스 기반으로 네트워크를 구분하지 않는다. 네트워크 주소를 세밀하게 분할하고 할당하기 위해 1비트 단위 로 상세히 분할한다.

 

클래스리스

클래스기반 주소체계인 클래스풀의 반댓말로, 네트워크 주소와 호스트 주소를 구분짓는 구분자(서브넷 마스크)가 필요 없다.

 

  • 서브넷 마스크를 구분자로 사용한다.

서브넷 마스크

  • 2진수로 , 1은 네트워크 주소 0은 호스트 주소.
  • 2진수 11111111 을 10진수로 표현하면 2진수가 되어 255는 네트워크 주소, 0은 호스트 주소로 구분함.

  • 만약 103.9.32.146 주소에 255.255.255.0 서브넷 마스크를 사용하는 IP 는
    • 네트워크 주소 103.9.32.0
    • 호스트 주소 0.0.0.146

비트 단위로 표현하는 법

8진수나 16진수로 나타내기도 하지만 거의 안 쓰고, 비트 단위로 표현하는 법이 많다.

  • 서브넷 마스크에서 1 부분이 연속된 자릿수를 표현해준다.
    • A 클래스는 첫 번째 옥텟이 1, 나머지가 0이므로 /8
    • B는 /16, C 는 /24

서브네팅

원래 부여된 클래스 기준을 무시하고 네트워크-호스트 구분 기준을 원래 클래스풀 단위의 네트워크보다 더 쪼개서 사용하는 것.

  • 현대 클래스리스 네트워크의 가장 큰 특징
  • 옥텟 단위보다 더 잘게 네트워크를 쪼개 2진수 1비트 단위로 네트워크 분할

실무에서 서브네팅에 대해 고민해야하는 경우

  • 네트워크 설계자 입장 : 네트워크 디자인 단계에서 효율적인 분할 고민
    • 네트워크 설계 시 네트워크 내에 필요한 단말을 고려한 효율적인 네트워크 범위 설계.
  • 네트워크 사용자 입장 : 이미 분할된 네트워크에서 자기 네트워크와 원격지 네트워크를 구분해야하는 경우.
    • 사용할 수 있는 IP 범위 파악.
    • 기본 게이트웨이와 서브넷 마스크 설정이 제대로 되어있는지 확인.

네트워크 사용자의 서브네팅

이미 설계되어 있는 네트워크에서 사용할 수 있는 IP 주소 범위 파악하기.

  • 대부분의 서브네팅은 비트 단위로 분할된다.
  • 어떤 IP 범위가 내가 속한 네트워크인지, 또는 원격지 네트워크인지 판단이 어렵다.

간단한 서브네팅 방법

  1. 서브넷 마스크를 2진수로 변환.
  2. 현재 서브넷이 가질 수 있는 최대 IP 개수 크기 파악. → 2(6) = 64
  3. 최대 IP 개수 크기(64의 배수)로 나열하여 기준이 되는 네트워크 주소를 파악한다.
    1. 첫 블록은 0
    2. 각 네트워크의 마지막 주소가 브로드캐스트 주소 (다음 블록 네트워크의 -1)
    3. 0~63 / 64 ~ 127 / 128 ~ 191 / 192 ~ 255
  4. 103.9.32.146 에서 호스트 주소 146이 속한 네트워크를 선택한다.
    1. 128 ~ 191 안에 146이 들었다.
  5. 필요한 주소 정리.
    1. 네트워크 주소 : 103.9.32.128 (첫 번째 숫자)
    2. 브로드캐스트 주소 : 103.9.32.191 (마지막 숫자)
    3. 유효 IP 범위 : 103.9.32.129 ~ 103.9.32.190 (네트워크 주소~브로드캐스트 주소 사이)

네트워크 설계자 입장

네트워크를 새로 구축하는 경우 네트워크의 크기를 고민해 서브넷 마스크를 결정하고 설계에 반영해야 한다.

  • 서브넷 된 하나의 네트워크에 IP 를 몇 개나 할당해야 하는가?(또는 PC 가 몇 대인가?)
  • 서브넷된 네트워크가 몇 개 필요한가?
  • 가능하면 사설 IP 대역을 사용해 충분한 IP 대역을 사용하자.
    • 공인 IP 는 인터넷에서 유일하게 사용되므로 사용할 수 있는 IP 수가 제한되어 있고, 할당받은 IP 를 사용하지 않으면 IP 할당 기관이 회수해간다.
  • 최대한 같은 크기의 네트워크를 할당하고, 쉽게 이해할 수 있는 C 클래스 단위인 24비트로 쪼개 할당하자.

공인 IP 와 사설 IP

공인 IP

  • 인터넷에 접속할 때 필요한 IP 주소.
  • 전세계에서 유일해야하는 식별자.

사설 IP

  • 인터넷에 연결하지 않고 개인적으로 네트워크를 구성할 때 사용.
  • 사설 IP 로 인터넷 직접 접속은 못해도 NAT 장비에서 공인 IP로 변경한 후에는 인터넷 접속 가능.
  • 인터넷 어느 구간에서도 사용되지 않는 RFC에 명시된 사설 IP 대역을 사용하자.

 

💡 RFC 란? 컴퓨터, 인터넷 기술에 적용할 수 있는 제안, 조사 결과, 아이디어, 표준 등을 적어놓은 메모 형식의 문서 모음. RFC 자체가 인터넷 표준 문서는 아니지만, 국제 인터넷 표준화 기구(IETF)를 통해 표준으로 인정받는 문서들도 있다.
728x90

'개발공부 개발새발 > Network' 카테고리의 다른 글

Network ) ARP, GARP , 게이트웨이..  (0) 2024.05.30
Network ) TCP / UDP  (0) 2024.05.30
Network ) 네트워크 연결  (0) 2024.05.08
Network ) ISO 7 계층  (0) 2024.04.30
Network ) 서버 송수신 동작과 응답  (0) 2023.08.04