메쉬 네트워크를 통해 네트워크 코딩을 구현하려고합니다. 따라서 여러 대상으로 패킷을 보내야합니다. 이것이 브로드 캐스트 패킷을 사용하는 방법입니다. 그러나 이것이 왜 ~ 990KB로 제한되는지 이해할 수 없습니다.
몇 가지 구성이 있습니까?
메쉬 네트워크를 통해 네트워크 코딩을 구현하려고합니다. 따라서 여러 대상으로 패킷을 보내야합니다. 이것이 브로드 캐스트 패킷을 사용하는 방법입니다. 그러나 이것이 왜 ~ 990KB로 제한되는지 이해할 수 없습니다.
몇 가지 구성이 있습니까?
답변:
802.11 무선 (필자의 경우)에서는 일반적으로 브로드 캐스트 / 멀티 캐스트 프레임 (및 많은 관리 프레임)이 가장 낮은 기본 / 기본 / 필수 (공급 업체에 따라 다름) 데이터 속도로 전송됩니다. 이것은 지원되는 데이터 속도와 별개입니다.
일반적으로 최상의 범위와 최대 호환성을 위해 기본값은 1Mbps 데이터 속도이지만, 지난 몇 년 동안 일부 공급 업체에서이 기본값을 높이고 있습니다.
일부 공급 업체에는 이제 멀티 캐스트 스누핑 형식으로 멀티 캐스트 클라이언트를 추적하는 멀티 캐스트-유니 캐스트 변환도 포함되어 있지만, 비슷한 브로드 캐스트 수단은 없습니다 (무선 장치는 필요한 모든 클라이언트를 알 수 없음) 닿다).
애드혹 메시 네트워크에 대해 이야기하는 경우 종종 드라이버 설정에서이를 제어 할 수 없습니다.
모든 장치가 성공적으로 수신 할 수 있도록 멀티 캐스트 속도는 최저 공통 분 모여야합니다. 멀티 캐스트 프레임을 인식 할 수 없으므로 [1] 피어가이를 수신하지 못하면 발신자가 알지 못하고 프레임을 다시 전송하지 않습니다. 수신기 당 1 % 이상의 손실률을 갖는 것이 일반적입니다. 동일한 채널에서 많은 유니 캐스트 트래픽이 발생하면 훨씬 높은 손실률이 예상 될 수 있습니다.
기본 멀티 캐스트 속도를 높이면 손실률도 증가합니다. 그러나 순전히 손실률을 보상하기 위해 기본 패킷을 결합하고 중복성을 도입해야하므로 네트워크는 그에 견딜 수 있어야합니다. 멀티 캐스트 802.11 관리 프레임 (비콘 포함)은 높은 손실률을 지원하도록 설계되지 않았습니다.
Linux에서 대부분의 mac802.11 드라이버는 멀티 캐스트 속도 설정을 지원해야합니다. 그리 최근의 커널에서는 IBSS와 메쉬 모두에 대해 결합시이를 수행해야합니다. iw
가 mcast-rate
에 대한 옵션 ibss join
및 mesh join
명령을 사용합니다.
그러나 꽤 최근의 커널을 실행하고 있고 iw
두 가지를 모두 지원하는 NL80211_CMD_SET_MCAST_RATE
경우 언제든지 변경할 수 있으며 다음과 같이 간단합니다.
iw dev wlanX set mcast_rate 6
6Mbps 멀티 캐스트 속도를 설정합니다.
[1] 아마도 그들은 지금 할 수 있습니다. 멀티 캐스트 프레임을 승인하기 위해 802.11 표준에 대한 제안 된 수정이있었습니다. 멀티 캐스트 프레임을 성공적으로 수신 한 후 모든 스테이션은 임의의 백 오프를 선택하고 ack를 송신기로 보냅니다. Acks는 물론 충돌 할 수 있으므로 송신기는이를 다시 전송하고 모든 수신기가 프레임을 성공적으로 인식 할 때까지 더 큰 백 오프를 허용합니다.
실제로 무선 카드의 속도를 강제로 지정하여 비트 전송률을 수정할 수 있습니다. Linux에서 명령은 다음과 같습니다.
sudo iwconfig wlan0 속도 11M
iwconfig
더 이상 사용되지 않습니다. 그것이 사용하는 모든 ioctl은 해킹되었거나 완전히 위조되었거나, 심지어 혐의가 없습니다. 어쨌든이 특정 명령이하는 일은 끔찍합니다. 그리고 당신이 원하는 것이 아닙니다 : 이것은 가능한 속도를 제한하며 어떤 식 으로든 고치지 않습니다. 그리고 IBSS의 경우이 설정이 오랫동안 지속 될지 확실하지 않습니다.