-
Reliable UDP(RUDP)란 무엇인가?CS/네트워크 2022. 5. 28. 12:15
간략한 TCP/ UDP 소개
TCP는 통신을 할 때 클라이언트에서 connect를 열어 서버와 소통하게 됩니다.
하지만 UDP의 경우에는 connect를 열지 않고 일방적으로 server에서 client에 데이터를 보내주고 데이터를 정확하게 받았는지 확인하지 않습니다.
이러한 차이점 때문에 데이터의 신뢰성은 UDP < TCP이지만, 속도는 UDP > TCP입니다.
따라서 TCP를 신뢰성있는 프로토콜이라고 부르고, UDP는 비신뢰성 프로토콜이라 알 고 있었습니다.
다음은 TCP와 UDP의 헤더 구조인데 TCP에 비해 UDP는 매우 간단한 구조를 갖습니다.
TCP 헤더 구조
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ak0402&logNo=221539958656 UDP 헤더 구조
Reliable UDP(RUDP)란?
UDP 또한 RUDP라는 방법으로 신뢰성을 보장하기도 합니다.
TCP에서 신뢰성을 보장하는 이유는 데이터 순서 보장, 도착 보장, 무결성 보장 3가지입니다.
RUDP는 UDP 통신이지만 이 3가지에 대한 처리를 해줍니다.
순서 보장 : 데이터 순서 보장을 위해 패킷에 번호를 붙임
도착 보장 : 해당 번호의 패킷이 도착할 때까지 재전송
무결성 보장 : checksum을 통해 데이터 손실을 검증
이렇게 되면 TCP를 쓰는것과 무엇이 다를까요?
TCP의 특성을 그대로 구현하는 것이 아니라 UDP의 특성을 살리면서 TCP처럼 신뢰할 수 있는 데이터를 만드는 것이 목표입니다.
TCP는 서버와 클라이언트의 관계가 성립되어 한쪽이 서버로서 대기하고 있어야 합니다.
하지만 UDP는 그럴 필요가 없이 통신이 바로 가능합니다.
TCP의 장점을 선택적으로 결정할 수 있게 됩니다.
예를 들어 도착은 보장하지 않지만 순서는 보장해야 한다면 패킷에 번호를 붙이고 패킷을 모아놓음으로써 순서를 보장해 줄 수 있습니다.
예를 들어 순서는 보장하지 않지만 모든 패킷이 도착을 보장해야 한다면 아직 받지 못한 데이터그램 리스트를 검색하면서 재전송을 요청합니다.
위에서 봤던 UDP Header 그림에는 Sequence Number가 없기 때문에 직접 넘버링을 해주면 될 것 같습니다.
출처
https://stage-diary.tistory.com/315
TCP, UDP의 역사
■ IP. 모든 것의 허리. TCP/IP 라는 프로토콜 체계는 나중에 두 개로 분리된 것이 아니라, 인터넷 프로토콜 표준이 제정될 때부터 지금처럼 두 개로 분리되어 제안되었다. David Clark 교수님의 88년
stage-diary.tistory.com
[UDP] Reliable UDP
Reliable UDP (이하 RUDP)는 신뢰성을 갖는 UDP를 의미합니다. 일반적으로 TCP는 신뢰성을 갖는 대신 느리고, UDP는 신뢰성이 없고 빠르다고 알려져있죠. 여기에 또 하나의 특징은, TCP는 서버 (Listener)와
elky.tistory.com
'CS > 네트워크' 카테고리의 다른 글
공인 IP와 사설 IP (0) 2022.07.15 HTTP 1.1 , HTTP 2.0, HTTP 3.0 정리 (0) 2022.05.30 TCP연결이 갑자기 끊기면 어떻게 될까? = 유령 세션 (0) 2022.05.17 Browser에 www.google.com을 검색하면 벌어지는 일 (0) 2022.04.18 OSI 7계층이란? (0) 2022.04.17