tcp-viesti lähetetään tietokenttään. TCP-protokolla

TCP-protokolla(TransmissionControlProtocol) on luotettava yhteyssuuntautunut protokollavaihtoehto UDP:lle, joka vastaa useimmista käyttäjien tiedonsiirroista TCP/IP-verkkojen kautta ja on jopa vaikuttanut koko protokollasarjan nimeen. RFC 793:ssa määritelty TCP-protokolla tarjoaa sovelluksille täyden valikoiman siirtopalveluita, mukaan lukien pakettien kuittauksen, virheiden seurannan ja korjauksen sekä vuonhallinnan.

TCP-protokolla on suunniteltu siirtämään suhteellisen suuria tietomääriä, joita ei tietenkään voida pakata yhteen pakettiin. Tiedot ovat yleensä kokonaisia ​​tiedostoja, jotka on jaettava useisiin datagrammeihin lähetystä varten. TCP-protokollan terminologiassa kuljetuskerrokselle toimitettua tietoa pidetään sekvenssinä, jonka protokolla jakaa segmenteiksi verkon kautta lähetettäväksi. Kuten UDP:ssä, segmentit pakataan sitten IP-tietosähkeiksi, jotka voivat kulkea reitin määränpäähänsä eri tavoilla. Siksi TCP antaa jokaiselle segmentille järjestysnumeron, jotta vastaanottava järjestelmä voi koota ne oikeaan järjestykseen.

Ennen kuin käyttäjätietojen lähetys TCP:tä käyttäen alkaa, molemmat järjestelmät vaihtavat viestejä yhteyden muodostamiseksi. Tämä varmistaa, että vastaanottava järjestelmä on toimintakuntoinen ja pystyy vastaanottamaan dataa. Kun yhteys on muodostettu ja tiedonsiirtoprosessi alkaa, vastaanottava järjestelmä lähettää ajoittain viestejä, jotka vahvistavat pakettien vastaanoton. Nämä viestit ilmoittavat lähettävälle järjestelmälle kadonneista paketeista ja antavat sille myös tiedon, jota käytetään siirtonopeuden valvontaan.

TCP-viestin muoto

TCP-otsikkokenttien toiminnot on kuvattu alla.

Lähdeportti (SourcePort), 2 tavua. Tunnistaa TCP-segmenttien kuljettaman tiedon luoneen prosessin käyttämän lähettävän järjestelmän portin numeron. Joissakin tapauksissa tämä voi olla kuvitteellinen numero portti, jonka asiakas on osoittanut erityisesti tätä tapahtumaa varten.

DestinationPort, 2 tavua. Ilmaisee kohdejärjestelmän portin numeron, johon TCP-segmenttitiedot tulee lähettää. Porttinumerot on lueteltu "AssignedNumbers"-asiakirjassa sekä sisään SERVICES-tiedosto jokaiseen TCP/1P-järjestelmään.

SequenceNumber, 4 tavua. Määrittää tietyn segmentin sijainnin suhteessa koko datasekvenssiin.

AcknowledgementNumber, 4 tavua. Määrittää segmentin suurimman tavumäärän yhdellä lisättynä, jonka vahvistava järjestelmä odottaa vastaanottavansa lähettäjältä. Käytetään yhdessä ACK-ohjausbitin kanssa.


Dataoffset (DataOffset), 4 bittiä. Määrittää TCP-otsikon pituuden 4-tavuisin sanoin (joka voi sisältää valintoja, jotka kasvattavat sen kokoa 60 tavuun).

Varattu, 6 bittiä. Omistettu myöhempään käyttöön.

Ohjausbitit, 6 bittiä. Sisältää kuusi 1-bittistä lippua, jotka suorittavat seuraavat toiminnot:

URG - osoittaa, että sekvenssi sisältää kiireellisiä tietoja ja aktivoi kiireellisyysilmaisinkentän;

ACK - toteaa, että viesti on vahvistus aiemmin vastaanotetuista tiedoista ja aktivoi vahvistusnumerokentän;

PSH - ohjeistaa vastaanottavaa järjestelmää lähettämään kaikki nykyiset sekvenssitiedot, jotka vastaanotetaan Tämä hetki, kohdeporttikentän tunnistama sovellus odottamatta jäljellä olevien fragmenttien saapumista;

RST - käskee vastaanottavaa järjestelmää hylkäämään kaikki tähän mennessä vastaanotetun nykyisen sekvenssin segmentit ja aloittamaan TCP-yhteyden muodostamisen uudelleen;

SYN - käytetään yhteydenmuodostusmenettelyn aikana synkronoimaan lähetetyn datan lukumäärä vuorovaikutuksessa olevien järjestelmien välillä;

FIN - ilmoittaa toiselle järjestelmälle, että tiedonsiirto on valmis ja yhteys tulee katkaista.

Ikkuna, 2 tavua. Toteuttaa TCP:n vuonohjausmekanismin (liukuva ikkuna) ilmoittamalla tavumäärän, jonka kohdejärjestelmä voi hyväksyä lähdejärjestelmästä.

Tarkistussumma, 2 tavua. Sisältää tarkistussummalaskelman tuloksen, jossa otetaan huomioon TCP-otsikko, tiedot sekä näennäisotsikko, joka koostuu lähde-IP-osoitteen, protokollan, IP-otsikon kohde-IP-osoitteen kentistä sekä koko TCP-sanoman pituuden. .

UrgentPointer, 2 tavua. Yhdessä URG-bitin kanssa käytettynä se määrittää sekvenssitiedot, joita vastaanottajan tulee pitää kiireellisinä.

Vaihtoehdot vaihteleva koko. Saattaa sisältää ylimääräistä konfigurointiparametreja TCP-yhteyttä varten sekä kohdistusbitit, jotka tarvitaan kentän koon saattamiseksi lähimpään 4 tavun kerrannaiseen. Mahdolliset vaihtoehdot on lueteltu alla.

Suurin koko segmentti (MaximumSegmentSize). Määrittää suurimman segmentin koon nykyinen järjestelmä voi vastaanottaa toisesta siihen liitetystä järjestelmästä.

Ikkunan skaalauskerroin. Käytetään kasvattamaan ikkunakentän kokoa 2 tavusta 4 tavuun.

Aikaleima. Käytetään datapakettien aikaleimien tallentamiseen, jotka vastaanottava järjestelmä palauttaa lähettäjälle vahvistusta varten. Näin lähettäjä voi mitata tietojen edestakaisen matka-ajan.

