Transmission Control Protocol er en svært viktig protokoll i transportlag for OSI- eller TCP/IP-modeller. Det er mange fordeler med TCP som:
- TCP sender på nytt hvis noen sendte data ikke blir bekreftet av mottakeren innen en viss tid.
- TCP oppretter en tilkobling før dataene sendes. Vi kaller den forbindelsen som 3-veis håndtrykk.
- TCP har overbelastningskontrollmekanisme.
- TCP kan oppdage feil ved hjelp av noen metoder.
La oss hovedsakelig lære om TCP 3-veis håndtrykk. La oss også lære om de viktige feltene i Wireshark for 3-veis håndtrykk.
3-veis håndtrykk
Det er tre rammeutvekslinger som skjer i et 3-veis håndtrykk:
Den første rammen sendes alltid av klienten til serveren. La oss forstå dette fra et enkelt diagram:
'KLIENT SERVER'
Ramme1: Klienten sender SYN-ramme til server-----------------------------------------><--------------------------------------------Tjeneren sender SYN+ACK-ramme til klient: Frame2
Ramme3: Klienten sender ACK-ramme til server----------------------------------------->
Vi kan se disse tre rammene i Wireshark. 'tcp'-filteret kan brukes i Wireshark for å se alle TCP-rammer. Her er skjermbildet for de tre rammene:
La oss nå forstå alle tre rammene i detaljer:
SYN
Denne rammen inneholder mye informasjon om klientens muligheter til å informere serveren. Følgende skjermbilde viser alle de viktige feltene i SYN-rammen:
Her er de viktige feltene for SYN-rammen:
Kildeport: 50602Destinasjonshavn: 80
Sekvensnummer: 0
Bekreftelsesnummer: 0
Topptekstlengde: 32 byte
Flagg: 0x002 (SYN):
Bekreftelse: Ikke satt
Push: Ikke satt
Tilbakestill: Ikke satt
Syn: Sett -----> Denne biten er satt fordi dette er en SYN-ramme.
Finne: Ikke satt
Vindu: 65535
Haster peker: 0
TCP-alternativ - Maksimal segmentstørrelse: 1460 byte
TCP-alternativ - Vindusskala: 3 (multipliser med 8)
TCP-alternativ - SACK tillatt
VIS+ACK
Denne rammen inneholder mye informasjon om serverens muligheter til å informere klienten. Følgende skjermbilde viser alle de viktige feltene i SYN+ACK-rammen:
Denne rammen bekrefter også SYN-rammen som sendes av klienten.
Her er de viktige feltene for SYN+ACK-rammen:
Kildeport: 80Destinasjonshavn: 50602
Sekvensnummer: 0
Bekreftelsesnummer: 1
Topptekstlengde: 32 byte (8)
Flagg: 0x012 (SYN, ACK)
Bekreftelse: Sett
Push: Ikke satt
Tilbakestill: Ikke satt
Hans: Sett
Finne: Ikke satt
Vindu: 29200
Haster peker: 0
TCP-alternativ - Maksimal segmentstørrelse: 1412 byte
TCP-alternativ - SACK tillatt
TCP-alternativ - Vindusskala: 7 (multipliser med 128)
Vi kan se at 'Acknowledge' og 'SYN' biter er satt i denne rammen. Dette er fordi denne rammen er SYN+ACK.
ACK
Denne rammen er den siste rammen i 3-veis håndtrykket og også bekreftelsen av SYN+ACK av klienten. Følgende skjermbilde viser alle de viktige feltene i ACK-rammen:
Her er de viktige feltene for ACK-rammen:
Kildeport: 50602Destinasjonshavn: 80
Sekvensnummer: 1
Bekreftelsesnummer: 1
Topptekstlengde: 20 byte (5)
Flagg: 0x010 (ACK)
Haster: Ikke satt
Bekreftelse: Sett
Push: Ikke satt
Tilbakestill: Ikke satt
Syn: Ikke satt
Finne: Ikke satt
Vindu: 32768
Her er bare 'Acknowledge'-biten satt fordi dette er en ACK-ramme.
Forklaring på noen viktige fellesfelt
Port 80 : Vi observerte én fast port 80 i denne opplæringen. Det er fordi dette er en HTTP-opptak og port 80 er løst (serversiden) for HTTP-kommunikasjon.
Sekvensnummer : Sekvensnummeret til den rammen. Sync er den første rammen, så vi har 0 som et sekvensnummer.
TCP-flagg:
Bekreftelse – Denne biten settes hvis rammen er en ACK. Eksempel: SYN+ACK, ACK-ramme.
SYN – Denne biten er satt hvis rammen er en SYN. Eksempel: SYN.
Vindu : Dette feltet deler avsenderens maksimale vindusstørrelse i mottaksmodus. Eksempel: Vi har vindusstørrelsen på 65535 byte i SYN-rammen. Dette betyr at mottakeren kan motta maksimale TCP-data på 65535 byte til enhver tid.
SEKK tillatt : Denne biten er satt hvis send støtter SACK [selektiv bekreftelse].
Maksimal segmentstørrelse : Vi kan også kalle det MSS. Dette definerer den maksimale datarammen som avsenderen kan motta. Eksempel: Vi får MSS som 1460 byte i SYN-rammen.
Konklusjon
Vi lærte om TCP 3-veis håndtrykk og alle de nyttige feltene for SYN-, SYN+ACK- og ACK-rammer. Hvis du vil lære mer om TCP, kan du følge denne RFC-lenken https://tools.ietf.org/html/rfc793 .