03. 네트워크 통신하기

ZOE_:P·2022년 10월 29일
0

네트워크🖥️

목록 보기
3/5

🌑 유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트

출발지에서 목적지로 데이터를 전송할 때 사용하는 통신방식

  • 유니캐스트 - 1:1 통신
  • 브로드캐스트 - 1 : 동일 네트워크에 존재하는 모든 호스트
  • 멀티캐스트 - 1 : 그룹 통신( 멀티캐스트 구독 호스트 ) 다수의 특정 목적지로
  • 애니캐스트 - 1 : 1 다수의 동일 그룹 중 가장 가까운 호스트에서 응답

- 유니캐스트

출발지와 목적지가 명확히 하나로 정해짐
실제 대부분의 통신들이 사용하는 통신방식
ex. HTTP

BUM 트래픽
: 겉으로 보이기에는 브로드캐스트와 같음

  • 전달 받는 모든 단말 NIC 에서 도착지 주소를 확인하고 자신의 목적지가 아니므로 패킷 버림
  • 네트워크 입장에서는 쓸데없는 네트워크 자원 사용이므로 성능 저하 가능

- 브로드캐스트

목적지 주소가 모든으로 표기된 통신 방식

  • 유니캐스트로 통신하기 전 상대의 정확한 위치를 파악하기 위해 사용
  • 로컬 네트워크 내 (서브넷) 에서 모든 호스트에 패킷을 전달해야할 때 사용됨
    ex. ARP

- 멀티캐스트

멀티캐스트 그룹 주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷을 전송하기 위한 통신 방식 ( 정의된 구간에서 )

  • IP TV 와 같은 실시간 방송을 보는 경우 or 사내 방송 등 단방향으로 다수에게
    ex. 방송

- 애니캐스트

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

  • 같은 목적지 주소를 가진 서버가 여러 대
  • 가장 가까운 DNS 서버 찾을 때 사용 or 가장 가까운 게이트웨이 찾는 애니캐스트 게이트웨이 기능에 사용
    ex. 6 to 4 DNS

최종 통신은 1 : 1 로 유니캐스트, 애니캐스트이지만 각 방식에서 통신할 수 있는 후보자가 서로 다르다

💡 출발지가 아니라 목적지 주소를 기준으로 구분한다

🌒 MAC 주소

Media Access Control ( aka. BIA )
2계층 (데이터 링크 계층)에서의 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자

네트워크에 접속하는 모든 장비는 MAC 주소라는 물리적인 주소가 있어야하며 이 주소를 통해 서로 통신

MAC 주소 체계

하드웨어에 고정됨 = 네트워크 구성요소마다 다른 주소

  • 48bit = 24 bit ( 제조사 코드 OUI ) + 24 bit ( UAA )
    • OUI : IEEE가 제조사에 할당하는 제조사 코드
    • UAA : 각 제조사에서 네트워크 구성요소에 할당하는 코드

MAC 주소 동작

NIC는 2계층에서 전기신호를 변환하여 도착지 MAC주소를 확인하고,
해당 주소가 자신의 MAC주소와 일치하지 않을 경우 패킷을 폐기한다

만약 들어온 주소가 자신의 MAC 주소와 일치하거나 브로드 캐스트 등의 그룹 주소인 경우 ) 상위 계층으로 넘겨주므로 시스템에 부하 발생

무차별 모드
다른 목적지를 가진 패킷을 분석하거나 수집해야하는 경우 사용
( or else, NIC가 자체적으로 폐기하기 때문 )

🌓 IP 주소

3계층에서 사용하는 논리 주소

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

IP 주소 체계

IPv4 : 32 bit ( 8 * 4 )
IPv6 : 128 bit

네트워크 주소
호스트들을 모은 네트워크를 지칭
네트워크 주소가 동일한 네트워크 = 로컬 네트워크

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

  • 네트워크 주소와 호스트 주소의 경계점이 나눠져 있지 않음
    = 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당하는 " 클래스 "

클래스풀 (Classful)

고정된 네트워크 주소 체계에 비해 주소 절약 가능
연속된 네트워크 할당받기에 유리

  • 네트워크 주소와 호스트 주소를 구분짓는 서브넷 마스크가 필요 없다
    현재는 사용하지 않는 방식
  • A 클래스
    : 네트워크 1옥텟, 호스트 3옥텟
    = 2^8개 네트워크, 한 네트워크 당 2^24개 호스트
    - 0 0000000 ~ 0 1111111
  • B 클래스
    : 네트워크 2옥텟, 호스트 2옥텟
    = 2^16개 네트워크, 한 네트워크 당 2^16개 호스트
    - 10 000000 ~ 10 111111
  • C 클래스
    : 네트워크 3옥텟, 호스트 1옥텟
    = 2^24개 네트워크, 한 네트워크 당 2^8개 호스트
    - 110 00000 ~ 110 11111

🚩 클래스풀 기반의 주소 체계는 늘어나는 IP 주소 요구를 감당하기 어려워짐

SOLUTION
1. [단기대책] 클래스리스, CIDR (Classless Inter-Domain Routing) 기반주소체계
2. [중기대책] NAT , 사설 IP 주소
3. [장기대책] 차세대 IP인 IPv6

클래스리스 네트워크

네트워크와 호스트 주소를 나누는 구분자 '서브넷 마스크' 사용

  • IP 주소와 네트워크 주소를 구분할 때 사용
    • 1 : 네트워크 주소, 0 : 호스트 주소

서브네팅

원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 원래의 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 것

현대 클래스리스 네트워크의 가장 큰 특징

옥텟 단위보다 더 잘게 네트워크를 쪼개 2진수의 1비트 단위로 네트워크 분할

  • 서브네팅을 고민해야하는 경우

    • 이미 분할된 네트워크에서 사용자가 자신의 네트워크와 원격지 네트워크를 구분해하는 경우

    • 네트워크 디자인 단계에서 네트워크 설계자가 네트워크를 효율적으로 어떻게 분할할 것인지 계획하는 경우

사용자의 서브네팅

✔ 네트워크에서 사용할 있는 IP 범위 파악
✔ 기본 게이트웨이와 서브넷 마스크 설정이 제대로 되어있는지 확인

서브네팅하고 자신이 속한 네트워크 범위 파악하는 방법
ex. IP주소 : 103.9.32.146

  1. 서브넷 마스크를 2진수로 변환
  2. 현재 서브넷이 가질 수 있는 최대 IP 개수 크기 파악
  3. 64의 배수로 나열하여 기준이 되는 네트워크 주소 파악
  4. 103.9.32.146 에서 호스트 주소 146이 속한 네트워크를 선택
  5. 필요한 주소 정리
    • 네트워크 주소 : 103.9.32.128
    • 브로드캐스트 주소 : 103.9.32.191
    • 유효IP 범위 : 103.9.32.129~103.9.32.190

설계자의 서브네팅

✔ 서브넷된 하나의 네트워크에 IP를 몇 개나 할당해야하는가
✔ 서브넷된 네트워크가 몇 개나 필요한가?

profile
🖥️

0개의 댓글