Netwerkprotocollen/Transportlaag

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

TCP[bewerken]

TCP is een transportprotocol dat bovenop IP werkt. TCP heeft als kenmerken dat het gegevens in een datastroom kan versturen, waarbij de garantie wordt geleverd dat de gegevens aankomen zoals ze verstuurd werden, en eventuele communicatiefouten (zowel in de gegevens zelf als in de volgorde van de gegevens) kunnen worden opgevangen. TCP gebruikt men dus primair als de overdracht zeker en compleet moet zijn (o.a. bij bestandsoverdracht). Men heeft het over een betrouwbaar protocol.

UDP[bewerken]

Een ander transportprotocol is UDP, wat veel wordt gebruikt bij toepassingen waar het snel overdragen van de gegevens en een korte reactietijd zeer belangrijk is, en het minder erg is dat er gegevens verloren kunnen gaan. Dit is bv. bij telefonie, videoconferencing, DNS of het online spelen van actievolle spellen, zoals first person shooters.

Poorten[bewerken]

Engelstalige video die het gebruik van poorten uitgebreider uitlegt

Stel dat er meerdere informatie op één NIC/IP-adres toekomt, maar enerzijds informatie die bedoeld is voor de browser en anderzijds een mail die arriveert in je mailbox in Outlook of Thunderbird. Hoe weet je computer aan welk programma hij dit moet afleveren? Niet alleen aan de client-kant kunnen er meerdere netwerkprogramma's draaien, maar ook één server kan meerdere netwerkdiensten leveren.

Om dit "afleverprobleem" op te lossen, worden netwerkpoorten gebruikt: het is een nummer dat bij het IP-adres hoort. Dit poortnummer bestaat uit 16 bits en dus zijn er 65536 (216) poorten beschikbaar voor TCP en 65536 poorten voor UDP. De bekende serverpoorten lopen van 0 tot 1023, alhoewel sommige poortnummers ook groter kunnen zijn. Enkele voorbeelden van TCP- en UDP-poorten:

poort protocol omschrijving
20 TCP FTP, het datakanaal
21 TCP FTP, het controlekanaal
22 TCP SSH: Secure Shell of SFTP
53 UDP, TCP DNS
67 UDP DHCP Server
68 UDP DHCP Client
80 TCP HTTP
443 TCP HTTPS
3389 TCP RDP, met dit remote desktop protocol kan je een pc op afstand overnemen.


Aan de clientzijde worden ook poortnummers gebruikt om communicatie mogelijk te maken. Een voorbeeld vanuit Wireshark:

0000 00 1b bf 89 a3 50 00 24 1d c1 71 e6 08 00 45 00 
0010 04 30 5c bd 40 00 40 06 e7 1e c0 a8 01 02|4a 7d 
0020 e6 c4|b4 c5|00 50 7d 1c 56 57 19 1d 1d 1e ...

Hieruit kan je enkele zaken afleiden:

  1. Uit de inkapseling blijkt dat TCP wordt gebruikt, omdat 06 in header wordt gebruikt. Bij UDP zou er 11 staan.
  2. Op een client-pc met IP-adres 192.168.1.2 (=0xc0a80102) wordt gesurft met een browser (bv. Firefox of Chrome). Deze client-pc kiest als bronpoort 46277 (=0xb4c5).
  3. We kunnen ervan uitgaan dat het gaat om 'surfen', daar de doelpoort 80 (=0x0050) is. De client gaat ervan uit dat er een webserver (bv. Apache of IIS) luistert op die poort voor binnenkomende aanvragen. Het server IP-adres is 74.125.230.196 (0x4a7de6c4).
  4. Als de webserver een antwoord terugstuurt, zal hij in principe als ontvanger IP-adres 192.168.1.2 gebruiken, met als poort 46277.[1]

Poorten kan je ook zelf kiezen, maar in dat geval moet je bij het programma de poort expliciet opgeven. Zo wordt voor een webconfiguratie van je printer op Linux-systemen (met als achterliggende software CUPS) vaak poort 631 i.p.v. poort 80 gebruikt. Om toegang te krijgen is dan niet http://localhost nodig (die "achter de schermen" poort 80 gebruikt), maar wel http://localhost:631/. Als je zelf poorten kiest, moet je altijd opletten dat er geen conflict is met een ander programma op jouw systeem, dat ook die poort gebruikt.

Poorten kan je in een firewall gebruiken om je netwerk te beveiligen. Als je bij een computer instelt dat poorten 80 en 443 geblokkeerd worden, zal je op deze computer wel kunnen surfen. Je zal dan echter zelf geen webserver kunnen draaien, tenzij je webserver draait op een niet-standaard poort.

Bronnen, noten en/of referenties
  1. In principe, omdat Network Adress Translation nog kan zorgen voor een extra stap.
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.