TCP와 UDP는 OSI 7 계층 중 TCP/IP 전송계층에서 사용되는 프로토콜이다(4계층)
전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스 제공 계층이다.
(즉, 데이터의 전달을 담당, 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당)
3-way handshake를 간단히 표현하면 다음과 같다.
#1. Client -> Server : 내 말 들려?
#2. Server -> Client : 어 잘 들려! 내 말은 들려?
#3. Client -> Server : 잘 들려!
SYN(synchronize sequence numbers) - 연결 확인을 보내는 무작위의 숫자 값 (내 말 들려?)
ACK(acknowledgements) - Client 혹은 Server로부터 받은 SYN에 1을 더해 SYN을 잘 받았다는 ACK (잘 들려!)
먼저 Open 한 클라이언트가 SYN(내 말 들려?)를 보내고 SYN_SENT 상태로 대기한다.
서버는 SYN-RECEIVED 상태로 바꾸고 SYN과 응답 ACK(어 잘 들려! 내 말은 들려?)를 보낸다.
SYN과 응답 ACK를 받은 클라이언트는 ESTABLISHED 상태로 변경하고 서버에게 응답 ACK(잘 들려!)를 보낸다.
응답 ACK를 받은 서버는 ESTABLISHED 상태로 변경한다.
4-way handshake를 간단히 표현하면 다음과 같다.
#1. Client -> Server : 나는 다 보냈어! 이제 끊자!
#2. Server -> Client : 알겠어! 잠시만~
#3. Server -> Client : 나도 끊을게!
#4. Client -> Server : 알겠어!
TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용되는 프로토콜
UDP는 TCP보다 빠르고 네트워크 부하가 적다는 장점이 있지만 신뢰성있는 데이터 전송을 보장하지는 않는다. 그렇기에 신뢰성보다는 연속성이 중요한 실시간 스트리밍 같은 서비스에 자주 사용된다
출처: 감사합니다!
https://mangkyu.tistory.com/15
https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://seongonion.tistory.com/74