네트워크 통신의 기본 개념
지난 글에 언급한 내용처럼 네트워크 통신은 데이터 패킷을 통해 한 장치에서 다른 장치로 정보를 전송하는 과정이다.
이를 위해 여러가지 프로토콜이 사용되며, 특히 TCP/IP와 UDP는 인터넷에서 가장 널리 사용되는 프로토콜이다.
TCP/IP
TCP/IP는 인터넷과 같은 네트워크에서 데이터를 전송하기 위해 사용되는 프로토콜 스택으로 하나의 프로토콜이 아니라 TCP(Transmission Control Protocol)와 IP(Internet Protocol)를 합쳐서 부르는 말이다.
그렇다면 TCP (Transmission Control Protocol) 란 ?
- TCP는 전송 조절 프로토콜로 네트워크 상에서 데이터를 신뢰성 있게 전송하는 데 사용한다.
- TCP는 IP 위에서 동작하며 데이터의 전달을 보장하고 송신 순서대로 데이터 수신을 보장해준다.
- 큰 데이터를 작은 패킷으로 나누어 전송하고, 수신 측에서 이를 다시 조립하여 원래의 데이터를 복원한다.
- 송신 데이터가 수신 데이터의 수신 능력을 초과하지 않도록 데이터 전송 속도를 조절한다.
IP (Internet Protocol) 란 ?
- IP는 데이터 패킷을 네트워크를 통해 전송하는 데 사용하는 프로토콜이다.
- IP는 데이터를 작은 패킷으로 나누어 네트워크 상의 다양한 경로를 통해 전송하며 각 패킷은 독립적으로 라우팅*된다.
- 데이터 패킷에 헤더 정보를 추가하여 송신자, 수신자, 패킷 순서 등의 정보를 포함한다.
- IP는 연결을 설정하지 않고 데이터를 전송하며 각 패킷은 독립적으로 전송되고, 전송 중에 손실될 수도 있다.
- 패킷 전송 중 손실, 중복, 순서 변경 등이 발생할 수 있으며, 이를 해결하기 위한 추가적인 프로토콜(TCP와 같은 프로토콜)이 필요한 경우가 많다.
라우팅이란? :
- 라우팅(Routing)은 네트워크 상에서 데이터를 목적지까지 효율적으로 전달하기 위해 최적의 경로를 결정하는 과정.
- 라우팅은 네트워크 장비, 주로 라우터(Router)에 의해 수행됨.
그래서 TCP/IP를 사용한다는 것은 ?
- TCP/IP를 사용한다는 것은 두 프로토콜을 함께 사용하여 네트워크 상의 다양한 장치 간의 데이터 교환을 가능하게 한다.
- TCP는 상위 계층 프로토콜로서 데이터의 신뢰성 있는 전송을 담당한다.
- IP는 하위 계층 프로토콜로서 데이터 패킷을 목적지까지 전달하는 역할을 담당한다.
- 즉 목적지는 IP 주소를 사용하고 데이터의 전송 여부는 안전하게 TCP 방식을 사용하는 현대 인터넷 통신의 핵심 기술이다.
UDP란 ?
UDP(User Datagram Protocol) 역시 네트워크에서 데이터를 전송하기 위해 사용되는 프로토콜 중 하나로, 간단하고 빠른 데이터 전송을 위해 사용한다.
UDP는 비연결형 프로토콜로 데이터 전송 전에 송신자와 수신자 간의 연결 설정이 필요하지 않다.
즉 데이터 송신의 신뢰성은 보장할 수 없지만 빠른 데이터 전송을 필요로 하는 애플리케이션에서 중요한 역할을 하기 때문에 실시간 스트리밍과 같은 속도가 매우 중요한 애플리케이션에 적합한 통신 방식이다.
UDP의 특징
- 비연결형 프로토콜: UDP는 데이터를 전송하기 전에 연결을 설정하지 않으며 송신자는 데이터를 "데이터그램" 단위로 보내며, 수신자는 이를 수신한다.
- 신뢰성 없는 전송: UDP는 데이터 전송의 신뢰성을 보장하지 않고 오류 검출, 재전송, 순서 보장 등의 기능이 없으므로 데이터그램이 손실되거나 중복되거나 순서가 바뀔 수 있다.
- 간단한 헤더 구조: UDP 헤더는 간단하고 작은 크기(8바이트)로, 송신 포트, 수신 포트, 길이, 체크섬 필드로 구성된다.
- 빠른 전송 속도: UDP는 추가적인 연결 설정과 신뢰성 보장 메커니즘이 없기 때문에 TCP보다 전송 속도가 빠르다.
TCP/IP와 UDP의 차이점
TCP/IP | UDP | |
연결 방식 | 데이터 전송 전에 송신자와 수신자 간에 연결을 설정 | 데이터 전송 전에 연결을 설정하지 않음 |
데이터 신뢰성 | 데이터 전송의 신뢰성을 보장하며 오류 검출, 재전송, 데이터 순서 보장을 제공함 | 신뢰성을 보장하지 않음 |
전송 속도 | 데이터 전송을 위해 추가적인 확인 및 재전송 절차가 필요해 전송 속도가 느린편 | 추가적인 절차가 없으므로 전송 속도가 매우 빠름 |
사용 사례 | 이메일, 파일 전송, 웹 페이지 전송 등 신뢰성이 중요한 데이터 전송 | 실시간 스트리밍, 온라인 게임, VoIP 등 속도가 중요한 데이터 전송 |
TCP/IP의 4계층 모델
TCP/IP 에서 다루는 범위는 4개의 계층으로 나뉘어 지며 이를 TCP/IP 4 Layer Model, 즉 TCP/IP 4계층 모델이라고 한다.
각각의 계층은 데이터 송수신에 필요한 작업들을 각 층에서 분담하여 처리하며 각각의 역할은 위 그림과 같다.
계층 별 주요 프로토콜과 역할
TCP/IP 4계층 모델 | 주요 프로토콜 | 해당 역할 | |
4층 | 응용 계층 (Application Layer) | HTTP, DNS 등 | 사용자와 애플리케이션 간의 상호작용을 지원함 |
3층 | 전송 계층 (Transport Layer) | TCP, UDP 등 | TCP와 UDP를 통해 데이터의 전달을 관리해 데이터 전송의 신뢰성을 보장함 |
2층 | 네트워크 계층 (Network Layer) | IP, ICMP, ARP 등 | IP 프로토콜을 사용하여 네트워크 간의 패킷 이동을 관리함 |
1층 | 링크 계층(Link Layer) | 이더넷, 무선 랜(Wi-Fi) 등 | 물리적 네트워크 연결 및 데이터 프레임 전송을 담당함 |
OSI 7계층 모델 (OSI 7 Layer Model)
OSI 7계층 모델은 컴퓨터 네트워크에서 이루어지는 통신의 과정을 7단계로 정리한 것으로 통신이 이루어지는 과정을 단계적으로 나누어 각 계층이 독립적으로 동작하도록 만든 네트워크 모델이다.
TCP/IP와 OSI 참조 모델은 별개로 만들어졌지만 일부 계층은 비슷한 원리로 동작하기 때문에 OSI 모델 역시 알아 보아야 한다.
OSI 7계층 모델 | 주요 프로토콜 | 해당 역할 | |
7층 | 응용 계층 (Application Layer) | HTTP, FTP, DNS, DHCP 등 | 응용 계층은 사용자와 직접 상호작용하는 애플리케이션을 지원함 |
6층 | 표현 계층 (Presentation Layer) | 표현 계층은 데이터 형식을 변환하고 암호화 및 압축 기능을 제공함 (응용계층이 이해하는 데이터 형식으로 변환) |
|
5층 | 세션 계층 (Session Layer) | 세션 계층은 통신 세션을 설정, 유지, 종료하는 역할을 함 | |
4층 | 전송 계층 (Transport Layer) | 전송 계층은 종단 간(end-to-end) 통신을 제공하며, 데이터 전송의 신뢰성을 보장함 | |
3층 | 네트워크 계층 (Network Layer) | TCP/UDP | 네트워크 간의 경로 설정 및 패킷 전달을 관리한다 |
2층 | 데이터 링크 계층 (Data Link Layer) | IP, ICMP 등 | 데이터 링크 계층은 물리 계층을 통해 전송되는 데이터를 프레임 단위로 관리하며, 오류 검출 및 수정 기능을 제공한다 |
1층 | 물리 계층 (Physical Layer) | Ethernet, ATM 등 | 물리 계층은 네트워크의 물리적 연결을 담당한다 |
사진 출처 :
https://www.educba.com/tcp-ip-model/
https://www.geeksforgeeks.org/tcp-ip-model/?ref=gcse_ind
https://brunch.co.kr/@swimjiy/35
'통신' 카테고리의 다른 글
통신 - REST, REST API (0) | 2024.09.10 |
---|---|
통신 - DNS (1) | 2024.08.13 |
통신 - HTTP와 HTTPS (0) | 2024.08.01 |
통신이란 ? (0) | 2024.05.01 |