[WEB] TCP & UDP

turtleJ·2022년 5월 19일
0

Computer Science

목록 보기
6/7
post-thumbnail

TCP(Transmission Control Protocol)

해석하면, 전송 제어 프로토콜이다. TCP는 두 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜이다.

'전송 제어 프로토콜'이 모든 것을 설명해 주지만, TCP를 처음 접할 때 이 말의 함축적 의미를 파악하기 어렵다.

컴퓨터 간의 통신은 신뢰할 수 있어야 한다. 즉, 데이터를 올바르게 수신할 수 있어야 한다.

예를 들어, 웹 페이지를 보거나 이미지를 다운로드 하거나 이메일을 보고 싶을 때 각각의 정보들은 누락되지 않아야 하며 올바르게 전송되어야 한다.

만약 올바르게 전송되지 않는다면 데이터가 누락되어 페이지가 부분적으로 보일 수 있으며, 순서가 뒤죽박죽인 페이지를 보게 될 것이다.

이러한 데이터 전송의 '신뢰성'을 담당하는 것이 바로 TCP이다.

TCP는 모든 데이터가 수신되는 것을 보장한다.

지난 Internet2에서도 설명하였듯이 이러한 정보들(이미지, 이메일 등)은 패킷이라는 작은 정보단위를 통해 전송된다.

TCP가 없다면 이 패킷은 순서가 없이 전달 되며, 누락될 수 있다.

TCP는 연결 지향 프로토콜로 연결을 기반한 통신을 제공한다.

TCP process

  1. A 컴퓨터가 SYN이라는 메세지를 B 컴퓨터로 보낸다.
  2. B 컴퓨터는 메세지를 받았음을 알리는 메세지(SYN ACK)를 보낸다.
  3. 마지막으로 A 컴퓨터가 B에게 확인 메세지(ACK RECEIVE)를 보낸다.
  4. 데이터를 전송한다.

UDP(User Datagram Protocol)

UDP 역시 TCP와 마찬가지로 데이터 송수신에 사용되는 프로토콜이다.

하지만 가장 큰 차이는 UDP는 연결이 없다는 것이다.

연결이 없기 때문에 데이터를 받았는지 못 받았는지를 확인하지 못하며 이는 데이터 전달을 보장하지 않음을 뜻한다.

이러한 특징 때문에 UDP를 'fire-and-forget'프로토콜이라고 한다.

UDP는 정보 전달을 보장하지 않는 것과 관련된 오버헤드(overhead)가 없기 때문에 TCP보다 빠르다.



참고)
overhead
: 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 & 메모리 등을 말한다.
fire & forget
: 미사일을 발사(Fire)하고 나면 그 후 미사일은 알아서 표적을 향해 날아가므로 발사자는 미사일에 대해 잊고 있어도(Forget) 알아서 표적에 명중한다는 말

profile
꾸준함을 무기로 성장하는 개발자가 되겠습니다.

0개의 댓글