TCP

Material iz Vikipedii -- svobodnoi entsiklopedii
Tekushchaia versiia stranitsy poka ne proverialas' opytnymi uchastnikami i mozhet znachitel'no otlichat'sia ot versii, proverennoi 2 dekabria 2025 goda; proverki trebuiut 6 pravok.
Pereiti k navigatsii Pereiti k poisku
TCP
Nazvanie Transmission Control Protocol
Uroven' (po modeli OSI) Transportnyi
Semeistvo TCP/IP
Spetsifikatsiia RFC 793 (sentiabr' 1981 goda) / STD 7
Osnovnye realizatsii UNIX, Linux, BSD, Windows
Rasshiriaemost' Optsii
Mediafaily na Vikisklade

TCP (angl. Transmission Control Protocol -- protokol upravleniia peredachei) -- odin iz osnovnykh protokolov peredachi dannykh interneta. Pakety v TCP nazyvaiutsia segmentami.

V steke protokolov TCP/IP vypolniaet funktsii transportnogo urovnia modeli OSI.

Mekhanizm TCP predostavliaet potok dannykh s predvaritel'noi ustanovkoi soedineniia, osushchestvliaet povtornyi zapros dannykh v sluchae poteri dannykh i ustraniaet dublirovanie pri poluchenii dvukh kopii odnogo paketa, garantiruia tem samym (v otlichie ot UDP) tselostnost' peredavaemykh dannykh i uvedomlenie otpravitelia o rezul'tatakh peredachi.

Realizatsii TCP obychno vstroeny v iadra OS. Sushchestvuiut realizatsii TCP, rabotaiushchie v prostranstve pol'zovatelia.

Zagolovok segmenta TCP

[pravit' | pravit' kod]
Struktura zagolovka
Bit 0 -- 3 4 -- 6 7 -- 15 16 -- 31
0 Port istochnika, Source Port Port naznacheniia, Destination Port
32 Poriadkovyi nomer, Sequence Number (SN)
64 Nomer podtverzhdeniia, Acknowledgment Number (ACK SN)
96 Dlina zagolovka, (Data offset) Zarezervirovano Flagi Razmer Okna, Window size
128 Kontrol'naia summa, Checksum Ukazatel' vazhnosti, Urgent Pointer
160 Optsii (neobiazatel'noe, no ispol'zuetsia prakticheski vsegda)
160/192+ Dannye

Port istochnika, Port naznacheniia

[pravit' | pravit' kod]

Eti 16-bitnye polia soderzhat nomera portov -- chisla, kotorye opredeliaiutsia po spetsial'nomu spisku.

Port istochnika identifitsiruet prilozhenie klienta, s kotorogo otpravleny pakety. Otvetnye dannye peredaiutsia klientu na osnovanii etogo nomera.

Port naznacheniia identifitsiruet port, na kotoryi otpravlen paket.

Poriadkovyi nomer

[pravit' | pravit' kod]

Sequence number (32 bita) -- izmeriaetsia v baitakh, i kazhdyi peredannyi bait poleznykh dannykh (payload) uvelichivaet eto znachenie na 1.

Esli ustanovlen flag SYN (idiot ustanovlenie sessii), to pole soderzhit iznachal'nyi poriadkovyi nomer -- ISN (Initial Sequence Number). V tseliakh bezopasnosti eto znachenie generiruetsia sluchainym obrazom i mozhet byt' ravno ot 0 do 232-1 (4294967295). Pervyi bait poleznykh dannykh v ustanavlivaiushcheisia sessii budet imet' nomer ISN+1.

V protivnom sluchae, esli SYN ne ustanovlen, pervyi bait dannykh, peredavaemyi v dannom pakete, imeet etot poriadkovyi nomer.

Poskol'ku potok TCP v obshchem sluchae mozhet byt' dlinnee, chem chislo razlichnykh sostoianii etogo polia, to vse operatsii s poriadkovym nomerom dolzhny vypolniat'sia po moduliu 232. Eto nakladyvaet prakticheskoe ogranichenie na ispol'zovanie TCP. Esli skorost' peredachi kommunikatsionnoi sistemy takova, chtoby v techenie MSL (maksimal'nogo vremeni zhizni segmenta) proizoshlo perepolnenie poriadkovogo nomera, to v seti mozhet poiavit'sia dva segmenta s odinakovym nomerom, otnosiashchikhsia k raznym chastiam potoka, i priiomnik poluchit nekorrektnye dannye.