Data, muuttuva koko. Saattaa sisältää datasegmenttejä, jotka tulevat protokollapinon yläosasta protokollista Sovelluskerros. SYN-, ACK- ja FIN-paketeissa tämä kenttä jätetään tyhjäksi.

IPX/SPX: Tarjoaa kuljetuspalveluita käyttöjärjestelmä NovellNetWare, Novell loi oman protokollapinon, joka vastaanotti yleinen nimi Verkkokerroksen protokollan nimellä - IPX (InternetworkPacketExchange, Internetwork Packet Exchange). Analogisesti TCP/IP:n kanssa tätä pinoa kutsutaan joskus myös IPX/SPX:ksi. Tämän nimityksen toinen osa viittaa SPX:ään (SequencedPacketeXchange), joka on kuljetuskerroksessa toimiva protokolla. Toisin kuin TCP:n ja IP:n yhdistelmä, joka on kaikkialla TCP/IP-verkoissa ja on tarkoitettu ensisijaisesti toimittamiseen. suuria määriä IPX/SPX-kompleksi on suhteellisen harvinainen löydettävissä NetWare-verkoista.

IPX-protokollat ​​ovat monilta osin samanlaisia ​​kuin TCP/IP. Molemmat protokollapinot käyttävät verkkokerroksessa epäluotettavia yhteydettömiä protokollia (IPX ja IP vastaavasti) useiden protokollien dataa sisältävien datagrammien kuljettamiseen. ylemmät tasot, joka tarjoaa laajan valikoiman palveluita erilaisia ​​sovelluksia. IPX:n tavoin IPX vastaa datagrammien osoittamisesta ja niiden reitittämisestä toiseen verkkoon.

Toisin kuin TCP/IP, IPX-protokollat ​​on kuitenkin suunniteltu käytettäviksi paikalliset verkot, eivätkä tue Internet-protokollille ominaista lähes rajatonta skaalautuvuutta. IPX:llä ei ole samaa itsenäistä osoitejärjestelmää kuin IP-protokollalla. Järjestelmät sisään NetWare-verkot tunnistaa muut järjestelmät piiriin kytkettyjen laitteisto-osoitteiden avulla Verkkosovittimet yhdessä järjestelmänvalvojan (tai käyttöjärjestelmän) käyttöjärjestelmän asennuksen aikana antaman verkko-osoitteen kanssa.

IPX-datagrammit kuljetetaan standardiprotokollakehyksissä Linkkitaso aivan kuten IP-datagrammit. IPX-protokollalla ei ole omia Link Layer -protokollia. Useimmissa verkoissa IPX-tiedot on kuitenkin kapseloitu Ethernet-kehykset tai TokenRing.

IPX-protokolla

IPX perustuu IDP (InternetworkDatagramPacket) -protokollaan, joka on suunniteltu verkkopalvelut Xerox (XNS, XeroxNetworkServices). IPX tarjoaa perusyhteydettömiä siirtopalveluita Internet-järjestelmien välillä yleislähetyksen ja yksisuuntaisen tiedonsiirron avulla. Suurin osa normaalista liikenteestä NetWare-palvelinten välillä tai asiakkaiden ja palvelimien välillä kulkee IPX-datagrammien kautta.

IPX-datagrammin otsikko on 30 tavua pitkä (vertailun vuoksi IP-otsikko on 20 tavua). Otsikkokenttien tarkoitus on lueteltu alla.

Tarkistussumma, 2 tavua. SISÄÄN alkuperäinen otsikko IDP Tämä kenttä sisältää datagrammin CRC-arvon. Koska Link Layer -protokollat ​​itse suorittavat tarkistussumman tarkistuksen, tämä toiminto datagrammeja käsiteltäessä IPX:ää ei käytetä ja kenttä sisältää aina heksadesimaaliarvo ffff.

Pituus, 2 tavua. Määrittää datagrammin koon tavuina, mukaan lukien IPX-otsikko ja tietokenttä.

Toimituksen ohjaus (TransportControl), 1 tavu. Tämä kenttä tunnetaan myös nimellä hopcount. Se tallentaa reitittimien määrän, jonka datagrammi on kulkenut matkallaan määränpäähänsä. Lähettävä järjestelmä nollaa sen nollaan, ja kukin reitittimistä datagrammia prosessoidessaan kasvattaa laskurin arvoa yhdellä. Heti kun siirtoreitittimien määrä saavuttaa 16, viimeinen hylkää datagrammin.

Pakettityyppi (Packet Type), 1 tavu. Tunnistaa ylemmän kerroksen palvelun tai protokollan, joka loi datagrammin kuljettaman tiedon. Käytetään seuraavia arvoja:

0 - ei määritelty;

1 - RoutingInformationProtocol (RIP, reititystietoprotokolla);

4 - ServiceAdvertisingProtocol (SAP, palveluilmoitusprotokolla);

5 - SequencedPacketExchange (SPX, peräkkäinen pakettien vaihto);

17 - NetWare Core Protocol (NCP, NetWare-pääprotokolla).

Kohdeverkko-osoite, 4 tavua. Osoittaa verkon, jossa kohdejärjestelmä sijaitsee, sisältää järjestelmänvalvojan tai käyttöjärjestelmän NetWaren asennuksen aikana antaman arvon.

DestinationNodeAddress, 6 tavua. Määrittää sen tietokoneen verkkoliitännän, johon tiedot tulee toimittaa. Se on Link Layer -protokollan laitteistoosoite. Lähetä viestejä lähetetään heksadesimaaliosoitteella ffffffffffffff.

DestinationSocket, 2 tavua. Vastaa vastaanottavassa järjestelmässä käynnissä olevan prosessin tunnistamisesta, jolle datagrammin sisältämät tiedot on todella tarkoitettu. Käytetään yhtä seuraavista arvoista:

0451 - NetWare Core Protocol;

0452 - Palvelumainosprotokolla;

0453 - Routing Information Protocol;

0455 - NetBIOS;

0456 - diagnostiikkapaketti;

0457 - serialisointipaketti;

4000-6000 - palvelinprosesseille varatut pistorasiat;

9000 - NetWareLinkServicesProtocol;

9004 - IPXWAN-protokolla.

Lähdeverkko-osoite (SourceNetworkAddress), 4 tavua. Tunnistaa verkon, jossa datagrammin lähettänyt järjestelmä sijaitsee. Käyttää järjestelmänvalvojan tai käyttöjärjestelmän NetWaren asennuksen aikana antamaa arvoa.

