You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

TDAT2004 Datakommunikasjon med nettverksprogrammering

Kategori: Transportlaget - TCP

Oppgave 22: Etablere forbindelse

Karol Debik

<video kommer>


Innledning


Transmission Controll Protocol (TCP) er en sikker kommunikasjonsprotokoll i transportslaget i OSI modellen. TCP brukes til å sende datapakker mellom to kjørende prosesser, på to forskjellige datamaskiner, på internett. TCP er beskrevet i RFC 793 dokumentet.



Ønsket funksjonalitet


TCP er en protokoll som utveksler data i en klient-tjener prosedyre, hvor serveren venter på en kobling til en spesifikk socket fra klienten som initierer koblingen. TCP garanterer å overføre alle pakkene i riktig rekkefølge uten duplikater. Det medførerer at det må settes bufferplass til å sende større datapakker til og fra applikasjonslaget.


Virkemåte


For å etablere en forbindelse mellom to vertsdatamaskiner brukes det en prosedyre som heter «treveis håndtrykk».

Etablering av forbindelse: 

  1. Klienten sender et TCP segment med SYN (synchronize) flagget. ISN (Initial Sequence Number) er satt til en tilfeldig verdi (f.eks. 100). Et ACK (acknowledge) flagg er ikke satt fordi pakken inneholder ingen kvittering. Så er klienten satt til SYN-SENT modus.
  2. Etter å ha mottatt pakken fra klienten er satter tjeneren SYN-RECEIVED modus. Hvis tjeneren vil koble seg til klienten svarer den tilbake med SYN-flagget for å etablere en forbindelse. ISN-flagget er satt til f.eks. 300, mens ACK-flagget er satt til klientens ISN verdi + 1 for å vise at pakken fra klienten er mottatt ok (dvs. ISN = 101).

  3. Etter å ha mottatt SYN og ACK segmenter fra tjeneren, settes klienten til ESTABLISHED modus og sender  ACK-flagget med verdi 301 tilbake til tjeneren.

  4. Etter å ha mottatt ACK segmentet settes tjeneren til ESTABLISHED modus.

  5. Klineten kan nå sende data til tjeneren.

Treveis håndtrykk


For å avslutte en forbindelse brukes det en «fireveis håndtrykk». Både klienten og tjeneren kan initiere «fireveis håndtrykk».

Avslutning av en forbindelse:

  1. Initiatoren sender FIN (finish) flagget til motparten. Setter seg til FIN-WAIT-1 modus.

  2. Etter at mottakeren mottar FIN-flagget, settes den i CLOSE-WAIT modus og sender ACK og FIN segmenter til initiatoren. Etter det er mottakeren satt til LAST-ACK modus.

  3. Initiatoren etter å ha mottat ACK-flagget fra mottakeren setter seg til FIN-WAIT-2 modus, mens etter å ha fått FIN-flagget setter seg til TIME-WAIT modus og sender ACK-flagget til mottakeren. Initiatoren venter en viss stund før den avlsutter forbindelsen. I denne ventetiden er lokale porter utilgjengelige for nye forbindelser.

  4. Etter å ha fått ACK-flagget avslutter mottakeren forbindelsen.

 



Referanser


  1. https://tools.ietf.org/html/rfc793 (Hentet: 27. februar 2017)

  2. https://pl.wikipedia.org/wiki/Transmission_Control_Protocol#Nawi.C4.85zywanie_po.C5.82.C4.85czenia (Hentet: 27. februar 2017)  
  3. https://en.wikipedia.org/wiki/Transmission_Control_Protocol#CONNECTION-ESTABLISHMENT (Hentet: 27. februar 2017)  
  4. https://no.wikipedia.org/wiki/TCP#Opprettelse_av_en_forbindelse_.28treveis_h.C3.A5ndtrykk.29 (Hentet: 27. februar 2017)  
  5. Hallsteinsen, Ø. , Klefstad, B. og Skundberg, O. (2015) Innføring i datakommunikasjon. 2. utg. Gyldendal Akademisk og Stiftelsen TISIP, s. 70-80.

 

  • No labels