TCP vs UDP

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 주요 통신 프로토콜로, 각각 다른 방식으로 데이터를 전송한다.

TCP (Transmission Control Protocol)

특징

  • 연결 지향(Connection-oriented)
    TCP는 통신을 시작하기 전에 연결을 설정한다. 이 연결은 3-way handshake 과정을 통해 이루어진다.
  • 신뢰성(Reliability)
    데이터 전송의 신뢰성을 보장한다. 데이터 패킷이 손실되거나 손상되면 재전송한다.
  • 순서 보장(Ordering)
    패킷이 순서대로 도착하도록 보장한다. 수신자는 전송된 데이터가 원래의 순서대로 도착하는 것을 확인할 수 있다.
  • 흐름 제어(Flow control)
    송신자와 수신자 간의 데이터 전송 속도를 조절하여 수신자가 데이터를 처리할 수 있도록 한다.
  • 혼잡 제어(Congestion control)
    네트워크 혼잡을 피하기 위해 송신 속도를 조절한다.

용도

  • 웹 브라우징(HTTP/HTTPS)
  • 이메일(SMTP, IMAP, POP3)
  • 파일 전송(FTP)
  • 원격 서버 접속(SSH, Telnet)

UDP (User Datagram Protocol)

특징

  1. 비연결 지향(Connectionless)
    UDP는 연결 설정 없이 데이터를 전송한다.
  2. 비신뢰성(Unreliable)
    데이터 전송의 신뢰성을 보장하지 않는다. 데이터 패킷이 손실되거나 손상되어도 재전송하지 않는다.
  3. 순서 미보장(No ordering)
    패킷의 순서를 보장하지 않는다. 수신자는 패킷이 순서대로 도착하지 않을 수 있다.
  4. 단순한 헤더 구조(Simple header)
    TCP에 비해 UDP의 헤더 구조가 단순하여 오버헤드가 적다.
  5. 빠른 속도(Low latency)
    TCP보다 전송 속도가 빠르고 지연 시간이 적다.

용도

  • 실시간 스트리밍(Media streaming)
  • 온라인 게임
  • VoIP(Voice over IP)
  • 방송(Broadcast)
  • DNS(Domain Name System) 조회

3-way Handshake는 TCP(Transmission Control Protocol)에서 연결을 설정하기 위해 사용하는 절차이다. 이 과정은 세 개의 단계로 이루어지며, 클라이언트와 서버 간의 신뢰할 수 있는 통신을 보장하기 위한 중요한 메커니즘이다. 3-way Handshake 과정은 다음과 같다.

  1. SYN (Synchronize)
    클라이언트가 서버에 연결 요청을 보낸다.
    이 요청에는 클라이언트의 초기 시퀀스 번호(ISN, Initial Sequence Number)가 포함된다.
    패킷의 플래그 필드에 SYN(Synchronize) 플래그가 설정되어 있다.
  2. SYN-ACK (Synchronize-Acknowledge)
    서버는 클라이언트의 SYN 요청을 수신하고, 이를 확인하는 응답을 보낸다.
    응답에는 서버의 초기 시퀀스 번호(ISN, Initial Sequence Number)와 클라이언트의 시퀀스 번호에 대한 확인 응답(ACK, Acknowledgment)이 포함된다.
    패킷의 플래그 필드에 SYN 및 ACK 플래그가 설정되어 있다.
  3. ACK (Acknowledge)
    클라이언트는 서버의 SYN-ACK 응답을 수신하고, 이를 확인하는 응답을 보낸다.
    이 응답에는 클라이언트의 시퀀스 번호와 서버의 시퀀스 번호에 대한 확인 응답(ACK, Acknowledgment)이 포함된다.
    패킷의 플래그 필드에 ACK 플래그가 설정되어 있다.
같은 카테고리의 다른 글

Ubuntu Server / Let’s Encrypt 무료 SSL 인증서 발급 받기

Ubuntu Server에서 Apache Web Server를 사용하는 경우 Let’s Encrypt 인증서 발급 받는 방법입니다. Apache용 Certbot 설치 Ubuntu Server 20.04, Ubuntu Server 22.04 # snap install core # snap refresh core # snap install --classic certbot # ln -s /snap/bin/certbot /usr/bin/certbot Ubuntu Server 18.04 # apt install software-properties-common # add-apt-repository universe # add-apt-repository ppa:certbot/certbot # apt update # apt upgrade # apt install certbot ...

워드프레스 / 플러그인 / HTML Editor Syntax Highlighter / 에디터 텍스트 모드 코드 하이라이트 플러그인

워드프레스 / 플러그인 / HTML Editor Syntax Highlighter / 에디터 텍스트 모드 코드 하이라이트 플러그인

워드프레스에 글을 작성할 때 보통은 비주얼 모드를 사용하지만, 텍스트 모드로 들어가서 코드를 직접 수정하는 경우도 많다. 그런데, 텍스트 모드에서 코드를 보면 흰색 바탕에 검정 글자여서 읽기가 쉽지 않다. 이 문제를 해결해주는 플러그인이 HTML Editor Syntax Highlighter이다. 플러그인을 설치하고 활성화한 후 텍스트 모드로 들어가면 하이라이트된 코드를 볼 수 있다. 설정 아이콘을 클릭하면... 코드를 보거나 편집할 ...

안드로이드 / 앱 / 동행복권 / 스마트폰에서 로또 당첨 여부 쉽게 확인하는 방법

안드로이드 / 앱 / 동행복권 / 스마트폰에서 로또 당첨 여부 쉽게 확인하는 방법

