UDP 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
20번째 줄: 20번째 줄:
  
 
=== 큐잉 ===
 
=== 큐잉 ===
클라이언트에서 프로세스가 시작될 때, 프로세스는 [[운영체제]]에 포트 번호를 요청한다. 구현에 따라 각 프로세스에 연계된 입력과 출력 [[큐]]가 같이 생성되기도 하고, 입력 큐만 생성되기도 한다. 프로세스가 여러 프로세스와 통신하기를 원해도, 하나의 포트 번호만을 배정받고, 결과적으로 하나의 입력 큐와 출력 큐를 받는다. 대부분 클라이언트가 획득한 큐는 임시 포트 번호로 식별되고, 프로세스가 수행되는 동안 큐도 동작하며, 프로세스가 종료되면 큐는 제거된다. 클라이언트의 출력 큐에는 오버플로우가 발생할 수 있다. 오버플로우가 발생하면 운영체제는 클라이언트 프로세스에 기다리기를 요청한다. 메시지가 클라이언트에 도착하면 UDP는 사용자 데이터 그램에 지정된 포트 번호에 대한 입력 큐가 생성되었는지 점검한다. 큐가 있으면 UDP는 수신된 사용자 데이터 그램을 큐의 끝에 추가한다. 큐가 없으면 사용자 데이터 그램을 폐기하고, 인터넷 제어 메시지 프로토콜(ICMP)에 "포트 도달불가(port unreachable)" 메시지를 서버로 보낼 것을 요청한다. 서버에 메시지가 도착하면 UDP는 사용자 데이터 그램의 목적지 포트 번호 필드에 지정된 포트 번호를 위한 입력 큐가 생성되었는지 점검한다. 큐가 있으면 UDP는 수신된 사용자 데이터 그램을 끝에 추가한다. 입력 큐가 없거나 오버플로우가 발생하면 UDP는 사용자 데이터 그램을 폐기한다. 그리고 인터넷 제어 메시지 프로토콜(ICMP)에 "포트 도달불가" 메시지를 클라이언트에 보낼 것을 요청한다.<ref name="데"></ref>
+
클라이언트에서 프로세스가 시작될 때, 프로세스는 [[운영체제]]에 포트 번호를 요청한다. 구현에 따라 각 프로세스에 연계된 입력과 출력 [[큐]]가 같이 생성되기도 하고, 입력 큐만 생성되기도 한다. 프로세스가 여러 프로세스와 통신하기를 원해도, 하나의 포트 번호만을 배정받고, 결과적으로 하나의 입력 큐와 출력 큐를 받는다. 대부분 클라이언트가 획득한 큐는 임시 포트 번호로 식별되고, 프로세스가 수행되는 동안 큐도 동작하며, 프로세스가 종료되면 큐는 제거된다. 클라이언트의 출력 큐에는 오버플로우가 발생할 수 있다. 오버플로우가 발생하면 운영체제는 클라이언트 프로세스에 기다리기를 요청한다. 메시지가 클라이언트에 도착하면 UDP는 사용자 데이터 그램에 지정된 포트 번호에 대한 입력 큐가 생성되었는지 점검한다. 큐가 있으면 UDP는 수신된 사용자 데이터 그램을 큐의 끝에 추가한다. 큐가 없으면 사용자 데이터 그램을 폐기하고, 인터넷 제어 메시지 프로토콜(ICMP)에 "port unreachable" 메시지를 서버로 보낼 것을 요청한다. 서버에 메시지가 도착하면 UDP는 사용자 데이터 그램의 목적지 포트 번호 필드에 지정된 포트 번호를 위한 입력 큐가 생성되었는지 점검한다. 큐가 있으면 UDP는 수신된 사용자 데이터 그램을 끝에 추가한다. 입력 큐가 없거나 오버플로우가 발생하면 UDP는 사용자 데이터 그램을 폐기한다. 그리고 인터넷 제어 메시지 프로토콜(ICMP)에 "port unreachable" 메시지를 클라이언트에 보낼 것을 요청한다.<ref name="데"></ref>
  
 
== 프로토콜 헤더 구조 ==
 
