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 플래그가 설정되어 있다.
같은 카테고리의 다른 글
VisiPics / 중복 사진 정리 프로그램

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

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

Bitvise SSH Client / 사용법

Bitvise SSH Client / 사용법

다운로드 및 설치 아래 링크에 접속하여 Bitvise SSH Client Installer를 다운로드하고 설치한다. https://www.bitvise.com/ssh-client-download SSH로 서버에 접속하기 Bitvise SSH Client를 실행한다. 접속에 필요한 정보를 입력하고 을 클릭한다. 적절한 방식으로 Accept하면 접속이 완료된다. 을 클릭하면... 콘솔 창이 생기면서 필요한 작업을 할 수 있다. 모든 작업을 마치면 을 클릭한다. 프로파일 저장하기 Bitvise SSH Client는 PuTTY와는 달리 접속 정보를 파일로 저장할 ...

오픈 소스 / 리브레오피스(LibreOffice)

오픈 소스 / 리브레오피스(LibreOffice)

리브레오피스(LibreOffice)는 The Document Foundation에서 개발 및 관리하는 오픈 소스 오피스 스위트입니다. 2010년에 오픈오피스(OpenOffice.org) 프로젝트에서 포크(Fork)되어 독립적으로 발전해왔으며, 다양한 운영 체제에서 사용할 수 있습니다. 리브레오피스는 다양한 문서 작성, 편집 및 관리를 위한 도구들을 포함하고 있습니다. 주요 구성 요소 리브레오피스는 다음과 같은 주요 구성 요소로 이루어져 있습니다: Writer 기능 : 워드 프로세서로, 마이크로소프트 워드와 유사한 기능을 ...

스팀 / 게임 구입하는 방법

스팀 / 게임 구입하는 방법

우연히 문명이라는 게임을 알게되었습니다. '문명하셨습니다'라는 유행어가 있었을 정도로 유명한 게임이라고 하네요. 게임을 시작하면 시간은 별로 안 가는데 날짜가 바뀐다는... 인터넷에 있는 온갖 글과 영상이 문명을 추천하고 있어서, 한 번 해보기로 했습니다. 문명 5와 문명 6에 대해서 호불호가 갈리는데, 전 그래도 최신판인 문명 6으로 결정했습니다. 어디서 구입을 해야 하나 알아보았더니, 스팀에 있네요. 게다가 ...

버추얼박스 / 윈도우 10에서 가상 머신 만들 때 멈추는 문제 해결하는 방법

버추얼박스 / 윈도우 10에서 가상 머신 만들 때 멈추는 문제 해결하는 방법

버추얼박스로 가상 머신을 만들 때, 환경에 따라 이런 저런 문제가 발생할 수 있습니다. 이번에 생긴 문제는 아주 근본적인 문제, 가상 머신에 OS를 설치할 수 없는 것이었습니다. 윈도우 호스트에 Ubuntu 게스트를 만들려고 했는데, 아래와 같은 화면에서 멈춰서 아무 것도 할 수 없었습니다. 원인은 윈도우에 포함된 가상화 관련 기능때문이었습니다. 안드로이드 앱 개발을 위해서 ...

PuTTY / 사용법 / SSH / 서버에 접속하는 방법

기본 PuTTY를 실행합니다. 에 서버의 호스트이름이나 IP를 입력합니다. 에는 서버에서 설정한 SSH 포트를 입력합니다. 기본 포트는 22이나, 다른 포트를 사용할 수도 있습니다. 이 SSH로 되어 있는지 확인합니다. 을 클릭합니다. 처음 접속하는 거라면, 아래와 같은 창이 나올 수 있습니다. 를 클릭합니다. 계정 이름과 비밀번호를 입력하고 로그인합니다. 접속 정보 저장하기 자주 접속하는 서버라면, 접속할 서버가 많다면, ...

위키(Wiki) / 역사, 특징, 장점, 단점 및 사용 사례 분석

위키(Wiki)는 다수의 사용자들이 협력하여 콘텐츠를 작성하고 편집할 수 있는 웹사이트의 한 형태입니다. 위키는 하와이 말로 "빠르다"는 뜻을 가진 "위키위키(wikiwiki)"에서 유래되었으며, 그 특성상 빠르고 유연하게 정보를 추가하고 수정할 수 있습니다. 이러한 특성 덕분에 위키는 정보 공유와 협업을 위해 널리 사용되고 있습니다. 역사 위키의 시작은 1995년으로 거슬러 올라갑니다. 워드 커닝햄(Ward Cunningham)이 최초의 위키인 "위키위키웹(WikiWikiWeb)"을 ...

엣지 / 사이드바 표시 여부 설정하는 방법

엣지 / 사이드바 표시 여부 설정하는 방법

얼마 전 엣지가 업데이트되면서 사이드바가 생겼다. 네이버 웨일이 있는 거와 비슷한 것인데, 원래 있던 것인지 새로 추가된 것인지는 잘 모르겠다. 사이드바에는 여러 가지 기능이 있다. 예를 들어 를 클릭하면... 계산기, 사전, 번역기, 단위 변환기, 인터넷 속도 테스트가 있고, 설정으로 들어가서... 표시 여부와 순서를 정할 수 있다. 만약 이 사이드바가 필요하지 않다면 숨길 수 있다. ...

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

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

USB Type C To HDMI 연결 케이블로 노트북와 모니터 연결하기

USB Type C To HDMI 연결 케이블로 노트북와 모니터 연결하기

노트북을 사용합니다. 집이나 회사에서는 모니터와 연결해서 사용합니다. 노트북과 모니터, 두 개의 화면에서 작업하는데, 어떤 작업을 할 때는 그걸로도 부족할 때가 있습니다. 그래서 모니터를 하나 더 연결하기로 했습니다. 그런데 문제가 있습니다. 노트북에 HDMI 단자가 하나만 있습니다. DP도 없습니다. 대신 USB Type C 포트가 있습니다. 검색을 해보았습니다. USB C HDMI... 잔뜩 상품이 나오더군요. ...