I''ve heard quite a bit about IPX, but it doesn''t really seem to be used as much as TCP or UDP. What exactly is it? Is it only for use with LANs and such, or can it be used over the internet like other protocols? I''m very curious as to what it''s used for. Can anybody help me?
Thanks in advance,
IPX was deployed by Novell to support NetWare. Under OSI, it''s (approximately) a layer 3 (network) protocol, fully routable. It''s commonly deployed with SPX (Sequenced Packet eXchange) as a OSI layer 4 (transport) protocol. In comparison IP is also a layer 3 protocol and TCP and UDP are layer 4 protocols.
An IPX address consists of 96 bits. The first 32 bits refer to the network number. The second 48 bits are the MAC (media access control) address for the interface and the last 16 bits are the socket. The 00000000 network is reserved and transmissions to 00000000 network addressed are meant to mean the local network. (As a note the default installation of IPX in Windows 95/98 is broken. It assigns a default network address of 00000000 to the interface. Bad Microsoft.)
Again IPX is routable. IPX routing traditionally uses RIP (routing information protocol) as a routing protocol. As an IGP (Interior Gateway Protocol) RIP functions only within autonomous domains. I''ve never seen an EGP (Exterior Gateway Protocol) used for IPX. Because there is not EGP for IPX it is routed across the internet as a whole; however, I''ve seen impressively large internal IPX networks. It is still technically a internetworking protocol, though. Another restriction on IPX routing is that there is a 16 hop limit on crossing routers.
SPX is a connection oriented transport protocol much as TCP is. However SPX is more tightly integrated with IPX than TCP is with IP. SPX gets to use some IPX header fields. And because the socket address (analogous to the TCP/UDP port) is built into the IPX address there is no need for a connectionless transport protcol (ala UDP).
In gaming terms, most games using IPX use it only to a fraction of it''s potential. In this case usually only broadcast packets to the local IPX network on some arbitrary socket.
Hmm... Would it be possible to use IPX for an inernet-wide multiplayer game? SiCrane mentioned a 16 router hop limit with IPX - would this impare its ability to be used over the internet? I''m thinking of using it for a peer-to-peer game, but would I be limited to just Local-Area-Network or Wide-Area-Network use?
As I mentioned, IPX only has RIP as a routing protocol that means that it can only be used within a single autonomous domain. And that autonomous domain must implement IPX routing. So even if AOL routed IPX (it doesn''t) I could still only play with other players on AOL, because AOL is a single automonous domain. I wouldn''t be able to play, for example, my friend connecting with @HOME (which also doesn''t route IPX). Not to mention the fact I usually get 25 hop traces to him.
It *is* possible to perform tunneling IPX routing. (The IPX packets are encapsulating in IP packets usually). In such an instance it doesn''t matter if the two hosts are on two different non-IPX routing autonomous domains. In that case you''ve effectly you''ve created a virtual domain within the two domains. As similar technique is used on MBone.