Network/Network

[Network] 네트워크 통신 및 프로토콜 요약 정리

Nirsa 2024. 7. 20. 09:59
반응형
[Network] 네트워크 통신 및 프로토콜 요약 정리

네트워크 통신 및 프로토콜에 대한 요약 정리 입니다. 설명이 길어질 수 있는개념(클래스풀, 클래스리스, ...)은 일부 생략 되었습니다.

 

 


1. 네트워크 통신 방식
  • 유니캐스트 (Unicast)
    • 1:1 통신
  • 브로드캐스트 (Broadcast)
    • 1:N 통신
    • 동일 네트워크에 존재하는 모든 호스트와 통신
    • ex) ARP
  • 멀티캐스트 (Multicast)
    • 1:G 통신
    • 다수의 특정 목적지의 호스트와 통신
    • ex) IPTV, 사내 방송
  • 애니캐스트 (Anycast)
    • 1:1 통신
    • 여러 수신자 중 가장 가까운 호스트와 통신
    • ex) CDN

 


2-1. MAC 주소

데이터 링크 계층(2계층)에서 통신하기 위해 사용되는 고유한 식별자로써 모든 네트워크 장비는 MAC 주소를 가지고 있어야 합니다.

MAC 주소 체계는 OUI (Organizationally Unique Identifier), UAA (Universally Administered Address)를 갖습니다.

  • OUI : IEEE가 제조사에 할당하는 영역
  • UAA : 각 제조사가 할당하는 영역

 

※ Promiscuous Mode
일반적으로 수신 패킷의 MAC 목적지 주소가 자신의 MAC 주소와 일치하지 않으면 해당 패킷을 버리지만, Promiscuous Mode를 사용하면 수신 패킷의 MAC 목적지 주소가 자신과 일치하지 않더라도 해당 패킷을 메모리에 올려 분석할 수 있도록 도와주는 기능

대표적인 예시 : 패킷 분석 툴 와이어샤크

 


2-2. ARP, RARP, GARP
  • ARP : 목적지 IP 주소를 가진 호스트의 MAC 주소를 알아올 때 사용되는 프로토콜로써 브로드캐스트 방식으로 통신
  • RARP : 목적지 MAC 주소를 가진 호스트의 IP 주소를 알아올 때 사용되는 프로토콜 (현재는 BOOTP, DNS으로 대체되어 거의 사용되지 않는 프로토콜)
  • GRAP : 자신의 IP와 MAC 주소를 네트워크에 알리기 위해 사용되는 프로토콜로써 사용되는 이유는 아래와 같습니다.
    • IP 충돌 감지
    • 상대방의 ARP 테이블 갱신
    • VRRP, HSRP, ...

 


3. IP (internet Protocol)

인터넷 통신을 하려면 IP가 필요하며 이는 전 세계에서 고유한 값이어야 합니다. IP는 크게 아래와 같이 두가지로 나뉘어집니다.

  • 공인 IP : 전 세계에서 유일한 값을 가진 주소로써 인터넷 서비스 제공 업체(ISP)로부터 할당받음
    • 특징 : 고유성, 인터넷 접근, ISP 할당
    • 사용 예시 : 가정 또는 기업의 인터넷 연결 장치, 웹 서버, 이메일 서버, ...
  • 사설 IP : 내부 네트워크에서 사용되는 주소로써 고유하지 않는 값을 가집니다. 특정 범위 내에서 자유롭게 값을 설정하여 사용할 수 있으며, 인터넷에 직접적으로 노출되지 않는 특징을 가집니다.
    • 특징 : 내부 네트워크 용도, 인터넷 접근 제한, 특정 범위로 제한
    • 사용 예시 : 가정이나 회사 내부의 네트워크 장치(컴퓨터, 프린터, ...), NAT 장비를 통해 인터넷에 접속하는 내부 네트워크의 모든 장치

 

※ 사설 IP의 범위
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0~192.168.255.255
※ NAT (Network Adddress Translation)
사설 IP 주소를 공인 IP 주소로 변환하여 사설 IP를 가진 내부 네트워크 장치들이 인터넷에 접근할 수 있도록 도와주는 기술로써 주로 라우터 또는 방화벽에서 수행됨

 


3-1. TCP와 UDP

전송 계층(4계층)에서 사용되는 프로토콜로써 그 전 계층(1,2,3)의 경우 어느 호스트를 찾아가느냐의 경로에 관련된 내용이였다면 TCP와 UDP는 찾아간 호스트에서 어떠한 애플리케이션 프로세스와 통신을 해야할지를 정해줍니다.

애플리케이션 프로세스는 각각 통신이 준비되어있는 포트 번호를 가지게 되는데, 호스트를 찾아온 패킷이 어떠한 목적지 포트를 가지고 있느냐에 따라 프로세스와의 통신이 결정 됩니다.

TCP/UDP 80포트일 경우 HTTP, TCP 443포트일 경우 HTTPS와의 통신이 결정됩니다.

 

3-2. TCP (Transmission Control Protocol)

TCP는 안정적인 데이터 전송을 보장하는 프로토콜로, 패킷에 시퀀스 번호를 부여하여 잘 전송되었는지 확인합니다.

  • Window Size : 한번에 받을 수 있는 데이터의 크기를 의미
  • Sliding Window : Window Size를 조절하는 기술로써 데이터 전송에 유실이 발생하면 Window Size를 줄이고, 정상적으로 전송이 되었다면 Window Size를 늘립니다.
  • 3-Way Handshake : TCP 연결하는 과정으로써 SYN, SYN-ACK, ACK 세 단계로 이루어집니다.
  • 4-Way Handshake : TCP 연결을 종료하는 과정으로써 FIN, ACK, FIN, ACK 네 단계로 이루어 집니다.

 

3-3. UDP (User Datagram Protocol)

데이터 전송을 보장하지 않는 프로토콜로써 일부 데이터가 유실 되더라도 시간에 맞추어 계속 전송하는 것이 중요한 서비스에 주로 사용됩니다.

예를 들어 실시간 화상회의 솔루션에서 TCP 환경에서 데이터가 유실될 경우 TCP는 오류를 검증하고 데이터를 재전송하고 기다리는 과정이 필요하므로 중간에 멈추는 현상이 발생 하지만, UDP의 경우 잠깐의 데이터 유실이 되더라도 데이터를 기다리는 과정이 없기에 실시간 통신이 지속될 것입니다.

반응형