TCP/IP is een verzamelnaam voor de reeks netwerkprotocollen die voor een grote meerderheid van de netwerkcommunicatie tussen computers instaan. Het internet is het grootste en bekendste TCP/IP-netwerk. De naam TCP/IP is een samentrekking van de twee bekendste protocollen die deel uit maken van de TCP/IP-protocolstack (= protocolstapel): het Transmission Control Protocol (TCP) en het internetprotocol (IP). TCP/IP wordt uitgesproken als “TCP over IP” of meestal “tiesiepie ajpie”.

Geschiedenis

Het internet is een open netwerk. Op dit netwerk maakt men gebruik van het TCP/IP-protocol om gegevens uit te wisselen. TCP/IP is een pakketgeschakeld protocol waarbij de gegevens in kleine pakketjes onafhankelijk van elkaar worden verzonden. De communicatiesoftware plaatst de pakketten weer in de juiste volgorde, detecteert eventuele fouten in de ontvangst om indien nodig bepaalde pakketten opnieuw te vragen totdat alle pakketten ontvangen zijn.

Deze manier van werken liet toe om bij de voorloper van internet, ARPANET, informatie in kleine pakketjes te versturen langs verschillende wegen. Zoals zo vaak ging het hier om de oplossing voor een militair probleem. In geval van een oorlog, en bij het platleggen van sommige computers in een netwerk, was het nodig dat de overige computers toch hun gegevens konden blijven uitwisselen. Was een deel van het netwerk er niet meer, dan werden de gegevens langs een andere weg naar elkaar toegestuurd. Dit maakte het netwerk minder kwetsbaar. De doelstelling van de militairen was een netwerk dat altijd bleef werken.

Toch werd na een tijd dit netwerk te licht bevonden en zijn de militairen overgestapt naar MILnet. Van toen af werd dit protocol tussen de verschillende universiteiten die met elkaar verbonden waren gemeengoed.

Kenmerken

Het internet is een zogenaamd pakketgeschakeld netwerk, zonder garantie op enige service. Een pakketje gegevens kan zonder meer verloren gaan, sterker, bij overbelasting van een bepaalde lijn wordt zelfs aangeraden pakketjes weg te gooien. Over dit onbetrouwbare netwerk wordt met behulp van het TCP-protocol een ogenschijnlijk betrouwbare dienst gelegd, waarbij TCP in de gaten houdt of pakketjes (in de juiste volgorde) aankomen, en indien niet, geen bevestiging (acknowledge) stuurt. Indien bij de zender een welbepaalde wachttijd (timeout) verstrijkt, zonder dat er een bevestiging binnen is, dan stuurt deze het pakketje opnieuw.

Vanwege deze kenmerken is TCP/IP erg geschikt voor netwerkdiensten waar geen garantie over de zekerheid en timing vereist is wanneer bepaalde data aan dient te komen. Bijvoorbeeld, bij het downloaden van een fotootje van internet, maakt het niet uit dat er door pakketverlies enige data verloren gaat, zolang dit door TCP maar gecorrigeerd wordt.

Bij een telefoongesprek gelden heel andere wensen. Hier is gewenst dat ieder pakketje exact op het juiste moment aankomt. Pakketjes dienen liefst niet weggegooid te worden, maar als dat toch gebeurt, is het zinloos om ze opnieuw te verzenden, de hapering in het geluid heeft dan al plaatsgevonden. Hiervoor kan dan weer gebruikgemaakt worden van het UDP-protocol dat losse pakketjes zendt en zo onder de herverzend-eigenschappen van TCP uitkomt. Omdat echter nog steeds geen enkele garantie bestaat over de timing en zekerheid van de aankomst van gegevens zijn bepaalde eigenschappen inherent aan het systeem.

Lagen

De TCP/IP-protocolstack wordt officieel onderverdeeld in vijf lagen, met elk een eigen functionaliteit. De onderste laag, de fysieke laag, wordt vaak onderverdeeld in een eigenlijke fysieke laag en een datalinklaag.

Ook is er discussie over hoe de lagen uit de TCP/IP-stack overeenkomen met de 7 lagen die het (vooral theoretische) OSI-model voorschrijft. Vaak vallen in de literatuur de drie bovenste OSI-netwerklagen (Toepassing, Presentatie, en Sessie) samen met de toepassingslaag uit het TCP/IP-protocol.

Volgende tabel geeft het klassieke OSI-model weer, met daarbij telkens een aantal bijhorende protocollen uit de TCP/IP-stack:

#LaagProtocollen/systemen
7ApplicatieHTTPSMTPSNMPFTPTelnetSSH en SCPNFSRTSPRTPRTCPX Window SystemNFSLPDXMPP
6PresentatieXMLXDRASN.1SMBAFP
5SessieTLSSSH, ISO 8327 / CCITT X.225, RPCNetBIOSASP
4TransportTCPUDPSCTPSPXATP
3NetwerkIPICMPIGMPX.25CLNPARPRARPOSPFRIPIPXDDP
2Data LinkEthernetToken RingPPPHDLCFrame relayISDNATMDSLSDHSONETPDH
1Fysiekelektriciteitradiolaser
OSI model

Hieronder volgt een vereenvoudigde TCP/IP-stack, met enkele protocollen:

#LaagProtocollen/systemen
7ApplicatieHTTPFTPDNSRTP
(routingprotocollen zoals OSPF en RIP maken deel uit van de applicatielaag, maar werken datastructuren in de netwerklaag bij)
4Transportbijv. TCPUDPSCTP
 
3NetwerkTCP/IP gebruikt hiervoor het Internet Protocol (IP)
(protocollen zoals ICMP en IGMP worden bovenop IP gedraaid, maar kunnen beschouwd worden als deel uitmakend van de netwerklaag; ARP draait net onder IP, boven laag 2)
2Data LinkEthernetToken Ring
1FysiekFysieke media, en lijncoderingT1E1
TCP/IP model

Bekende aan TCP/IP gerelateerde protocollen

TCP/IP gerelateerde protocollen

Applicatielaag

In de applicatielaag bevinden zich de internettoepassingen als e-mail POP3, SMTP en FTP. Deze toepassingen hebben meestal een client-server structuur.EchoFingerGopherHTTPHTTPSIMAPIRCNNTPNTPPOP3QOTDRTPRTSPSNMPSSH en SCPSMTPTelnetXDMCP

Transportlaag

De transportlaag zorgt voor de communicatie tussen processen die zich op de hosts bevinden. Elke internetapplicatie is voor wat betreft de transportlaag gebouwd op ofwel TCP– ofwel UDP-protocol. Als volledig foutvrije transmissie is vereist wordt TCP gebruikt, als snelheid of het minimaliseren van overhead belangrijker is wordt UDP gebruikt.TCP, UDP, DCCP, GTP, SCTP

Netwerklaag

De bedoeling van deze laag is om de aangeboden data van bron naar doel te versturen ongeacht het protocol of type data, enkel ervoor zorgen dat alles netjes toekomt op de plaats van bestemming. Er wordt gezocht naar de meest geschikte weg om de data te versturen. Ook wel Internetprotocol genoemd.

Datalinklaag

Point-to-Point ProtocolSLIPIEEE 802.3IP-over-ATM-tunnelSDHIEEE 802.11 en 802.11i

Fysieke laag

Deze layer maakt de fysieke connectie tussen de netwerken mogelijk, zij bevat alle gegevens van een LAN en WAN netwerk die nodig zijn om een connectie te verwezenlijken.telefoonlijncoaxkabeltwisted pairglasvezelWi-Fi