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 플래그가 설정되어 있다.
같은 카테고리의 다른 글
아이피타임(ipTIME) 공유기 / 펌웨어 업데이트하는 방법

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

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

OBS Studio / 설치하는 방법

OBS Studio / 설치하는 방법

OBS Studio는 영상 녹화 또는 방송을 할 수 있게 해주는 오픈소스 프로그램입니다. 주요 영상 플랫폼을 지원하고, 고화질의 녹화가 가능합니다. OBS Studio를 설치하고 기본 설정하는 방법을 알아보겠습니다. 다운로드 https://obsproject.com/ko에서 다운로드합니다. 윈도우, 맥, 리눅스를 지원합니다. 자신의 환경에 맞는 걸 다운로드하세요. 여기서는 윈도우용을 다운로드하겠습니다. 설치 다운로드한 파일을 실행하면 설치가 시작됩니다. 를 클릭합니다. 라이선스에 동의하면 를 클릭합니다. 클릭하지 않으면 진행되지 ...

리눅스 / 로그아웃 명령어, 재부팅 명령어, 종료 명령어

로그아웃 명령어 # logout # exit 재부팅 명령어 즉시 재부팅 # reboot # shutdown -r now # init 6 일정 시간 또는 일정 시간 후 재부팅 10분 후 재부팅 # shutdown -r 10 12시에 재부팅 # shutdown -r 12:00 취소 # shutdown -c 종료 명령어 즉시 종료 # poweroff # shutdown -h now # shutdown -P now # halt -p # init 0 일정 시간 또는 일정 시간 후에 종료 10분 후에 종료 # ...

PuTTY / 소개

PuTTY / 소개

PuTTY는 원격 컴퓨터와의 통신을 위한 무료 오픈 소스 터미널 에뮬레이터 및 네트워크 파일 전송 응용 프로그램입니다. 주로 SSH, Telnet, rlogin, 및 SCP를 사용하여 네트워크를 통해 다른 컴퓨터에 접속하고 관리하는 데 사용됩니다. PuTTY는 Windows를 비롯한 다양한 운영 체제에서 사용할 수 있으며, 그 간편함과 기능성으로 인해 시스템 관리자 및 네트워크 엔지니어들 사이에서 ...

워드프레스 / 댓글 핑백 허용 여부 일괄 변경하는 방법

워드프레스 / 댓글 핑백 허용 여부 일괄 변경하는 방법

댓글 핑백 허용 여부 설정 글에 댓글과 핑백을 허용할지 말지는 에서 정한다. 그러나 개별 글의 설정이 우선된다. 즉, 전체 설정에서 댓글을 허용하지 않아도, 글에서 허용하면 그 글에는 댓글을 달 수 있다. 반대로 전체 설정에서 댓글을 허용해도, 글에서 허용하지 않으면 그 글에는 댓글을 달 수 없다. 에서 댓글과 핑백 ...

Ubuntu 22.04 Server / 고정 IP 설정하는 방법

Ubuntu 22.04 Server / 고정 IP 설정하는 방법

설정 파일 수정하기 네트워크 설정 파일은 /etc/netplan 디렉토리 안에 있는 yaml 파일이다. DHCP로 설치했다면, 설정 파일 내용은 다음과 비슷하게 되어 있다. # This is the network config written by 'subiquity' network: ethernets: eth0: dhcp4: true version: 2 다음과 같이 수정하고 저장한다. IP 등은 네트워크 환경에 ...

DSLR / 노출, 조리개, 셔터 스피드, 감도, 노출 보정

DSLR / 노출, 조리개, 셔터 스피드, 감도, 노출 보정

노출 DSLR 카메라는 빛을 측정하여 적절한 빛의 양, 즉 노출을 정합니다. 그리고 그 노출을 만들기 위해 조리개, 셔터 스피드, 감도를 정합니다. 완전 자동 모드로 촬영을 하면 카메라가 정한 조리개, 셔터 스피드, 감도를 수정하지 못하고 그대로 촬영하게 됩니다. 하지만, 모드를 바꾸면 그 값들을 변경하여 촬영할 수 있습니다. 완전 수동 모드가 아니라면, 하나의 값을 바꾸었을 때 ...

마우스 / 게이밍 마우스 선택 기준

마우스 / 게이밍 마우스 선택 기준

게이밍 마우스는 게임 성능과 경험을 크게 좌우하는 중요한 장비입니다. 다양한 기능과 사양을 갖춘 게이밍 마우스 중에서 자신의 스타일과 필요에 맞는 제품을 선택하는 것이 중요합니다. 이 포스팅에서는 게이밍 마우스 선택 시 고려해야 할 주요 기준에 대해 자세히 알아보겠습니다. DPI (Dots Per Inch) DPI는 마우스의 감도를 나타내는 지표로, 높을수록 커서가 더 빠르게 움직입니다. 게임 ...

리눅스 / 명령어 / cat / 파일 내용 출력하는 명령어

리눅스의 cat(concatenate의 약자) 명령어는 파일의 내용을 화면에 출력하거나 파일을 결합하는 데 사용됩니다. cat 명령어는 주로 텍스트 파일을 다룰 때 유용하며, 여러 개의 파일을 한 번에 읽거나 결합할 수 있습니다. 다음과 같은 두 개의 파일이 있다고 할 때 file1 1-1 1-2 1-3 file2 2-1 2-2 2-3 cat filename cat 뒤에 파일 이름을 넣으면 파일 안의 내용을 보여줍니다. # cat file1 1-1 1-2 1-3 파일 이름을 연달아 넣으면 ...

엣지 / 아웃룩 또는 팀즈에서 링크를 클릭할 때 사이드바에 메일 내용이나 대화 나오지 않게 하는 방법

엣지 / 아웃룩 또는 팀즈에서 링크를 클릭할 때 사이드바에 메일 내용이나 대화 나오지 않게 하는 방법

기본 웹브라우저가 엣지인 상태에서 아웃룩에 있는 링크를 클릭하면, 사이드바에 메일 내용이 나온다. 팀즈에서 링크를 클릭했다면 대화 내용이 나온다. 메일이나 대화를 보기 위해 다시 아웃룩이나 팀즈로 가는 불편을 없애기 위함인 거 같은데... 사실 이게 더 불편할 수 있다. 그렇다면 설정을 변경하여 나오지 않게 할 수 있다. 사이드 창 상단에 있는 점 세 ...