[CS] TCP와 UDP의 차이점과 3way handshake

Date:     Last Updated:

기본중의 기본이지만 제일 중요한 것들이 있다.

  • 정보처리기사에서도 나왔고, 이번에 프로그래머스 테스트에도 나온 TCP와 UDP의 차이점.
  • 정보처리기사 필기는 객관식이라서 사실 옳은 것을 고르면 되는데 프로그래머스는 주관식이라서 약간 당황했다.
  • 둘의 차이점을 모르는 것은 아니지만 은근히 주관식으로 설명하는 것은 쉽지 않았다.

TCP와 UDP의 차이점.

  • 맨처음 정보처리기사나 네트워크에 대해서 배울때 보통 배우게 되는 개념이다.
  • TCP는 클라이언트와 서버의 통신에서 안정적인 연결을 보장하기 위해서 본격적인 통신을 하기 전에 확인을 한다.
  • UDP는 TCP처럼 확인하는 작업이 거의 없어서 TCP보다 빠르지만 안정성을 보장하지 못한다.

TCP의 사용처

  • 아주 대표적으로 웹 HTTP 통신은 모두 TCP를 사용한다고 보면된다.

UDP의 사용처

  • UDP는 DNS와 IPTV등에서 사용한다고 한다. 위에도 설명했지만 TCP보다 빠르기 때문에 안정성보다는 속도를 위한 곳에서 사용한다.

TCP는 어떻게 안정적인 통신을 보장하는가?

  • 2way 4way 등 여러가지 방법이 있지만 TCP는 3way handshake라는 기법을 사용한다.
  • 뭔가 되게 어려울 것도 같지만 개념적으로 이해하기는 쉽다.(SYN나 ACK 등 여러 용어가 필요하지만 개념적으로만 설명해보자.)
  • 클라이언(A), 서버(B)가 있을 때 A는 B에게 신호를 보내고 B는 신호를 받으면 다시 A에게 보내고 A는 B에게 신호를 받으면 다시 B에게 보낸다.
  • *1. A->B *2. B->A *3. A->B 이렇게 3번을 왔다 갔다 신호를 주고 받아서 3way handshake 이다.
  • 이때 비로소 양쪽 모두 데이터를 전송할 준비가 됐다고 보장할 수 있는 것이다.

Tags:

Categories:

Leave a comment