OT CLI로 UDP 기능 테스트

<ph type="x-smartling-placeholder"></ph> GitHub에서 소스 보기

OpenThread는 P2P 테스트를 위해 스레드 네트워크와 함께 사용할 UDP 명령어를 제공함 UDP 소켓 간의 통신을 연결합니다 cli udp는 다음과 같은 샘플 소켓 하나를 제공합니다. 모든 udp 명령어가 상호작용합니다.

다음 예는 소켓을 열고 바인드하는 방법과 UDP 소켓을 사용하여 메시지를 보내는 방법을 배울 것입니다.

UDP 명령어

udp 명령어 목록을 보려면 help를 입력합니다.

udp help
bind
close
connect
linksecurity
open
send
Done

open 명령어

udp open 명령어를 사용하여 UDP 통신을 시작하는 소켓을 엽니다. 그러면 소켓을 특정 IP 주소 및 포트에 바인딩할 수 있습니다.

bind 명령어

소켓을 open한 후 udp bind 명령어를 실행하여 IPv6 주소를 할당할 수 있습니다. 개방형 소켓에 대한 포트가 있습니다 이렇게 하면 통신을 위해 소켓이 바인딩됩니다. IPv6 주소와 포트를 소켓 이름 지정이라고도 합니다. 만약 소켓을 bind하여 소켓 (udp connect)을 연결하거나 udp send 명령어는 소켓을 임시 포트에 바인딩합니다.

connect 명령어

udp connect 명령어를 사용하여 예시 소켓을 피어 소켓 주소에 연결할 수 있습니다. 그런 다음 udp send 명령어를 실행하여 피어에 메시지를 보낼 수 있습니다. 소켓에 아직 바인딩되지 않은 경우 udp connect 명령어를 실행하면 소켓이 바인딩됩니다.

send 명령어

udp send 명령어는 예시 소켓을 사용하여 대상에 메시지를 전송합니다. 명령어 변수로 지정할 수 있는 IP 주소와 UDP 포트가 있습니다. IP 주소와 포트가 udp send 명령어를 사용하면 메시지가 예시 소켓을 사용하여 전송됩니다. udp connect 명령어에 지정된 대상으로 전달됩니다. udp send 명령어를 실행하면 소켓이 임시 포트에 바인딩됩니다. (소켓이 아직 바인딩되지 않은 경우)

close 명령어

다음과 같은 경우 udp close 명령어를 사용하여 소켓을 닫는 것이 좋습니다. 소켓은 더 이상 필요하지 않습니다

linksecurity 명령어

udp linksecurity 명령어는 메시지의 데이터 링크 레이어 보안을 사용 설정 또는 사용 중지하는 데 사용할 수 있습니다.

두 노드 간에 메시지 전송

  1. 노드 1에서 UDP 소켓을 엽니다.

    udp open
    Done
    
  2. 노드 1에서 소켓을 바인딩합니다.

    udp bind :: 1234
    Done
    

    ::를 사용하면 bind가 지정되지 않은 IPv6 주소를 사용해야 함을 나타냅니다. UDP/IPv6 스택이 바인딩 IPv6 주소를 할당하도록 합니다. 완료 udp bind를 사용한 옵션(예: 네트워크 인터페이스에 결합) udp bind를 참조하세요.

1 노드 2에서 UDP 소켓을 엽니다.

udp open
   Done
   

  1. 노드 2에서 노드 1에 간단한 메시지를 보냅니다.

    udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
    Done
    

    이 명령어는 노드 2가 이미 노드 1의 주소를 발견했다고 가정합니다. 또한 이 예에서 노드 2의 관리자는 소켓을 바인딩합니다 이는 노드 2 관리자가 사용되는 IP 주소와 포트를 고려하지 않고 노드 1에 메시지를 전송합니다. 노드 2 소스로 사용합니다 이 시나리오에서 소켓은 IP 주소와 포트를 무작위로 선택합니다.

    udp send의 전체 옵션은 다음을 참고하세요. udp send

  2. 노드 1은 노드 2의 메시지 수신을 확인합니다.

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

소켓을 피어 소켓 주소에 연결한 후 두 노드 간에 메시지 전송

이 예는 이전 예와 유사하지만, 유연성의 일부를 보여줍니다. UDP 소켓을 사용할 수 있습니다. 이 방법을 사용하여 먼저 소켓을 피어 소켓 주소를 사용하는 경우 피어 IP 주소와 포트를 지정할 필요가 없습니다. udp send를 실행할 때마다

  1. 노드 1에서 UDP 소켓을 엽니다.

    udp open
    Done
    
  2. 노드 1에서 소켓을 바인딩합니다.

    udp bind :: 1234
    Done
    
  3. 노드 2에서 UDP 소켓을 엽니다.

    udp open
    Done
    
  4. 노드 2에서 udp connect 명령어를 사용하여 노드 1과의 통신을 엽니다.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    udp connect의 전체 옵션은 다음을 참고하세요. udp connect

  5. 노드 2에서 udp send 명령어를 사용하여 노드 1에 메시지를 전송하지만 udp send 명령어 구문에서 ipport를 지정합니다.

    udp send hello
    Done
    

    ipport를 지정하지 않으면 udp send 명령어가 ipport를 사용합니다. udp connect 명령에 지정되어 있습니다.