Root » Servers » Mail servers » Session Initiation Protocol
Een eigen mailserver:
messenger in plaats van mail
Session Initiation Protocol
Een internet protocol dat meer en meer belangrijk wordt is het SIP of Session Initiation Protocol.
  • Er wordt meer gecommuniceerd via msn dan via mail: SIP is het onderliggend protocol.
  • VoIP (voice over IP oftewel internet telefoon) zal op termijn belangrijker zijn dan de vaste telefoon: hier ook zit SIP aan de basis.
  • En zelfs bij sharing-toepassingen worden dezelfde basisregels toegepast.
De betekenis van het Session Initiation Protocol zal nog toenemen.

Zijn er zware servers en een supersnelle toegang tot het internet nodig als ik een dergelijke server wil runnen? Absoluut niet! Een SIP server vormt een mindere belasting dan een webserver of een mailserver!

Basis van SIP servers

Bij SIP toepassingen ligt het zwaartepunt van de toepassing bij de gebruiker. De zware data-stroom (chatten, video- en telefoongesprekken, sharen van bestanden) loopt nooit via de SIP server. De SIP server dient enkel om de verbinding op te starten (initiatie). Eenmaal de verbinding opgestart loopt de datastroom (RTP path) direct van de ene naar de andere gebruiker.

Het is daarom dat Skype gratis telefoonverbindingen kan aanbieden: het kost hun praktisch niets (behalve een telefoonverbinding naar een fysische telefoon (vast nummer of gsm)).

Daarom ook dat er zoveel sharing-toepassingen zijn: de gebruikers stellen immers hun computer en internet-verbinding ter beschikking aan andere gebruikers. De grootste belasting van het systeem gebeurt bij de aangesloten computers, niet bij de SIP servers.

SIP server: database van gebruikers

Veronderstel dat gebruiker A een chatsessie wilt beginnen met gebruiker B. A weet niet of B online is, en als die wel online zou zijn, wat zijn IP en open poort is. Je hebt een tussenpersoon nodig die informatie verzamelt over alle gebruikers. Als A een verbinding met B wilt aangaan, dan vraagt A aan de SIP server of B online is, en hoe hij bereikbaar is.

Een kenmerk van iedere messenger en sharing toepassing is de client module, een programma dat op de computer van de gebruiker draait en je updates naar de SIP server stuurt: het ip adres waarop je bereikbaar bent (publiek adres), je status, enz.

Messenger


Aanmelding Verbinding aanleggen (SIP) Data verkeer (RTP)

Laten we beginnen met een eenvoudige toepassing, een chat-dienst zoals microsoft messenger. Ons netwerk bestaat uit drie gebruikers: alfa en bravo. Delta is offline.

  • Aanmelding
    Op het ogenblik dat een computer online gaat (dat wil zeggen de client-module wordt opgestart en gaat online) wordt er een status update naar de chat-server gestuurd. De SIP server luitert op poort 5060, maar om het even welk poortnummer kan daarvoor gebruikt worden. De client stuurt het poortnummer waarop hij luistert en zijn status ("online", "bezet", "afwezig", "niet storen", eigenlijk om het even wat dat door de server begrepen kan worden). Het poortnummer is in de range 16384-32767 voor klassieke SIP-toepassingen. De server probeert een verbinding aan te gaan met de client via de gemelde poortnummer. Indien dit lukt, wordt de client opgenomen in de database als beschikbaar.

  • Verbinding aanleggen
    Als alfa een verbinding wilt aangaan met bravo, dan richt alfa zijn aanvraag tot de SIP server. De server geeft de informatie door aan de aanvrager (alfa) en die maakt op zijn beurt een verbinding met bravo. In de praktijk is dit een beetje ingewikkelder, want er moet rekening gehouden worden met routers en firewalls. In de praktijk verloopt het "aankloppen" via de open verbinding tussen bravo en de server.

  • Data-verkeer (RTP)
    Alle communicatie zal vanaf heden lopen via een directe verbinding. Als er geen spion ingebouwd is in de chat-module, dan weet de SIP server niet wat er gaande is tussen beide gebruikers. De data-verbinding is totaal gescheiden van de initiatieverbinding. Beide verbindingen gebruiken totaal verschillende protocollen. De dataverbinding gebruikt als protocol RTP (Real-time Transport Protocol) en de weg dat de data aflegt wordt RTP path genaamd.
Naast deze basisfunktie hebben de meeste chat-diensten extra functionaliteiten. Bij het aanmelden op msn wordt de lijst met contactpersonen bijgewerkt. Zo heb je altijd toegang tot je contactpersonen, zelf al zou je vanaf een andere computer inloggen.

Ook Ubuntu heeft een chat-programma: Empathy. In tegenstelling met de microshit messenger wordt die echter niet automatisch opgestart: pas als je je gegevens ingeeft wordt het programma aktief.

Sharing toepassing

Een sharing-toepassing (P2P of Peer-to-Peer) is in wezen niet verschillend van een chat-verbinding. De server moet enkel een lijst aanleggen van wat er bij een gebruiker beschikbaar is. Veronderstel dat gebruiker alfa de film "lord of the rings" beschikbaar stelt. Dit gebeurt door het bestand naar een bepaalde folder te verplaatsen. Als de sharing module opgestart wordt, dan stuurt het een lijst van de bestanden die beschikbaar zijn voor download (in plaats van de status "online", "niet storen", enz).


Aanmelding: alle peers die online zijn (niet aangegeven op figuur)
Aanvraag van client naar server, de server geeft een lijst van alle peers die online zijn en de resource bezitten
Upload van anderen en download naar aanvrager

Als bravo de film wilt downloaden, dan richt het zijn vraag aan de server. Meestal is de film beschikbaar op meerdere peers. De aanvrager krijgt een lijst van de peers die de film ter beschikking stellen. In plaats van een verbinding aan te leggen met een enkele aanbieder, richt het zijn vraag tot zoveel mogelijke aanbieders. Vaak is de upload-snelheid van een aanbieder beperkt, en het is niet de bedoeling dat de aanbieder niet meer zou kunnen surfen als er iemand een film aan het binnenhalen is. De sharing module bepert de upload tot een fraktie van de beschikbare bandbreedte.

De aanvrager krijgt verschillende feeds op een lage snelheid, bijvoorbeeld 10 feeds op 20kB. Iedere feed stuurt een deel van het bestand door en de sharing module van de aanvrager maakt er een enkele bestand van. Ondanks de lage uploadsnelheid van de feeds ontvangt de gebruiker het bestand toch aan een redelijke snelheid, namelijk de som van de feeds.

Bij complexe toepassingen zoals sharing van resources over verschillende feeds worden er verschillende servers ingezet:

  • directory server: server die de lijst van aangeboden bestanden heeft,
  • location server: server die het ip adres van de peers heeft,
maar in principe weranderd er weinig aan de werking van het systeem.

Een kenmerk van sharing netwerken is dat de bestanden (de illegale downloads) nooit op de servers van de providers zitten en ook nooit via het netwerk van de provider passeren. Wettelijk gezien kan men de sharing provider niets verwijten, omdat hij niet weet wat er allemaal gedownload wordt.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's