<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>UDP on Kelly Dev</title><link>https://kelly-chui.github.io/tags/udp/</link><description>Recent content in UDP on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 31 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/udp/index.xml" rel="self" type="application/rss+xml"/><item><title>Network. TCP vs. UDP</title><link>https://kelly-chui.github.io/posts/cs-network-tcp-vs-udp/</link><pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/cs-network-tcp-vs-udp/</guid><description>&lt;h2 id="tcp-vs-udp"&gt;TCP vs. UDP&lt;/h2&gt;
&lt;p&gt;TCP와 UDP는 모두 전송 계층에서 동작하는 프로토콜이지만, 연결 방식과 데이터 전송 방식이 다르다.&lt;/p&gt;
&lt;p&gt;TCP는 신뢰성을 우선으로 하고, UDP는 속도와 실시간성을 우선으로 설계되었다.&lt;/p&gt;
&lt;h2 id="비교"&gt;비교&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;TCP&lt;/th&gt;
&lt;th&gt;UDP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;연결 방식&lt;/td&gt;
&lt;td&gt;연결 지향 (Connection-oriented)&lt;/td&gt;
&lt;td&gt;비연결형 (Connectionless)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;신뢰성&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;순서 보장&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;데이터 전송 방식&lt;/td&gt;
&lt;td&gt;스트림(Stream)&lt;/td&gt;
&lt;td&gt;데이터그램(Datagram)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;흐름 제어&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;혼잡 제어&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;헤더 크기&lt;/td&gt;
&lt;td&gt;20~60 Byte&lt;/td&gt;
&lt;td&gt;8 Byte&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;속도&lt;/td&gt;
&lt;td&gt;상대적으로 느림&lt;/td&gt;
&lt;td&gt;상대적으로 빠름&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="언제-사용할까"&gt;언제 사용할까?&lt;/h2&gt;
&lt;h3 id="tcp"&gt;TCP&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;웹 서비스 (HTTP, HTTPS)&lt;/li&gt;
&lt;li&gt;이메일 (SMTP)&lt;/li&gt;
&lt;li&gt;파일 전송 (FTP)&lt;/li&gt;
&lt;li&gt;데이터의 정확성이 중요한 서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="udp"&gt;UDP&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;DNS&lt;/li&gt;
&lt;li&gt;DHCP&lt;/li&gt;
&lt;li&gt;실시간 스트리밍&lt;/li&gt;
&lt;li&gt;VoIP&lt;/li&gt;
&lt;li&gt;온라인 게임&lt;/li&gt;
&lt;li&gt;빠른 응답이 중요한 서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="선택-기준"&gt;선택 기준&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;데이터의 정확성과 순서가 중요하다면 TCP를 사용한다.&lt;/li&gt;
&lt;li&gt;일부 패킷 손실이 발생하더라도 실시간성이 더 중요하다면 UDP를 사용한다.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Network. UDP(User Datagram Protocol)</title><link>https://kelly-chui.github.io/posts/cs-network-udp/</link><pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/cs-network-udp/</guid><description>&lt;h2 id="소개"&gt;소개&lt;/h2&gt;
&lt;p&gt;UDP(User Datagram Protocol)는 전송 계층(L4)에서 동작하는 비연결형(Connectionless) 프로토콜이다.&lt;/p&gt;
&lt;p&gt;연결 설정 없이 데이터를 빠르게 전송하며, 신뢰성보다 실시간성이 중요한 환경에서 주로 사용된다.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;UDP: User Datagram Protocol&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OSI 7계층에서 전송 계층(L4)에 해당&lt;/p&gt;
&lt;h2 id="특징"&gt;특징&lt;/h2&gt;
&lt;h3 id="장점"&gt;장점&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스
&lt;ul&gt;
&lt;li&gt;지연 시간이 낮음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단순한 프로토콜 구조
&lt;ul&gt;
&lt;li&gt;헤더 크기가 작고, 오버헤드가 적음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IP 계층의 유니캐스트, 브로드캐스트, 멀티캐스트 전송에 사용할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="단점"&gt;단점&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;신뢰성 부족
&lt;ul&gt;
&lt;li&gt;패킷 손실, 순서 오류, 중복이 발생해도 복구할 수 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;애플리케이션 수준의 보완 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="데이터그램-패킷-통신"&gt;데이터그램 패킷 통신&lt;/h3&gt;
&lt;p&gt;각 데이터그램은 다른 데이터그램과 독립적으로 전달된다. UDP 자체에는 순서 번호, 재전송, 중복 제거 기능이 없으므로 도착 순서나 전달 성공을 보장하지 않는다.&lt;/p&gt;</description></item></channel></rss>