Community discussions

MikroTik App
 
IntraLink
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Fri May 28, 2004 5:44 pm
Location: Utah Valley
Contact:

Source code to BandwidthTest.exe??

Wed Apr 13, 2005 7:15 pm

I would like to start a project buliding a Windows client taskbar program that would be able to communicate with the btest server in MT.

Does MT have that code/protocol somewhere?

Anyone want to work on this with me?

I'm planning on using the .NET platform in Windows to start with.
 
changeip
Forum Guru
Forum Guru
Posts: 3833
Joined: Fri May 28, 2004 5:22 pm

Wed Apr 13, 2005 8:29 pm

I'd like to do this as well ...

Sam
 
WisperISP
just joined
Posts: 20
Joined: Wed Jun 02, 2004 8:05 pm
Location: St Louis
Contact:

Sun Apr 17, 2005 7:49 am

I am willing to help

Nathan
 
IntraLink
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Fri May 28, 2004 5:44 pm
Location: Utah Valley
Contact:

Sun Apr 17, 2005 7:52 pm

I guess we don't even really need the source code, just a DLL with an API or .NET package etc.

I've emailed Janis about this, but not received a reply.
I think I'll email Arnis and see if he'll reply.
 
changeip
Forum Guru
Forum Guru
Posts: 3833
Joined: Fri May 28, 2004 5:22 pm

Sun Apr 17, 2005 8:21 pm

i think a simple ethereal sniff of whats going on between the two machines would expose what's being done, i'm sure its nothing that complex.. i just havent had the time to look at it. Maybe later today I will sniff a bw test and see what we can find.

Sam
 
IntraLink
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Fri May 28, 2004 5:44 pm
Location: Utah Valley
Contact:

Sun Apr 17, 2005 9:27 pm

True. I've written a program to test bandwidth before.
I would rather make have their code or a library as reference for the sake of compatibility.

But if necessary we could reverse engineer it.

Here is what I would like to see this used for:

Have a client service which could on demand do a quick send/receive speed check to a MT box on the network. Maybe also do a very brief test every hour or few hours on pseudo random interval and keep a local databse of the results. Or interface with a web service to have a central server keep track.

The service on Windows would be represented on the front end by a task bar icon allowing the user to do a quick check of speed themselves within the network.
 
changeip
Forum Guru
Forum Guru
Posts: 3833
Joined: Fri May 28, 2004 5:22 pm

Sun Apr 17, 2005 9:56 pm

I'm after the same uses as you :)

We have a partner who makes LocationFree TV that is streaming across the internet to a clients tv monitor - they want to check the bandwidth available for upstream before a customer signs up. I'd love to use MT as and endpoint for tests to be run against.

Anyhow, I think the only way is to reverse engineer the protocol / handshake.

Sam
 
changeip
Forum Guru
Forum Guru
Posts: 3833
Joined: Fri May 28, 2004 5:22 pm

Sun Apr 17, 2005 10:35 pm

Below is the initial handshake a windows client sending btest authentication to MT. . . looks like its using some two way encryption on the password. the user is #admin# and the password was PASSWORD. It's not likely to do authenticated sessions, but maybe something without authentication might still work. MT would be appreciated even that much more if they would send the protocol spec for us. Although, being closed source does keep security tighter ( I think ) so i understand if they don't want to.

Sam
00000000  01 00 00 00                                      ....
00000000  01 02 00 00                                      ....
00000004  dc 05 00 00 40 4b 4c 00  00 00 00 00             ....@KL. ....
00000004  02 00 00 00 09 8d 25 44  6e c8 0b 8a 45 2f d8 c0 ......%D n...E/..
00000014  14 90 79 62                                      ..yb
00000010  77 da 2c d5 6f a0 83 63  07 7b cf 55 71 43 cd 97 w.,.o..c .{.UqC..
00000020  23 61 64 6d 69 6e 23 00  00 00 00 00 00 00 00 00 #admin#. ........
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........
00000018  00 00 00 00                                      ....
 
IntraLink
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Fri May 28, 2004 5:44 pm
Location: Utah Valley
Contact:

Mon Apr 18, 2005 2:48 am

Hmm... I guess we could make a go without the encryption and set the end MT to no password or no user authentication. It really would help if they would release a library at the least. That way they can keep their stuff to themselves, but allow us to use the mechanism.

Have you done a trace to figure out the handshake between the client and server during a test, after the authentication is complete?
 
changeip
Forum Guru
Forum Guru
Posts: 3833
Joined: Fri May 28, 2004 5:22 pm

Mon Apr 18, 2005 2:57 am

Its a little hard to determine easily, but I did find pieces of the handshake. It looks like there is always a TCP connection for control., even if using UDP transport for data traffic. There are 12 byte data fields that tell the server what to do - possibly more. The client requests a test and the server seems to just spit it back with garbage data that you can time. Hopefully you don't accidentally send it a request to packet you for hours : )

First 2 bytes tell the server size the expected packet size.
Second 2 bytes are unknown at this time.
Next 4 bytes tell the server what speed.
Last 4 bytes unknown at this time.

I don't think it'll be terribly hard to create something without authentication ability, but yes, it would be nice so it's not abused. I'll look into it more this evening.

Sam
 
User avatar
normis
MikroTik Support
MikroTik Support
Posts: 26912
Joined: Fri May 28, 2004 11:04 am
Location: Riga, Latvia
Contact:

Mon Apr 18, 2005 9:42 am

oh no, not .net again :)
 
cmit
Forum Guru
Forum Guru
Posts: 1547
Joined: Fri May 28, 2004 12:49 pm
Location: Germany

Mon Apr 18, 2005 10:57 am

oh no, not .net again :)
Thanks, Normunds... At least one other guy not so keen on .NET ;)

But what about the original question - a dll or the sourcecode/protocol for bandwidth testing protocol?
 
IntraLink
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Fri May 28, 2004 5:44 pm
Location: Utah Valley
Contact:

Wed Apr 20, 2005 12:15 am

.NET, C++, doesn't matter much to me.

This is the response I got from John:
We don't have enough resources at the time to support this. We will consider this in the future.

John
So, I guess that leaves us with hacking it out or waiting for them to provide something.

I guess the minqwm10.dll that comes with the .exe is just generic shim?

Who is online

Users browsing this forum: Mosmos and 19 guests