
네트워크에서 데이터를 출발지에서 목적지로 전송할 때 다양한 통신 방식과 기술이 활용된다. 이 글에서는 여러가지 통신 방식과 MAC 및 IP 주소, ARP, NAT 등의 네트워크 통신 요소를 알아본다.
유니캐스트는 가장 일반적으로 사용되는 통신 방식으로, 한 대의 출발지에서 한 대의 목적지로 데이터를 전송한다. 대부분의 인터넷 통신은 유니캐스트를 기반으로 이루어진다.
브로드캐스트는 네트워크 내 모든 호스트로 데이터를 전달한다. 이는 유니캐스트 통신 전, 상대방의 정확한 위치를 알기 위해 주로 사용된다. 예를 들어, ARP 브로드캐스트를 통해 로컬 네트워크 내의 모든 호스트에 패킷을 전달한다.
멀티캐스트는 특정 그룹에만 데이터를 전달하는 방식이다. 그룹 주소를 이용하여 다수의 호스트에게 패킷을 전송하며, 실시간 스트리밍과 같은 애플리케이션에서 주로 활용된다.
애니캐스트는 애니캐스트 주소를 사용하는 여러 호스트 중 가장 가까운 호스트와 통신하는 방식이다. 주로 DNS 서버 연결 및 게이트웨이 선택에서 활용된다. 애니캐스트는 후보지가 여러 개 있다는 점에서 유니캐스트와 차별화된다.
네트워크 상에서 한 번에 데이터를 받을 수 있는 데이터 크기를 윈도우 크기(Window Size)라고 한다. 네트워크 상황에 따라 이 크기를 조정하는 방식이 슬라이딩 윈도우(Sliding Window)이다.
TCP는 데이터 유실이 발생하면 윈도우 크기를 절반으로 줄이고, 정상적인 통신이 지속되면 크기를 서서히 늘려 최적의 전송 속도를 유지한다.
TCP에서 송신 측은 데이터를 윈도우 크기 단위로 전송하며, 데이터를 메모리에 유지한다. 수신 측에서 ACK 번호를 수신한 뒤 통신이 성공적으로 이루어진 것을 확인하고 나서야 메모리에서 데이터를 제거한다.
중간에 데이터 유실이 발생하면 시퀀스 번호와 ACK 번호를 비교해 유실된 데이터를 파악하고, 메모리에 저장된 데이터를 재전송한다.
MAC 주소는 로컬 네트워크 내에서 데이터를 전달할 때 사용된다.
기존 클래스풀 주소 체계의 한계를 극복하기 위해 도입된 방식으로, 서브넷 마스크를 사용해 네트워크와 호스트 주소를 구분한다.
네트워크를 더 작은 단위로 나누어 효율적으로 관리할 수 있도록 하는 방식이다.
호스트가 네트워크에서 처음 통신을 시도할 때, 출발지와 목적지 IP 주소는 이미 알고 있지만 상대방의 MAC 주소는 알 수 없다. 따라서 2계층 캡슐화를 수행할 수 없다. 이를 해결하기 위해 ARP(Address Resolution Protocol) 브로드캐스트를 사용해 네트워크 전체에 MAC 주소를 질의한다.
ARP는 IP 주소와 MAC 주소를 매핑해 ARP 테이블에 저장하며, 이를 통해 이후 통신을 원활히 처리한다.
RARP(Reverse ARP)는 MAC 주소로 IP 주소를 확인하는 과거 프로토콜로, 현재는 DHCP로 대체되어 사용되지 않는다.
같은 네트워크 내 통신과 원격지 네트워크 간 통신은 동작 방식과 필요한 장비가 다르다.
사설 IP는 내부 네트워크에서 사용된다.
NAT(Network Address Translation)는 사설 IP를 공인 IP로 변환하여 외부 네트워크와 통신할 수 있도록 한다.