
TCP는 Transmission Control Protocol의 약자이고, UDP는 User Datagram Protocol의 약자패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만, 서로 다른 특징을 가지고 있음Tip! 패킷이란?
- 네트워크를 통해 전송되는 데이터의 작은 조각
- 이 조각을 블록이라고 표현
- 네트워크는 기본적으로 데이터를 보낼 때 하나의 데이터를 더 작은 데이터들로 쪼개서 전송
- 한 데이터를 쪼개서 보내지 않으면 그 데이터가 네트워크 상에서 대역폭을 크게 차지하기에 자칫 문제를 야기킬 수 있음
- 각각의 패킷에 담긴 데이터들은 목적지에서 원래 데이터로 되돌리는 작업을 함
- 이를 위해 전송 시작 전에 순서대로 번호가 부여되며 목적지에서 번호대로 정렬되어 원래의 데이터로 복구가 가능한데, 이렇게 패킷을 통해 네트워크 상에서 데이터를 교환하는 방식을 패킷 교환 방식이라고 부름
TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는 것과 데이터 오류 검사를 위한 체크섬이 존재하는 두 가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉨TCP를 사용TCP는 통신할 컴퓨터끼리 ‘보냈습니다’, ‘도착했습니다’라고 서로 확인 메시지를 보내면서 데이터를 주고 받음으로써 통신의 신뢰성을 높임TCP를 사용
UDP를 사용UDP는 데이터를 보내면 그것으로 끝이므로 신뢰성은 없지만 확인 응답과 같은 절차를 생략할 수 있으므로 통신의 신속성을 높임UDP를 사용
TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 서비스에서는 UDP를 사용TCP는 연결 지향적 프로토콜TCP는 데이터를 정확하고 안정적으로 전달할 수 있음TCP는 호스트 간의 신뢰성 있는 데이터 전달과 흐름 제어를 함 TCP 프로토콜은 신뢰성 있는 데이터의 전송을 위해 확인 작업을 거치는데 TCP는 패킷을 성공적으로 전송하면 ACK 라는 신호를 날리고 만약에 ACK 신호가 제 시간에 도착하지 않으면 시간 초과가 발생하여 손실이 발생한 패킷을 다시 전송해줌TCP는 이렇게 데이터를 송신할때마다 확인 응답을 주고받는 절차가 있으므로 통신의 신뢰성이 올라감TCP 통신을 많이 사용3-way handshaking)과 해제(4-way handshaking)UDP보다 전송 속도가 느림TCP 통신을 위한 네트워크 연결은 3-way handshake 이라는 방식으로 연결3-way handshake 방식은 서로의 통신을 위한 관문(port)을 확인하고 연결하기 위하여 3번의 요청 & 응답 후에 연결이 되는 것을 말함UDP 방식보다 속도가 느려지는 주요 원인으로 지목됨LISTEN 상태에서 SYN 데이터를 받고 SYN_RCV 상태로 변경ESTABLISHED 상태로 변경하고 서버에 ACK 를 전송ESTABLSHED 상태로 변경
UDP는 전송 계층의 비연결 지향적 프로토콜TCP보다는 빠른 전송을 할 수 있지만 데이터 전달의 신뢰성은 떨어짐UDP는 발신자가 데이터 패킷을 순차적으로 보내더라도 이 패킷들은 서로 다른 통신 선로를 통해 전달 될 수 있음TCP와는 다르게 UDP는 중간에 패킷이 유실이나 변조가 되어도 재전송을 하지 않음TCP보다 전송 속도가 빠름TCPUDP