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

워드프레스 / 글 / 카테고리

카테고리 워드프레스의 글(포스트)은 카테고리로 분류한다. 글은 적어도 하나 이상의 카테고리에 속하게 된다. 즉, 하나의 글은 여러 카테고리에 속할 수 있다. 글 작성 시 카테고리를 선택하지 않으면 기본 카테고리가 선택된다. 카테고리 관리는 에서 한다. 글 작성 화면에서도 카테고리 관리를 할 수 있지만, 상세한 설정을 할 수는 없다. 카테고리 만들기 로 이동하면 다음과 같은 ...

마이크로소프트 회원 탈퇴(계정 삭제) 하는 방법

마이크로소프트 회원 탈퇴(계정 삭제) 하는 방법

더 이상 사용하지 않는 마이크로소프트 계정을 삭제하기로 했다. 내 계정에 들어가서 개인 정보, 보안 등 계속 회원 탈퇴 메뉴를 찾았는데, 너무 찾기 힘들다. 회원 이탈 방지를 위해서 그렇게 한 건 이해가 되는데, 해도 해도 너무한다. 만약 회원 탈퇴를 하고 싶다면, 메뉴를 탐색하지 말고, 아래 링크로 바로 접속하자. https://account.live.com/closeaccount.aspx 다음과 같은 화면이 나오고, 바로 ...

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9에 Apache, PHP, MariaDB를 설치하는 방법을 정리합니다.

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

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

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

DSLR / 캐논 / 펌웨어(firmware) 업데이트하는 방법

DSLR / 캐논 / 펌웨어(firmware) 업데이트하는 방법

펌웨어(firmware) 펌웨어(firmware)는 하드웨어를 제어하기 위한 소프트웨어입니다. 소프트웨어와 하드웨어의 중간 정도의 것이라고 보기도 합니다. 그리고 그 펌웨어는 계속해서 업데이트됩니다. 하드웨어를 제대로 사용하기 위해서는 펌웨어를 최신 버전으로 유지하는 것이 좋습니다. 캐논 DSLR도 마찬가지입니다. 구입한지 오래되었다면 펌웨어가 업데이트되었는지 확인하고, 최신 버전이 아니라면 업데이트해야 합니다. 펌웨어 버전 확인하기 사용하는 DSLR의 펌웨어 버전은 메뉴에서 확인할 수 있습니다. 아래는 EOS 650D의 펌웨어 ...

안드로이드 / 앱 / 아웃룩 / 계정별로 다른 소리로 알림 받는 방법

안드로이드 / 앱 / 아웃룩 / 계정별로 다른 소리로 알림 받는 방법

아웃룩 앱에 여러 메일 계정을 등록할 수 있다. 그런 경우 불편한 것은 모두 같은 소리로 알림이 온다는 것이다. 메일 계정마다 중요도가 다른데 알림의 차이가 없으므로 무조건 보게 된다. 다행히 아웃룩 앱에는 메일 계정마다 알림 소리를 다르게 하는 기능이 있다. 아웃룩 앱을 열고 왼쪽 위에 있는 선 세 개 아이콘을 누른다. 왼쪽 아래에 있는 ...

OBS Studio / 디스플레이 캡쳐 / 검은 화면 나오는 문제 해결하는 방법

OBS Studio / 디스플레이 캡쳐 / 검은 화면 나오는 문제 해결하는 방법

OBS Studio는 컴퓨터 화면 녹화, 웹캠 녹화, 게임 녹화 등을 할 수 있는 오픈소스 프로그램입니다. 녹화뿐만 아니라 실시간 방송도 가능하고, 여러 소스를 동시에 화면에 띄워 녹화 및 방송을 할 수도 있는 유용한 프로그램입니다. 이런 프로그램이 오픈소스라는 것이 고마울 뿐입니다. 컴퓨터 화면 녹화를 하기 위해 OBS Studio를 설치했는데, 문제가 발생했습니다. 디스플레이 캡쳐를 ...

워드프레스 / 플러그인 / Extended User Search In WP-Amin / 이름으로도 사용자 검색 가능하게 하는 플러그인

워드프레스 / 플러그인 / Extended User Search In WP-Amin / 이름으로도 사용자 검색 가능하게 하는 플러그인

이 Theme Buster인 경우... 사용자 목록에 이름이 AAA가 보여도 AAA로 검색하면... 검색이 되지 않는다. 을 AAA로 설정하면... 검색이 된다. 즉, 검색이 가능한 이름은 으로 검색이 되게 하려면 Extended User Search In WP-Amin 플러그인을 사용하면 된다. 특별한 설정을 필요 없고, 플러그인을 ...

인디자인 / 글자 아웃라인 만드는 방법

인디자인 / 글자 아웃라인 만드는 방법

인디자인에서 예쁜 글꼴로 텍스트를 만듭니다. 아래는 산돌 미생체입니다. 윈도우에 포함된 글꼴이 아니고, 따로 다운로드하여 설치한 글꼴입니다. 이 파일을 산돌 미생체가 설치되지 않는 다른 컴퓨터에서 열면, 아래처럼 글꼴이 없다고 나옵니다. 그리고 의도하지 않은 모양으로 나옵니다. 이를 해결하는 방법은 글자를 아웃라인으로 만드는 것입니다. 글자를 그림으로 만드는 것이죠. 아웃라인으로 만들 글자를 선택한 다음... Ctrl+Shift+O를 누르면, 그림으로 바뀌고, 해당 ...

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

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

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