로또를 거의 매주 산다. 돈을 기부한다는 느낌이 들기도 하지만, 가끔 당첨이 된다. 가장 많이 받은 건 5만 원. 그 돈으로 다시 로또를 사니 별 의미는 없다. 당첨 여부 확인은... 예전에는 숫자를 보면서 하나하나 맞췄는데 요즘은 동행복권 Lite라는 앱으로 한다. 로또에는 QR 코드가 있고, 동행복권 Lite라는 앱에서 스캔하면... 바로 결과가 나온다. 너무 빨라서 ...

DSLR / 캐논 / 헝그리 망원렌즈 EF-S 55-250mm F4-5.6 IS STM 구입

DSLR / 캐논 / 헝그리 망원렌즈 EF-S 55-250mm F4-5.6 IS STM 구입

DSLR 구입할 때 딸려온 번들렌즈만 몇 년째 계속 사용했어요. 그러다 얼마전에 렌즈를 하나 구입했습니다. 처음 사는 게 힘들지 한번 사고 나면 계속 산다는데, 그말이 맞는 거 같아요. 산 지 며칠 되지도 않았는데, 단렌즈도 하나 사고 싶다는... 망원렌즈 EF-S 55-250mm F4-5.6 IS STM 구입 구입한 렌즈는 EF-S 55-250mm F4-5.6 IS STM입니다. 일명 헝그리 망원렌즈죠. 망원렌즈는 갖고 ...

당구 / 시스템 / 파이브 앤 하프 시스템

당구 / 시스템 / 파이브 앤 하프 시스템

이름의 유래 5 포인트를 향해 치면 출발한 포인트의 1/2로 도착한다는 특징에서 이름이 만들어졌다고 한다. 예를 들어 40 포인트에서 5 포인트를 향해 무회전으로 치면 수구는 20 포인트로 들어온다. 파이브 앤 하프 시스템 파이브 앤 하프 시스템은 기본적으로 내가 원하는 3 쿠션 포인트로 수구를 보내기 위한 시스템이다. 목표로 하는 3 쿠션 포인트를 정하고, 수구의 위치를 파악하여 1 ...

현대자동차 / 스마트키 / 배터리 교체하는 방법

현대자동차 / 스마트키 / 배터리 교체하는 방법

차 시동을 끄는데 메시지가 하나 떴어요. 자동차 스마트키 배터리 전압이 낮다는.. 그래서 그 키는 두고 다른 키를 사용했는데, 그것도 전압이 낮다고 나왔어요. 어쩔 수 없이 배터리를 교체했습니다. 차량 설명서에는 설명이 너무 간단하게 나왔어요. 일자 드라이버로 분해하고, 건전지 교체하고, 다시 조립하라고... 뭐, 틀린 말은 아닌데, 사진 같은 것도 없어서 좀 오래 걸렸네요. 제일 ...

안드로이드 / 앱 / 카카오뱅크 / 통장사본 출력하는 방법

안드로이드 / 앱 / 카카오뱅크 / 통장사본 출력하는 방법

은행 계좌로 돈을 받을 때 통장 사본을 줘야 하는 경우가 있습니다. 통장 사본은 말 그대로 통장을 복사하는 것인데, 통장이 없는 인터넷 전용 계좌라면 출력을 해서 줍니다. 카카오뱅크는 기본적으로 인터넷 은행이라 실물 통장이 없습니다. 따라서 출력을 해야 하는데, 앱 사용을 전제로 한 서비스라 절차가 좀 번거롭습니다. 검증이 필요하지 않은 통장 사본 진위 여부 판단까지 ...

노트북 / HP 빅터스 / 15-FA0061TX 구입 후기

노트북 / HP 빅터스 / 15-FA0061TX 구입 후기

노트북을 구입하게 되었다. 용도는 그래픽과 동영상 편집용. 원활한 작업을 위해서는 다음의 사양이 필요했다. 외장 그래픽 카드 메모리 확장 또는 교체 가능 디스크 확장 또는 교체 가능 가격은 100만 원 대 초중반 색은 검정 또는 그레이 색에 신경 쓰는 이유는 변색 때문이다. 손 때 묻는 거야 닦으면 되지만, 하얀색 노트북은 누렇게 변색되는 경우가 많다. 이 조건으로 검색을 하니 ...

스프레드시트 - 뜻, 주요 기능, 소프트웨어

스프레드시트의 정의와 역사 스프레드시트(spreadsheet)는 행과 열의 격자로 이루어진 데이터를 관리하고 분석하는 소프트웨어 도구입니다. 각 셀은 숫자, 텍스트 또는 수식을 포함할 수 있으며, 이러한 셀을 사용하여 복잡한 계산을 수행하고 데이터를 시각적으로 표현할 수 있습니다. 스프레드시트의 개념은 1970년대 후반에 전자 계산기의 기능을 확장하기 위해 처음 도입되었습니다. 가장 유명한 초기 스프레드시트 프로그램 중 하나는 ...

버추얼박스 / 우분투 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 / 우분투 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 가상 머신에 게스트 확장(Guest Additions)을 설치하면 몇 가지 유용한 기능을 사용할 수 있습니다. 게스트의 OS가 우분투 데스크톱일 때 게스트 확장(Guest Additions)을 설치하는 방법을 알아보겠습니다. OS는 설치된 상태에서 시작합니다. 가상 머신을 실행하고 로그인합니다. 마우스 우클릭하고 을 클릭하여 터미널을 엽니다. 다음과 같이 명령하여 몇 가지 패키지를 설치합니다. sudo apt install gcc make perl 메뉴에서 ...