통신 방식
유니캐스트
출발지와 목적지가 명확히 하나로 정해져있는 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 주소 동작
- 2계층에서 전기 신호를 패킷으로 변환하여 내용을 구분한 후 도착지 주소 확인.
- 도착지 MAC 주소가 자신이거나 브로드캐스트, 멀티캐스트와 같은 그룹 주소이면 처리해야할 주소로 인지해 패킷 정보를 상위 계층으로 넘겨줌.
- 도착지 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 범위가 내가 속한 네트워크인지, 또는 원격지 네트워크인지 판단이 어렵다.
간단한 서브네팅 방법
- 서브넷 마스크를 2진수로 변환.
- 현재 서브넷이 가질 수 있는 최대 IP 개수 크기 파악. → 2(6) = 64
- 최대 IP 개수 크기(64의 배수)로 나열하여 기준이 되는 네트워크 주소를 파악한다.
- 첫 블록은 0
- 각 네트워크의 마지막 주소가 브로드캐스트 주소 (다음 블록 네트워크의 -1)
- 0~63 / 64 ~ 127 / 128 ~ 191 / 192 ~ 255
- 103.9.32.146 에서 호스트 주소 146이 속한 네트워크를 선택한다.
- 128 ~ 191 안에 146이 들었다.
- 필요한 주소 정리.
- 네트워크 주소 : 103.9.32.128 (첫 번째 숫자)
- 브로드캐스트 주소 : 103.9.32.191 (마지막 숫자)
- 유효 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)를 통해 표준으로 인정받는 문서들도 있다.
'개발공부 개발새발 > 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 |