TCP: Разлика помеѓу преработките

[непроверена преработка][непроверена преработка]
Избришана содржина Додадена содржина
→‎Терминирање на конекцијата: средување на подсекција
→‎Терминирање на конекцијата: досредување на подсекција
Ред 116:
Во овој момент, и клиентот и серверот имаат добиено потврда за конекција. Чекорите 1 и 2, воспоставуваат врска параметар(секвенциски број) во еден правец и тоа се потврдува. Чекорите 2 и 3, воспоставуваат врска параметар (секвенциски број) во другиот правец и тоа се потврдува. Со овие, се воспоставува full-duplex комуникација.
===Терминирање на конекцијата===
[[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>
 
Можно е двата домаќини да испратат FIN истовремено тогаш и двата само треба да ACK. Ова веројатно би можело да се смета за ракување во 2 чекора бидејќи FIN/ACK секвенцата е направена во паралела за двете насоки.
 
Некои домаќинTCP стакови на TCPстрана stacksна домаќинот може да се спроведеимплементираат полу-дуплекс блискaсеквенца на низатерминирање, како што прават [[Linux]] или [[HP-UX]]. Ако таков домаќин активно ја затвора конекцијата, но сепак не ги читаатпрочитал влезнитесите влезни податоци магациноткои стакот веќе ги добил од линкот, овој хост праќа RST наместо FIN (ДелСекција 4.2.2.13 во RFC 1122). Ова им овозможува на TCP апликациите да бидат сигурни декаапликацијата наод далечинскидругата управуваната апликацијастрана ги прочитала сите податоци пред тоа испратени - чекајќи на FIN од далечинската страна, кога е активно затворена врската. Сепак, далечинскидалечинскиот TCP магацинотстак не може да прави разлика помеѓу Прекинувачот''Прекинување на Врската RST'' и оваа Data''Загубени Lossподатоци RST''. ДветеИ причинадвете remoteпричинуваат stackTCP стакот на апликацијата од другата страна да ги фрлаотфрли сите податоци што ги добил, но дека барањето се уштеапликацијата не сиги го прочиталпрочитала.
 
Некои апликациски протоколи може да го нарушат [[OSI моделот|OSI_модел]] користејќи го ракувањето со TCP open/close во апликацискиот протокол. Ваквите апликации можат да се соочат со RST проблемот на затварање на активна врска. Како пример:
s = connect(remote);
send(s, data);
close(s);
Доколку програмскиот тек е како опишаниот погоре, TCP/IP стакот не гарантира дека сите податоци ќе се испорачаат на апликацијата од другата страна.
 
== Пренос на податоци ==
Преземено од „https://mk.wikipedia.org/wiki/TCP