Network management with C# .NET?
-
Hello, After a long hours of search in google, I wasn't able to find what I was looking for. I need pointers on how to write an application that will let me manage network bandwidth throttling. I want to run a local cable network and instead of relying on a 3rd party software, I want to write on for the sake of learning something new. It surely sounds challenging but I didn't thought it would be that challenging, at beginning. Anyways, I want to limit bytes / sec on a certain IP with ports range etc. Maybe few guides in the right direction please? Any help will be appreciated. Thanks
-
Hello, After a long hours of search in google, I wasn't able to find what I was looking for. I need pointers on how to write an application that will let me manage network bandwidth throttling. I want to run a local cable network and instead of relying on a 3rd party software, I want to write on for the sake of learning something new. It surely sounds challenging but I didn't thought it would be that challenging, at beginning. Anyways, I want to limit bytes / sec on a certain IP with ports range etc. Maybe few guides in the right direction please? Any help will be appreciated. Thanks
Very big job. You basically have to write a proxy service that takes in requests on one side, makes the outward connection to the requested address on the other side and then passes the data between the two connections at the throttle rate you configured. Not REALLY difficult, but very difficult to do well. Covers lots of different areas (threading, sockets, streams, etc...) While I admire your want to learn this, you might want to settle down a bit and pick PARTS of this problem and learn each one very well first.
-
Very big job. You basically have to write a proxy service that takes in requests on one side, makes the outward connection to the requested address on the other side and then passes the data between the two connections at the throttle rate you configured. Not REALLY difficult, but very difficult to do well. Covers lots of different areas (threading, sockets, streams, etc...) While I admire your want to learn this, you might want to settle down a bit and pick PARTS of this problem and learn each one very well first.
Thanks for replying, Ray. Actually, I want to do it like SoftPerfect's Bandwidth Manager or NetLimiter, i.e. without using a proxy. I do have some fair knowledge of threading, streams and basic knowledge of sockets but I am willing to spend much time to improve on these areas. There's no haste and I have lots of time on hands to learn all the required stuff. The bottomline is, I just want to do it whether I convert it to a full-blown software or not. Basically, I am looking for guides on how network bandwidth limiting can be done on windows using C# .NET or maybe just generally. For a start, I will probably be testing it on my home network by limiting speed on all ports on my desktop PC. :-D Thanks for help.
-
Hello, After a long hours of search in google, I wasn't able to find what I was looking for. I need pointers on how to write an application that will let me manage network bandwidth throttling. I want to run a local cable network and instead of relying on a 3rd party software, I want to write on for the sake of learning something new. It surely sounds challenging but I didn't thought it would be that challenging, at beginning. Anyways, I want to limit bytes / sec on a certain IP with ports range etc. Maybe few guides in the right direction please? Any help will be appreciated. Thanks
it is a difficult thing to do. I think what you are trying to write is what's called a "traffic shaper". you will probably need some kind of a low level proxy, through which all data packets will go through, so that you can control the rate in which these packets are passed over the network. This proxy would have to use something like the winpcap library (or libpcap if you're not working on windows). anyway, good places to start are: this article[^], which uses raw sockets to handle packets, and this one[^], which ports winpcap to c#
there are no facts, only interpretations
-
Hello, After a long hours of search in google, I wasn't able to find what I was looking for. I need pointers on how to write an application that will let me manage network bandwidth throttling. I want to run a local cable network and instead of relying on a 3rd party software, I want to write on for the sake of learning something new. It surely sounds challenging but I didn't thought it would be that challenging, at beginning. Anyways, I want to limit bytes / sec on a certain IP with ports range etc. Maybe few guides in the right direction please? Any help will be appreciated. Thanks