Please enable JavaScript.
Coggle requires JavaScript to display documents.
근거리 네트워크에서 기기를 찾기 위한 방법 - Coggle Diagram
근거리 네트워크에서 기기를 찾기 위한 방법
SSDP(Simple Service Discovery Protocol)
SSDP는 HTTPU(UDP 기반의 HTTP)를 이용
모든 데이터는 text로 통신
사용하는 포트는 UDP 1900
IP multicast 주소
IPv4에서 멀티캐스트 주소는 239.255.255.250, IPv6에서는 ff0x::c
자동 네트워크 설정
IoT에서 네트워크 자동 설정을 위한 DHCP는 옵션이 아니고 필수
Discovery 방법
SSDP 형식
SSDP는 Advertisement, Search 두 개의 타입
NOTIFY * HTTP/1.1\r\n
M-SEARCH * HTTP/1.1\r\n
HTTP/1.1 200 OK\r\n
확장 필드
BOOTID.UPNP.ORG
CONFIGID.UPNP.ORG
NEXTBOOTID.UPNP.ORG
SEARCHPORT.UPNP.ORG
UUID 포멧
UUID = 4
<hexOctet> "-" 2
<hexOctet> "-" 2
<hexOctet> "-" 2
<hexOctet> "-" 6*<hexOctet> "-"
2fac1234-31f8-11b4-a222-08002b34c003
UUID는 128 비트크기
SSDP 테스트
Python
twisted를 이용해서 개발
Ruby
Multicast Domain Name System(mDNS)
로컬 네트워크 영역에서 설정(zero configuration)없이 호스트 이름을 찾기 위해서 사용하는 서비스
패킷구조를 제외하면 SSDP와 작동방식이 매우 유사함
IPv4 응답에서 사용하는 패킷 data의 구조
Type QTYPE
Class QCLASS
TTL Time To Live(초)
RDLength 데이터 길이 IPv4 주소라면 00 04
Rdata IPv4주소
mDNS 구현 - Avahi
참고사이트
https://www.joinc.co.kr/w/Site/IOT/Discovery