TCP(Transmission Control Protocol, 전송 제어 프로토콜)
인터넷 상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜. TCP/IP 프로토콜이라고 불린다.
패킷 전송을 제어하여 신뢰성을 보증한다. IP가 데이터의 배달을 처리(목적지까지 배달)한다면 TCP는 패킷을 추적하고 관리(올바르게 도착했는지) 한다. 각 패킷에 번호를 부여함으로써 분실 여부를 확인하고 목적지에서 재조립한다.
패킷은 데이터를 여러 개로 나눈 조각이다. 데이터를 보내기 위한 경로 배정(라우팅)을 효율적으로 하기 위해서 데이터를 나눈다.
특징
- 연결 지향 방식(패킷 교환 방식)
- 패킷을 전송하기 위한 논리적 경로를 배정
- 데이터를 전송하는 동안 수신자와 발신자 사이에 연결을 설정하고 유지한다.
- 3-way handshaking을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
- handshaking: 정보를 보내거나 받는다는 신호 절차
- 흐름 제어(Flow Control) 및 혼잡 제어(Congestion Control)
- 흐름 제어: 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우 방지
- 혼잡 제어: 네트워크 내 패킷 수가 넘치게 증가하지 않도록 방지
- 높은 신뢰성
- 전이중(Full-Duplex), Point to Point 방식
메일 전송 같이 신뢰성있는 전송이 중요할 때 사용하는 것이 좋다.
UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜 )
데이터를 데이터그램 단위로 처리하는 프로토콜. 데이터그램은 독립적인 관계를 지니는 패킷이다.
비연결형 프로토콜로 연결을 위해 할당되는 논리적인 경로가 없어서, 각각의 패킷은 다른 경로로 전송되고 독립적으로 처리된다.
특징
- 비연결형 방
- 연결을 설정하고 해제하는 과정이 존재하지 않는다.
- 정보을 보내거나 받는다는 신호 절차를 거치지 않는다.
- 흐름 제어 또는 혼잡 제어를 하지 못한다.
- 낮은 신뢰성
- TCP보다 빠른 속도
실시간 스트리밍 같은 연속성이 중요한 서비스에 자주 사용된다.
[참고]
'웹 개발' 카테고리의 다른 글
검색엔진 최적화(SEO, Search Engine Optimization) (0) | 2024.03.18 |
---|---|
http와 https (0) | 2024.03.12 |
CSR과 SSR의 차이점 (0) | 2024.03.12 |
쿠키, 세션, 웹 스토리지의 차이점 (0) | 2024.03.10 |
HTTP 요청 - 요청 메시지의 구조, GET/POST의 차이 (0) | 2024.03.09 |