🎡전승 계층 프로토콜 (Transport Layer Protocol)
전승 계층 프로토콜은, 네트워크 통신에서 송신자와 수신자 간의 데이터 전송을 효율적이고 안정적으로 관리하는 역할을 한다. OSI 7계층 모델의 4번째 계층에 해당하며, TCP/IP 모델에서도 중요한 부분을 담당한다.
❓OSI 7계층 모델?
❓TCP/IP 모델?
🧊 전송 계층의 주요 기능
-
데이터 분할 및 재조립
: 큰 데이터는 작은 조각으로 나뉘어 전송되고,
수신 측에서 이를 다시 재조립한다.
-
흐름 제어
: 송신 속도를 조절해 수신 측이 데이터를 제대로 처리하게 돕는다.
-
오류 제어
: 전송 중 손상된 데이터는 감지하고, 필요 시 재전송을 요청한다.
(TCP의 경우)
-
포트 관리
: 여러 애플리케이션이 동시에 통신할 수 있도록 포트 번호를 사용해 구분한다. 예를 들어, 웹 서버는 80번(HTTP) 포트를 사용.
-
연결 설정 및 해제
: 연결 기반 프로토콜(TCP)은 통신을 시작하기 전에 연결을 설정하고, 종료 시 연결을 해제한다.
🧊 주요 전승 계층 프로토콜
1. TCP (Transmission Control Protocol)
- 신뢰성 있는 데이터 전송을 보장하는 연결 지향형 프로토콜
- 데이터가 손실되거나 순서가 틀리면 재전송
- 사용 사례 : HTTP/HTTPS, 이메일(POP3/SMTP), 파일 전송(FTP) 등
2. UDP (User Datagram Protocol)
- 빠른 전송을 중요시하는 비연결형 프로토콜
- 데이터 유실을 감수
- 스트리밍처럼 실시간 응답성이 중요한 상황에 유리
- 사용 사례 : 온라인 게임, 영상 스트리밍, VolP, DNS(도메인네임시스템)
VoIP : 음성 인터넷 프로토콜(VoIP)은 인터넷을 통해
전화를 걸 수 있는 방법. 기존 유선 전화 시스템과 달리
인터넷은 연결된 사람 간에 실시간으로 오디오 신호를 전달하도록 설계되지 않았습니다.
🧊 포트 번호와 전송 계층
전송 계층은 포트 번호를 이용해 여러 애플리케이션이 동일한 장비에서 독립적으로 작동하도록 한다. 예: HTTP는 80번 포트, HTTPS는 443번 포트
🧊 전송 계층의 위치 (OSI 모델 vs TCP/IP 모델)
- OSI 7계층 모델 : 전송 계층(4계층).
- TCP/IP모델 : 전송 계층이 직접적으로 정의되어 있음.
TCP와 UDP는 인터넷에서 데이터를 전송하기 위해 사용하는
전승 계층 프로토콜. 각각 목적과 특성에 따라 전송 방식을 다르게 처리한다.
🎯TCP (Transmission Control Protocol)
TCP는 신뢰성 있는 연결 지향형 프로토콜.
데이터가 손실 없이 순서대로 전달되도록 보장한다.
- 연결 지향 : 통신을 시작하기 전에 송신자와 수신자 간
3-way 핸드셰이크로 연결을 설정한다.
- 데이터 무결성 보장 : 데이터가 손실되거나 순서가 바뀌면 재전송한다.
- 흐름 제어와 혼잡 제어 : 네트워크 상태를 고려해 전송 속도를 조절.
- 느린 전송 속도 : 신뢰성을 높이기 위해 오버헤드가 크다.
오버헤드 : 오버헤드(overhead)는 어떤 처리를 하기 위해 들어가는
간접적인 처리 시간 · 메모리 등을 말한다.
- 사용 사례
: 파일 전송(FTP), 이메일(SMTP), 웹 브라우징(HTTP/HTTPS)처럼 데이터 손실이 허용되지 않는 서비스.
🎯UDP (User Datagram Protocol)
UDP는 비연결형 프로토콜로, 데이터 전송의 신속함을 중요시.
데이터가 유실될 수 있지만 빠른 전송이 필요할 때 사용한다.
- 비연결형 : 송신자와 수신자 간 연결을 설정하지 않고, 데이터를 바로 보낸다.
- 데이터 유실 가능성 : 전송된 패킷이 유실되거나 순서가 바뀌어도 재전송하지 않는다.
- 빠른 전송 속도 : 오버헤드가 적고 빠르게 데이터를 전달.
- 단순한 구조 : 흐름 제어나 혼잡 제어 기능이 없다.
- 사용 사례
: 실시간 스트리밍, 온라인 게임, VoIP와 같은 지연이 적고 빠른 데이터 전송이 중요한 서비스.
🧊 TCP와 UDP 비교
| 구분 | TCP | UDP |
|---|
| 연결 방식 | 연결 지향(3-way 핸드셰이크) | 비연결형 |
| 신뢰성 | 데이터 유실 시 재전송 | 재전송 없음 |
| 속도 | 느림 | 빠름 |
| 오버헤드 | 큼 | 적음 |
| 사용 예시 | HTTP, FTP, 이메일 | 실시간 스트리밍, VoIP, 온라인 게임 |
⭐3-way Handshake란?
🎡 프론트엔드 개발자와 전승 계층 지식 필요성
프론트엔드 개발자도 TCP, UDP, 그리고 전승 계층 프로토콜의 기본 개념을 어느 정도 이해하는 것이 유익하다. 특히, 네트워크 성능과 사용자 경험에 영향을 미치는 부분에서 관련 지식을 활용할 수 있다.
1. HTTP/HTTPS와 TCP
- 웹사이트에서 주로 사용하는 프로토콜인 HTTP와 HTTPS는 TCP 기반.
- 브라우저가 웹 서버에 요청(Request)을 보내고 응답(Response)을 받는 과정에서 TCP 연결이 사용된다. 예를 들어, 페이지가 느리게 로딩될 때, 왜 그런지 이해하고 성능을 개선하는 데 도움이 된다.
2. 네트워크 성능 최적화 (TCP의 지연 이해)
- 3-way 핸드셰이크로 인한 초기 지연이나, HTTP/2, HTTP/3에서의 다중 연결 활용 등을 이해하면 성능 최적화에 유리.
- TLS/SSL을 적용한 HTTPS는 추가 핸드셰이크가 필요하므로 성능에 미치는 영향을 고려해야 한다.
3. 실시간 데이터 처리와 UDP
- 온라인 게임, 채팅, 실시간 스트리밍 같은 웹 애플리케이션에서 WebRTC를 사용할 때 UDP가 활용된다.
- WebRTC를 이용해 영상 통화나 스트리밍 기능을 구현할 때 UDP의 빠른 속도가 중요하지만, 데이터 유실 가능성도 고려해야 한다.
4. API 요청과 오류 처리 (TCP/IP 기반)
프론트엔드에서는 REST API나 GraphQL을 통해 데이터를 주고받는 일이 많은데, 이때 네트워크 지연, 오류(Timeout), 재시도 요청 등의 처리를 이해해야 한다.
5. CORS와 네트워크 통신 이해
서버와 클라이언트 간 통신에서 발생할 수 있는 CORS (Cross-Origin Resource Sharing) 문제도 전송 계층 위에서 동작하는 HTTP와 관련이 있다.
이 문제를 해결하기 위해 기본적인 네트워크 통신 구조를 이해하는 것이 중요하다.
6. SPA, PWA, 웹소켓과 전송 프로토콜
- SPA(Single Page Application)와 PWA(Progressive Web App)에서 웹소켓(WebSocket)은 실시간 통신을 위해 많이 사용됩니다.
- 웹소켓은 기본적으로 TCP 기반이며, 이처럼 네트워크와 관련된 기능이 점점 중요해지는 추세다.