Hva er TCP?
TCP (Transmission Control Protocol) er en forbindelsesorientert transportlagsprotokoll.
Hensikten med denne artikkelen:
Å forstå hele TCP er ikke en enkel oppgave. I denne artikkelen vil vi prøve å forstå de grunnleggende pakkerutvekslingene av TCP gjennom Wireshark. Teori kan leses via internett. Vi vil fokusere mer på analyse av pakkefangst.
Hvorfor TCP er kjent?
Det er flere grunner til at TCP er så kjent:
- TCP er tilkoblingsorientert protokoll, slik at påliteligheten er veldig høy.
- TCP kan kontrollere overbelastning av seg selv.
- TCP kan oppdage feil.
- TCP bruker flytkontrollprotokoll.
- TCP har forsinkelse av ACK-funksjoner.
- TCP har selektiv ACK-funksjon.
- TCP har windows calling-funksjon for forbedring av gjennomstrømningen.
Det er så mange andre funksjoner som gjør TCP så kjent.
Analyse av TCP:
Vi vil følge noen trinn for å generere TCP-rammer.
Trinn 1: Den enkle måten å generere TCP-pakker på er å få tilgang til et hvilket som helst HTTP-nettsted. Årsaken er at HTTP er en applikasjonslagsprotokoll og den bruker TCP som underliggende transportlagsprotokoll.
For å vite om HTTP, følg linken nedenfor
https: // linuxhint.com / http_wireshark /
Steg 2: Start Wireshark.
Trinn 3: Åpne lenken nedenfor i hvilken som helst nettleser.
http: // gaia.cs.umass.edu / wireshark-labs / alice.tekst
Trinn 4: Stopp Wireshark og sett TCP som filter.
Trinn 5: ANALYSE
Nå skal vi se TCP 3-veis håndtrykkpakker. Her er det enkle diagrammet.
Ramme 1: SYN [Synkronisering]
SYN er den første pakken som kommer fra klienten til serveren. I vårt tilfelle 192.168.1.6 er klienten [Systemet der vi åpnet nettleseren] og gaia.cs.umass.edu er serveren.
Her er noen viktige felt i SYN-rammen
SYN-ramme er nødvendig for å sende funksjonene til klienten til serveren.
Ramme 2: SYN + ACK [Synkronisering + bekreftelse]
SYN, ACK er den andre pakken som kommer fra serveren til klienten.
Her er noen viktige felt i SYN, ACK-ramme
SYN, ACK-ramme kreves for å sende funksjonene til serveren til klienten.
Nå har klient og server delt sine evner.
Ramme 3: ACK [Bekreftelse]
ACK er den tredje pakken som kommer fra klienten til serveren. Dette er i utgangspunktet en bekreftelse fra klient til server, og det er også en aksept av evner sendt av serveren.
Her er de viktige feltene for ACK.
La oss sjekke de viktige informasjonene som deles mellom klient og server:
KlientServer
Motta vindusstørrelse: 64240 byte Motta vindusstørrelse: 29200 byte
Maksimal segmentstørrelse: 1460 byte Maksimal segmentstørrelse: 1412 byte
SACK Tillatt: Ja SACK Tillatt: Ja
Vindusskala: 8 (multipliser med 256) Vindusskala: 7 (multipliser med 128)
Vi har lagt merke til at det er forskjeller i verdier. Hvis klient eller server godtar andres evner, er 3-veis håndtrykk vellykket.
TCP-overskrift:
Her er de viktige feltene i TCP-overskriften:
- Kildeport (16 bits): Dette er senderporten.
- Destinasjonsport (16 bits): Dette er mottaksporten.
- Sekvensnummer (32 bits):
- Hvis SYN-bit er satt [1], er dette initialt sekvensnummer.
- Hvis SYN-bit ikke er satt [0], er dette det akkumulerte sekvensnummeret til den første databyten i dette segmentet.
- Kvitteringsnummer (32 bits): Hvis ACK-flagget er satt, er verdien av dette feltet det neste sekvensnummeret som ACK-avsenderen forventer.
- Topplengde: Toppstørrelse kan variere fra 20 byte og maksimalt 60 byte.
- Flagg (9 bits):
… = Reservert: Ikke satt
… 0… = Nonce: Ikke satt
… 0… = Redusert overbelastningsvindu (CWR): Ikke angitt
… 0… = ECN-Echo: Ikke satt
… 0… = Haster: Ikke angitt
… 0… = Bekreftelse: Ikke angitt
… 0… = Trykk: Ikke satt
… 0… = Tilbakestill: Ikke angitt
… 1. = Syn: Sett
… 0 = Fin: Ikke satt
- Vindusstørrelse (16 bits): Dette er størrelsen på mottaksvinduet i byte.
- Kontrollsum (16 bits):
Det brukes feilkontroll av overskriften.
Eksempel: Kontrollsum: 0x436f- Hasterpeker (16 bits):
Dette er en forskyvning fra sekvensnummeret som indikerer den siste presserende databyen.
Eksempel: Hasterpeker: 0- Alternativer:
TCP-alternativ - Maksimal segmentstørrelse: 1460 byte
TCP-alternativ - NO-Operation (NOP)
TCP-alternativ - Vindusskala: 8 (multipliser med 256)
TCP-alternativ - SACK tillatt
Observasjon:
TCP-topptekst på SYN er 32 byte.
TCP-topptekst på SYN, ACK er 32 byte.
TCP-topptekststørrelse på ACK er 20 byte, da den ikke har alternativfelt.
TCP-data:
Her er skjermbildet med forklaring på TCP-data og TCP ACK. Her kan vi se TCP-forsinkelse ACK-funksjonen. Serveren har sendt tre TCP-datapakker til klienten, og klienten har sendt en forsinkelses-ACK for å fortelle serveren at den har mottatt alle de tre TCP-datapakkene. Derfor ser vi i TCP ACK [Pakke nummer 96 på skjermbilde] ACK = 14121, noe som betyr at klienten har mottatt til 14121 byte.
Henvisning:
For grunnleggende teori om TCP henvises
https: // no.wikipedia.org / wiki / Transmission_Control_Protocol