[컴퓨터 네트워크] TCP/UDP 프로토콜

Jaehwan Lee·2021년 4월 22일
1

컴퓨터 네트워크

목록 보기
1/1
post-thumbnail

프로토콜(Protocol)이란?

데이터 통신 시스템의 구성요소 중 하나인 프로토콜이란 데이터 통신을 통제하는 규칙의 집합이다. 쉽게 말해, 송신자와 수신자 상호 간의 통신의 대상이 되는 정보인 데이터를 주고 받기 위해 사전에 정해 놓은 일종의 약속이라고 할 수 있다. 프로토콜이 없다면 한국인이 외국인과 대화와 소통이 되지 않는 것처럼 통신 장비 간의 통신이 불가능하다. 프로토콜의 종류는 매우 다양하다.

TCP(Transmission Control Protocol)란?

수 많은 통신 장치 간의 연결로 이루어진 네트워크인 인터넷에는 수 많은 프로토콜들이 존재한다. TCP/IP는 현재의 인터넷에서 사용하는 프로토콜 그룹이며 여러 계층들로 조직되어 있다. 모듈화와 구현의 분리를 위해 TCP/IP 프로토콜 그룹은 5개의 계층 구조를 가진다. TCP/IP 5계층은 물리 계층, 데이터 링크 층, 네트워크 층, 전송 층, 응용 층 순으로 구성되어 있다. 각각의 계층에는 해당 계층에서 필요한 프로토콜 종류들이 있고 TCP라는 인터넷에서 가장 공통적인 프로토콜은 5개의 계층 중 전송 층(네트워크 층과 응용 층 사이)에서 사용하는 프로토콜이다. TCP는 데이터를 전송하기 전에 먼저 두 호스트(통신 장치 또는 종단 시스템) 사이에 논리적 연결을 설정하는 신뢰성 있는 연결 지향(connection-oriented) 프로토콜이다. TCP는 바이트들의 스트림(바이트 들의 연속적인 흐름) 전송을 위해 논리적인 파이프를 형성하고, 흐름 제어(목적지에서 전송되는 데이터의 양을 감당할 수 있도록 발신지 호스트의 데이터 송신 율과 수신지 호스트의 데이터 수신 율을 맞춤), 오류 제어(오류 없이 목적지에 세그먼트가 전달되고 훼손된 세그먼트의 재전송을 보장함), 그리고 혼잡 제어(네트워크의 혼잡으로 인한 세그먼트들의 손실을 줄임)의 역할을 한다. 세그먼트(TCP 패킷 명)는 응용 층으로부터 받은 메시지(정보)를 전송 층 패킷으로 캡슐화한 것을 말한다. TCP는 연결 지향 서비스를 제공하기 위해 분명하게 연결 설정, 데이터 전송, 연결 해제 단계를 정의해야 한다. 또한 신뢰성을 제공하기 위해 GBN과 SR 프로토콜의 결합을 사용한다고 한다. OSI 7계층 모델에서의 전송 층에서도 기능이 동일한 TCP 프로토콜이 존재한다.

UDP(User Datagram Protocol)란?

TCP/IP 프로토콜 그룹의 계층 중 전송 층에 속하는 또 다른 일반적인 프로토콜인 UDP라고 불리는 사용자 데이터 그램 프로토콜이 존재한다. UDP는 처음에 논리적 연결을 설립하지 않고 사용자 데이터 그램(UDP 패킷 명)을 전송하는 비연결형(connectionless) 프로토콜이다. UDP에서 각 사용자 데이터 그램은 이전이나 다음 데이터 그램과는 관련이 없는 독립적인 하나의 개체이므로 비연결형이라는 이름이 사용된다고 한다. UCP는 TCP 프로토콜과 다르게 흐름 제어, 오류 제어, 또는 혼잡 제어를 제공하지 않는 간단한 프로토콜이다. 또한 UDP는 비연결임과 동시에 신뢰성이 없는 전송 프로토콜이다. UDP는 호스트 간 통신 대신에 프로세스(일종의 응용 프로그램) 간 통신을 제공하는 것을 제외하고는 IP 서비스에 어떠한 것도 추가하지 않는다고 한다. 그래서 기능이 별로 없는 것 같으나 몇 가지 장점이 존재한다. UDP는 최소한의 오버헤드(어떤 처리를 하기 위해 들어가는 간접적인 처리 시간과 메모리)를 가진 매우 간단한 프로토콜이라는 장점이 있다. 작은 메시지를 송신하기 원하고 신뢰성이 그다지 중요하지 않다면 UDP를 사용할 수 있다. 이는 TCP를 사용하는 것보다 송수신자 간의 상호 작용이 훨씬 적다.

TCP와 UDP 차이?

TCP는 UDP와 달리 연결 지향 프로토콜이며 스트림 지향 프로토콜이다. UDP는 TCP와 달리 비연결형이라서 스트림 데이터를 보낼 수 없고, 패킷 간의 관계가 없다. 또한 UDP는 TCP와 다르게 흐름 제어, 오류 제어, 혼잡 제어 메커니즘이 없지만 훨씬 간단한 프로토콜이다. TCP는 많은 패킷이 교환되어야 해서 많은 지연을 생성하지만, UDP는 적은 패킷만 교환하여 적은 지연 시간을 가진다. 대신 UDP는 TCP와 같이 데이터의 안전하고 확실한(신뢰성) 도착을 보장할 수 없다.

profile
느리더라도 꾸준히 멈춤 없이

0개의 댓글