== 프로토콜 헤더 구조 ==
소스 포트(Source Port)는 메시지를 보내는 측에서 통신을 위해 사용하는 포트 번호이고, 목적지 포트(Destination Port)는 목적지 포트 번호 즉, 메시지를 받는 측의 통신 포트 번호이다. 전체 길이(Total Length)는 헤더와 데이터를 합한 사용자 데이터 그램의 전체 길이를 정의한다. UDP 데이터 그램의 헤더인 8바이트부터 65507바이트 사이의 값이 된다. 체크섬(Checksum)은 헤더와 데이터를 모두 포함한 사용자 데이터 그램 전체에 대해 오류를 탐지하기 위해 사용된다.<ref name="데"></ref> 의사 헤더(Pseudo Header)는 IP 헤더와 UDP 헤더로부터 선택된 필드들로 구성된다. IP 헤더에서 참조되는 것은 소스(Source), 목적지 주소(Destination Address), 프로토콜(Protocol)이다. UDP 헤더에서 참조되는 것은 UDP 길이(UDP Length)이다. 8비트는 0으로 채워지고, Optional Pad는 32비트를 채우지 못하면, 0으로 빈 공간을 채운다. 이 헤더는 실제로 목적지로 전송되지 않고, UDP 체크섬 계산을 보조하기 위해 논리적으로 구성된 것이다.<ref> 〈[https://musclebear.tistory.com/11 UDP(User Datagram Protocol)란? (기본 개념과 설명)]〉, 《티스토리》, 2018-11-26 </ref>
+
소스 포트(Source Port)는 메시지를 보내는 측에서 통신을 위해 사용하는 포트 번호이고, 목적지 포트(Destination Port)는 목적지 포트 번호 즉, 메시지를 받는 측의 통신 포트 번호이다. 전체 길이(Total Length)는 헤더와 데이터를 합한 사용자 데이터 그램의 전체 길이를 정의한다. UDP 데이터 그램의 헤더인 8바이트부터 65507바이트 사이의 값이 된다. 체크섬(Checksum)은 헤더와 데이터를 모두 포함한 사용자 데이터 그램 전체에 대해 오류를 탐지하기 위해 사용된다.<ref name="데"></ref> 의사 헤더(Pseudo Header)는 IP 헤더와 UDP 헤더로부터 선택된 필드들로 구성된다. IP 헤더에서 참조되는 것은 소스(Source), 목적지 주소(Destination Address), 프로토콜(Protocol)이다. UDP 헤더에서 참조되는 것은 UDP 길이(UDP Length)이다. 8비트는 0으로 채워지고, Optional Pad는 32비트를 채우지 못하면, 0으로 빈 공간을 채운다. 이 헤더는 실제로 목적지로 전송되지 않고, UDP Checksum 계산을 보조하기 위해 논리적으로 구성된 것이다.<ref> 〈[https://musclebear.tistory.com/11 UDP(User Datagram Protocol)란? (기본 개념과 설명)]〉, 《티스토리》, 2018-11-26 </ref>
  
 
== UDP 기반 프로토콜 ==
 
== UDP 기반 프로토콜 ==
 
=== RTP ===
 
=== RTP ===
실시간 전송 프로토콜(Real-time Transport Protocol)의 약자로, 인터넷상에서 다수의 종단 간에 비디오나 오디오 패킷의 실시간 전송을 지원하기 위해 표준화된 실시간 통신용 프로토콜이다. 주로 인터넷 방송이나 인터넷 영상회의 등에 사용된다. RTP는 데이터의 실시간 전달과 멀티캐스팅에 이용되는데, 특히 실시간 통신에 필수적인 시간 정보와 매체의 동기화 기능을 제공한다. 각 실시간 응용 프로그램이 라이브러리 형태로 구현되어 제공되며, 직접 RTP를 호출하여 이용한다. 또한, 2개의 프로토콜이 함께 사용된다. 기본적으로 RTP는 RTCP와 함께 사용된다. RTCP는 RTP 별도의 제어용 프로토콜이다. RTP 패킷 스트림 내에 포함되어 주기적으로 모든 세션 참가자들에게 전송함으로써 네트워크 회선 상에 전송지연과 대역폭 변화 등 상태 정보를 상위계층에 알려준다. RTP는 UDP에서 지원하지 못하는 기능들을 제공하는데, 시간 정보를 제공하고, 정보 매체의 동기화 기능이 있고, 각 프레임의 경계를 구분한다.<ref> 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1381 RTP Real-time Transport Protocol, Realtime Transport Protocol 실시간 전송 프로토콜, 실시간 수송 프로토콜]〉, 《정보통신기술용어해설》 </ref>
+
Real-time Transport Protocol의 약자로, 인터넷상에서 다수의 종단 간에 비디오나 오디오 패킷의 실시간 전송을 지원하기 위해 표준화된 실시간 통신용 프로토콜이다. 주로 인터넷 방송이나 인터넷 영상회의 등에 사용된다. RTP는 데이터의 실시간 전달과 멀티캐스팅에 이용되는데, 특히 실시간 통신에 필수적인 시간 정보와 매체의 동기화 기능을 제공한다. 각 실시간 응용 프로그램이 라이브러리 형태로 구현되어 제공되며, 직접 RTP를 호출하여 이용한다. 또한, 2개의 프로토콜이 함께 사용된다. 기본적으로 RTP는 RTCP와 함께 사용된다. RTCP는 RTP Control Protocol로 별도의 제어용 프로토콜이다. RTP 패킷 스트림 내에 포함되어 주기적으로 모든 세션 참가자들에게 전송함으로써 네트워크 회선 상에 전송지연과 대역폭 변화 등 상태 정보를 상위계층에 알려준다. RTP는 UDP에서 지원하지 못하는 기능들을 제공하는데, 시간 정보를 제공하고, 정보 매체의 동기화 기능이 있고, 각 프레임의 경계를 구분한다.<ref> 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1381 RTP Real-time Transport Protocol, Realtime Transport Protocol 실시간 전송 프로토콜, 실시간 수송 프로토콜]〉, 《정보통신기술용어해설》 </ref>
  
 
=== HTTP/3 ===
 