Nomer podtverzhdeniia

[pravit' | pravit' kod]

Acknowledgment Number (ACK SN) (32 bita) -- esli ustanovlen flag ACK, to eto pole soderzhit poriadkovyi nomer okteta, kotoryi otpravitel' dannogo segmenta zhelaet poluchit'. Eto oznachaet, chto vse predydushchie oktety (s nomerami ot ISN+1 do ACK-1 vkliuchitel'no) byli uspeshno polucheny.

Kazhdaia storona podschityvaet svoi Sequence number dlia peredannykh dannykh i otdel'no Acknowledgement number dlia poluchennykh dannykh. Sequence number kazhdoi iz storon sootvetstvuet Acknowledgement number drugoi storony.

Dlina zagolovka (smeshchenie dannykh)

[pravit' | pravit' kod]

Dlina zagolovka (Data offset) zanimaet 4 bita i ukazyvaet znachenie dliny zagolovka, izmerennoe v 32-bitovykh slovakh. Minimal'nyi razmer sostavliaet 20 bait (piat' 32-bitovykh slov), a maksimal'nyi -- 60 bait (piatnadtsat' 32-bitovykh slov). Dlina zagolovka opredeliaet smeshchenie poleznykh dannykh otnositel'no nachala segmenta. Naprimer, Data offset ravnoe 11112 govorit o tom, chto zagolovok zanimaet piatnadtsat' 32-bitnykh slova (15 strok*32 bita v kazhdoi stroke/8 bit = 60 bait).

Zarezervirovano

[pravit' | pravit' kod]

Zarezervirovano (3 bita) dlia budushchego ispol'zovaniia i dolzhno ustanavlivat'sia v nol'.

Flagi (upravliaiushchie bity)

[pravit' | pravit' kod]

Eto pole soderzhit 9 bitovykh flagov:

  • NS (ECN-nonce) -- Ustoichivyi mekhanizm signalizatsii nasyshcheniia s pomoshch'iu ECN-nonce (RFC 3540)
  • CWR (Congestion Window Reduced) -- Pole <> -- flag ustanovlen otpravitelem, chtoby ukazat', chto poluchen paket s ustanovlennym flagom ECE (RFC 3168)
  • ECE (ECN-Echo) -- Pole <> -- ukazyvaet, chto dannyi uzel sposoben na ECN (iavnoe uvedomlenie peregruzki) i dlia ukazaniia otpraviteliu o peregruzkakh v seti (RFC 3168)
  • URG -- pole <> zadeistvovano (angl. Urgent pointer field is significant). Kogda uzel otpravliaet segment s URG flagom, to uzel-poluchatel' prinimaet ego na otdel'nom kanale.
  • ACK -- pole <> zadeistvovano (angl. Acknowledgement field is significant)
  • PSH -- (angl. Push function) instruktiruet poluchatelia protolknut' dannye, nakopivshiesia v priiomnom bufere, v prilozhenie pol'zovatelia. API dlia ustanovki PSH flaga net. Obychno on ustanavlivaetsia iadrom, kogda ono ochishchaet bufer. Delo v tom, chto kogda uzel otpravliaet informatsiiu, TCP sokhraniaet eio v bufere i ne peredaet eio srazu drugomu uzlu, ozhidaia, zakhochet li uzel-otpravitel' peredat' eshchio. Takaia zhe skhema rabotaet i u uzla-poluchatelia. Kogda on poluchaet informatsiiu, TCP sokhraniaet eio v bufere, chtoby ne trevozhit' prilozhenie iz-za kazhdogo baita poluchennoi informatsii. Esli uzel otpravliaet segment s PSH flagom, eto znachit, chto on otpravil vse, chto bylo nuzhno.
  • RST -- oborvat' soedineniia, sbrosit' bufer (ochistka bufera) (angl. Reset the connection)
  • SYN -- sinkhronizatsiia nomerov posledovatel'nosti (angl. Synchronize sequence numbers)
  • FIN (angl. final, bit) -- flag, buduchi ustanovlen, ukazyvaet na zavershenie soedineniia (angl. FIN bit used for connection termination).