Lähdesolmun osoite (SourceNodeAddress), 6 tavua. Sisältää datagrammin lähettäneen tietokoneen verkkoliitännän Link Layer -protokollan laitteisto-osoitteen.

Lähdeliitäntä (SourceSocket), 2 tavua. Määrittää käynnissä olevan prosessin paikallinen järjestelmä, joka loi pakettidatan. Samat arvot kuin kohdepistokekentässä ovat voimassa.

Data, vaihteleva pituus. Korkeamman kerroksen protokollan tuottamat tiedot.

Koska IPX on yhteydetön protokolla, se turvautuu ylemmän kerroksen protokolliin varmistaakseen, että tiedot on toimitettu oikein. NetWare-asiakkaat kuitenkin aktivoivat järjestelmäpyynnön aikakatkaisukellon, jonka umpeuduttua ajastin pakottaa heidät lähettämään IPX-datagrammin uudelleen, jos vastausta ei saada tietyn ajan kuluessa.

TCP-protokolla

TCP:tä tai Transmission Control Protocolia käytetään luotettavana protokollana, joka mahdollistaa viestinnän toisiinsa yhdistetyn tietokoneverkon kautta. TCP varmistaa, että tiedot toimitetaan määränpäähänsä ja oikein.

TCP on yhteyssuuntautunut protokolla, joka on suunniteltu tarjoamaan luotettavaa tiedonsiirtoa joko samassa tietokoneessa tai käynnissä olevien prosessien välillä erilaisia ​​tietokoneita. Termi "yhteyssuuntautunut" tarkoittaa, että kahden prosessin tai sovelluksen on muodostettava TCP-yhteys ennen tietojen vaihtamista. Tässä TCP eroaa UDP:stä, joka on yhteydetön protokolla, joka sallii tietojen lähettämisen määräämättömälle määrälle asiakkaita.

Kun sovellus lähettää tietoja TCP:n avulla, se siirtyy protokollapinossa alaspäin. Data kulkee kaikkien kerrosten läpi ja lähetetään lopulta verkon läpi bittivirtana. Jokainen TCP/IP-protokollapaketin kerros lisää tietoja tiedoista otsikoiden muodossa.

Kun paketti saapuu verkon päätesolmuun, se kulkee jälleen kaikkien kerrosten läpi alhaalta ylös. Jokainen kerros tarkistaa tiedot erottamalla otsikkotietonsa paketista, ja lopulta tiedot saavuttavat palvelinsovellus samassa muodossa, jossa he jättivät asiakashakemuksen:

Ennen kuin tarkastelet, kuinka TCP muodostaa yhteyden toiseen TCP-isäntään, tässä on muutamia termejä, jotka on määriteltävä:

Segmentti

Tietoa, jonka TCP lähettää IP:lle, kutsutaan TCP-segmentiksi.

Datagrammi

Tietoa, jonka IP lähettää verkkoliitäntäkerrokseen, kutsutaan IP-datagrammiksi.

Sarjanumero

Jokaiselle yhteyden kautta lähetetylle TCP-segmentille on määritetty numero, jota kutsutaan "sekvenssinumeroksi". Sitä käytetään varmistamaan, että tiedot saapuvat oikeassa järjestyksessä.

Ymmärtääksesi, miten TCP toimii, katsotaanpa nopeasti TCP-otsikkorakennetta:

TCP käyttää sekvenssi- ja kuittausnumeroita varmistaakseen, että kaikki tiedot saapuvat oikeassa järjestyksessä, ja ohjausbitit sisältävät erilaisia ​​lippuja, jotka osoittavat datan tilan. Tällaisia ​​ohjausbittejä on kuusi (yleensä kolmikirjaiminen lyhenne):

    URG - osoittaa, että segmentti sisältää kiireellisiä tietoja.

    ACK - osoittaa, että segmentti sisältää kuittausnumeron.

    PSH - ilmaisee, että tiedot on välitettävä vastaanottavalle käyttäjälle.

    RST - nollaa yhteyden.

    SYN - käytetään järjestysnumeroiden synkronointiin.

    FIN - osoittaa tietojen loppumisen.

Yhteyden muodostamiseen TCP käyttää prosessia nimeltä "Kolmivaiheinen kädenpuristus". Kuten nimestä voi päätellä, tämä prosessi sisältää kolme vaihetta:

    Asiakas aloittaa tiedonsiirron palvelimen kanssa lähettämällä segmentin, jossa on SYN-bitti asetettu. Tämä segmentti sisältää alkukirjaimen sarjanumero asiakas.

    Palvelin vastaa lähettämällä segmentin kanssa bitit asetettu SYN ja ACK. Tämä segmentti sisältää palvelimen alkuperäisen järjestysnumeron (ei liity asiakkaan järjestysnumeroon) ja kuittausnumeron, joka on yhtä suurempi kuin asiakkaan järjestysnumero (eli yhtä suuri kuin seuraava asiakkaalta odotettu järjestysnumero).

    Asiakkaan TÄYTYY kuitata tämä segmentti lähettämällä takaisin segmentti, jossa on ACK-bitti asetettu. Kuittausnumero on yksi suurempi kuin palvelimen järjestysnumero, ja järjestysnumero on yhtä suuri kuin palvelimen kuittausnumero (eli yksi suurempi kuin asiakkaan alkuperäinen järjestysnumero).

Nyt kun meillä on perusymmärrys siitä, kuinka TCP muodostaa yhteyksiä, katsotaanpa hieman tarkemmin muutamaa TCP-toimintoa ymmärtääksemme, kuinka TCP lähettää tietoja.

TCP lähettää tiedot osissa, joita kutsutaan segmenteiksi. Sen varmistamiseksi, että segmentit vastaanotetaan oikein ja oikeassa järjestyksessä, jokaiselle segmentille annetaan järjestysnumero. Vastaanottaja lähettää segmentin vastaanottokuittauksen. Jos vahvistusta ei saada ennen aikakatkaisuajan umpeutumista, tiedot lähetetään uudelleen. Jokaiselle datan oktetille (kahdeksalle bitille) annetaan järjestysnumero. Segmentin järjestysnumero on yhtä suuri kuin segmentin ensimmäisen dataoktetin järjestysnumero, ja tämä numero lähetetään segmentin TCP-otsikossa.

