컴퓨터 네트워크 수업의 첫 번째 강의 내용을 복기하며 정리해본다. 앞으로 배울 모든 내용의 기초가 되는 만큼, 데이터 통신의 가장 기본적인 개념부터 TCP/IP Protocol suite의 각 계층이 어떤 역할을 하는지까지 꼼꼼하게 짚어보는 것을 목표로 삼았다. 복잡한 네트워크 세상의 원리를 이해하기 위한 첫걸음이다.
데이터 통신(Data Communications)이란?
데이터 통신은 간단히 말해 '두 장치 간에 전송 매체를 통해 데이터를 교환하는 것'이다. 이 통신이 효과적으로 이루어지기 위해서는 네 가지 기본 특성을 만족해야 한다.
전달 (Delivery): 데이터는 반드시 정확한 목적지로 전달되어야 한다.
정확성 (Accuracy): 데이터는 전송 과정에서 변질되지 않고 정확하게 전달되어야 한다.
적시성 (Timeliness): 데이터는 지연 없이 시기적절하게 전달되어야 한다. 특히, 영상이나 음성 같은 실시간 데이터에서 이는 매우 중요하다. 이때 패킷 도착 시간의 변동을 지터(Jitter)라고 부른다.
신뢰성 (Reliability): 통신 시스템은 장애 발생 시 복구 가능해야 하며, 데이터 손실을 최소화해야 한다.
이러한 특성을 보장하기 위해 네트워크는 잘 정의된 구성 요소와 규칙 위에서 동작한다.
통신의 5가지 기본 구성 요소
모든 데이터 통신 시스템은 다섯 가지 핵심 요소로 구성된다.
메시지 (Message): 통신의 대상이 되는 정보 또는 데이터.
송신자 (Sender): 메시지를 보내는 장치.
수신자 (Receiver): 메시지를 받는 장치.
전송 매체 (Transmission Medium): 메시지가 이동하는 물리적인 경로. 유선 케이블이나 공기(무선) 등이 해당된다
10 .프로토콜 (Protocol): 데이터 통신을 제어하는 규칙의 집합. 송신자와 수신자 양측이 동일한 프로토콜을 따라야 원활한 통신이 가능하다. 이는 마치 두 사람이 대화하기 위해 같은 언어를 사용해야 하는 것과 같다. ('봉화'의 예시를 통해 그 중요성을 파악할 수 있었다)
데이터 흐름의 방향성 (Data Flow)
링크를 통해 흐르는 데이터의 방향에 따라 통신 방식은 세 가지로 나뉜다.
단방향 (Simplex): 데이터가 한쪽 방향으로만 흐른다. 한쪽은 송신만, 다른 쪽은 수신만 가능하다. 키보드나 모니터가 대표적인 예다.
반이중 (Half-duplex): 양쪽 모두 송수신이 가능하지만, 동시에 할 수는 없다. 무전기(Walkie-talkie)처럼 한쪽이 말할 때는 다른 쪽은 들어야만 하는 방식이다.
전이중 (Full-duplex): 양쪽에서 동시에 송수신이 가능하다. 전화 통화가 대표적인 예시이며, 채널의 전체 용량을 양방향이 나누어 사용하게 된다.
네트워크의 물리적 구조 (Physical Topology)
네트워크 토폴로지는 장치들이 물리적으로 어떻게 연결되어 있는지를 나타낸다. 각 구조는 장단점이 뚜렷하여 상황에 맞게 선택된다.
1. 그물형 (Mesh Topology)
모든 장치가 다른 모든 장치와 point-to-point 링크로 연결되는 구조다.
장점: 특정 링크에 장애가 발생해도 다른 경로로 통신이 가능해 견고하고(robust), 트래픽 문제 발생 소지가 적다. 또한, 전용 링크를 사용하므로 보안성이 높다.
단점: 필요한 링크의 수가 개로 장치 수에 따라 기하급수적으로 늘어나 설치가 복잡하고 비용이 많이 든다.
2. 성형 (Star Topology)
모든 장치가 허브(Hub)라는 중앙 제어 장치에 point-to-point 방식으로 연결된다.
장점: 설치와 재구성이 쉽고, 한 장치의 문제가 다른 장치에 영향을 주지 않아 견고하며, 결함 식별이 용이하다.
단점: 모든 통신이 허브를 거치므로 허브에 장애가 발생하면 전체 네트워크가 마비된다.
3. 버스형 (Bus Topology)
하나의 긴 케이블(백본)이 네트워크의 중심이 되어 모든 장치가 탭(Tap)과 드롭 라인(Drop line)을 통해 연결되는 Multipoint 방식이다.
장점: 설치가 용이하고 케이블 사용량이 적다.
단점: 재연결이나 결함 분리가 어렵고, 백본 케이블에 문제가 생기면 전체에 영향을 미친다.
4. 링형 (Ring Topology)
각 장치가 자신의 양옆에 있는 두 장치와만 point-to-point 연결을 하여 전체적으로 고리 모양을 이룬다.
장점: 설치 및 재구성이 비교적 쉽고, 결함 분리가 간단하다. 신호는 한 방향으로 전달되며 각 장치가 리피터(Repeater) 역할을 겸한다.
단점: 링의 한 부분이라도 끊어지면 전체 네트워크가 비활성화될 수 있다.
네트워크의 종류 (LAN vs. WAN)
네트워크는 지리적 범위에 따라 크게 LAN과 WAN으로 나뉜다.
LAN (Local Area Network): 사무실, 빌딩, 캠퍼스와 같이 제한된 지역 내의 호스트들을 연결하는 사설 네트워크다. 과거에는 모든 호스트가 공통 케이블을 공유했지만, 오늘날에는 목적지를 인식하는 스위치(Switch)를 사용하는 것이 일반적이다.
WAN (Wide Area Network): 도시, 국가, 심지어 전 세계를 아우르는 넓은 지리적 범위를 가진다. 라우터나 스위치 같은 연결 장치들을 서로 연결하는 방식으로 구성된다. 우리가 아는 인터넷이 바로 WAN의 가장 대표적인 예다.
핵심: TCP/IP 프로토콜 스위트 (Protocol Layering)
현대 인터넷은 TCP/IP 프로토콜 스위트(Protocol suite)라는 계층적 구조를 기반으로 동작한다. 통신이라는 복잡한 작업을 여러 개의 더 작고 단순한 작업으로 나누기 위해 계층 구조를 사용한다. 각 계층은 하위 계층으로부터 서비스를 제공받아 자신의 임무를 수행하고, 그 결과를 상위 계층으로 전달한다.
TCP/IP Protocol Suite |
각 계층은 논리적 연결(Logical Connection)을 통해 상대방 시스템의 동일한 계층과 통신하는 것처럼 동작한다. (실제로는 하위 계층을 통하지만, 마치 같은 계층끼리 직접 통신하는 것처럼!)
Logical Connection |
TCP/IP 5계층 모델
계층 1: 물리 계층 (Physical Layer)
역할: 프레임 내의 비트(bit)들을 신호로 변환하여 전송 매체를 통해 실제로 전송하는 책임을 진다.
데이터 단위: 비트 (Bits).
계층 2: 데이터 링크 계층 (Data-link Layer)
역할: 같은 링크(네트워크) 상에 있는 두 노드 간의 데이터 전송을 담당한다. 네트워크 계층에서 받은 데이터그램을 프레임(frame)이라는 패킷으로 캡슐화하여 물리 계층으로 전달한다.
데이터 단위: 프레임 (Frame).
계층 3: 네트워크 계층 (Network Layer)
역할: 송신 호스트에서 수신 호스트까지의 데이터 전송을 책임진다. 즉, 여러 네트워크를 거쳐 목적지까지 가는 최적의 경로를 선택(라우팅)하는 역할을 한다.
(수많은 컴퓨터 중에 어느 컴퓨터에서 요청했는지)데이터 단위: 데이터그램 (Datagram).
주요 프로토콜: IP (Internet Protocol).
(* IP는 Connectless protocol이다. 이에 대해서는 아래 보충 설명하겠다.)
계층 4: 전송 계층 (Transport Layer)
역할: 송신 측의 프로세스(응용 프로그램)에서부터 수신 측의 프로세스까지 메시지를 전달하는, 즉 종단 간(end-to-end) 논리적 연결을 제공한다. 오류 제어, 흐름 제어, 혼잡 제어 등의 기능도 수행한다.
(컴퓨터의 프로세스 중에서 어떤 프로세스에서 요청했는지)데이터 단위: 세그먼트 (Segment) 또는 사용자 데이터그램 (User Datagram).
주요 프로토콜: TCP, UDP.
(* TCP는 Connection-oriented, UDP는 Connectionless 프로토콜이다. 마찬가지로 아래 보충 설명하겠다.)
계층 5: 응용 계층 (Application Layer)
역할: 사용자가 네트워크 자원에 접근할 수 있도록 다양한 서비스를 제공한다. 우리가 흔히 사용하는 웹, 이메일, 파일 전송 등이 모두 이 계층에 속한다.
데이터 단위: 메시지 (Message) 등 사용자가 직접 보는 단위.
주요 프로토콜: HTTP, SMTP, FTP, DNS 등.
캡슐화 (Encapsulation) 와 역캡슐화 (Decapsulation)
송신 측에서는 데이터가 상위 계층에서 하위 계층으로 내려가면서 각 계층의 정보(헤더)가 추가되는데, 이를 캡슐화라고 한다. 반대로 수신 측에서는 데이터가 하위 계층에서 상위 계층으로 올라가면서 각 계층의 헤더가 제거되는데, 이를
역캡슐화라고 한다. 이 과정을 통해 각 계층은 자신의 역할에만 충실하면서 전체 통신이 유기적으로 이루어질 수 있다.
네트워크 계층의 IP(Internet Protocol)가 대표적인 비연결형 프로토콜이다.
개념: 데이터를 보내기 전에 미리 connection을 설정하는 과정이 없다. 송신자는 그냥 목적지 주소를 붙여 패킷(데이터그램)을 네트워크로 보낸다.
특징:
각 패킷은 독립적으로 취급되며, 서로 다른 경로로 목적지에 도달할 수 있다.
이로 인해 패킷이 순서대로 도착하지 않거나, 중복되거나, 심지어 유실될 수도 있다.
프로토콜 자체는 흐름 제어, 오류 제어, 혼잡 제어 기능을 제공하지 않으며,
'최선 노력형(best-effort)' 전달 방식을 따른다.
전송 계층의 TCP(Transmission Control Protocol)가 해당된다.
개념: 송신자와 수신자 사이에 논리적인 연결이 설정된 것처럼 보이게 한다. 바로 이전 계층(Network Layer)의 IP가 connectionless이므로, 물리적으로 Connection을 보장할 수 없지만, 내부적인 처리를 통해 Connection을 보장한다.
특징:
연결이 설정되면, 데이터는 순서대로, 신뢰성 있게 전달된다.
흐름 제어, 오류 제어, 혼잡 제어 기능을 제공하여 데이터가 유실 없이 정확하게 전달되는 것을 보장한다.
결론적으로, IP는 '어떻게든 패킷을 목적지 근처까지 보내는 것'이라는 단순하고 빠른 임무에 집중하고, 그 위에 있는 TCP가 '그 패킷들이 순서대로 빠짐없이 도착했는지 확인하고 관리하는' 신뢰성 있는 역할을 추가하는 셈이다. 이처럼 역할 분담을 통해 전체 네트워크는 유연하면서도 신뢰성을 확보할 수 있다.
결론
첫 수업이었지만 컴퓨터 네트워크의 전체적인 그림을 그릴 수 있는 시간이었다. 데이터 통신의 기본 원칙부터 시작해, 물리적인 연결 방식(토폴로지)과 논리적인 규칙의 집합(TCP/IP 계층)이 어떻게 상호작용하여 우리가 아는 인터넷을 구성하는지 어렴풋이 이해할 수 있었다. 특히 복잡한 통신 과정을 역할에 따라 계층으로 나눈 아이디어는 문제 해결에 대한 매우 컴퓨터 과학적인 접근이라는 생각이 들었다. 앞으로 각 계층을 더 깊이 파고들며 이 거대한 시스템의 동작 원리를 구체적으로 학습해 나갈 예정이다.
추천글
[컴퓨터 네트워크] Physical Layer | 비트(Bit)가 아날로그 신호(Signal)로 변환되는 원리