TCP(Transmission Control Protocol)
TCP는 신뢰성 있는 데이터 전송을 보장한다. 이는 데이터가 순서대로, 오류 없이 손실 없이 도달하는 것을 의미한다.
3-way Handshacking
- TCP 연결성의 신뢰성을 만드는 데에 중요한 역할을 한다.
- 연결 설정: 클라이언트는 서버에게 SYN(Synchronize)패킷을 보내 연결을 요청한다. 서버는 SYN-ACK(Synchronize-Acknowledgment) 패킷으로 응답하여 요청을 수락한다. 클라이언트는 ACK패킷을 보내 연결을 확립한다.
- 양쪽 모두 데이터 전송 준비가 되었음을 확인하고, 신뢰할 수 있는 연결을 설정한다.
흐름 및 혼잡 제어
- TCP는 네트워크의 혼잡 상태와 데이터 수신 속도를 고려하여 데이터 전송 속도를 조절한다.
UDP(User Datagram Protocol)
- UDP는 신뢰성있는 데이터 전송을 보상하지 않는다.
- 데이터가 손실되거나 순서가 뒤바뀌어도 재전송하지 않는다.
- 연결 설정 없이 데이터를 전송하여 초기 설정 지연이 없다.
- UDP는 TCP보다 오버헤드가 적어서 더 빠른 데이터 전송을 가능하게 한다.
TCP와 UDP의 신뢰성 차이
-
3-way hanshaking과 같은 연결 설정과정, 흐름 제어, 혼잡 제어, 데이터 재전송 등의 메커니즘으로 인해 TCP의 신뢰성이 확립된다. 반면 UDP는 이러한 과정을 생략함으로써 빠른 데이터 전송이 가능한 반면에 신뢰성이 낮아지는 것이다.
-
TCP는 이메일, 웹페이지 로딩 등의 신뢰성이 중요한 애플리케이션에 적합하다. UDP는 실시간 스트리밍, 온라인 게임 등 속도가 중요한 경우에 사용된다.
오버헤드
오버헤드란 어떤 작업을 수행하는 데에 필요한 추가적인 시간, 메모리, 기타 자원을 의미한다.