How instant messenger systems work such as on Steam client or msn messenger?

thedramathedrama Member Posts: 291
Hello again just 1 day later from my birthday. In fact, i was thinking about this question for a long time. My question is highly related to the communications of protocols between sides. i wonder how this system works step by step.

For ex. i logged in Steam, authenticated. Started the Steam Client. I'm gonna message with my friend from other side of the world.(another Steam Client) This should be same while doing it on msn messenger as well. Only protocols used between will be different. But how does this system work?

Does this happen like this? i start the Steam Client (Client process is started by the Steam application) then do not know if Steam
runs across TCP or not , a lot of things happen here then request is sent to Steam Server/s(which server? mail server? ) after that,
request processed by the servers on the Internet and sent to other Steam Client...

is this similar to the steps applied on telnet communication? (it mustn't. because there, client only talks to the server)

Monster PC specs(Packard Bell VR46) : Intel Celeron Dual-Core 1.2 GHz CPU , 4096 MB DDR3 RAM, Intel Media Graphics (R) 4 Family with IntelGMA 4500 M HD graphics. :lol:

5 year-old laptop PC specs(Toshiba Satellite A210) : AMD Athlon 64 x2 1.9 GHz CPU, ATI Radeon X1200 128 MB Video Memory graphics card, 3072 MB 667 Mhz DDR2 RAM. (1 stick 2 gigabytes and 1 stick 1 gigabytes)


  • PashPash Member Posts: 1,601 ■■■■■□□□□□
    hi thedrama,

    You are pretty much there in your thinking. You can assume that in the example of the steam client these simple basic steps:-

    1. When you run steam it uses a client to server connection to authenticate your client based on your credentials. You can assume TCP here because it is checking authentication only, no real speed is needed. So a socket from your home LAN PC is created to connect to the steam auth servers. Typically these will be load balanced servers sitting in a data centre somewhere.

    2. Your client becomes successfully authed and that socket remains open as a constant communication with the steam auth servers OR depending on their architecture and design you might create a new socket with the status servers, to check if you are online.

    3. You open the chat option in Steam. This would create a new connection/socket to the Steam IM servers. This now acts as a gateway between you and your friend you might open a chat with. TCP is likely used for the connection between you and Steam IM server and for the purpose of sending messages to the server session that your friend sees. However you know in msn when you see someone is typing (xyz is typing), this type of "typing detection" might require udp traffic for fast updates. I am not entirely sure on this but Microsoft own port list here suggests they use a mix for "network detection"

    For your consideration remember your home router will NAT your internal IP traffic outbound and keep a session stable.
    DevOps Engineer and Security Champion. - I am trying to find my writing style, so please bear with me.
  • QordQord Senior Member Member Posts: 631 ■■■■□□□□□□
    A lot of the details depend on the chat service and client I think. Some servers send keepalives, and some clients take care of that instead. But the basics are the same. Here's some reading on it:
    HowStuffWorks "How Instant Messaging Works"

    If you're feeling frisky, stand up an Openfire jabber server at home. Create a couple accounts and log in from a couple different machines, all with wireshark open and watching. It's pretty neat to watch the communications cross.
Sign In or Register to comment.