메쉬 네트워크를 통해 네트워크 코딩을 구현하려고합니다. 따라서 여러 대상으로 패킷을 보내야합니다. 이것이 브로드 캐스트 패킷을 사용하는 방법입니다. 그러나 이것이 왜 ~ 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의 경우이 설정이 오랫동안 지속 될지 확실하지 않습니다.