Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game. |
| Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
11-23-2011, 07:07 AM
|
#1
|
|
Senior Member
Registered: Dec 2008
Location: Gurgaon, India
Distribution: OpenSUSE 11.4
Posts: 4,581
|
Network programming project ideas ;)
No, not homework, just for learning.
This is what I got already:
1. Client-Server chat program.
2. Implementing TCP/IP protocol.
3. Implementing remote logging library (courtesy SigTerm).
Don't want something which is most likely to get completed after years.
Don't want to waste time building crazy GUIs etc.
|
|
|
|
11-23-2011, 07:32 AM
|
#2
|
|
Member
Registered: Dec 2009
Distribution: Slackware 12.2
Posts: 379
|
Quote:
Originally Posted by Anisha Kaul
Don't want something which is most likely to get completed after years.
|
- trivial HTTP/FTP server.
- News reader.
- p2p client (bittorrent, edonkey, gnutella)
- A game. (You could fork KAsteroids clone from Qt examples or something).
My guess that if you go for #1..#3, then you'll spend most of time dealing with protocol, not with actual networking, although #3 will give most exposure to networking, since p2p means both client and server.
With #4, you'll have to deal with lag prediction, which is not directly related to networking.
So I'd go for logging library.
|
|
|
1 members found this post helpful.
|
11-23-2011, 07:38 AM
|
#3
|
|
Senior Member
Registered: Mar 2008
Location: India
Distribution: Dynebolic, Ubuntu 10.10
Posts: 1,320
Rep:
|
You want to IMPLEMENT Tcp/ip?!!! I tried to do that about a decade ago, but didn't complete the project.
I wish you best of luck if you're gonna do that!
|
|
|
|
11-23-2011, 07:51 AM
|
#4
|
|
Member
Registered: Mar 2010
Posts: 202
Rep:
|
A while ago someone was looking too for a networking project to do. I still think this would be nice  .
|
|
|
1 members found this post helpful.
|
11-23-2011, 08:02 AM
|
#5
|
|
Guru
Registered: Apr 2005
Location: /dev/null
Distribution: technixOS
Posts: 5,723
|
Quote:
Originally Posted by Juako
A while ago someone was looking too for a networking project to do. I still think this would be nice  .
|
Create it from scratch and learn, learn, and learn more! 
|
|
|
|
11-23-2011, 08:53 AM
|
#6
|
|
Senior Member
Registered: Dec 2008
Location: Gurgaon, India
Distribution: OpenSUSE 11.4
Posts: 4,581
Original Poster
|
Thanks Juako and SigTerm.
Quote:
Originally Posted by Juako
A while ago someone was looking too for a networking project to do. I still think this would be nice  .
|
I actually don't know many of the technical terms used there,
so I'll read up on how does a load balancer work.
Also, I have to read up on that logging library. I may post
back within a few days.
Last edited by Anisha Kaul; 11-23-2011 at 08:54 AM.
|
|
|
|
11-23-2011, 10:16 AM
|
#7
|
|
Member
Registered: Mar 2010
Posts: 202
Rep:
|
Quote:
Originally Posted by Anisha Kaul
I actually don't know many of the technical terms used there,
so I'll read up on how does a load balancer work.
|
A loadbalancer in the context of network links (a "network" or "link" loadbalancer) essentially distributes traffic between two or more network links: the classic example is a network with multihomed WAN access, where you have two or more WAN links (assume for the typical use: Internet access).
You can use the redundant WAN links (presumably from different ISPs) to perform some failover when links fail, and fallback again to a more normal state when links get up again.
In this scenario, if you want to balance outgoing LAN traffic over a set of WAN links while at the same time accounting for failover/fallback, you have to think of:
- What links are going to be grouped into some specific "set" for traffic balancing and failover
- If any, what links are to be considered "primary" links for the set, that is, the links that should be working when everything is OK
- If any, what links are to be considered "secondary" links for the set, that is, the links that should be used in the case of primary link failure (in case a "set" has zero secondary links, the failover would consist just of removing temporarily the failed primary link from the set until it's up again)
- Determine HOW traffic is going to be distributed among a set of links: are some links going to handle more connections than others? or all traffic will be evenly distributed among live primaries?
- Determine how Layer 7 (application) will be affected by traffic redirections imposed by the balancer
- All of the above can be thought of a "balancing profile", it should have a name and be referenceable
- What LAN traffic will be associated with specific profiles? Perhaps there's several LANs with different needs, perhaps requirements change on different hours or week days, should VPN traffic be excluded?, etc etc.
- Link monitoring: what techniques are to be exploited for link state detection, how fast we can act upon events, is the monitoring algorithm linear or will it adapt to recent history of the state of the network?, etc etc.
- How can we modify these different aspects at runtime, while everything is working, and ideally with no end users noticing?
- Logging and reporting
- GUI frontends
- Modularity, plugins
- Integration with other tools or frameworks (like for example webmin)
So basically the user would set up a config file defining several profiles, and the program should dynamically keep up the network configuration (any of interface config, routes, route policies, iptables rules, and qdiscs) and adapt it constantly to the network state, trying to maintain at everytime the "best" possible state and to react as quickly as possible to state changes.
I actually almost finished an implementation, but it was in Mikrotik RouterOS. A lang in which you have to simulate multidimensional arrays for example, very minimal and quirky. That and ROS own bugs eventually got me fed up and dropped it. But it was starting to look very well! Though it was masochistic to use that for this project. Even Bash is pleasure and raw power compared to ROS scripting language  .
Last edited by Juako; 11-23-2011 at 10:23 AM.
|
|
|
1 members found this post helpful.
|
11-24-2011, 12:42 AM
|
#8
|
|
Senior Member
Registered: Dec 2008
Location: Gurgaon, India
Distribution: OpenSUSE 11.4
Posts: 4,581
Original Poster
|
Quote:
Originally Posted by SigTerm
How about remote logging library? I.e. make a library that provides logging routines similar to qDebug(), is configurable and can send logging messages to multiple servers depending on message priority. Plus a server that can receive messages from multiple programs. Similar to a chat program, but much more practical/useful.
|
Today I read into qDebug keenly. Implementing that kind of library does
indeed sound "fun". I think I'll go with it.
Thanks for being around.
Juako:
Thanks for the detailed explanation of that project. But, I somehow feel
that it'll be better for me to learn to walk before attempting Gymnastics.
I'll surely consider your idea once I get something simpler done.
Last edited by Anisha Kaul; 11-24-2011 at 12:45 AM.
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 08:20 PM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|