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 플래그가 설정되어 있다.
같은 카테고리의 다른 글

네트워크 / 잘 알려진 포트, 등록된 포트, 동적 포트

포트 번호는 0~65535까지 사용 가능합니다. 이를 용도에 따라 잘 알려진 포트, 등록된 포트, 동적 포트 세 가지로 분류합니다. 관리는 IANA(Internet Assigned Numbers Authority)에서 합니다.

한화손해보험 / 실비보험 / 보장 내용 확인하는 방법

한화손해보험 / 실비보험 / 보장 내용 확인하는 방법

한화손해보험의 실비보험에 가입되어 있다. 손을 다쳐 체외충격파 치료를 받으려고 하는데, 실비보험 대상인지 확인하기 위해 전화로 문의를 했다. 보상 대상이 맞긴 하지만 정확한 것은 심사를 해야 한다는 답변을 들었고, 금액 한도와 횟수 등에 대한 것도 들었다. 그런데, 메모를 하지 않아 금액 한도와 횟수를 잊어버렸다. 전화 문의는 연결이 쉽지 않고, 또 잊어버릴 수 ...

FileZilla / 사용법

FileZilla / 사용법

FileZilla는 오픈 소스 파일 전송 프로토콜(FTP) 클라이언트 프로그램으로, 사용자 친화적인 인터페이스와 강력한 기능을 제공하여 다양한 파일 전송 작업을 효율적으로 수행할 수 있게 한다. 주로 웹 개발자, 시스템 관리자, 그리고 파일 전송을 자주 수행하는 사용자들 사이에서 인기가 높다. 서버에 접속하기 FileZilla를 다운로드 받아 설치하고 실행한다. 호스트와 사용자명, 비밀번호, 포트에 정보를 입력하고 을 클릭하면 서버에 접속된다.(포트에 ...

VisiPics / 중복 사진 정리 프로그램

VisiPics / 중복 사진 정리 프로그램

중복 사진 정리 프로그램 VisiPics 필름으로 사진을 찍을 때는 한 장 한 장 정성스럽게 찍었던 거 같습니다. 필름 한 통으로 찍을 수 있는 양이 정해져 있었고, 눈으로 볼 수 있게 현상하는 것도 돈이 들었으니까요. 하지만, 지금은 사진을 파일로 저정하고, 현상하지 않아도 PC 등에서 사진을 볼 수 있으므로, 사진을 많이 찍게 됩니다. 여러 ...

네트워크 / 네임서버

네임서버(Name Server)는 도메인 네임 시스템(DNS, Domain Name System)의 핵심 구성 요소로, 도메인 이름과 IP 주소를 연결해주는 역할을 합니다. 네임서버는 인터넷이 현재와 같은 방식으로 작동할 수 있도록 하는 중요한 인프라 중 하나로, 사용자가 웹사이트에 접속할 때 웹 브라우저가 도메인 이름을 입력하면 해당 도메인 이름을 IP 주소로 변환해주는 기능을 수행합니다. 도메인 네임 시스템(DNS)의 ...

버추얼박스 / 공유 폴더 만드는 방법

버추얼박스 / 공유 폴더 만드는 방법

버추얼박스에서 호스트와 게스트 간 파일을 주고 받는 방법 중 가장 쉬운 것은 드래그 앤 드롭을 이용하는 것입니다. 그런데 단점이 있습니다. 게스트에서 수정한 파일을 호스트에서 사용하려면 또 옮겨야 하고, 호스트에서 수정한 파일을 게스트에서 사용하려면 또 옮겨야 합니다. 호스트와 게스트가 동시에 사용하면서 수정이 잦다면, 드래그 앤 드롭보다 공유 폴더를 이용하는 것이 더 ...

MSI / 메인보드 / 장착 가능한 메모리와 크기 확인하는 방법

MSI / 메인보드 / 장착 가능한 메모리와 크기 확인하는 방법

컴퓨터 조립은 쉽다. 케이스, 파워 서플라이, 메인보드, CPU, 메모리, 디스크 등을 구입한 후 적절한 위치에 꽂기만 하면 된다. 잘못 꽂을까 걱정할 것도 없다. 맞지 않는 위치라면 아예 끼워지지도 않는다. 아, 케이스에 있는 Power, Reset 선 등을 메인보드에 꽂을 때는 주의를 해야한다. 메인보드 설명서를 보고 잘 꽂아야 전원이 들어오고 LED가 깜빡인다. 문제는 ...

당구 / 길 / 옆돌리기(제각돌리기)

당구 / 길 / 옆돌리기(제각돌리기)

아래와 같이 치는 것을 옆돌리기 또는 제각돌리기라고 한다. 1쿠션 포인트를 찾는 것, 키스를 피하는 것이 중요하다.

OBS Studio / 프리미어 프로 편집을 위한 녹화 설정

OBS Studio / 프리미어 프로 편집을 위한 녹화 설정

OBS 스튜디오로 방송도 가능하고 녹화도 가능합니다. 녹화를 하는 경우 편집을 하게 되는데, 녹화 영상에 따라 편집이 수월할 수도 있고 곤란할 수도 있습니다. 만약 어도비 프리미어 프로로 편집을 할 거라면, 설정을 다음과 같이 하세요. 기본 설정인 FLV 형식으로 녹화하면 프리미어 프로에서 영상을 불러올 때부터 난관에 부딪히게 됩니다. 을 클릭합니다. 왼쪽에서 을 클릭합니다. 출력 방식이 ...

버추얼박스 / 가상 머신 만드는 방법, 삭제하는 방법

버추얼박스 / 가상 머신 만드는 방법, 삭제하는 방법

가상 머신 만들기 가상 머신에 사용할 OS의 ISO 이미지를 준비합니다. 버추얼박스에서 를 클릭합니다. 이름을 적절히 정하고 OS의 종류와 버전을 선택합니다. 을 클릭합니다. 가상 머신에 할당할 메모리 크기를 정하고 을 클릭합니다. 를 클릭합니다. 을 클릭합니다. 동적 할당은 가상 하드 디스크를 사용하는 만큼 호스트 PC의 하드 디스크를 사용합니다. 고정 크기는 그 크기 만큼 미리 공간을 확보해 놓습니다. 적절히 설정하고 을 ...