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

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

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

위키(Wiki) / 위키 만드는 소프트웨어 / 미디어위키(MediaWiki)

미디어위키(MediaWiki)는 오픈 소스 위키 소프트웨어로, 위키백과(Wikipedia)와 같은 대규모 협업 프로젝트를 위해 설계되었습니다. PHP로 작성되었으며, MySQL 및 MariaDB를 데이터베이스로 사용합니다. 미디어위키는 다양한 기능과 확장성을 제공하여 복잡한 위키 사이트를 운영하는 데 적합합니다. 역사 미디어위키는 처음에는 위키백과 프로젝트를 지원하기 위해 개발되었습니다. 2002년, 매그너스 만스케(Magnus Manske)가 PHP로 작성한 초기 버전이 공개되었으며, 이후 개발자들이 지속적으로 기여하여 현재의 ...

PhotoScape X / 윈도우에서 포토스케이프 X 설치하는 방법

PhotoScape X / 윈도우에서 포토스케이프 X 설치하는 방법

사진 편집 프로그램을 찾고 있다면 PhotoScape X(포토스케이프 X)는 한 번쯤 사용해 볼 만한 무료 이미지 편집 프로그램입니다. 포토스케이프는 사진 보정, 이미지 크기 변경, 자르기, 콜라주 만들기, 이어붙이기, GIF 만들기, 워터마크 넣기 등 다양한 기능을 제공하는 프로그램으로, 초보자도 비교적 쉽게 사용할 수 있다는 장점이 있습니다. 특히 블로그를 운영하거나 쇼핑몰 상품 이미지를 정리해야 ...

아이피타임(ipTIME) 공유기 / 펌웨어 업데이트하는 방법

아이피타임(ipTIME) 공유기 / 펌웨어 업데이트하는 방법

ipTIME 공유기 관리자 페이지에 접속하여 펌웨어를 최신 버전으로 업그레이드하는 방법을 설명합니다. 자동 업그레이드와 수동 업그레이드 방법, 업그레이드 시 주의사항까지 정리했습니다.

위키(Wiki) / 위키 만드는 소프트웨어 / XWiki

XWiki는 강력하고 유연한 오픈 소스 위키 소프트웨어로, 기업 환경에서의 문서 관리, 지식 공유, 협업을 위해 설계되었습니다. XWiki는 Java로 작성되었으며, 다양한 기능과 확장성을 제공하여 복잡한 웹 애플리케이션을 구축할 수 있습니다. 역사 XWiki는 2003년에 루도빅 두모니에(Ludovic Dubost)에 의해 처음 개발되었습니다. 초기에는 기업의 지식 관리 시스템으로 시작되었으며, 이후 커뮤니티와의 협력을 통해 발전해왔습니다. 현재 XWiki는 XWiki ...

크롬 / 주소 표시줄 검색 엔진 변경하는 방법

크롬 / 주소 표시줄 검색 엔진 변경하는 방법

크롬 웹브라우저의 주소 표시줄에 검색어를 입력하고 엔터키를 누르면 지정된 검색 엔진으로 검색하고 결과를 보여준다. 크롬의 기본 검색 엔진은 당연히 구글이다. 만약 주소 표시줄 검색 엔진을 변경하고 싶다면... 오른쪽 위의 점 세 개 아이콘을 클릭한다. 을 클릭한다. 왼쪽 메뉴에서 을 클릭한다. 주소 표시줄에서 사용되는 검색 엔진을 원하는 것으로 선택한다.

마이크로소프트 계정 / 가족 구성원 추가하는 방법

마이크로소프트 계정 / 가족 구성원 추가하는 방법

가족이 모두 마이크로소프트 계정을 갖고 있다면, 가족들을 하나의 그룹으로 만들 수 있습니다. 가족 그룹으로 만들면, 노트나 일정을 공유하는 게 수월해집니다. 그리고, 컴퓨터 사용 시간 제한, 앱 사용 제한 등 자녀의 PC 사용을 제어할 수도 있습니다. 가족 그룹을 만드는 이유는, 아무래도 자녀 관리 때문이겠죠. 가족이 마이크로소프트 계정이 있다는 가정 하에서, 어떻게 가족 ...

버추얼박스 / USB 2.0과 USB 3.0을 사용하는 방법

버추얼박스 / USB 2.0과 USB 3.0을 사용하는 방법

버추얼박스에 만든 가상 머신에 USB를 인식시킬 수 있습니다. 그런데, 지원되는 버전이 1.0입니다. 만약 USB 2.0 또는 USB 3.0을 사용하려면 확장팩을 설치해야 합니다. 버추얼박스 다운로드 페이지에서 Extension Pack을 다운로드하고 실행합니다. 를 클릭합니다. 라이선스의 끝까지 스크롤 한 후 를 클릭합니다. 잠시 기다리면 설치가 완료되고, USB 2.0과 USB 3.0을 사용할 수 있게 됩니다.

줌(Zoom) / 회의 만드는 방법, 초대하는 방법, 참가하는 방법

줌(Zoom) / 회의 만드는 방법, 초대하는 방법, 참가하는 방법

회의 만들기 회의를 만드는 방법은 으로 만든다. 새 회의로 즉시 미팅 만들기 작업하는 과정에서 Zoom 앱이 필요한 경우 다운로드하고 설치하도록 유도한다. 만약 그 과정을 놓쳤다면 https://us05web.zoom.us/download에서 다운로드하고 설치한다. Zoom을 실행하고 을 클릭한다. 계정 정보를 입력하고 을 클릭한다. 를 클리하면 바로 회의가 ...

CPU / 소켓(Socket)

CPU 소켓(CPU Socket)은 마더보드에 CPU를 장착할 수 있는 물리적 인터페이스입니다. 이는 CPU와 마더보드 간의 전기적 연결을 제공하며, CPU를 쉽게 교체하거나 업그레이드할 수 있도록 합니다. 다양한 CPU 소켓 유형이 존재하며, 특정 소켓은 특정 CPU 아키텍처 및 모델과 호환됩니다. CPU 소켓의 정의와 기능 정의 CPU 소켓은 CPU를 마더보드에 물리적으로 고정하고 전기적으로 연결하는 소켓입니다. 이는 CPU ...