5 ms·
Here's a question I've vaguely wondered but never mustered the effort to actually look up: how does IRC work? Like, if two people want to talk to each other ov
by marvy 6y ago
Here's a question I've vaguely wondered but never mustered the effort to actually look up: how does IRC work? Like, if two people want to talk to each other over IRC, do they need to be connected to the same same IRC server at the same time?
If so, does that mean that IRC is basically like instant messaging along the lines of AOL Instant Messanger, or Google chat? Or is there something that makes IRC very different?
- techsupporter 6y agoFor standalone IRC servers, yes. But many IRC servers are collected together into networks (Undernet, Freenode, EFnet, and so on) and in that case all you need to be is in the same channel on the same network. IRC is "very different" in the sense that it's more open and more freewheeling than, say, Slack. Slack is basically IRC with a slicker coat of paint and more monetization.
- marvy 6y agoNever tried Slack, so that comparison doesn't help too much :) But I think I'm getting the idea now. It's a similar idea to a typical instant messenger, except that since the protocol is standard, you have federation that actually works, much like someone who uses gmail can email someone else who uses yahoo. Plus you have the concept of a channel, which seems to have no direct analog in a typical instant messenger, but seems to be essentially a persistent chatroom that doesn't vanish even if nobody is in the channel at the moment. Is that about right?
- rabidrat 6y agoMost of IRC is on those 'channels' (#whatever). and most channels (at least back in the day) were public, so you could just go to #books or whatever. For example, I spent my formative years on #uiuc, where there was a healthy community of 50-100 people from the university I was at. Newcomers would stop by on a regular basis and ask a question or just start chatting or troll or even grief--there were kickbans and scripts and bots to help manage larger communities. Also these persistent channels are created just by joining the channel with that name; they disappear when the last person leaves. Notably, the first person to join a chatroom gets "operator" status, and thus the rights to change channel settings and kick/ban people etc. So there evolved a culture of bots, who would sit in channels with op status and 'occupy' it in case someone came along; these bots had op status themselves, and were programmed to auto-ban certain users or even domains, and auto-op their owners and their owners' friends. slap me summa dat +o. And of course, there were the bot wars and the attempts at deliberate netsplits to try and steal op status, which were fun games for the script kiddies, but would really take the piss out of your evening chat when they would come by.
- shifto 6y agoTotally forgot about the slap command. Thought of it because you said to 'slap you some of that +O'. shifto slaps rabidrat around a bit with a large trout
- senko 6y agoFun fact: slap was a client command that just sent "action" over the channel/privmsg, which would get rendered as something like: * <nick> <action text> More generally, on most clients you could use "/me <text" command to do the same thing. And on the protocol level, it was done by a mini-protocol on top of IRC, called DCC (direct client-connection), that would look like: PRIVMSG #channel :^AACTION text^A (where "PRIVMSG #channel :text" was a way to send a normal message, and ^A is Ctrl-A). DCC was also used as signalling for file transfer. Clients wishing to send files would open a high-end port on their machine and send a DCC message with the file name, IP and port to connect to (similar to active FTP). (yes, I spent an inordinate amount on time on IRC...)
- shifto 6y agoFun fact indeed! I knew all these things but never how they actually worked. When I was deep into IRC I was a bit too young to understand the technical side of it but I sure knew how to download a lot of warez over DCC!
- pm215 6y agoAs far as typical user-experience goes, you shouldn't think of IRC as "an instant messenger with channels as a kind of extra thing on the side". The public multiple-participants ongoing conversations in channels are the primary thing an IRC user is involved in. Direct private messages to a single other user are the extra-thing-on-the-side.
- marvy 6y agoOkay nice. IRC finally makes sense. Seems kind of like Discord. Sounds pretty nice actually.
- symkat 6y agoTwo people would need to be on the same server to instant message. Basically you have private messages, and then group chats. The difference over something like AOL is that IRC is more open. Anyone can run an IRC server, so there was a lot of niche irc networks. https://freenode.net/ https://freenode.net/ is a popular IRC server for various open source communities.
- Galanwe 6y agoYes, typically all your communications on IRC go through a server. But depending on your client, and server, there's a lot of room for extensions around the native features. For instance, you can use DCC to send messages directly to an other user
- kilburn 6y agoIRC at its core is really simple: there's a server that relays messages between currently connected clients (i.e.: the server does not store messages ever). To whom does each message get sent? This is where channels come in: a "channel" is just a list of currently connected people, and the server relays every message sent to the channel to all the people who's in it. You can also open "private consversations" (i.e.: channels between only you and another person in the server). From this very simple model, new features where added over time. Most notably: - Very early on people realized that trolls are annoying. So... whenever a chanel is created, the first person to join gets "operator" status and can kick other people from the channel, silence them, etc. They can also make other people operators. - Some severs are federated to form an "IRC Network" (like freenet). These servers are relaying messages between them. For end-clients, it should not matter to which of the servers in the network you are connected to. Federation only works between servers on the same network (there's no federation between networks!). - Some networks created a small layer of authentication. You can "register" your nickname so the network won't allow other people to use it. Furthermore, you can "register" channels so when they get created the first person to enter doesn't get operator status. The network will only grant such status on that channel to whatever (registered) nicknames you specify, etc. On this basis, people started creating bots to: - Build archives of conversations (remember that all of this is ephemeral!) - Auto-reply to certain "messages" in certain channels. - Whatever else crosses your mind it has probably been done at some point. IRC is old ;)
- bregma 6y agoYou have it backwards. AOL-brand Instant Messaging and Google-brand Chat are like IRC, only in the latter cases commercial interests recognized the value in IRC and built walls around the commons in an attempt to extract rent. They all require a server to relay messages.