개발 서적 완독하기/성공과실패를결정하는1%네트워크

성공과 실패를 결정하는 1% 네트워크 - UDP 프로토콜을 이용한 송 수신 동작

코드 살인마 2023. 1. 12. 23:56
728x90

수정 송신이 필요없는 데이터의 송신은 UDP가 효율적이다.

TCP가 복잡한 원리를 사용할 이유는 데이터를 확실하면서도 효율적으로 전달하기 위함이다.

 

데이터를 확실히 전달하려면 도착한 것을 확인하고, 도착하지 않았으면 다시 보내야한다.

 

위 내용을 가장 간단히 실현할 수 있는 방법은 그냥 데이터를 ‘전부’ 보낸 후에 수신측에서 수신 확인 응답을 받는 것이다. 이는 TCP 처럼 복잡한 과정을 생략하는 것이다.

 

그러나, 패킷이 한개만 없어져도 전체를 다시 보내야 함으로 비효율적인데, 용도에 맞게 TCP와 UDP를 사용하면 된다.

제어용 짧은 데이터

예를들어 DNS 서버에 대한 조회는 한개의 패킷으로 끝나기 때문에 UDP를 사용한다.

 

UDP 동작방식도 간단하다. 애플리케이션에서 송신 데이터를 받으면 UDP 헤더를 붙여 IP에 의뢰 후 송신하기만 하면 된다. 수신은 IP 헤더에 기록되어 있는 수신처, 송신처 IP 주소 그리고 UDP 헤더에 있는 수신처, 송신처 포트번호라는 네 항목과 소켓에 기록된 정보를 결합하여 데이터를 건네줄 대상 애플리케이션을 판단하기만 하면 된다.

음성 및 동영상 데이터

음성이나 동영상도 UDP를 사용하는데 이는 음성이나 영상은 중간에 패킷이 유실되더라도, 버퍼링이 걸릴 뿐 다른 문제는 발생하지 않는다.