TCP käyttää järjestysnumeroita varmistaakseen, ettei kaksoistietoja lähetetä vastaanottavaan sovellukseen ja että tiedot toimitetaan oikeassa järjestyksessä. TCP-otsikko sisältää tarkistussumman, jolla varmistetaan, että tiedot ovat oikein toimitettaessa. Jos segmentti vastaanotetaan väärällä tarkistussummalla, se yksinkertaisesti hylätään eikä kuittausta lähetetä. Tämä tarkoittaa, että kun aikakatkaisuarvo vanhenee, lähettäjä lähettää segmentin uudelleen.

TCP hallitsee sille lähetettävän tiedon määrää palauttamalla "ikkunan koon" jokaisen kuittauksen yhteydessä. "Ikkuna" on tietomäärä, jonka vastaanottaja voi hyväksyä. Sovellusohjelman ja verkkotietovirran välissä on datapuskuri. "Ikkunan koko" on itse asiassa puskurin koon ja siihen tallennetun tiedon määrän välinen ero. Tämä numero lähetetään otsikkoon tiedoksi etäisäntä nykyisestä ikkunan koosta. Tätä tekniikkaa kutsutaan "Liukuikkuna".

Kuljetuskerros

Kuljetuskerroksen tehtävänä on siirtää tietoa eri sovellusten välillä, jotka toimivat kaikissa verkon solmuissa. Kun paketti on toimitettu IP:n kautta vastaanottavalle tietokoneelle, tiedot on lähetettävä erityiselle vastaanottajaprosessille. Jokainen tietokone voi suorittaa useita prosesseja, ja sovelluksella voi olla useita sisääntulopisteitä, jotka toimivat datapakettien kohteena.

Käyttöjärjestelmän kuljetuskerrokseen saapuvat paketit järjestetään useisiin jonoihin tulopisteissä erilaisia ​​sovelluksia. TCP/IP-terminologiassa näitä tulopisteitä kutsutaan porteiksi.

Lähetyksen ohjausprotokolla

Lähetyksen ohjausprotokolla(TCP) (Transmission Control Protocol) on TCP/IP-standardin pakollinen protokolla, joka on määritelty RFC 793:ssa "Transmission Control Protocol (TCP)".

TCP on siirtokerroksen protokolla, joka mahdollistaa tietovirran kuljetuksen (lähetyksen), jossa on ensin muodostettava yhteys, mikä takaa luottamus vastaanotetun tiedon eheyteen, ja suorittaa myös toistuvan datapyynnön datan katoamisen sattuessa. tai korruptiota. Lisäksi TCP-protokolla valvoo päällekkäisiä paketteja ja tuhoaa pakettien kaksoiskappaleet, jos se havaitaan.

Toisin kuin UDP-protokolla, se takaa lähetetyn tiedon eheyden ja lähettäjän vahvistuksen siirron tuloksista. Käytetään tiedostojen siirroissa, joissa yhden paketin katoaminen voi vahingoittaa koko tiedostoa.

TCP saavuttaa luotettavuutensa seuraavilla tavoilla:

  • Sovelluksen tiedot on jaettu tietynkokoisiin lohkoihin, jotka lähetetään.
  • Kun TCP lähettää segmentin, se asettaa ajastimen odottamaan, että segmentin kuittaus saapuu etäpäästä. Jos kuittausta ei vastaanoteta ajan kuluttua, segmentti lähetetään uudelleen.
  • Kun TCP vastaanottaa tietoja yhteyden etäpuolelta, se lähettää kuittauksen. Tätä kuittausta ei lähetetä heti, vaan se yleensä viivästyy sekunnin murto-osan.
  • TCP laskee tarkistussumman otsikolleen ja tiedoilleen. Tämä tarkistussumma, lasketaan yhteyden päistä, jonka tarkoituksena on havaita tiedon muutos lähetyksen aikana. Jos segmentti saapuu väärällä tarkistussummalla, TCP hylkää sen eikä kuittausta synny. (Lähettäjän odotetaan aikakatkaisun ja lähettävän uudelleen.)
  • Koska TCP-segmentit lähetetään IP-datagrammeina ja IP-datagrammit voivat saapua satunnaisesti, TCP-segmentit voivat saapua myös satunnaisesti. Tietojen vastaanottamisen jälkeen TCP voi järjestellä ne uudelleen tarpeen mukaan, jotta sovellus vastaanottaa tiedot oikeassa järjestyksessä.
  • Koska IP-datagrammi voidaan monistaa, vastaanottavan TCP:n on hylättävä monistetut tiedot.
  • TCP tarjoaa virtauksen ohjauksen. TCP-yhteyden jokaisella puolella on oma puskuritila. Vastaanottopään TCP sallii etäpään lähettää dataa vain, jos vastaanottaja voi sovittaa sen puskuriin. Tämä estää hitaita isäntiä täyttämästä puskurinsa nopeilla isännillä.

  • Järjestysnumerolla on kaksi tarkoitusta:
    • Jos SYN-lippu on asetettu, niin tämä alkuarvo järjestysnumerot ovat ISN (Initial Sequence Number), ja ensimmäisen datatavun, joka lähetetään seuraavassa paketissa, järjestysnumero on ISN + 1.
    • Muussa tapauksessa, jos SYN ei ole asetettu, ensimmäinen tavu dataa lähetetään tämä paketti, jolla on tämä järjestysnumero.
  • Kuittausnumero - Jos ACK-lippu on asetettu, tämä kenttä sisältää järjestysnumeron, jonka vastaanottaja odottaa seuraavan kerran. Merkitsee tämän osan vastaanottovahvistukseksi.
  • Otsikon pituus määritetään 32-bittisillä sanoilla.
  • Ikkunan koko on tavumäärä, jonka vastaanottaja on valmis vastaanottamaan ilman vahvistusta.
  • Tarkistussumma - sisältää pseudo-otsikon, otsikon ja tiedot.
  • Kiireellisyyden ilmaisin - osoittaa viimeisen tavun kiireellisistä tiedoista, joihin on vastattava välittömästi.
  • URG - kiireellisyyslippu, sisältää "Kiireellisyysilmaisin"-kentän, jos =0, kenttä jätetään huomioimatta.
  • ACK - vahvistuslippu, sisältää "Kuittausnumero"-kentän, jos =0, kenttä ohitetaan.
  • PSH - lippu vaatii push-toiminnon, TCP-moduulin on kiireesti siirrettävä paketti ohjelmaan.
  • RST - yhteyden keskeytyslippu, käytetään yhteyden kieltämiseen
  • SYN - järjestysnumeron synkronointilippu, käytetään yhteyden muodostamisessa.
  • FIN - lähetyksen päättymisen lippu lähettäjän puolelta

