NewBie Network/Loadbalancer Question

Hello Folks,

I am new to QNX and RTOS development. I want to develop load balancer
using the QNX 6.0 in the Intel/AMD processor. It is a web switch. The
main goal of the load balancer is to route the HTTP traffic to the
servers in the server farm or amoung the server farms based upon the
work being processed by it.

As a first step I have downloaded and installed QNX 6.0 in my machine.

I will be installing the development kit as the next step.

I will hv 2 network card in my machine and will receive traffic from one
card and route the traffic to servers through the other network card.
The routing is based upon the HTTP header info like URI/cookies/session

I will write a C++ program to do the above task.

Here is my few questions:
In my C++ program how to I know whether a packet is received in CARD A.

How do i construct the HTTP traffic from the raw packet.
(Once I create the HTTP traffic, i will make a decision to route the
trafic one amoung the server). Then how do i send the traffic throught
CARD B.

Folks, please help with the above question and please point me to right
resources to get further information…

Thank you very much
Praba Siva

The first step would be to get the network ddk. It’s currently
geared towards driver but you might be able to glean enough
information to do what you describe.

-seanb

Praba Siva <spraba@rocketmail.com> wrote:
: Hello Folks,

: I am new to QNX and RTOS development. I want to develop load balancer
: using the QNX 6.0 in the Intel/AMD processor. It is a web switch. The
: main goal of the load balancer is to route the HTTP traffic to the
: servers in the server farm or amoung the server farms based upon the
: work being processed by it.

: As a first step I have downloaded and installed QNX 6.0 in my machine.

: I will be installing the development kit as the next step.

: I will hv 2 network card in my machine and will receive traffic from one
: card and route the traffic to servers through the other network card.
: The routing is based upon the HTTP header info like URI/cookies/session

: I will write a C++ program to do the above task.

: Here is my few questions:
: In my C++ program how to I know whether a packet is received in CARD A.

: How do i construct the HTTP traffic from the raw packet.
: (Once I create the HTTP traffic, i will make a decision to route the
: trafic one amoung the server). Then how do i send the traffic throught
: CARD B.

: Folks, please help with the above question and please point me to right
: resources to get further information…

: Thank you very much
: Praba Siva

Praba Siva <spraba@rocketmail.com> wrote:

Hello Folks,

I am new to QNX and RTOS development. I want to develop load balancer
using the QNX 6.0 in the Intel/AMD processor. It is a web switch. The
main goal of the load balancer is to route the HTTP traffic to the
servers in the server farm or amoung the server farms based upon the
work being processed by it.

As a first step I have downloaded and installed QNX 6.0 in my machine.

I will be installing the development kit as the next step.

I will hv 2 network card in my machine and will receive traffic from one
card and route the traffic to servers through the other network card.
The routing is based upon the HTTP header info like URI/cookies/session

I will write a C++ program to do the above task.

Here is my few questions:
In my C++ program how to I know whether a packet is received in CARD A.

How do i construct the HTTP traffic from the raw packet.
(Once I create the HTTP traffic, i will make a decision to route the
trafic one amoung the server). Then how do i send the traffic throught
CARD B.

Folks, please help with the above question and please point me to right
resources to get further information…

First thing fist, when you talking about “load blancer”, you have to
make up you mind to the question “between what”?

You are load blancing between “packets”, “tcp connects”, or more higher
HTTP level?

I don’t think “load blancing” between “packets” is doable in your case,
“load blancing” between “tcp connections” is doable, and doing it outside
of io-net maybe more acceptable for you.

Basically, instead of running HTTP server, you write your own program,
listening on CARD A’s IP, HTTP port (80). Once you get your request, you
can redirect it to the internal http server, based on your load blancing
policy. Once you got the reply from your internal server, relay it back
to orignal sender. For doing this kind of work, any TCPIP programming
book could give you a start.

Another way for doing this is download IPFilter for QNX6, set up
the “redirection rules”, redirect all the triffic to CARD A, port (80)
to “internal B,C,D,E”. The only problem is IPFilter only support RR
load blancing now.

-xtang