ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP, UDP에 대해서 알아보자
    PC, 하드웨어/PC 이론 2024. 10. 27. 16:23

    깔쌈하게 선요약

    특징 TCP UDP
    연결 방식 연결 지향적 (각 패킷을 엄격하게 검사하고 확인) 비연결형 (확인 없이 자유롭게 데이터 전송)
    신뢰성 신뢰성이 높음, 오류 검사와 재전송 지원 신뢰성이 낮음, 오류 검사나 재전송 없음
    패킷 순서 패킷의 순서를 보장 패킷 순서 보장 없음
    속도 패킷 확인과 순서 조정으로 인해 느림 확인이 적어 빠름
    사용 예시 파일 전송, 이메일, 웹 브라우징 (정확성이 중요한 경우) 스트리밍, 온라인 게임, VoIP (속도가 중요한 경우)

     

     TCP는 마치 클럽의 엄격한 문지기와 같다. 클럽에 들어가려면 문지기가 철저히 신분을 확인하고 입장 허가를 한다. 모든 손님이 줄을 서고, 입장 시 신분증을 제시하고, 신원 확인을 통과한 후에야 클럽 안으로 들어갈 수 있다. 그리고 손님이 입장할 때마다 문지기는 꼼꼼히 체크하여 누락되는 사람이 없도록 한다. 만약 손님이 클럽에 들어가다가 실수로 길을 잃거나 문제가 발생하면, 문지기는 손님을 다시 불러 세우고 제대로 클럽에 입장할 수 있도록 도와준다. 이러한 과정은 매우 철저하고 확실하지만, 시간이 걸릴 수 있다. 모든 손님이 안전하게 클럽에 들어가는 것이 최우선이기 때문이다. 이처럼 TCP는 데이터의 신뢰성을 보장하기 위해 연결을 설정하고, 데이터를 송수신하며, 오류가 발생하면 재전송하는 과정을 거친다.

     TCP는 이러한 연결 지향적 방식(connection-oriented)으로 작동하며, 데이터가 손실되지 않고 정확히 전달될 수 있도록 신뢰성 있는 전송을 보장한다. 이를 위해 세 가지 중요한 과정이 있다: 연결 설정, 데이터 전송, 그리고 연결 해제이다. 먼저, TCP는 데이터를 전송하기 전에 '3-way handshake'라 불리는 연결 설정 과정을 거친다. 이는 클럽 문지기가 손님의 신분을 확인하고 문을 열기 전 서로 통신을 확립하는 과정과 같다. 이 과정을 통해 TCP는 데이터가 제대로 전송될 준비가 되었는지를 확인한다. 이후 데이터가 전송되면서 매 패킷마다 확인 응답(ACK)을 받으며, 만약 누락된 데이터가 있다면 이를 재전송한다. 이러한 특성 덕분에 TCP는 파일 전송, 이메일, 웹 페이지 로딩과 같이 신뢰성이 중요한 애플리케이션에 사용된다.

     반면에 UDP는 자유로운 클럽의 입장과도 같다. 클럽에 들어가고 싶다면 그냥 문을 열고 들어가면 된다. 문지기가 손님의 신분을 하나하나 확인하지 않고, 줄을 서서 기다릴 필요도 없다. 그냥 들어오고 싶은 사람은 마음대로 들어오면 된다. 하지만 이 과정에서 누군가는 클럽 입구에서 밀려서 넘어지거나, 길을 잃고 제대로 들어가지 못할 수도 있다. 문지기는 이를 신경 쓰지 않는다. 그저 입구를 열어두고 사람들이 자유롭게 들어오도록 할 뿐이다. UDP는 이러한 방식으로 데이터를 빠르게 전송하지만, 중간에 누락되거나 순서가 어긋날 가능성을 허용한다. 그래서 속도는 빠르지만 데이터의 신뢰성은 TCP보다 낮다.

     UDP는 비연결형 프로토콜(connectionless protocol)로, 데이터 전송 전에 별도의 연결 설정을 하지 않는다. 이는 마치 클럽에서 손님이 자유롭게 입장하고 퇴장하는 것처럼, 데이터그램을 별도의 확인 과정 없이 전송하는 방식이다. 이로 인해 UDP는 TCP에 비해 전송 지연이 적으며, 더 빠르게 데이터를 전송할 수 있다. 하지만 데이터가 제대로 도착했는지 확인하지 않기 때문에 신뢰성이 낮다. 이런 특성으로 인해 UDP는 실시간 스트리밍, 온라인 게임, VoIP와 같이 지연 시간이 중요한 애플리케이션에서 사용된다. 예를 들어, 온라인 게임에서는 순간적인 데이터 손실보다는 빠른 반응 속도가 더 중요하기 때문에 UDP가 적합하다.

     이렇게 TCP와 UDP는 각각의 목적과 상황에 맞게 사용된다. TCP는 신뢰성이 중요한 상황, 예를 들어 파일 전송이나 웹 페이지 로딩 같은 경우에 적합하다. 모든 데이터가 빠짐없이, 순서대로 도착해야 하기 때문이다. 반면 UDP는 실시간 스트리밍, 게임 데이터 전송 등 지연 시간이 중요하고 약간의 데이터 손실이 큰 문제가 되지 않는 상황에서 사용된다. 클럽 비유로 보자면, TCP는 고급 클럽의 철저한 입장 절차를 통해 모든 손님이 안전하게 즐길 수 있게 하는 방식이고, UDP는 자유로운 파티 분위기에서 속도와 접근성을 우선시하는 방식이라고 할 수 있다.

     결론으로, TCP는 데이터의 정확성과 신뢰성을 보장하기 위한 철저한 입장 절차를 가진 클럽의 문지기와 같고, UDP는 속도와 편리함을 우선시하는 자유로운 클럽의 입장 방식과 같다. 이 두 가지 프로토콜은 각기 다른 장점과 단점을 가지고 있으며, 상황에 맞게 선택하여 사용하는 것이 중요하다. TCP의 신뢰성 있는 전송은 안전하고 정확한 데이터 전달을 보장하는 반면, UDP의 빠르고 효율적인 전송은 실시간성과 속도를 요구하는 상황에서 빛을 발한다. 따라서, 애플리케이션의 요구사항에 맞추어 TCP와 UDP를 적절히 선택하는 것이 효율적인 네트워크 운영의 핵심이다.

Designed by Tistory.