Katsotaanpa otsikkorakennetta TCP käyttämällä verkko-analysaattori Wireshark:


TCP-portit

Koska useita ohjelmia voi olla käynnissä samassa tietokoneessa, toimittamaan TCP-paketti erityinen ohjelma, käytetään kunkin ohjelman yksilöllistä tunnistetta tai porttinumeroa.

Porttinumero on ehdollinen 16-bittinen luku väliltä 1 - 65535, joka osoittaa, mille ohjelmalle paketti on tarkoitettu.

TCP-portit käyttää tietty portti ohjelmat TCP (Transmission Control Protocol) -protokollalla lähetetyn tiedon toimittamiseen. TCP-portit ovat monimutkaisempia ja toimivat eri tavalla kuin UDP-portit. Vaikka UDP-portti toimii yksittäisenä viestijonona ja UDP-yhteyden sisääntulopisteenä, kaikkien TCP-yhteyksien lopullinen sisääntulopiste on yksilöllinen yhteys. Jokainen TCP-yhteys tunnistetaan yksilöllisesti kahdella tulopisteellä.

Jokainen yksittäinen TCP-palvelinportti voi tarjota jaetun pääsyn useille yhteyksille, koska kaikki TCP-yhteydet tunnistetaan kahdella arvolla: IP-osoite ja TCP-portti(pistorasia).

Kaikki TCP-porttinumerot, jotka ovat alle 1024, on varattu ja rekisteröity Internet Assigned Numbers Authoritylle (IANA).

UDP- ja TCP-porttien numerot eivät mene päällekkäin.

TCP-ohjelmat käyttävät varattuja tai tunnettuja porttinumeroita, kuten seuraavassa kuvassa näkyy.

TCP-yhteyden muodostaminen

Katsotaan nyt kuinka TCP-yhteydet muodostetaan. Oletetaan, että yhdessä isännässä käynnissä oleva prosessi haluaa muodostaa yhteyden toiseen prosessiin toisessa isännässä. Muista, että isäntä, joka aloittaa yhteyden, kutsutaan "asiakkaaksi", kun taas toista isäntä kutsutaan "palvelimeksi".

Ennen tietojen lähettämistä osapuolten on muodostettava yhteys TCP-protokollan mukaan. Yhteys muodostetaan kolmessa vaiheessa (TCP "triple handshake" -prosessi).

  • Pyytäjä (yleensä asiakas) lähettää SYN-segmentin, joka osoittaa sen palvelimen portin numeron, johon asiakas haluaa muodostaa yhteyden, ja asiakkaan alkuperäisen järjestysnumeron (ISN).
  • Palvelin vastaa SYN-segmentillä, joka sisältää palvelimen alkuperäisen järjestysnumeron. Palvelin myös kuittaa asiakkaan SYN:n saapumisen ACK:lla (ISN + 1). Yhtä SYN:ää kohti käytetään yhtä järjestysnumeroa.
  • Asiakkaan tulee kuitata SYN:n saapuminen palvelimelta sen SYN-segmenteillä, jotka sisältävät asiakkaan alkuperäisen järjestysnumeron (ISN+1) ja käyttämällä ACK:ta (ISN+1). SYN-bitti on asetettu arvoon 0, koska yhteys on muodostettu.

Kun TCP-yhteys on muodostettu, nämä kaksi isäntäkonetta voivat lähettää tietoja toisilleen, koska TCP-yhteys on kaksisuuntainen, ne voivat lähettää tietoja samanaikaisesti.

Kuljetuskerroksen protokollat ​​on suunniteltu tarjoamaan suoraa tiedonvaihto kahden välillä käyttäjän prosesseja. Kuljetuskerroksen protokollia on kahta tyyppiä: jakoprotokollat ​​ja jakamattomat datagrammien toimitusprotokollat.

Segmentointi kuljetuskerroksen protokollat, osio Alkuperäinen viesti siirtokerroksen tietolohkoihin - segmentteihin.

Datagrammin toimitusprotokollat ​​eivät segmentoi viestiä ja lähetä sitä yhtenä kappaleena, jota kutsutaan "datagrammiksi". Tässä tapauksessa yhteyksien muodostamis- ja katkaisutoimintoja sekä virtauksen ohjausta ei tarvita. Datagrammien toimitusprotokollat ​​ovat yksinkertaisia ​​toteuttaa, mutta ne eivät kuitenkaan tarjoa taattua ja luotettavaa viestien toimitusta.

Kahta protokollaa voidaan käyttää siirtokerroksen protokollana Internetissä:

  • UDP User Datagram Protocol
  • TCP Transmission Control Protocol

Prosessien tunnistaminen kuljetuskerroksessa

Organisaatiota varten tiedon vuorovaikutusta päällä kuljetuskerros on täsmennettävä verkko-osoite tilaaja- ja prosessiportin numero. SISÄÄN tässä tapauksessa portti on virtuaalinen siirtokerroksen rajapinta. Käyttäjäprosessien vuorovaikutus porttien kanssa voidaan suorittaa erilaisten järjestelmien mukaisesti:

  • Prosessin synkronointi
  • Saapuvien tietojen puskurointi

Ensimmäistä mallia käytettäessä tiedot tulevat osoitteesta ulkoinen järjestelmä porttiin aiheuttaa vastaavan prosessin suorittamisen keskeytyksen. Tallennus- ja välityspuskurien käyttö jokaiselle portille mahdollistaa asynkronisen viestinnän portin kanssa.

Luettelo osoitetuista porttinumeroista on kohdassa IETF STD 2

Kuljetusprotokolla UDP

UDP-protokollan periaatteiden kuvaus on annettu RFC 768:ssa. IP-paketteja käytetään UDP-sanomien lähettämiseen. UDP-viestit sijoitetaan tässä tapauksessa niitä kuljettavan paketin tietokenttään.

UDP-viestin muoto

UDP-datagrammit ovat vaihtelevan pituisia ja koostuvat UDP-otsikkoviestistä ja itse UDP-tietosanomasta. Kuvassa on esitetty UDP-sanoman otsikon rakenne.

UDP DESTINATION PORT -kenttä

Tämän kentän tulee sisältää sen prosessin portin numero, jolle tämä viesti on tarkoitettu.

UDP SOURCE PORT -kenttä

Tämä kenttä voi sisältää lähteenä olevan prosessin porttinumeron tästä viestistä. Tämä kenttä muodostuu, jos informaatiovuorovaikutuksen luonteeseen liittyy vastauksen muodostus.

