티스토리 뷰
세그먼트, TCP, UDP: 전송 계층의 핵심 요소
네트워크의 TCP/IP 계층 모델에서 전송 계층(Transport Layer)은 애플리케이션 계층의 데이터를 받아서 네트워크를 통해 전송할 수 있는 형태로 만들고, 수신 측에서는 받은 데이터를 다시 애플리케이션 계층으로 전달하는 역할을 합니다. 이때 전송 계층에서 데이터가 분할되고 캡슐화되는 단위를 세그먼트(Segment) (TCP의 경우) 또는 사용자 데이터그램(User Datagram) (UDP의 경우)이라고 합니다.
전송 계층의 주요 프로토콜인 TCP와 UDP는 각각 다른 특징과 목적을 가집니다.
세그먼트 (Segment) 및 사용자 데이터그램 (User Datagram)
세그먼트와 사용자 데이터그램은 전송 계층에서 애플리케이션 데이터를 작게 분할하고 전송 계층 헤더를 붙여 만든 데이터 단위입니다. 이 헤더에는 데이터를 올바르게 전달하고 관리하기 위한 중요한 정보가 포함됩니다.
- TCP 세그먼트: TCP 헤더와 애플리케이션 데이터로 구성됩니다. TCP 헤더에는 출발지 및 목적지 포트 번호, 순서 번호, 확인 응답 번호, 윈도우 크기, 체크섬 등 신뢰성, 흐름 제어, 혼잡 제어를 위한 다양한 제어 정보가 포함됩니다.
- UDP 사용자 데이터그램: UDP 헤더와 애플리케이션 데이터로 구성됩니다. UDP 헤더는 TCP 헤더보다 훨씬 간단하며, 출발지 및 목적지 포트 번호, 길이, 체크섬 등 기본적인 정보만 포함합니다.
TCP (Transmission Control Protocol)
TCP는 연결 지향(Connection-Oriented) 프로토콜입니다. 이는 데이터를 전송하기 전에 송신자와 수신자 간에 논리적인 연결을 설정하는 3-way Handshake 과정을 거친다는 의미입니다. TCP는 다음과 같은 특징을 가집니다.
- 신뢰성 보장: 데이터 전송 중에 손실, 오류, 중복, 지연 등이 발생하면 이를 감지하고 복구하여 데이터가 순서대로 정확하게 전달되도록 보장합니다. 이를 위해 순서 번호, 확인 응답(ACK), 타임아웃 및 재전송 메커니즘을 사용합니다.
- 흐름 제어 (Flow Control): 수신자의 처리 속도보다 송신자의 전송 속도가 빠를 경우 수신자의 버퍼 오버플로우를 방지하기 위해 데이터 전송량을 조절합니다. 윈도우 크기(Window Size)를 통해 수신 가능한 데이터 양을 송신자에게 알립니다.
- 혼잡 제어 (Congestion Control): 네트워크의 혼잡 상태를 감지하고 데이터 전송 속도를 조절하여 네트워크 성능 저하를 방지합니다.
- 연결 설정 및 해제: 데이터 전송 전에 연결을 설정(3-way Handshake)하고 데이터 전송 후 연결을 해제(4-way Handshake)하는 절차를 가집니다.
TCP는 파일 전송, 웹 브라우징, 이메일 등과 같이 데이터의 정확성과 신뢰성이 중요한 서비스에 주로 사용됩니다.
UDP (User Datagram Protocol)
UDP는 비연결 지향(Connectionless) 프로토토콜입니다. 데이터를 전송하기 전에 별도의 연결 설정 과정 없이 데이터를 즉시 전송합니다. UDP는 다음과 같은 특징을 가집니다.
- 신뢰성 비보장: 데이터 전송의 신뢰성을 보장하지 않습니다. 데이터 손실, 오류, 순서 바뀜 등이 발생하더라도 이를 복구하지 않습니다.
- 빠른 전송: 연결 설정 및 해제 과정이 없고 신뢰성 보장을 위한 복잡한 메커니즘이 없어 TCP보다 데이터 전송 속도가 빠릅니다.
- 단순함: TCP에 비해 헤더 정보가 적고 기능이 간단합니다.
UDP는 실시간 스트리밍 (오디오/비디오), 온라인 게임, DNS 등과 같이 속도가 중요하고 일부 데이터 손실이 허용되는 서비스에 주로 사용됩니다.
요약:
특징 | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
---|---|---|
연결 방식 | 연결 지향 (Connection-Oriented) | 비연결 지향 (Connectionless) |
신뢰성 | 높음 (신뢰성 보장) | 낮음 (신뢰성 비보장) |
전송 속도 | 상대적으로 느림 | 상대적으로 빠름 |
데이터 단위 | 세그먼트 (Segment) | 사용자 데이터그램 (User Datagram) |
주요 기능 | 신뢰성 보장, 흐름 제어, 혼잡 제어, 연결 관리 | 빠른 전송, 단순함 |
활용 분야 | 웹 브라우징, 파일 전송, 이메일 등 | 스트리밍, 온라인 게임, DNS 등 |
전송 계층에서는 애플리케이션의 요구사항에 따라 신뢰성이 중요한 경우 TCP를, 속도가 중요한 경우 UDP를 선택하여 사용하게 됩니다.
'ㅈㄱㅈ > ㄴㅌㅇㅋㄱㄹㅅ' 카테고리의 다른 글
IP 주소와 서브넷 마스크 (0) | 2025.04.20 |
---|---|
IP 프로토콜 (0) | 2025.04.20 |
TCP/IP 계층 (0) | 2025.04.20 |
OSI 7 계층 에러 제어 (0) | 2025.04.20 |
OSI 7 계층 (0) | 2025.04.20 |
- Total
- Today
- Yesterday
- 단위변환
- Between
- JavaScript
- 로스터리
- dbeaver
- MySQL
- LILI COFFEE
- Coffee
- SEQUENCE
- 커피
- oracle
- BAT
- partition
- diff
- JSP
- 리리 커피
- Powershell
- SQL
- db
- Eclipse
- table
- backup
- GitHub
- MariaDB
- VBS
- date
- 스페셜티
- Filter
- handdrip
- popup
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |