TCP: Разлика помеѓу преработките
[проверена преработка] | [проверена преработка] |
Избришана содржина Додадена содржина
сНема опис на уредувањето |
с Јазична исправка, replaced: серверот → опслужувачот (11) using AWB |
||
Ред 14:
TCP е оптимизиран за точна испорака наместо навремена испорака и затоа со TCP понекогаш настануваат релативно долги закаснувања(од ранг на секунди), додека се чекаат неподредените или изгубените пораки. TCP не е погоден за апликации кои работат во реално време како што се Voice over IP. За таквите апликации се препорачани протоколи како RTP (Real-time Transport Protocol) кој работи врз UDP.<ref name="comer">{{cite book|last=Comer|first=Douglas E.|authorlink=Douglas Comer|title=Internetworking with TCP/IP:Principles, Protocols, and Architecture|publisher=Prentice Hall|year=2006|edition=5th|volume=1|isbn=0-13-187671-6}}</ref>
TCP е сервис за надежна испорака кој гарантира дека сите пристигнати бајти ќе бидат идентични со бајтите испратени и во правилен редослед. Бидејќи трансферот на пакети не е сигурен, техника позната како позитивна потврда со реемитување(acknowledgment with retransmission) се користи за да се гарантира сигурноста на трансферот. Оваа фундаментална техника бара примачот да одговори со потврдна порака како што добива податоци. Испраќачот чува (record) евиденција за секој пакет што се испраќа. Испраќачот, исто така, има тајмер кој мери кога пакет бил испратен и го препраќа пакетот ако тајмерот истече пред испораката да е потврдена. Тајмерот е потребен во случај да се добиваат изгубени или оштетени пакети.
TCP состои од множество правила: правила за протоколот за контрола на пренос, и правила за IP, за праќање на податоци "во форма на порака единици" помеѓу компјутерите на интернет. Додека IP справува со реалната испорака на податоци, TCP ги следи поединечните единици на пренос на податоци, наречени ''сегменти''. Пораката која се праќа е поделена за ефикасно рутирање преку мрежата. На пример, кога една HTML датотека се праќа од веб
== Структура на TCP сегмент ==
Протоколот за контрола на трансмисија ги прифаќа податоците од поток, ги сегментира, и со додавање на TCP заглавје ги креира TCP сегментите. Тогаш сегментите се енкапсулираат во пакети на Интернет Протоколот (IP пакети/датаграми). Еден TCP сегмент е „пакет од информации кои TCP ги користи за размена на податоци со другите нодови“.<ref>[http://www.linktionary.com/t/tcp.html TCP (Linktionary term)]</ref>
Терминот ''TCP пакет'', иако понекогаш е неформално користен, не е во согласност со прифатената терминологија. Прифатено е PDU-то (Податочна единица на протокол = Protocol Data Unit) на TCP да се нарекува сегмент, PDU на IP е датаграм<ref>[http://tools.ietf.org/html/rfc791#section-2.1 RFC 791 – section 2.1]</ref>, а на слојот за податочна врска се рамки.
Еден TCP сегмент се состои од заглавје на сегментот и дел за податоци. Заглавјето содржи 10 задолжителни полиња и опционално поле за екстензии. (Опции, со портокалова позадина во табелата).
Ред 106:
===Воспоставување конекција===
За да се воспостави врска, ТСР користи three-way handshake. Пред клиентот да се обиде да се поврзе со
1. '''SYN''': Активното отварање се врши од страна на праќањето на SYN до
2. '''SYN-АСК''': Како одговор,
3. '''АСК''': Конечно, клиентот праќа назад АСК до
Во овој момент, и клиентот и
===Терминирање на конекцијата===
[[File:TCP CLOSE.svg|right|thumbnail|260px|Терминирање на конекција]]
Фазата на терминирање на врска користи ракување преку четири чекори и со секоја страна од врската раскинувањето независно. Кога крајна точка сака да прекине половина од врската, таа испраќа FIN пакет, кој на другиот крај потврдува со ACK. Затоа, типичното прекинување бара еден пар на FIN и ACK сегмент од двете крајни точки на TCP. Откако двете размени на FIN/ACK се заклучени, страната која ја испрати првата FIN чека за истек на време пред конечно да ја затвори врската, време за кое локалната [[Порт (компјутерски мрежи)|порта]] е недостапна за нови врски, тоа спречува конфузија при испорака на задоцнети пакети да стигнат во текот на следните врски.
Врската може да биде "полу-отворена", во кој случај едната страна ја прекинува врската од својот крај, но другата не. Страната што ја раскинала не може да испрати податоци во врската, но од друга страна може. Терминираната страна треба да го продолжи читањето на податоците додека другата страна побара раскинување.
Исто така е можно да се прекине врската со 3 чекори на ракување, кога домаќинот А испраќа FIN и домаќинот Б одговара со FIN и ACK (комбинира 2 чекори во еден) и домаќинот враќа со ACK. Ова е можеби најчестиот метод.<ref>{{cite book |last= Tanenbaum|first= Andrew S.|authorlink= Andrew S. Tanenbaum|title= Computer Networks|edition= Fourth |date= 2003-03-17|publisher= Prentice Hall|isbn= 0-13-066102-3}}</ref>
Ред 127:
Некои TCP стакови на страна на домаќинот може да имплементираат полу-дуплекс низа на терминирање, како што прават [[Linux]] или [[HP-UX]]. Ако таков домаќин активно ја затвора конекцијата, но сепак не ги прочитал сите влезни податоци кои стакот веќе ги добил од линкот, овој хост праќа RST наместо FIN (Секција 4.2.2.13 во RFC 1122). Ова им овозможува на TCP апликациите да бидат сигурни апликацијата од другата страна ги прочитала сите податоци пред тоа испратени - чекајќи на FIN од далечинската страна, кога е активно затворена врската. Сепак, далечинскиот TCP стак не може да прави разлика помеѓу ''Прекинување на Врската RST'' и оваа ''Загубени податоци RST''. И двете причинуваат TCP стакот на апликацијата од другата страна да ги отфрли сите податоци што ги добил, но апликацијата не ги прочитала.
Некои апликациски протоколи може да го нарушат [[
s = connect(remote);
send(s, data);
Ред 134:
===Употреба на ресурси===
Повеќето имплементации алоцираат влез во табела која мапира сесија до активен процес на оперативниот систем. Бидејќи TCP пакетите не вклучуваат идентификатор за сесија, двете крајни точки ја идентификуваат сесијата користејќи ја адресата на клиентот и [[Порт (компјутерски мрежи)|портата]]. Секогаш кога еден пакет е примен, имплементација на TCP мора да изврши пребарување на оваа табела да се најде дестинацијата на процесот.
Бројот на сесии во страна на
Двете крајни точки, исто така, мора да одвојат простор за непотврдени пакети и примени (но непрочитани) податоци.
Ред 153:
== Контрола на застој ==
Еден од главните аспекти на ТСР е контрола на застој. ТСР користи голем број на механизми за да постигне високи перформанси и да избегне застој, каде ефикасноста на мрежата може да се намали. Овие маханизми ја контролираат стапката на влез на податоци во мрежата, одржувајќи го протокот на податоци под стапката која ќе го предизвика застојот. Тие исто така, даваат приближно максимум-минимум фер распределба помеѓу тековите.
Потврди за испратените податоци, или недостаток на потврди, се користат од страна испраќачите да ги заклучат мрежните услови помеѓу ТСР испраќачот и примачот. Заедно со тајмерите, ТСР испраќачите и примачите може да го сменат однесувањето на протокот на податоци. Ова е општо познато како контрола на застој и/или избегнување на застој на мрежата.
Ред 162:
TCP може да биде нападнат на различни начини. Резултатите од сеопфата проценка на протоколот, заедно со можните начини за избегнување на идентификуваните проблеми се публикувани во 2009 и моментално се разгледуваат од страна на IETF<ref>[http://tools.ietf.org/html/draft-ietf-tcpm-tcp-security Security Assessment of the Transmission Control Protocol (TCP)]</ref>
===Denial of Service===
Со користење на лажна IP адреса и повеќекратно праќање на намерно креирани SYN пакети, напаѓачите може да го натераат
===Преземање на конекција===
Напаѓач кој е во можност да прислушкува една TCP сесија и да ги насочува пакетите може и да преземе нечија TCP конекција. За да го стори тоа прво што напаѓачот прави е го открива бројот на секвенцата на постоечката комуникација и прави лажен сегмент кој изгледа како следниот сегмент кој се очекува во комуникацијата. Ова резултира еден пакет да биде прифатен на другиот крај по грешка. Кога хостот кој прима ќе го потврди екстра сегментот се губи синхронизацијата. Преземањето на конекција може да се комбинира со ARP или рутирачки напади кои дозволуваат добивање контрола над протокот на пакети, со цел да се добие трајна контрола на преземаната TCP сесија.<ref>[http://www.usenix.org/publications/library/proceedings/security95/joncheray.html Laurent Joncheray, ''Simple Active Attack Against TCP'', 1995]</ref>
Ред 173:
{{наводи}}
[[Категорија:Transmission Control Protocol| ]]
[[Категорија:Transport layer protocols]]
|