Published on

인터넷 네트워크 - TCP,UDP

Authors
  • avatar
    Name
    손예지(Liv)

프로토콜 계층이란 무엇일까?

프로토콜 계층이란 컴퓨터와 네트워크 기기들이 어떻게 통신할지 정한 규약을 말합니다. 우리가 컴퓨터 내에서 사용하는 웹 브라우저 내의 활동들은 애플리케이션 계층 안에서 이루어집니다. 오늘 살펴볼 TCP가 속해있는 트랜스포트 계층을 지나 IP가 있는 네트워크 계층을 지나게 됩니다. 그리고 LAN 장비, 캐이블과 같은 하드웨어를 다루는 링크 계층을 지나 서버로 도달하게 됩니다. 그렇다면 TCP와 UDP는 네트워크 내에서 어떤 역할을 할까요?

네트워크 통신에서 TCP는 어떤 역할을 할까?

TCP: 전송 제어 프로토콜 (Transmission Control Protocol)
앞서 살펴보았던 IP는 출발지 IP와 목적지의 IP를 패킷을 통해 전달합니다. 이때 IP 패킷은 TCP 정보를 더해 전달되게 됩니다. TCP의 특징은 크게 3가지로 정리해볼 수 있습니다.

  1. 연결지향적
    TCP는 three way handshaking 이라는 방법을 통해 확실하게 데이터를 전달합니다. three way handshaking은 3가지 방식을 통해 통신을 시도한다는 뜻인데, SYN과 ACK라는 플래그를 통해 통신합니다. 여기서 SYN은 접속 요청이고, ACK는 요청 수락을 의미합니다.

클라이언트에서 TCP를 통해 서버와 연결을 시도할때 SYN이라는 플래그를 보냅니다. 이때 수신을 하게되는 서버에서는 ACK와 SYN을 보내며 수신여부와 접속요청을 합니다. 클라이언트는 다시 ACK를 통해 서버의 요청을 확인해줍니다. 단, 여기서의 연결은 물리적인 연결이 아닌 가상연결로 SYN - SYN+ACK - SYN의 과정을 거쳤으니 연결이 되었다 라고 생각한다는 것입니다.

  1. 데이터 전달 보증
    클라이언트에서 서버로 데이터를 전송할때 서버의 응답을 통해 전달을 확인할 수 있습니다. 만약에 서버에서 응답이 없다면, 전달이 되지 않았음을 알 수 있습니다.

  2. 순서보장
    일정이상의 용량의 데이터는 패킷이라는 단위로 쪼개서 송신하게 됩니다. 이때 보내는 순서가 맞지 않으면 서버는 클라이언트에게 다시 보내도록 요청합니다.

앞서 설명한 역할이 가능한 이유는 TCP데이터 안에 전송제어, 순서, 검증 정보가 추가되어 있기 때문입니다. 이러한 장점들 덕분에 현재 대부분의 애플리케이션에서는 TCP를 사용하며 신뢰할 수 있는 프로토콜이라고 불립니다.

UDP는 무엇일까?

UDP는 사용자 데이터그램 프로토콜(User Datagram Protocol)이고, TCP와 같은 계층에 위치합니다. UDP는 흔히 하얀도화지에 비유되는데 그만큼 기능이 거의 없기 때문입니다. 앞서 살펴보았던 TCP의 장점이었던 연결지향, 데이터 전달보증, 순서 보장 모두 지원되지 않습니다. IP와 거의 동일한데 IP에서 여러 어플리케이션을 사용할 때 구분할 수 있는 PORT와 확인하는 체크섬을 추가할 수 있습니다.그렇다면 UDP는 왜 사용하는 걸까요?

UDP의 가장 큰 장점은 아무것도 없기 때문에 단순하고 빠르다는 점입니다. 현재 대부분이 TCP기반으로 되어있기 때문에 TCP를 수정하기는 어려운 경우가 있습니다. 그럴때 UDP를 추가 해 최적화를 돕는데 사용할 수 있습니다.

참고자료:
인프런 강의 모든 개발자를 위한 HTTP 웹 기본 지식, 강영한
그림으로 배우는 Http, NetWork Basic, 우에노 센