UDP-VIESTIN PITUUS -kenttä

UDP MRSSAGE LENGTH -kenttä sisältää UDP-viestin pituuden tavuina ilmaistuna. Viestin vähimmäispituus on 8 tavua ja se koostuu yhdestä otsikosta.

UDP-LÄHDEPORTTI UDP DESTINATION PORT
UDP-VIESTIN PITUUS UDP-TARKISTUSSUMA
TIEDOT

UDP TARKISTUSsumma -kenttä

Tämä kenttä voi sisältää viestin tarkistussumman. Jos tarkistussumma luodaan, se on laskettava ottaen huomioon UDP-pseudootsikko, joka ei ole osa datagrammia, vaan osa IP-paketista ja sisältää osoitteita. verkkokerros lähde ja kohdeasema.

UDP-protokollan käyttäminen

UDP-protokolla tarjoaa takaamattoman viestien toimituksen Internetissä. Tätä protokollaa voidaan käyttää sovelluksissa, jotka joko eivät tarvitse tätä laatua tai tarjoavat taatun toimituksen muilla tavoilla. Esimerkkejä UDP-protokollaa käyttävistä sovelluksista ovat TELNET ja TFTP.

Transport Protocol TCP

TCP-protokollaa käytetään luotettavan tiedonvaihdon tarjoamiseen siirtokerroksessa sisään Internet-verkot. Protokollan ensimmäinen kuvaus on RFC 793:ssa.

TCP-tiedonvaihdon toteutuksen piirteet

On olemassa useita syitä, jotka voivat estää verkossa lähetettävää pakettia saavuttamasta onnistuneesti kohdeasemaansa. Näin ollen, ellei erityisiä menetelmiä käytetä taatun toimituksen varmistamiseksi, vastaanotettu viesti voi poiketa merkittävästi lähetetystä viestistä.

Luotettava tiedonvaihto sisältää seuraavat mahdollisuudet:

  • Suoratoiston vaihto
  • Virtuaaliyhteyksien käyttö
  • Puskuroitu tiedonsiirto
  • Strukturoimaton virtaus
  • Täysi kaksipuolinen viestintä

Suoratoiston vaihto

Luotettava siirtoyhteys mahdollistaa tällaisen tiedon vuorovaikutuksen muodon, kun vastaanottaja vastaanottaa täysin saman tavusarjan, jonka lähettäjä on lähettänyt.

Virtuaaliyhteyksien käyttö

Luotettava tiedonvaihto kuljetuskerroksessa voidaan tulkita virtuaalisen loogisen yhteyden avulla. Alkuvaiheessa toinen kommunikoivista osapuolista aloittaa yhteyden muodostamisen käyttäen tarvittaessa todennusmenettelyjä. Muodostetun yhteyden kautta tapahtuvassa tiedonvaihdossa molemmat osapuolet valvovat sen laatua ja jos tiedonsiirrossa ilmenee ongelmia, käynnistävät yhteyden katkaisun ja generoivat asianmukaisia ​​viestejä ylemmän tason protokollille.

Puskuroitu tiedonsiirto

Puskurien käyttö mahdollistaa tiedonsiirron nopeuden koordinoinnin tiedonsiirtokanavassa käyttäjäsovelluksen tiedonsiirtonopeuden kanssa.

Vastatakseen aikaviiveille herkän liikenteen toimitustarpeeseen puskurin lisäksi voidaan käyttää ylimääräistä "työntömekanismia" - mäntää. Tällä mekanismilla varmistetaan, että puskurin sisältö siirretään sillä hetkellä, kun se vastaanottaa aikaviiveille herkkää dataa.

Menetelmät luotettavan tiedon vuorovaikutuksen varmistamiseksi TCP:ssä.

Viestien taatun toimituksen varmistamiseksi TCP-protokolla käyttää positiivista kuittausta uudelleenlähetyksen kanssa. Tyypillisesti tätä menetelmää käytettäessä tiedon vastaanottaja lähettää erityisen ACK-signaalin vahvistaakseen sen vastaanottamisen. Tietojenvaihdon jatkaminen voidaan suorittaa vain, jos lähettäjä vastaanottaa tämän vahvistuksen.

Yksinkertainen kuittausmenettely

Lähettävä puoli keskeyttää seuraavan segmentin lähetyksen, kunnes se vastaanottaa vahvistuksen edellisen segmentin vastaanottamisesta. Odotusväli asetetaan yhtä suureksi kuin uudelleenlähetyksen viivearvo – uudelleenlähetysajastin. Jos lähetetyn segmentin vastaanottokuittausta ei vastaanoteta tämän aikavälin aikana, segmentti lähetetään uudelleen.

Kädenpuristus liukuvalla ikkunalla

Yksinkertaisen kättelymenettelyn käyttö ei takaa riittävää tehokkuutta tiedonsiirtokanavien kaistanleveyden käytössä. Ainakin puolet ajasta järjestelmät odottavat kuittauksen saamista. Tässä mielessä tehokkaampi on liukuvan ikkunan kättelymenettely, jonka avulla lähettävä puoli voi lähettää useita viestisegmenttejä odottamatta vastaanottokuittausta.

Segmenttien enimmäismäärä, jonka lähettävä osapuoli voi lähettää ennen kuin vastaanottaa kuittauksen ensimmäisestä, kutsutaan IKKUNAksi.

Tätä mekanismia käytettäessä vastaanottava osapuoli voi lähettää kuittauksen useiden segmenttien vastaanottamisesta kerralla.

TCP-virtauksen ohjausmenettelyt

TCP-protokolla toimii datalla, joka saapuu tavuvirtana, joka on ryhmitelty segmentteihin. Jokaisen segmentin lähettämiseen käytetään erillistä datagrammia.

TCP käyttää edellisessä kappaleessa kuvattua liukuikkunamenetelmää kahden toiminnon tarjoamiseen:

  • Tiedonsiirtonopeuden ohjaus
  • Varmistetaan siirrettyjen tietojen luotettava toimitus

Liukuikkunamenettely TCP-protokollassa on toteutettu suhteessa tavuihin. Jokaiselle syöttövirran tavulle on määritetty järjestysnumero. Kolmea osoitinta käytetään ohjaamaan siirtoprosessia.

Ensimmäinen osoittaa rajan viimeisen lähetetyn ja kuitatun tavun ja ensimmäisen lähetetyn tavun välillä, jota ei kuitattu.

