오늘은 OSI 7 계층 중 네번째 계층인 전송계층에서 사용되는 UDP에 대해서 알아보겠습니다!
전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층인데, IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당합니다.
이러한 전송계층에서 사용되는 프로토콜이 바로 TCP와 UDP입니다. 이번 포스팅에서는 UDP에 대해서만 다루겠습니다!
User Datagram Protocol의 약자로 비연결형 방식의 프로토콜
유저 A가 B에게 UDP 방식을 이용해 데이터를 전송하려면 어떻게 해야할까요??
B의 IP와 열어둔 포트번호를 이용해 데이터(패킷)를 전송하면 됩니다.
UDP는 비연결형 방식이기 때문에 B에 대한 정보만 알고있다면 누구든지 B에게 데이터를 보낼 수 있습니다.
1:1로 통신하는 방법은 단순하게 상대방 IP에 데이터를 전달하면 됩니다.
서로 연결을하지 않고 데이터를 보내면 어떤점이 좋을까요??
UDP는 신뢰성보다는 연속성 있는 전송이 필요할 때 사용하는 프로토콜입니다. 그래서 데이터의 순서가 중요하지 않은 실시간 서비스(streaming)에서 사용됩니다.
UDP는 1:1 통신만 있지는 않습니다.
1:N, N:N 다중 통신도 가능합니다. 어떻게 할까요??
여러가지 방법이 있지만 간단하게 4가지 정도만 알아볼게요.
1. 멀티캐스트
2. 브로드캐스트
3. 중개 서버
4. P2P(Peer-to-Peer)
멀티캐스트 그룹은 송신자가 하나의 그룹 주소로 데이터를 보내면 해당 그룹에 속한 모든 수신자들이 그 데이터를 수신합니다. 멀티캐스트 그룹은 IP 주소 범위 내에서 사용되며, 그룹 주소는 특정 범위에 속하는 IP 주소로 지정됩니다.
UDP 브로드캐스트는 네트워크 상의 모든 호스트에게 데이터를 보내는 방식입니다. 송신자가 브로드캐스트 IP 주소로 데이터를 보내면 해당 네트워크의 모든 호스트가 그 데이터를 수신합니다. 하지만 보안과 네트워크 성능의 이슈로 인해 네트워크 관리자에 의해 제한될 수도 있습니다.
UDP로 n:n 통신을 구현하기 위해 중개 서버를 사용할 수 있습니다. 중개 서버는 송신자와 수신자 간의 데이터 전달을 중계해주는 역할을 합니다. 송신자는 중개 서버에 데이터를 보내고, 중개 서버는 해당 데이터를 수신자에게 전달합니다. 수신자도 동일한 방식으로 중개 서버를 통해 데이터를 전달할 수 있습니다. 이러한 중개 서버를 통해 모든 참여자들이 데이터를 주고받을 수 있습니다.
P2P 네트워크에서는 각 참여자들이 서로 직접 연결하여 통신을 수행합니다. UDP를 사용하여 P2P 네트워크를 구성하면 각 참여자가 자신의 IP 주소와 포트 번호를 공유하고, 해당 정보를 사용하여 데이터를 직접 주고받을 수 있습니다.
위의 방법들은 UDP를 사용하여 다중 통신(n:n)을 구현하기 위한 일부 방법들입니다.
간단하게 알아보려고 했기 때문에 더 자세한 내용은 다루지 않겠습니다. :)
정리를 해보면..
1. UDP는 User Datagram Protocol의 약자
2. 비연결형 통신 프로토콜
3. 데이터 전송 속도가 빠르다.
4. 데이터의 순서를 보장하지 않는다.
5. UDP로 다중통신도 가능하다.