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

INET과 UDS

INET과 UDS는 소켓(socket) 프로그래밍에서 사용되는 용어로, 네트워크 통신 방식의 차이를 의미합니다. 1. INET (Internet socket) INET 소켓은 TCP/IP 프로토콜을 통해 네트워크상의 통신을 지원하는 소켓입니다. 원격 컴퓨터와의 통신에 사용됩니다. IP 주소와 포트 번호를 사용합니다. 일반적인 인터넷 및 네트워크 응용 프로그램(예: HTTP 웹 서버, FTP 서버 등)에서 사용됩니다. 예시: 192.168.0.100:8080 2. UDS (Unix Domain Socket) UDS는 UNIX 운영체제에서 로컬 프로세스 간 ...

스팀 / 게임 구입하는 방법

스팀 / 게임 구입하는 방법

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

SSH(Secure Shell) 소개

SSH(보안 셸, Secure Shell는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 명령을 실행할 수 있도록 설계된 프로토콜입니다. SSH는 특히 원격 로그인 및 기타 네트워크 서비스를 안전하게 제공하기 위해 사용되며, 데이터를 암호화하여 전송하므로 도청과 중간자 공격을 방지할 수 있습니다. 주요 특징 암호화 SSH는 데이터를 암호화하여 전송합니다. 이를 통해 전송 중인 데이터가 도청되거나 변경되는 것을 방지할 ...

FIDO(Fast IDentity Online)

FIDO(Fast IDentity Online)는 비밀번호 없이 안전하고 편리한 인증 방법을 제공하는 기술 표준입니다. FIDO 얼라이언스에 의해 개발된 이 기술은 온라인 인증의 보안성을 높이기 위해 만들어졌으며, 여러 인증 방식을 제공하고 있습니다. 주요 목표는 비밀번호의 사용을 줄이거나 없애고, 피싱 공격 및 자격 증명 도용을 방지하는 것입니다. FIDO의 주요 개념과 기술 FIDO 프로토콜: FIDO는 다양한 인증 ...

SFTP와 SCP 소개 및 비교

SFTP와 SCP는 모두 SSH를 통해 보안 파일 전송을 지원하는 프로토콜이지만, 이 둘 사이에는 몇 가지 중요한 차이점이 있습니다. SFTP (Secure File Transfer Protocol) 개요 SFTP는 SSH-2 프로토콜의 확장으로, 안전한 파일 전송을 제공하는 프로토콜입니다. SFTP는 파일 전송뿐만 아니라 원격 파일 시스템 관리 기능도 제공합니다. 작동 방식 세션 기반: SFTP는 SSH 연결을 통해 세션을 설정하고, 이를 통해 ...

네트워크 / NAT(Network Address Translation)

NAT는 네트워크 주소 변환을 의미하며, 네트워크 트래픽의 IP 주소를 변환하는 기술입니다. 주로 사설 네트워크(Private Network)와 공인 네트워크(Public Network) 간의 통신을 가능하게 하기 위해 사용됩니다. NAT는 보안, 주소 공간 절약, 그리고 네트워크 확장을 위해 필수적인 기능으로 널리 활용됩니다. NAT의 주요 기능 IP 주소 절약: IPv4 주소의 고갈 문제를 해결하기 위해 사설 IP 주소(Private IP)와 공인 IP 주소(Public ...

페이팔 / 카카오뱅크 연결하는 방법

페이팔 / 카카오뱅크 연결하는 방법

최근 환율이 많이 올랐다. 그래서 페이팔에 있는 달러를 원화로 이체하기로 했다. 예전에 우리은행과 국민은행을 연결해두었는데, 최근에는 카카오뱅크를 주로 사용해서 카카오뱅크를 추가하고 이체하기로 정했다. 일단 할 것은 카카오뱅크를 페이팔 지갑에 추가하는 것인데... 많이 편해졌다. 은행계좌 연결에서 ka라고 치면... KAKAOBANK가 바로 나온다. KAKAOBANK를 선택하고... 계좌 유형을 예금으로 선택한 후, 계좌번호는 숫자만 넣는다. 동의 후 연결을 클릭하면 연결 ...

큐브 / 뻑뻑하다면 기름(큐브 윤활유)을 칠해보세요.

큐브 / 뻑뻑하다면 기름(큐브 윤활유)을 칠해보세요.

아이에게 큐브를 사준 지 4개월쯤 되었습니다. 처음엔 어려워하고 지루해했습니다. 그런데, 어느 순간 설명서 없이도 척척 맞추기 시작하더니, 요즘엔 시간 단축에 재미를 느끼고 있습니다. 구입한 큐브는 루빅스 큐브입니다. 평이 좋고 나름 비싼(?) 큐브죠. 가격은 15,000원 정도... 그런데, 이 큐브가 많이 뻑뻑하답니다. 친구들 큐브를 해보니 아주 잘 돌아간다고 새로 하나 사달라고 하네요. 그래서 동네 문방구에서 큐브를 하나 샀습니다. 가격은 ...

인터넷 속도 단위 Mbps와 MB와의 관계

인터넷 속도 단위인 Mbps는 Mega Bits Per Second의 약자로, 1초당 전송하는 Mega Bit의 양입니다. 예를 들어 인터넷 속도가 100Mbps라고 하면 1초당 100 Mega Bits를 전송한다는 뜻입니다. 그런데 파일의 크기는 Byte를 단위로 사용합니다. 예를 들어 3MB 크기의 파일이라고 하면 3 Mega Bytes를 의미합니다.

인텔 10세대 또는 11세대 노트북에 윈도우 설치할 때 드라이브가 없는 문제 해결하는 방법

인텔 10세대 또는 11세대 노트북에 윈도우 설치할 때 드라이브가 없는 문제 해결하는 방법

인텔 11세대 CPU를 탑재한 노트북을 샀다. HP 빅터스 계열로, 가성비 좋은 게이밍 노트북이다. 프리 도스 제품을 샀기에 제일 먼저 한 것은 윈도우를 설치하는 것. 설치용 USB를 만들고, 바이오스에서 부팅 순서 변경하고, 설치를 시작했는데... 윈도우를 설치할 저장소(드라이브)가 없다고 나온다. 꽤 많은 컴퓨터를 만져보고 수없이 윈도우를 설치했는데, 이런 적은 처음이다. 그 중에는 다른 ...