Razmer okna

[pravit' | pravit' kod]

Window Size samostoiatel'no opredeliaet kolichestvo bait dannykh (payload), posle peredachi kotorykh otpravitel' ozhidaet podtverzhdeniia ot poluchatelia, chto dannye polucheny. Inache govoria, poluchatel' paketa raspolagaet dlia priioma dannykh buferom dlinoi <> bait.

Po umolchaniiu razmer okna izmeriaetsia v baitakh, poetomu ogranichen 216 (65535) baitami. Odnako blagodaria TCP optsii Window scale option etot razmer mozhet byt' uvelichen do 1 Gbaita. Chtoby zadeistvovat' etu optsiiu, obe storony dolzhny soglasovat' eto v svoikh SYN segmentakh.

Kontrol'naia summa (Checksum)

[pravit' | pravit' kod]

Pole kontrol'noi summy -- eto 16-bitnoe dopolnenie k summe vsekh 16-bitnykh slov zagolovka (vkliuchaia psevdozagolovok) i dannykh. Esli segment, po kotoromu vychisliaetsia kontrol'naia summa, imeet dlinu ne kratnuiu 16-bitam, to dlina segmenta uvelichivaetsia do kratnoi 16-ti za schiot dobavleniia k nemu sprava nulevykh bitov zapolneniia. Bity zapolneniia (0) ne peredaiutsia v soobshchenii i sluzhat tol'ko dlia raschiota kontrol'noi summy. Pri raschiote kontrol'noi summy znachenie samogo polia kontrol'noi summy prinimaetsia ravnym 0.

Ukazatel' vazhnosti (Urgent pointer)

[pravit' | pravit' kod]

16-bitovoe znachenie polozhitel'nogo smeshcheniia ot poriadkovogo nomera v dannom segmente. Eto pole ukazyvaet poriadkovyi nomer okteta, kotorym zakanchivaiutsia vazhnye (urgent) dannye. Pole prinimaetsia vo vnimanie tol'ko dlia paketov s ustanovlennym flagom URG. Ispol'zuetsia dlia vnepolosnykh dannykh.

Optsii

[pravit' | pravit' kod]

Mogut primeniat'sia v nekotorykh sluchaiakh dlia rasshireniia protokola. Inogda ispol'zuiutsia dlia testirovaniia. Na dannyi moment v optsii prakticheski vsegda vkliuchaiut 2 baita NOP (v dannom sluchae 0x01) i 10 bait, zadaiushchikh timestamps. Vychislit' dlinu polia optsii mozhno cherez znachenie polia smeshcheniia.

Mekhanizm deistviia protokola

[pravit' | pravit' kod]

V otlichie ot traditsionnoi al'ternativy -- UDP, kotoryi mozhet srazu zhe nachat' peredachu paketov, TCP ustanavlivaet soedineniia, kotorye dolzhny byt' sozdany pered peredachei dannykh. TCP-soedinenie mozhno razdelit' na 3 stadii:

  1. Ustanovka soedineniia.
  2. Peredacha dannykh.
  3. Zavershenie soedineniia.

Sostoianiia seansa TCP