Toinen osoittaa rajan viimeisen lähetetyn tavun, jolle ei ole vielä vastaanotettu kuittausta, ja ensimmäisen tavun välillä, joka voidaan lähettää ennen kuin vastaanotetaan kuittaus edellisistä lähetetyistä tavuista.

Kolmas osoittaa rajan viimeisen tavun, joka voidaan lähettää ennen kuin vastaanotetaan kuittaus edellisistä lähetetyistä tavuista, ja muun tietovirran välillä.

Vuonohjausmenettelyyn kuuluu tiedonsiirtonopeuden sovittaminen lähetyskanavan kapasiteetin kanssa.

Vuon ohjaamiseksi TCP tarjoaa mahdollisuuden muuttaa ikkunan kokoa. Jokainen vahvistusviesti sisältää esitetyn ikkunakoon arvon - (ikkunamainos), joka on yleinen tapaus määrittää puskurin koon, jota tällä hetkellä voidaan käyttää tiedon vastaanottamiseen.

Liukuvan ikkunan käyttö tiedonkulun ohjaamiseen tekee tarpeetonta käyttöä lisämekanismeja ylivuodon hallitsemiseksi.

TCP-protokollan käytännön toteutuksen piirteet

Suboptimaalinen ikkuna-oireyhtymä

Käytettäessä TCP-protokollaa linjoilla, joiden kaistanleveys oli erilainen eri suuntiin, käyttäjät saattoivat havaita tilanteen, jota kutsuttiin ei-optimaalisen ikkunan oireyhtymäksi - silly window -oireyhtymä - SWS. Tämä tilanne jolle on ominaista se, että yksi vuorovaikutuksessa olevista sovelluksista "A" voi lähettää dataa merkittävästi suurempi nopeus, kuin toinen - "B". Jos osapuoli B alun perin asetti ikkunan koon puskurinsa kokoiseksi, voi hyvinkin olla, että osapuoli A täyttää koko puskurin ennen kuin vastaanottaa ensimmäisen ikkunan koon muutosilmoituksen. Kun lähetykselle asetettu tavuraja on käytetty loppuun, puoli "A" siirtyy vahvistustilaan. Kun puoli B alkaa käsitellä saapuvaa dataa, se pystyy vapauttamaan osan puskurista ja lähettämään ilmoituksen vastaavasta vastaanottoikkunan koon muutoksesta. Sivu "A" täyttää nopeasti puskurissa olevan vapaan tilan ja palaa valmiustilaan. Epämiellyttävin seuraus tästä tilanteesta on, että tiedonsiirtokanavaa suunnassa "A" - "B" käytetään erittäin tehottomasti, koska TCP-segmenttejä käytetään pienten tietomäärien (enintään 1 tavu) siirtämiseen. Hyötykuorman ja palveluinformaation osuuksien suhde on tässä tapauksessa erittäin valitettava. SWS:n esiintymisen välttämiseksi TCP-protokollan käytännön toteutuksessa käytetään useita erilaisia ​​menetelmiä.

Tapoja estää SWS:n näkyminen vastaanottavalla puolella

SWS:n estämiseksi vastaanottopään tarvitsee lähettää vain esitykset suuria muutoksia ikkunoiden koot. Tämä tarkoittaa, että ACK-viestiä uudella ikkunakoolla ei lähetetä heti, kun syöttöpuskurissa on vapaata tilaa, vaan vasta tämän koon jälkeen. Vapaa tila riittää vastaanottamaan vähimmäismäärän lähetettyä tietoa. Esimerkiksi puolet vastaanottopuskurin tilavuudesta voidaan käyttää sellaisena minimitilavuutena. Jotkut TCP-toteutukset voivat myös käyttää ikkunan kokoa esityksenä enimmäispituus lähetetty segmentti.

Toinen menetelmä, jota voidaan käyttää myös vastaanottopäässä estämään SWS-ilmiön esiintyminen, on kuittausviivemenettely. Tämä menetelmä on melko yksinkertainen toteuttaa ja samalla melko tehokas. Itse asiassa vastaus viivästyy jonkin aikaa vakioaika, mahdollistaa SWS:n välttämisen ja samalla tehostaa tiedonsiirtokanavan käyttöä - koska vain yksi kuittaus generoidaan kaikille segmenteille, jotka saapuvat vastaanottimeen viivejakson aikana. Standardissa suositellaan kiinteän kuittausviiveen käyttöä SWS:n estämiseksi. Huomaa kuitenkin, että liian pitkän viiveajan valitseminen voi johtaa segmentin uudelleenlähetykseen.

Tapoja estää SWS:n näkyminen lähetyspuolella

SWS:n esiintymisen estämiseksi lähettävä osapuoli voi käyttää Nagle-algoritmia. Tämän algoritmin ydin on, että ensimmäinen tieto välitetään välittömästi puskuriin saapumisen jälkeen, kaikki seuraavat odottavat, kunnes puskuriin on kertynyt riittävä määrä dataa lähetystä varten.

Edellinen luento
Ulkoiset reititysprotokollat

Kuljetuksen tasolla TCP/IP-pino Käytössä on kaksi pääprotokollaa: TCP Ja UDP. Yleiskatsaus Voit oppia lisää kuljetuskerroksen toiminnoista vastaavasta artikkelista. SISÄÄN tämä teksti Puhumme TCP:stä (Transmission Control Protocol), jota käytetään varmistamaan luotettava tiedon toimitus kuljetuskerroksella.

On olemassa yleisiä kuljetuskerroksen tehtäviä, joita sekä TCP että UDP käsittelevät. Itse asiassa on kaksi päätehtävää: datan segmentointi, tulevat sovellustasolta ja hakemuksen osoite(lähetys ja vastaanotto) porttien avulla. Voit lukea tästä lisää kuljetuskerrosta käsittelevästä artikkelista.

Lisäksi TCP tarjoaa:

  • Segmenttien luotettava toimitus.
  • Segmenttien tilaaminen vastaanotettaessa.
  • Työskentely istuntojen kanssa.
  • Siirtonopeuden hallinta.

Katsotaanpa näitä mahdollisuuksia tarkemmin.

Luotettava segmenttitoimitus

