반응형

5장. 프로토콜(Protocol) - TCP/IP

 

학습목표

- 프로토콜의 기본 개념에 대해 알 수 있다.

- TCP Model에 대해 말할 수 있다.

 

 

프로토콜(Protocol)이란 한 마디로 통신 규약 / 통신 규칙이라고 할 수 있습니다. 원활한 데이터 전송을 위해 지켜야 되는 규칙으로 데이터를 송수신하기 위해서는 많은 프로토콜들이 이용되고 있으며 앞서 살펴본 OSI Model과도 대응 관계를 이루고 있는데 그 중 현재 인터넷을 위해 가장 많이 사용하는 프로토콜이 바로 TCP(Transmission Control Protocol)와 IP(Internet Protocol)이며 IP는 앞서본 IP 주소에서의 IP와 같으며 주소에 관여하는 OSI 3계층 프로토콜이고 TCP는 신뢰성 있는 데이터 연결을 위한 OSI 4계층 프로토콜입니다. 

 

 

[ 그림 5-1. OSI / TCP Model ] - 후티(출처)

 

TCP 모델은 총 4계층으로 OSI 모델과 대응 관계를 이루고 있으며 OSI 모델의 5~7계층에 해당되는 응용 계층(Application Layer)은 사용자 응용 프로그램으로부터 요청을 받아서 하위 계층으로 전달하는 역할을 하며 사용자들이 대부분 사용하는 응용 프로그램들이 여기에 해당됩니다.

 

웹 브라우저, 메일, 파일 송수신 등이 해당이 되며 다음의 전송 계층(Transport Layer)은 Host-to-Host라고도 하며 패킷 오류 검사, 전송 제어 등의 기능을 담당하는 계층으로 TCP와 UDP(User Datagram Protocol)프로토콜이 있습니다. UDP 프로토콜에 대해서는 이 장의 뒷 부분에서 간단하게 TCP와 비교해볼 예정입니다. 

 

인터넷 계층(Internet Layer)은 전달 받은 패킷을 목적지까지 전달을 담당하게 되며 앞으로 실습하게 되는 라우터 장비가 동작하는 계층이며 OSI 모델의 1~2계층에 해당되는 네트워크 접속 계층(Network Access)은 네트워크 인터페이스에 대한 표준과 여러 기술들을 지원하는 계층입니다.

TCP와 IP는 TCP/IP와 같이 붙여서 표기를 하게 되는데 앞서 설명한 우체부와 주소를 생각하면 되는데 우체부와 주소가 정확해야 목적지에 제대로 배달이 되기 때문에 붙여 표기를 하며 TCP외에 4계층 전송 프로토콜로 UDP가 있습니다. TCP는 3-Way Handshaking(악수)과정을 통해 신뢰성 있는 전송을 하는 연결형(Connection) 프로토콜인 반면 UDP는 신뢰성이 다소 떨어지는 비연결형(Connectionless)프로토콜로 TCP는 송수신 간 연결을 확립한 후 전송이 이루어지며 UDP는 송수신간 연결 없이 전송이 이루어지는 방식을 말합니다.

하나의 예를 들면 후티가 친구에게 파일을 하나 보낸다고 가정했을 때 TCP를 이용해서 전송할 경우 Handshaking과정을 통해 서로 간에 연결(세션)이 확립되면 그 때서야 파일을 전송하게 되는 반면 UDP를 통해 전송할 경우 앞선 연결 과정 없이 파일을 전송하게 됩니다. 다른 모든 환경이 똑같을 경우 전송 속도는 UDP가 빠를 것이나 데이터 전송에 대한 신뢰도는 떨어지는데 데이터가 목적지에 도착하기 전에 에러가 발생하였다면 재전송을 하여야 되는데 UDP는 재전송 기능이 없다는 것입니다.
그래서 TCP는 신뢰성 있는 일반적인 데이터 전송에 많이 사용되어지고 UDP는 실시간 스트리밍(Streaming) 서비스 또는 고용량의 멀티미디어 데이터를 실어 나를 때 사용되어집니다.

 

[ 그림 5-2. TCP / UDP 비교 ] - 후티(출처)



그림 5-2의 TCP Handshaking과정을 간단히 보면 송신자(클라이언트)가 수신자(서버)에게 데이터를 전송하기 전에 SYN 플래그를 보내 연결 요청을 하고 이에 대해 수신자가 SYN+ACK 플래그를 보내 연결 확인을 한 뒤 송신자가 확인 플래그인 ACK 를 보내어 최종적으로 연결 성립(Established)상태가 되어 데이터를 주고 받을 수 있게 되며 송.수신자 간의 종료시에도 FIN 플래그를 통해 접속 종료가 되는 과정을 거치게 되는데 이에 반해 UDP는 요청이 들어오면 일방적으로 데이터를 전송하고 끝나게 됩니다. 한 마디로 전송에 대한 제어, 흐름 제어 등의 과정이 없다는 것을 말합니다.

 

대부분의 응용계층의 서비스들은 TCP 또는 UDP기반하에서 동작을 하며 여러 서비스들을 실어 나르는 역할을 담당하고 있습니다. 프로토콜의 내용만으로도 아주 방대한 내용이 있지만 우리는 현재 인터넷을 위해 TCP/IP프로토콜을 가장 많이 사용하고 두 개의 프로토콜은 서로가 붙여 다녀야 전송 서비스가 완벽하며 묻지도 따지지도 않고 실어 나르는 UDP도 있다라는 정도는 알고 있도록 합시다.

 

정리하기

OSI와 대응되는 TCP 모델 확인하기

TCP / UDP 기본 개념 알기

TCP와 IP는 꼭 붙어다니자.

- 후티

반응형

+ Recent posts