Een “deep dive” in de “Digital Data” functie van de ICOM IC-9700
door PC7MM en PD3RFR, beiden lid van VERON afdeling A08 Centrum en VRZA afdeling ‘t Gooi
De ICOM IC-9700 kent een aantal functies die waarschijnlijk door de meeste zendamateurs niet zoveel gebruikt worden. Eén van deze functies is waarschijnlijk de “Digital Data” (“DD”) functie. Deze functie maakt het mogelijk om via de in de IC-9700 aanwezige LAN poort aangesloten apparatuur, via de 23cm band data communicatie tot stand te brengen met een snelheid van 128kbps, al dan niet met tussenkomst van een repeater.
Het 6 pagina’s tellende hoofdstuk 13 van de Advanced Manual van de IC-9700 is getiteld “DD Mode Operations”. Dit hoofdstuk bespreekt het bestaan van de DD functie van de IC-9700 maar gaat niet uitgebreid in op hoe deze functie daadwerkelijk werkt en wat de praktische toepassingsmogelijkheden ervan zijn. Dat was voor ons aanleiding met de DD functie te experimenteren, waarna het idee ontstond om over de DD functie een artikel te schrijven.
Deel 1 van dit artikel beschrijft de resultaten van een uitgevoerde analyse op de eigenschappen en de performance van een DD verbinding. Daarna beschrijft deel 2 de aard en resultaten van een praktisch uitgevoerd experiment met de DD verbinding. Het artikel eindigt met deel 3, waarin een aantal conclusies en aanbevelingen ten aanzien van het gebruik van de DD functie zijn opgesomd. Bij dit artikel hoort een video, waarin het uitgevoerde experiment in werking is te zien. Onder aan dit artikel is een link naar deze video vermeld.
1. Analyse van de eigenschappen en de performance van een DD verbinding
Uit een door ons uitgevoerde analyse met onder andere de Wireshark software, blijkt dat indien de IC-9700 in DD mode staat, de IC-9700 als een simple bridge functioneert. Dat impliceert dat alle data die door een op de LAN poort van de IC-9700 aangesloten apparaat wordt aangeleverd, door de IC-9700 wordt uitgezonden op de 23cm band. Tevens impliceert dit dat de IC-9700 alle data die op de 23cm band wordt ontvangen door de IC-9700, via de LAN poort van de IC-9700 wordt doorgestuurd naar een op de LAN poort aangesloten apparaat.
De DD functie is dus generiek van aard en de functie kan derhalve in theorie voor alle toepassingen gebruikt worden waar een draadloze “brug” tussen twee apparaten of twee netwerken gewenst is. Om te kunnen beoordelen wat de praktische toepassingsmogelijkheden zijn, hebben we de daadwerkelijke throughput en ook de latency van de DD verbinding gemeten. Hiervoor hebben we de volgende opstelling gebruikt, waarbij de IC-9700 transceivers aangesloten zijn op een dummyload:
Onze eerste vraag was of de door ICOM genoemde 128kbps throughput daadwerkelijk gehaald wordt in een praktische toepassing, in acht nemende dat deze 128kbps waarschijnlijk betrekking heeft op OSI laag 1 en in acht nemende dat in lagere OSI lagen steeds minder bandbreedte ter beschikking is voor de daadwerkelijke data, als gevolg van overhead die zich in de OSI lagen laag voor laag opbouwt. Onderstaande figuur laat zien dat slechts een gedeelte van de 0-en en 1-en die verzonden worden betrekking hebben op de daadwerkelijke data, ook wel de “Payload” genoemd.
Om te bepalen welke bandbreedte voor software applicaties praktisch beschikbaar is op layer 3 en 4 van het OSI model, hebben we gebruik gemaakt van de iperf3 software. Met deze software is het onder andere mogelijk om UDP datagrammen via een willekeurige verbinding van een server naar een client te zenden en op basis van een UDP stream te meten wat de praktische throughput van die verbinding is. De conclusies ten aanzien van zowel unidirectionele als bidirectionele data communicatie staan in onderstaande tabellen weergegeven.
De bovenstaande tabel geeft meetresultaten betreffende unidirectionele communicatie weer en laat zien dat de door laptop 1 aangeboden UDP datagrammen tot een snelheid van zo’n 79kbps netjes worden ontvangen door laptop 2. Vanaf 78-79kbps tot ongeveer 91kbps gaan er geen UDP datagrammen verloren, maar vindt er een vorm van queueing plaats: de met een snelheid van 80-91kbps verzonden datagrammen worden met een snelheid van zo’n 78-79kbps ontvangen. We hebben niet vastgesteld wat de maximale lengte van deze queue is. Wel hebben we vastgesteld dat als er queueing optreedt, er ook een relatief kleine jitter van maximaal 1-2ms optreedt.
Bij snelheden boven de 79kbps ontstaat een wat grotere jitter die kan oplopen tot 10ms. Zoals in onderstaande screenshot zichtbaar is, gaan er bij een snelheid boven de 91kbps daadwerkelijk datagrammen verloren en we hebben de jitter zien oplopen tot zo’n 40ms.
De onderstaande tabel geeft meetresultaten betreffende bidirectionele communicatie weer en laat zien dat de tussen laptop 1 en laptop 2 in twee richtingen simultaan uitgewisselde UDP datagrammen tot een snelheid van zo’n 44kbps betrouwbaar uitgewisseld kunnen worden. Bij snelheden boven de 44kbps gaan UDP datagrammen verloren in de communicatie. Merk op dat we ons bij de bidirectionele analyse beperkt hebben tot twee metingen; we hebben niet alle metingen herhaald die we bij de unidirectionele meting uitgevoerd hebben.
Conclusie die we uit de uitgevoerde metingen kunnen trekken, is dat er op layer 4 van het OSI model in geval van een UDP stream bij unidirectionele communicatie tot zo’n 80kbps betrouwbaar gegevensoverdracht kan plaatsvinden en bij bidirectionele communicatie tot zo’n 45kbps. Bij snelheden boven de 80kbps respectievelijk 45kbps gaan er in het geval van UDP streams datagrammen verloren en in het geval van TCP connections ontstaan er re-transmits, wat alleen maar tot meer vertraging leidt en wat ook tot het totaal “dichtslibben” van de verbinding blijkt te kunnen leiden met als gevolg een mogelijke crash van de applicatie software die gebruik maakt van de DD verbinding.
Uit het feit dat de maximale snelheden op OSI laag 4 lager liggen dan de door ICOM genoemde snelheid van 128kbps kunnen we concluderen dat ICOM de 128kbps waarschijnlijk gemeten heeft op OSI laag 1. In iedere volgende OSI laag wordt de te verzenden payload immers telkens voorzien van een extra header (dus overhead), waardoor er bij iedere lagere OSI laag ten opzichte van de payload relatief steeds meer overhead mee verzonden wordt, waardoor er voor de daadwerkelijke payload steeds minder effectieve bandbreedte overblijft.
Naast de tests met iperf3 zoals hierboven beschreven, hebben we ook een simpele ICMP ping test uitgevoerd zonder dat de verbinding op dat moment belast werd met ander netwerkverkeer. Conclusie uit deze test is dat in ideale omstandigheden de ICMP pingtime zo’n 62ms bedraagt. Indien de verbinding wel simultaan belast wordt met een grote hoeveelheid ander netwerkverkeer, dan stijgt deze pingtime tot 500-1500ms en indien de verbinding “dichtslibt” ontstaan er zelfs timeouts en wordt de verbinding dus onbetrouwbaar.
2. Een experiment met een praktische toepassing van de DD verbinding
Met inachtneming van de conclusies uit de uitgevoerde performance tests hebben we een experiment opgezet dat praktisch uitvoerbaar is en dat tevens gebruik maakt van de draadloze DD verbinding.
Mede geïnspireerd door Sjef PE5PVB, die zich afvroeg of er via een DD verbinding een AAC audio stream getransporteerd zou kunnen worden, besloten we om met gebruikmaking van de RemAud software van DF3CB een IC-7300 op afstand te gaan bedienen, uiteraard met tussenkomst van een draadloze DD verbinding, twee laptops en uiteraard ook twee IC-9700 transceivers. Onder aan dit artikel is een link vermeld naar een video waarop het een en ander praktisch werkend zichtbaar is.
Gebruikte componenten
Onderstaande foto toont de opstelling van het experiment en geeft de componenten weer die gebruikt zijn. Van links naar rechts gaat het om de volgende componenten:
- Een eerste laptop (IP adres = 192.168.10.3) die via een UTP (cross)cable direct is verbonden met een eerste IC-9700 (IP adres = 192.168.10.4), die op een dummyload is aangesloten.
- Een tweede IC-9700 (IP adres = 192.168.10.4), die op een dummyload is aangesloten en die via een tweede UTP (cross)cable direct is verbonden met een tweede laptop (IP adres = 192.168.10.2).
- Een IC-7300 die op een dummyload is aangesloten en die met een USB kabel op de tweede laptop is aangesloten, zodat de speaker, microfoon en PTT van de IC-7300 via de tweede laptop beschikbaar en aan te sturen zijn.
- Een president Randy III portofoon, waarmee via de 10-meter en/of 11-meter band gecommuniceerd kan worden met de IC-7300, die op een dummyload is aangesloten.
Hieronder is deze opstelling schematisch weergegeven.
Configuratie van netwerkinstellingen op de laptops
Zoals al beschreven, blijkt de IC-9700 in DD mode te fungeren als een simple bridge. Teneinde zoveel mogelijk kostbare bandbreedte over te houden voor de voor het experiment benodigde toepassing, hebben we ervoor gekozen de laptops met een UTP crosscable direct aan te sluiten op de IC-9700 transceivers, IP adressen statisch in te stellen, geen default gateway te configureren op de laptops, geen DNS servers in te stellen en alle network services behalve IPv4 uit te schakelen. Dit bleek onnodig en onvoorspelbaar netwerkverkeer te voorkomen, wat verstoring van de UDP streams die voor het experiment nodig waren, voorkwam.
Ter illustratie zijn hierboven de netwerk instellingen van de tweede laptop zichtbaar. De door ons gehanteerde IP adressen zijn hierboven al genoemd. Omdat we geen default gateway ingesteld hebben, is het van belang dat beide laptops met hun IP adres in hetzelfde IP subnet zitten. We hebben gekozen voor een /24 subnet en derhalve gebruiken we subnetmask 255.255.255.0.
Configuratie van de RemAud software
De RemAud software maakt het mogelijk om de speaker, de microfoon en de PTT button van een transceiver op afstand te kunnen gebruiken, verder in dit artikel “Remote Access” genoemd. Praktisch zou met de RemAud software een transceiver die in de shack opgesteld staat, vanaf een andere locatie bediend kunnen worden zonder dat de betreffende transceiver fysiek toegankelijk hoeft te zijn.
De Remote Access via RemAud kan plaatsvinden binnen een Local Area Network (LAN), maar indien gewenst ook met tussenkomst van het internet. In het experiment gebruiken we de RemAud software met tussenkomst van de twee IC-9700 transceivers die via de 23cm band via de DD functie met elkaar draadloos communiceren via een op OSI layer 4 beschikbare bandbreedte van 45-80kbps, afhankelijk van de mate van bidirectionele transmissie via de DD verbinding.
In het experiment staan alle componenten op één tafel opgesteld en ligt er qua locaties een denkbeeldige “Remote Access” scheidingslijn tussen de twee IC-9700 transceivers, die net zoals de IC-7300 aangesloten zijn op een dummyload zodat de RF signalen op de 23cm band en op de 10/11 meter band de tafel niet verlaten en we dus niemand storen met het experiment.
De RemAud software bestaat uit een Client deel en uit een Server deel. Het Client deel dient geïnstalleerd te worden op de computer die op afstand van de te bedienen transceiver staat, in ons geval laptop 1. Het Server deel dient geïnstalleerd te worden op de computer waar de op afstand te bedienen transceiver direct op aangesloten is, in ons geval laptop 2 die de IC-7300 bedient.
In de RemAud Server software dienen de volgende instellingen gehanteerd te worden:
- Een IP poort welke gebruikt wordt door Client en Server, in het experiment “4003”.
- Een username/password voor aanmelding door de RemAud Client software.
- Audio devices: in het experiment de (virtuele) speaker en microfoon van de IC-7300.
- Codec: wij kozen voor “GSM 6.10” met sample rate 8kHz, transfer rate 1.8kB/sec.
- PTT: we gebruiken “DTR” via de (virtuele) COM poort van de IC-7300 voor PTT.
In de RemAud Client software dienen de volgende instellingen gehanteerd te worden:
- Bij het tabblad “General” de optie “Use PTT on Transmit” inschakelen.
- Als remote connection het IP adres en IP Port van de RemAud server ingeven.
- Audio devices: de speakers en microfoon van de betreffende laptop ingeven.
- Codec instellingen dienen gelijk te zijn aan die van de RemAud Server software.
In het experiment hebben we de buffer instellingen in de Server en de Client software ongewijzigd gelaten.
Configuratie van de IC-9700 transceivers
Allereerst dienen beide IC-9700 transceivers van een werkende D-STAR configuratie voorzien te zijn. In dit artikel gaan we daarop niet nader in. Uitgaande van werkende D-STAR configuraties, is het van belang beide IC-9700 transceivers in te stellen op de DD mode op identieke frequenties. Tevens is het van belang om middels de “Transmit” button de “TX” mode in te schakelen en daarmee de “TX Inhibit” mode uit te schakelen, zodat als er data via de LAN poort wordt aangeboden, de IC-9700 deze data ook via de 23cm band uitzendt en de andere IC-9700 deze data kan ontvangen.
De instellingen in het menu “DV/DD SET” dienen bij beide IC-9700 transceivers identiek te zijn. De “DD Packet Output” optie hebben we niet op “All” gezet maar op “Normal”. Deze optie is in de Advanced Manual niet gedocumenteerd, maar het lijkt erop dat de “All” instelling data frames met daarin bijvoorbeeld multicast en broadcast packets over de 128kbps verbinding doorstuurt, terwijl de “Normal” instelling dat niet doet, waardoor er in het experiment meer bandbreedte beschikbaar blijft voor de transfer van RemAud audio en RemAud PTT signalen.
Configuratie van de IC-7300 transceiver
In het menu “Connectors” dienen specifieke instellingen gehanteerd te worden om zowel audio als PTT goed te kunnen doorgeven van en naar de via de USB aangesloten laptop. Hieronder sommen we derhalve de door ons gehanteerde instellingen op uit het menu “Connectors”. Het behoeft geen toelichting dat het mogelijk is voor andere toepassingen andere instellingen te hanteren.
De IC-7300 dient in FM mode te staan zonder dat de DATA mode is ingeschakeld. Als frequentie hebben we een frequentie gekozen waarop zowel de President Randy III als de IC-7300 (met dummyload) kunnen zenden en ontvangen.
- De instelling “ACC/USB AF SQL” dient op “ON” te staan, zodat er niet continu een ruis te horen is via de RemAud audio verbinding.
- De “DATA OFF MOD” dient op “USB” te staan en niet op “MIC” of “ACC” of “MIC,ACC”, zodat speaker en microfoon signalen via de USB kabel lopen en niet via de microfoon aansluiting aan de voorzijde van de IC-7300.
- In het submenu “USB SEND/Keying” dient de optie “USB SEND” op “DTR” ingesteld te worden, zodat de RemAud Server software de DTR pin van de (virtuele) COM poort van de IC-7300 kan gebruiken om de PTT in- en uit te schakelen.
Met de genoemde instellingen zijn we in staat geweest om de IC-7300 praktisch op afstand te bedienen. Onder dit artikel is een link opgenomen naar een video waarin zichtbaar is hoe alles praktisch in zijn werk gaat.
Experiment beschouwd vanuit het OSI model
Onderstaande plaatje toont nogmaals het OSI model, dit keer ook met per laag indicatie van de toepassing van die laag in het experiment. Het gaat hier met nadruk om een indicatie, omdat we dit plaatje relatief simpel wilden houden en bepaalde protocollen of apparatuur in meerdere lagen van het OSI model geplaatst kunnen worden, wat we hier omwille van leesbaarheid niet altijd gedaan hebben.
3. Conclusies en aanbevelingen
Naar aanleiding van de uitgevoerde tests en het uitgevoerde experiment hebben we een aantal conclusies kunnen trekken, soms voorzien van aanbevelingen.
-
- De DD functie van de IC-9700 is technisch bruikbaar maar in praktijk blijkt het lastig te zijn om moderne toepassingen goed te laten functioneren over een DD verbinding, omdat de effectieve bandbreedte van de verbinding vrij laag is waardoor de verbinding eenvoudig “dicht kan slibben”, wat leidt tot verlies van UDP datagrammen en tot oneindig veel TCP retransmits, met als gevolg niet goed werkende applicatie software.
- De effectieve throughput en latency van de DD verbinding zijn in grote mate afhankelijk van de mate van gelijktijdig dataverkeer in twee richtingen. Indien er slechts dataverkeer plaatsvindt in één richting dan is op OSI layer 4 de beschikbare bandbreedte zo’n 80kbps. Indien er continu en simultaan dataverkeer plaatsvindt in twee richtingen dan is de beschikbare bandbreedte in één van de twee richtingen zo’n 45kbps, het totale dataverkeer in de twee richtingen is dan zo’n 80-90kbps.
- De IP adres instellingen op de IC-9700 blijken niet relevant voor een goede werking van de DD-functie. Het op de IC-9700 ingestelde IP adres is wel relevant voor een goede werking van andere functies, waaronder de DV gateway functie en de ICOM RS-MS3W en ICOM ST-4001W software.
- In het proces van experimenteren hebben we met gebruikmaking van de Internet Connection Sharing (ICS) functie van Microsoft Windows op laptop 1, laptop 2 van internet connectiviteit voorzien via laptop 1. Na het juist configureren van ICS op laptop 1 en het instellen van DHCP op de netwerkkaart van laptop 2, is de internet connectiviteit op laptop 2 via de DD verbinding operationeel. Het lukt dan om een website te openen, maar het openen duurt wel erg lang. Indien Windows en/of geïnstalleerde Windows software via de DD verbinding onaangekondigd tegelijkertijd naar updates gaan zoeken dan blijft er voor het bezoeken van websites of andere toepassingen te weinig bandbreedte over; de verbinding “slibt dan dicht” en op ICMP niveau komen er enkel nog timeouts. Zie hieronder ter illustratie de resultaten van een ICMP ping naar google.com zonder dat er sprake is van bewust geactiveerde andere Windows software die netwerkverkeer genereert.
- In de tests en experimenten hebben we enkel gebruik gemaakt van directe communicatie tussen twee IC-9700 transceivers met dummyloads; we hebben niet gewerkt met een DD repeater, onder andere omdat deze in onze regio voor zover wij weten niet beschikbaar is. Het lijkt ons interessant om ook eens te experimenteren met een DD repeater en wellicht volgt daarover later een separaat aanvullend artikel.
- De voor software applicaties effectief beschikbare bandbreedte is niet erg hoog. 45-80kbps betreft zo’n 5-10kB/s (= kilobytes per seconde), wat in praktijk niet genoeg bleek om goed te kunnen werken met de PCM Codec van RemAud, die 8kB/s vereist. Daarom hebben we in RemAud gewerkt met de GSM 6.10 Codec, die 1.8kB/s vereist. Dit geeft meteen ook een richtinggevend antwoord op de vraag van Sjef PE5PVB over de haalbaarheid een AAC audio stream te transporteren over een DD verbinding.
- Initieel wilden we graag de IC-7300 op afstand bedienen via de ICOM RS-BA1 software in plaats van via de RemAud software. Het bleek echter dat enkel de CI-V data stream al meer dan de 45-80kbps bandbreedte nodig heeft, waardoor verbinding compleet “dicht slibte” en waardoor de RA-BA1 software crashte, zelfs als we niet een TX of RX audiostream toevoegden aan de CI-V datastream. Hoeveel bandbreedte de CI-V datastream in praktijk vereist, hebben we niet gemeten.
- Zoals in de video te zien is, schakelt het TX/RX relais van de IC-9700 zo’n 10x per seconde als de DD functie is ingeschakeld. Dat is 36.000 keer per uur en 864.000 keer per dag. Ons gevoel zei ons dat na een dagje de DD functie ingeschakeld te hebben, het TX/RX relais wellicht het einde van zijn levensduur bereikt zou kunnen hebben.
- Gezien de relatief lage effectief beschikbare bandbreedte is het van belang om onnodig netwerkverkeer te voorkomen. Wij hebben dat in het experiment bewerkstelligd door laptops direct aan te sluiten op de IC-9700, door geen default gateway en geen DNS in te stellen en door alle network services behalve IPv4 op de netwerkkaarten uit te schakelen. Als de IC-9700 in een netwerk opgenomen zou worden, dan is ons advies om de IC-9700 op te nemen in een separaat VLAN waarin enkel unicast verkeer gerouteerd wordt en waar indien dat mogelijk is traffic shaping toegepast wordt. Tijdens het experimenteren hebben we een IC-9700 in een druk netwerk aangesloten gehad en enkel al de ARP en DHCP gerelateerde data zorgden voor het “dichtslibben” van de DD verbinding.
- Naar onze bescheiden mening is de DD verbinding in praktijk te traag om comfortabel moderne internet/cloud toepassingen te kunnen gebruiken. Als het wenselijk is om de DD verbinding voor internet/cloud toepassingen te gebruiken, dan adviseren we aan de server zijde een proxy server in te richten en deze proxy server enkel in te stellen in de software applicatie die internet connectiviteit nodig heeft. Op die manier kunnen andere software applicaties en/of het Windows Update mechanisme geen gebruik maken van de DD verbinding.
- Tijdens het experimenteren hebben we het DD signaal geanalyseerd en beluisterd via onder andere de SDRUno software. We hebben kunnen meten dat het signaal in praktijk zo’n 170kHz breed is. Tevens hebben we kunnen achterhalen dat het DD signaal een digitaal GMSK gemoduleerd signaal betreft en dat de IC-9700 voor DD een softwarematig selectivity filter hanteert dat 300kHz breed is.
4. Tot slot
Middels dit artikel willen wij graag de door ons opgedane kennis en ervaringen delen en we hopen de lezers te inspireren ook eens met de DD functie van de IC-9700 te experimenteren. We pretenderen zeker niet de wijsheid in pacht te hebben of te weten “wat het beste werkt”; we staan open voor alle feedback en suggesties van lezers van dit artikel.
Dit artikel beoogt niet een volledige handleiding te zijn voor installatie en/of configuratie van de genoemde componenten. Enkel de meest noodzakelijke parameters die nodig zijn om een technisch werkend geheel te creëren zijn in dit artikel vermeld.
Indien er naar aanleiding van dit artikel vragen mochten zijn, neem dan gerust met ons contact op!
73, Michiel PC7MM en Richard PD3RFR.
5. Video “Experiment met de Digital Data mode van de ICOM IC-9700”
6. Relevante links
- Video “Experiment met de Digital Data mode van de ICOM IC-9700” door PD3RFR en PC7MM:
https://youtu.be/Q0x0RkCm94k
- Download link voor Advanced Manual van IC-9700:
https://www.icomjapan.com/support/manual/2166/
- Download link voor IC-9700 product sheet en data sheet:
https://www.icomfrance.com/uploads/files/produit/doc-IC-9700-en.pdf
- Download link naar RemAud software, ontwikkeld door DF3CB:
https://df3cb.com/remaud/download/
- Download link naar Wireshark network protocol analyzer software:
https://www.wireshark.org/
- Download link naar iperf3 network bandwidth measurement tool:
https://github.com/esnet/iperf