[pravit' | pravit' kod]
Uproshchionnaia diagramma sostoianii TCP. Bolee podrobno v TCP EFSM diagram (na angliiskom iazyke)
Sostoianiia seansa TCP
CLOSED Nachal'noe sostoianie uzla. Fakticheski fiktivnoe
LISTEN Server ozhidaet zaprosov ustanovleniia soedineniia ot klienta
SYN-SENT Klient otpravil zapros serveru na ustanovlenie soedineniia i ozhidaet otveta
SYN-RECEIVED Server poluchil zapros na soedinenie, otpravil otvetnyi zapros i ozhidaet podtverzhdeniia
ESTABLISHED Soedinenie ustanovleno, idiot peredacha dannykh
FIN-WAIT-1 Odna iz storon (nazoviom eio uzel-1) zavershaet soedinenie, otpraviv segment s flagom FIN
CLOSE-WAIT Drugaia storona (uzel-2) perekhodit v eto sostoianie, otpraviv, v svoiu ochered' segment ACK i prodolzhaet odnostoronniuiu peredachu
FIN-WAIT-2 Uzel-1 poluchaet ACK, prodolzhaet chtenie i zhdiot polucheniia segmenta s flagom FIN
LAST-ACK Uzel-2 zakanchivaet peredachu i otpravliaet segment s flagom FIN
TIME-WAIT Uzel-1 poluchil segment s flagom FIN, otpravil segment s flagom ACK i zhdiot 2*MSL sekund, pered okonchatel'nym zakrytiem soedineniia
CLOSING Obe storony initsiirovali zakrytie soedineniia odnovremenno: posle otpravki segmenta s flagom FIN uzel-1 takzhe poluchaet segment FIN, otpravliaet ACK i nakhoditsia v ozhidanii segmenta ACK (podtverzhdeniia na svoi zapros o raz'edinenii)

Ustanovka soedineniia

[pravit' | pravit' kod]

Protsess nachala seansa TCP (takzhe nazyvaemyi <> (angl. handshake)), sostoit iz triokh shagov.

1. Klient, kotoryi namerevaetsia ustanovit' soedinenie, posylaet serveru segment s nomerom posledovatel'nosti i flagom SYN.

  • Server poluchaet segment, zapominaet nomer posledovatel'nosti i pytaetsia sozdat' soket (bufera i upravliaiushchie struktury pamiati) dlia obsluzhivaniia novogo klienta.
  • V sluchae uspekha server posylaet klientu segment s nomerom posledovatel'nosti i flagami SYN i ACK, i perekhodit v sostoianie SYN-RECEIVED.
  • V sluchae neudachi server posylaet klientu segment s flagom RST.

2. Esli klient poluchaet segment s flagom SYN, to on zapominaet nomer posledovatel'nosti i posylaet segment s flagom ACK.

  • Esli klient odnovremenno poluchaet i flag ACK (chto obychno i proiskhodit), to on perekhodit v sostoianie ESTABLISHED.
  • Esli klient poluchaet segment s flagom RST, to on prekrashchaet popytki soedinit'sia.
  • Esli klient ne poluchaet otveta v techenie 10 sekund, to on povtoriaet protsess soedineniia zanovo.

3. Esli server v sostoianii SYN-RECEIVED poluchaet segment s flagom ACK, to on perekhodit v sostoianie ESTABLISHED.

  • V protivnom sluchae posle taim-auta on zakryvaet soket i perekhodit v sostoianie CLOSED.

Protsess nazyvaetsia <> (angl. three way handshake), tak kak, nesmotria na to, chto vozmozhen protsess ustanovleniia soedineniia s ispol'zovaniem chetyriokh segmentov (SYN v storonu servera, ACK v storonu klienta, SYN v storonu klienta, ACK v storonu servera), na praktike dlia ekonomii vremeni ispol'zuetsia tri segmenta.

Primer bazovogo 3-etapnogo soglasovaniia:

TCP A TCP B
1. CLOSED LISTEN
2. SYN-SENT --> --> SYN-RECEIVED
3. ESTABLISHED <-- <-- SYN-RECEIVED
4. ESTABLISHED --> --> ESTABLISHED
5. ESTABLISHED <-- <-- ESTABLISHED

V stroke 2 TCP A nachinaet peredachu segmenta SYN, govoriashchego ob ispol'zovanii nomerov posledovatel'nosti, nachinaia so 100;

V stroke 3 TCP B peredaiot SYN i podtverzhdenie dlia priniatogo SYN v adres TCP A. Pole podtverzhdeniia pokazyvaet ozhidanie TCP B priioma nomera posledovatel'nosti 101, podtverzhdaiushchego SYN s nomerom 100;

V stroke 4 TCP A otvechaet pustym segmentom s podtverzhdeniem ACK dlia segmenta SYN ot TCP B;

V stroke 5 TCP B peredaiot nekotorye dannye. Otmetim, chto nomer podtverzhdeniia segmenta v stroke 5 (ACK=101) sovpadaet s nomerom posledovatel'nosti v stroke 4 (SEQ=101), poskol'ku ACK ne zanimaet prostranstva nomerov posledovatel'nosti (esli eto sdelat', pridiotsia podtverzhdat' podtverzhdeniia -- ACK dlia ACK).

Sushchestvuiut eksperimental'nye rasshireniia protokola TCP, sokrashchaiushchie kolichestvo paketov pri ustanovlenii soedineniia, naprimer TCP Fast Open[angl.]. Ranee takzhe sushchestvovalo rasshirenie T/TCP. Dlia prozrachnogo shifrovaniia dannykh predlagaetsia ispol'zovat' rasshirenie tcpcrypt.

Peredacha dannykh

[pravit' | pravit' kod]
Sm. takzhe: Algoritm Neigla i Medlennyi start

Pri obmene dannymi priiomnik ispol'zuet nomer posledovatel'nosti, soderzhashchiisia v poluchaemykh segmentakh, dlia vosstanovleniia ikh iskhodnogo poriadka. Priiomnik uvedomliaet peredaiushchuiu storonu o nomere posledovatel'nosti, do kotoroi on uspeshno poluchil dannye, vkliuchaia ego v pole <>. Vse poluchaemye dannye, otnosiashchiesia k promezhutku podtverzhdionnykh posledovatel'nostei, ignoriruiutsia. Esli poluchennyi segment soderzhit nomer posledovatel'nosti bol'shii, chem ozhidaemyi, to dannye iz segmenta buferiziruiutsia, no nomer podtverzhdionnoi posledovatel'nosti ne izmeniaetsia. Esli vposledstvii budet priniat segment, otnosiashchiisia k ozhidaemomu nomeru posledovatel'nosti, to poriadok dannykh budet avtomaticheski vosstanovlen iskhodia iz nomerov posledovatel'nostei v segmentakh.

Dlia togo, chtoby peredaiushchaia storona ne otpravliala dannye intensivnee, chem ikh mozhet obrabotat' priiomnik, TCP soderzhit sredstva upravleniia potokom. Dlia etogo ispol'zuetsia pole <>. V segmentakh, napravliaemykh ot priiomnika peredaiushchei storone, v pole <> ukazyvaetsia tekushchii razmer priiomnogo bufera. Peredaiushchaia storona sokhraniaet razmer okna i otpravliaet dannykh ne bolee, chem ukazal priiomnik. Esli priiomnik ukazal nulevoi razmer okna, to peredachi dannykh v napravlenii etogo uzla ne proiskhodit, poka priiomnik ne soobshchit o bol'shem razmere okna.

V nekotorykh sluchaiakh peredaiushchee prilozhenie mozhet iavno zatrebovat' peredat' dannye do nekotoroi posledovatel'nosti prinimaiushchemu prilozheniiu, ne buferiziruia ikh. Dlia etogo ispol'zuetsia flag PSH. Esli v poluchennom segmente obnaruzhivaetsia flag PSH, to realizatsiia TCP otdaiot vse buferizirovannye na tekushchii moment dannye prinimaiushchemu prilozheniiu. <> ispol'zuetsia, naprimer, v interaktivnykh prilozheniiakh. V setevykh terminalakh net smysla ozhidat' vvoda pol'zovatelia posle togo, kak on zakonchil nabirat' komandu. Poetomu poslednii segment, soderzhashchii komandu, obiazan soderzhat' flag PSH, chtoby prilozhenie na prinimaiushchei storone smoglo nachat' eio vypolnenie.

Zavershenie soedineniia

[pravit' | pravit' kod]

Zavershenie soedineniia mozhno rassmotret' v tri etapa:

  1. Posylka serveru ot klienta flaga FIN na zavershenie soedineniia.
  2. Server posylaet klientu flagi otveta ACK , FIN, chto soedinenie zakryto.
  3. Posle polucheniia etikh flagov klient zakryvaet soedinenie i v podtverzhdenie otpravliaet serveru ACK , chto soedinenie zakryto.

Izvestnye problemy

[pravit' | pravit' kod]

Maksimal'nyi razmer segmenta

[pravit' | pravit' kod]

TCP trebuet iavnogo ukazaniia maksimal'nogo razmera segmenta (MSS) v sluchae, esli virtual'noe soedinenie osushchestvliaetsia cherez segment seti, gde maksimal'nyi razmer bloka (MTU) menee, chem standartnyi MTU Ethernet (1500 bait).

V protokolakh tunnelirovaniia, takikh kak GRE, IPIP, a takzhe PPPoE MTU tunnel' men'she, chem standartnyi, poetomu segment TCP maksimal'nogo razmera imeet dlinu paketa bol'she, chem MTU. Eto privodit k fragmentatsii i umen'sheniiu skorosti peredachi poleznykh dannykh. Esli na kakom-libo uzle fragmentatsiia zapreshchena, to so storony pol'zovatelia eto vygliadit kak <> soedinenii. Pri etom <> mozhet proiskhodit' v proizvol'nye momenty vremeni, a imenno togda, kogda otpravitel' ispol'zoval segmenty dlinnee dopustimogo razmera. Dlia resheniia etoi problemy na marshrutizatorakh primeniaiutsia pravila Firewall-a, dobavliaiushchie parametr MSS vo vse pakety, initsiiruiushchie soedineniia, chtoby otpravitel' ispol'zoval segmenty dopustimogo razmera.

MSS mozhet takzhe upravliat'sia parametrami operatsionnoi sistemy.

Obnaruzhenie oshibok pri peredache dannykh

[pravit' | pravit' kod]

Khotia protokol osushchestvliaet proverku kontrol'noi summy po kazhdomu segmentu, ispol'zuemyi algoritm schitaetsia slabym [1].

V obshchem sluchae raspredelennym setevym prilozheniiam rekomenduetsia ispol'zovat' dopolnitel'nye programmnye sredstva dlia garantirovaniia tselostnosti peredavaemoi informatsii[2].

Ataki na protokol

[pravit' | pravit' kod]
Sm. takzhe: TCP hijacking i Ataka TCP Reset

Nedostatki protokola proiavliaiutsia v uspeshnykh teoreticheskikh i prakticheskikh atakakh, pri kotorykh zloumyshlennik mozhet poluchit' dostup k peredavaemym dannym, vydat' sebia za druguiu storonu ili privesti sistemu v nerabochee sostoianie.

Realizatsiia

[pravit' | pravit' kod]

Psevdozagolovok

[pravit' | pravit' kod]

TCP-zagolovok ne soderzhit informatsii ob adrese otpravitelia i poluchatelia, poetomu dazhe pri sovpadenii porta poluchatelia nel'zia s tochnost'iu skazat', chto soobshchenie prishlo v nuzhnoe mesto. Poskol'ku naznacheniem protokola TCP iavliaetsia nadiozhnaia dostavka soobshchenii, to etot moment imeet printsipial'noe znachenie. Etu zadachu mozhno bylo reshit' raznymi sposobami. Samyi ochevidnyi -- dobavit' informatsiiu ob adrese naznacheniia v zagolovok TCP, odnako eto, vo-pervykh, privodit k dublirovaniiu informatsii, chto snizhaet doliu poleznoi informatsii, perenosimoi TCP-segmentom, a vo-vtorykh, narushaet printsip inkapsuliatsii modeli OSI. Poetomu razrabotchiki protokola poshli drugim putiom i ispol'zovali dopolnitel'nyi psevdozagolovok:

TCP-psevdozagolovok IPv4

Bity 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0-31 IP-adres otpravitelia (Source address)
32-63 IP-adres poluchatelia (Destination address)
64-95 0 0 0 0 0 0 0 0 Protokol (Protocol) Dlina TCP-segmenta (TCP length)

TCP-psevdozagolovok IPv6

Bity 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0-127 IP-adres otpravitelia (Source address)
128-223 IP-adres poluchatelia (Destination address)
224-255 Dlina TCP-segmenta (TCP length)
256-287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Protokol verkhnego urovnia (Next header)
  • Protokol (Protocol)/Protokol verkhnego urovnia (Next header) -- soderzhit v sebe znachenie 6 (00000110 v dvoichnom vide, 0x6 -- v shestnadtsaterichnom) -- identifikator TCP-protokola.
  • Dlina TCP-segmenta (TCP length) -- soderzhit v sebe dlinu TCP-segmenta v baitakh (TCP-zagolovok + dannye; dlina psevdozagolovka ne uchityvaetsia).

Psevdozagolovok ne vkliuchaetsia v TCP-segment. On ispol'zuetsia dlia raschiota kontrol'noi summy pered otpravleniem soobshcheniia i pri ego poluchenii (poluchatel' sostavliaet svoi psevdozagolovok, ispol'zuia adres khosta, s kotorogo prishlo soobshchenie, i sobstvennyi adres, a zatem schitaet kontrol'nuiu summu).

Osvobozhdenie ot raschiota kontrol'noi summy

[pravit' | pravit' kod]

Mnogie realizatsii steka TCP/IP predostavliaiut vozmozhnosti ispol'zovaniia apparatnoi podderzhki dlia avtomaticheskogo raschiota kontrol'noi summy v setevom adaptere do peredachi v set' ili posle priioma iz seti dlia verifikatsii. Eto mozhet osvobozhdat' operatsionnuiu sistemu ot ispol'zovaniia tsennykh taktov protsessora pri vychislenii kontrol'noi summy.

Eta funktsiia mozhet privodit' k tomu, chto analizatory trafika, perekhvatyvaiushchie iskhodiashchie pakety do ikh peredachi v setevoi adapter i ne znaiushchie o delegirovanii raschiota kontrol'noi summy setevomu adapteru, mogut soobshchat' ob oshibke kontrol'noi summy v iskhodiashchikh paketakh.

Sm. takzhe

[pravit' | pravit' kod]

Literatura

[pravit' | pravit' kod]
  • Terri Ogltri. Modernizatsiia i remont setei = Upgrading and Repairing Networks. -- 4-e izd. -- M.: <<Vil'iams>>, 2005. -- S. 1328. -- ISBN 0-7897-2817-6.
  • Duglas Kamer. Seti TCP/IP, tom 1. Printsipy, protokoly i struktura = Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture. -- M.: <<Vil'iams>>, 2003. -- S. 880. -- ISBN 0-13-018380-6.
  • Andrei Robachevskii, Sergei Nemniugin, Ol'ga Stesik. Operatsionnaia sistema UNIX. -- 2-e izd. -- <<BKhV-Peterburg>>, 2007. -- S. 656. -- ISBN 5-94157-538-6.

Ssylki

[pravit' | pravit' kod]
Ssylki na vneshnie resursy
Slovari i entsiklopedii
Osnovnye protokoly TCP/IP po urovniam modeli OSI
Fizicheskii
Kanal'nyi
Setevoi
Transportnyi
Seansovyi
Predstavleniia
Prikladnoi
Drugie prikladnye
Istochnik -- https://ru.wikipedia.org/w/index.php?title=TCP&oldid=151426312