Luotettava toimitus tarkoittaa epäonnistuneiden segmenttien automaattista uudelleenlähetystä. Jokainen segmentti on merkitty erityisellä kentällä - järjestysnumerolla. Tietyn määrän segmenttejä lähettämisen jälkeen TCP lähettävässä solmussa odottaa kuittausta vastaanottavalta solmulta, joka ilmaisee seuraavan segmentin järjestysnumeron, jonka vastaanottaja haluaa vastaanottaa. Jos tällaista vahvistusta ei saada, lähetys toistetaan automaattisesti. Jonkun määrän jälkeen epäonnistuneita yrityksiä,TCP katsoo, että kohde ei ole tavoitettavissa ja istunto on lopetettu.

Luotettava toimitus ei siis tarkoita, että tietosi menevät läpi, jos joku vetää kaapelin kytkimestä. Se tarkoittaa, että TCP:tä kuljetustasolla käyttävä ohjelmistokehittäjä tietää, että jos istuntoa ei päätetä, niin kaikki, mitä hän käski lähettää, toimitetaan vastaanottajalle ilman häviötä. On olemassa paljon tietoa, joka on kriittistä minkä tahansa tiedon menettämiselle. Jos esimerkiksi lataat sovelluksen Internetistä, yhden tavun menetys tarkoittaa, että et voi käyttää lataamaasi. Tästä syystä monet sovelluskerroksen protokollat ​​käyttävät TCP:tä siirtoon.

Segmenttien tilaaminen vastaanotettaessa

Kuten arvata saattaa, jokainen segmentti TCP/IP:n alemmilla tasoilla käsitellään erikseen. Eli se pakataan vähintään yksittäiseen pakkaukseen. Paketit kulkevat verkon poikki, ja välireitittimet eivät yleensä tiedä enää mitään siitä, mitä näihin paketeihin on pakattu. Usein kuormituksen tasaamiseen tarkoitetut paketit voivat kulkea verkon läpi eri tavoin, eri välilaitteiden kautta, eri nopeuksilla. Siten vastaanottaja, purettuaan ne kapselin, voi vastaanottaa segmentit eri järjestyksessä kuin missä ne lähetettiin.

TCP kokoaa ne automaattisesti uudelleen oikeassa järjestyksessä käyttäen samaa järjestysnumerokenttää ja siirtää sen sovellustasolle liimauksen jälkeen.

Työskentely istuntojen kanssa

Ennen hyödyllisten tietojen lähettämisen aloittamista TCP:n avulla voit varmistaa, että vastaanottaja on olemassa, kuuntelee lähettäjän tarvitsemaa porttia ja on valmis vastaanottamaan tätä varten istunto kolmisuuntaisen kättelymekanismin avulla voit lukea vastaavasta artikkelista. Lisäksi istunnon aikana lähetetään hyödyllistä käyttäjädataa. Kun lähetys on valmis, istunto suljetaan, jolloin vastaanottajalle ilmoitetaan, että tietoja ei enää ole, ja lähettäjälle, että vastaanottajalle on ilmoitettu.

Siirtonopeuden ohjaus

Lähetysnopeuden säädön avulla voit säätää tiedon lähetysnopeutta vastaanottajan ominaisuuksien mukaan. Esimerkiksi jos nopea palvelin lähettää dataa hidas puhelin, palvelin lähettää tietoja puhelimelle hyväksyttävällä nopeudella.

Liukuikkunamekanismin ansiosta TCP voi työskennellä eri luotettavuuden omaavien verkkojen kanssa. Kelluvan ikkunan mekanismin avulla voit muuttaa lähetettyjen tavujen määrää, joille vastaanottajalta on saatava vahvistus. Miten suurempi koko-ikkunassa, sitä enemmän tietoja lähetetään ennen vahvistuksen vastaanottamista. varten luotettavia verkkoja vahvistuksia voidaan lähettää harvoin, jotta liikennettä ei lisätä, joten ikkunan kokoa tällaisissa verkoissa kasvatetaan automaattisesti. Jos TCP huomaa, että tietoja katoaa, ikkunan kokoa pienennetään automaattisesti. Tämä johtuu siitä, että jos lähetimme esimerkiksi 3 kilotavua tietoa emmekä saaneet vahvistusta, emme tiedä, mikä tietty osa siitä ei saapunut meille ja joudumme lähettämään kaikki kolme kilotavua uudelleen. Siksi epäluotettavissa verkoissa ikkunan koon tulisi olla minimaalinen.

Liukuikkunamekanismin avulla TCP voi jatkuvasti muuttaa ikkunan kokoa - suurentaa sitä, kun kaikki on hyvin ja pienentää sitä, kun segmenttejä ei saavu. Siten minä tahansa ajankohtana ikkunan koko on enemmän tai vähemmän riittävä verkon tilaan.

TCP-rakenne

TCP-segmentin otsikolla on seuraava rakenne:

  • Lähdeportti ja kohdeportti ovat vastaanottajan ja lähettäjän porttinumerot, jotka tunnistavat lähettävän ja vastaanottavan solmun sovellukset.
  • Järjestysnumero ja kuittausnumero ovat segmentin järjestysnumero ja kuittausnumero, joita käytetään luotettavaan toimitukseen. Esimerkiksi, jos lähettäjä lähettää segmentin numerolla SN 100, vastaanottaja voi vastata siihen ACK 101 SN200:lla, mikä tarkoittaa: "Sain segmenttinumerosi 100 ja odotan sinulta 101., muuten, minulla on oma numerointini. Minun numeroni alkavat 200:lla.” Lähettäjä voi puolestaan ​​vastata numerolla SN101 ACK201, mikä tarkoittaa ”Sain sinulta segmentin numerolla 200, voin hyväksyä seuraavan 201., mutta tässä on 101. segmentti, jota odotat varten.” Ja niin edelleen.
  • Otsikon pituus - Tämä on nelibittinen kenttä, joka sisältää TCP-segmentin otsikon pituuden.
  • Varattu - 6 bittiä varataan varmuuden vuoksi.
  • Ohjaus - kenttä, jossa on liput, joita käytetään tiedonvaihdossa ja jotka kuvaavat segmentin lisätarkoitusta. Esimerkiksi FIN-lippua käytetään katkaisemaan yhteydet, SYN ja ACK asetusten tekemiseen.
  • Ikkuna - sisältää ikkunan koon, kuten edellä mainittiin.
  • Checksumm - otsikko ja tietojen tarkistussumma.
  • Kiireellinen - merkki tämän segmentin tärkeydestä (kiireellisyydestä).
  • Options on lisävalinnainen kenttä, jota voidaan käyttää esimerkiksi protokollan testaamiseen.
  • Dataosio sisältää sovelluskerroksen protokollasta saadun todellisen tiedon tai osan siitä, jos tiedot piti jakaa.