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
보다 전송 속도가 빠름TCP
UDP