=== HTTP/3 ===
[[HTTP]](Hyper Text Transfer Protocol)의 3번째 프로토콜이다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다. 클라이언트인 [[웹 브라우저]]가 이 프로토콜을 통해 [[서버]]로부터 [[웹 페이지]]나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 되고, 이 정보가 출력 장치를 통해 사용자에게 나타나는 것이다. HTTP/3은 처음에는 HTTP-over-QUIC 이라는 이름을 가지고 있었다. 즉, [[QUIC]] 프로토콜 위에서 돌아가는 HTTP이다. 퀵(QUIC; Quick UDP Internet Connection)은 UDP를 사용하여 인터넷 연결을 하는 프로토콜이다.<ref> 〈[https://evan-moon.github.io/2019/10/08/what-is-http3/ HTTP/3는 왜 UDP를 선택한 것일까?]〉, 《깃허브》, 2019-10-08 </ref>
+
[[HTTP]](Hyper Text Transfer Protocol)의 3번째 프로토콜이다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다. 클라이언트인 [[웹 브라우저]]가 이 프로토콜을 통해 [[서버]]로부터 [[웹 페이지]]나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 되고, 이 정보가 출력 장치를 통해 사용자에게 나타나는 것이다. HTTP/3은 처음에는 HTTP-over-QUIC 이라는 이름을 가지고 있었다. 즉, [[QUIC]] 프로토콜 위에서 돌아가는 HTTP이다. QUIC은 Quick UDP Internet Connection의 약자로, UDP를 사용하여 인터넷 연결을 하는 프로토콜이다.<ref> 〈[https://evan-moon.github.io/2019/10/08/what-is-http3/ HTTP/3는 왜 UDP를 선택한 것일까?]〉, 《깃허브》, 2019-10-08 </ref>
  
 
=== TFTP ===
 
=== TFTP ===
UDP 상에서 이루어지는 간단한 파일 전송 프로토콜(Trivial File Transport Protocol)로, 클라이언트와 서버 간에 파일전송프로토콜(FTP)같이 복잡한 상호 동작이 필요하지 않은 응용에 많이 사용된다. 단순한 파일 전송 기능만 제공하고, 인증 기능은 제공하지 않는다. 또한, 사용자 이름 및 비밀번호 확인 없이 파일을 전송한다. 프로그램이 간결하고 규모가 작으며, 에러 제어 및 흐름 제어 방식으로는 정지 그리고 대기(Stop and Wait) 방식이 사용된다.<ref> 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1835 TFTP, tftp Trivial File Transfer Protocol]〉, 《정보통신기술용어해설》 </ref> TFTP와 달리 파일전송프로토콜(FTP)은 TCP를 사용하여 신뢰성이 있고, 연결 지향적이다.<ref> 〈[https://todaybbs.tistory.com/57 TFTP와 FTP 차이점]〉, 《티스토리》, 2020-09-28 </ref>
+
Trivial File Transport Protocol의 약자로, UDP 상에서 이루어지는 간단한 파일전송프로토콜(File Transport Protocol)로, 클라이언트와 서버 간에 파일전송프로토콜(FTP)같이 복잡한 상호 동작이 필요하지 않은 응용에 많이 사용된다. 단순한 파일 전송 기능만 제공하고, 인증 기능은 제공하지 않는다. 또한, 사용자 이름 및 비밀번호 확인 없이 파일을 전송한다. 프로그램이 간결하고 규모가 작으며, 에러 제어 및 흐름 제어 방식으로는 정지 그리고 대기(Stop and Wait) 방식이 사용된다.<ref> 〈[http://www.ktword.co.kr/abbr_view.php?m_temp1=1835 TFTP, tftp Trivial File Transfer Protocol]〉, 《정보통신기술용어해설》 </ref> TFTP와 달리 파일전송프로토콜(FTP)은 TCP를 사용하여 신뢰성이 있고, 연결 지향적이다.<ref> 〈[https://todaybbs.tistory.com/57 TFTP와 FTP 차이점]〉, 《티스토리》, 2020-09-28 </ref>
  
 
== TCP ==
 
== TCP ==
전송 제어 프로토콜(Transmission Control Protocol)이다. 일대일 연결을 통해 안전하게 데이터를 교환한다.
+
Transmission Control Protocol의 약자로, 전송 제어 프로토콜이다. 일대일 연결을 통해 안전하게 데이터를 교환한다.
  
 
=== 비교 ===
 
=== 비교 ===

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)