2019. 4. 16. 16:34ㆍNetwork
프로토콜(Protocol)이란?
우선 TCP와 UDP의 차이를 알기 전 프로토콜에 대해서 알아보자.
프로토콜을 위키트리에서 찾으면
'컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다. 프로토콜은 형식, 의미론, 그리고 통신의 동기 과정 등을 정의하기는 하지만 구현되는 방법과는 독립적이다. 따라서 프로토콜은 하드웨어 또는 소프트웨어 그리고 때로는 모두를 사용하여 구현되기도 한다.' 라고 나온다.
한마디로 통신을 어떻게 주고 받을 것이냐는 하나의 규칙이다.
네트워크 계층은
(나중에 네트워크 4계층과 OSI 7계층에 대해 따로 글을 쓸 예정이다.)
네트워크 계층에는 애플리케이션 계층, 전송계층, 네트워크 계층, 물리계층 4계층으로 나뉜다.
그중 TCP와 UDP는 전송계층에 속한다.
전송계층에 속하는 TCP와 UDP는 송신자와 수신자를 연결하는 프로토콜이다.
이렇게만 이야기 한다면 사실 헷갈릴 수도 있으니 TCP와 UDP의 차이를 보면서 이해를 해보도록 하자.
TCP/IP(Transmission Control Protocol/ Internet Protocol)
위에서 이야기 한 것처럼 TCP(Transmission Control Protocol)는 네트워크 계층의 전송계층에 머무는 녀석이다.
직역을 하자면 '전송 제어 프로토콜'이다. 이해하기 싶게 누군가 TCP에 대해 정의 한 것을 붙이자면
TCP는 '인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다.'
TCP는 가상 회선 방식을 제공하여 클라이언트와 서버를 연결한다. 그래서 가상회선 으로 3way handshaking을 하며 연결이 제대로 되었는지 확인 후에 데이터를 보낸다. 여기서 TCP는 IP에 의해 전달 되는 데이터(패킷) 오류를 검사하고 재전송 요구 등의 제어를 담당한다.
TCP의 특징에 대해서 이야기 해보자
- TCP는 연결형 서비스로 가상회선 방식을 제공한다. (나중에 UDP와 비교를 하며 보면 이해하기 쉽다.)
- 3way handshaking 과정을 통해 연결을 한 후 4way handshaking을 통해 연결을 해제한다.
- 높은 신뢰성을 보장한다.
- 속도가 UDP에 비해 느리다.
- 흐름제어 및 혼잡 제어
- 1:1 통신이다.
UDP(User Datagram Protocol)
(UDP의 Datagram은 패킷이 독립적인 관계를 지닌다는 뜻이다.)
UDP도 TCP와 같이 전송계층에 머무는 프로토콜이다. 하지만 UDP는 TCP와 다르게 비연결성 서비스를 제공한다.
무슨 말이냐면 서버와 클라이언트가 연결 되어 있는지 확인하지 않아, TCP와 다르게 가상회선이 없어 데이터를 각각 다른 경로로 순서 없이 보내는게 특징이다.
UDP에 대해서 이해가 잘 안간다면 토렌트를 생각하면 좋을 것이다.(물론 나는 바이러스 걱정에 절대 쓰지 않지만)
토렌트가 대표적이라고 한다. 예로 영화를 다운 받는다면 데이터는 차례대로 받는 것이 아닌 마구잡이로 중간 중간 데이터를 다운 받게 된다.
UDP의 특징은 이렇다.
- 비연결 서비스를 제공한다.(TCP와 다르게)
- 데이터그램 방식으로 패킷을 보낸다.
- 전송 순서를 보장하지 않는다.
- 속도가 빠르다.
- 1:1. 1:N, N:N 통신이다.
'Network' 카테고리의 다른 글
웹 개발을 하기 위해서는 반드시 HTTP! (0) | 2019.05.06 |
---|