Протокол TCP

Протокол управления передачей (Transmission Control Protocol – TCP) является протоколом транспортного уровня с установлением логического соединения и содержит средства управления потоком данных и исправления ошибок.

Высокая надежность передачи данных, которая обеспечивается протоколом TCP, обусловлена тем, что до начала передачи устанавливается сеанс TCP. Процесс установления сеанса TCP между клиентом и сервером (называемый также трехэтапным квитированием) происходит следующим образом. Клиент инициирует сеанс, передавая сегмент с установленным битом синхронизации (SYNchronization – SYN). Этот сегмент содержит данные о размере окна клиента и его текущем порядковом номере. Сервер отвечает на запрос SYN клиента сегментом подтверждение (ACK – acknowledgement) и включает в передаваемый им сегмент бит SYN, данные о размере окна и начальном порядковом номере. Наконец, клиент отвечает на сегмент SYN сервера подтверждением АСК.

После установления сеанса TCP начинается передача данных по методу с применением окон. Существует несколько разновидностей метода передачи с применением окон. Вариант с остановом и ожиданием является самым простым, который состоит из следующих шагов (рис. 4.2):

1. Отправитель (передатчик) посылает данные и заголовок получателю (приемнику) информации, одновременно запуская таймер тайм-аута, и переходит в состояние ожидания до тех пор пока не получит подтверждения от приемника или до истечения времени тайм-аута.

2. Приемник, получив данные и заголовок, посылает передатчику подтверждение (ACK – acknowledgement) приема информации.

3. Передатчик, получив подтверждение ACK, посылает приемнику следующую порцию информации. Если же по каким-либо причинам передатчик не получает подтверждение, то после обнуления таймера тайм-аута, он осуществляет повторную передачу ранее переданных данных.

Рисунок 4.2. Передача данных по методу с остановом и ожиданием

Метод передачи с применением окон позволяет предотвратить передачу одним устройством другому чрезмерно интенсивного потока данных в процессе обмена данными по сети, поскольку передача не возобновляется до тех пор, пока не будет получено подтверждение ACK.

Метод передачи с применением окон, предусмотренный в протоколе TCP, является динамическим, т.е. размер окна может изменяться на протяжении одного сеанса передачи данных. В процессе первоначального установления сеанса определяется базовый размер окна. Кроме того, отправителю передается начальный порядковый номер (SEQuence number – SEQ), который указывает номер начального байта. В заголовке TCP каждого передаваемого сегмента содержится поле размера окна, который указывает размер окна, установленный другим участником соединения. Если возникает ошибка и часть данных теряется (вызывая повторную передачу данных программным обеспечением TCP), хост получателя может уменьшить размер окна. С другой стороны, если значительные объемы данных были приняты без ошибок, хост отправителя может увеличить размер окна.

Метод передачи с применением окон, предусмотренный в протоколе TCP, не только представляет собой динамический процесс, но и осуществляется в дуплексном режиме. Это означает, что на каждом хосте предусмотрена возможность и передавать, и принимать данные о размере и положении окна. Каждое окно применяется независимо от другого и может увеличиваться или уменьшаться с учетом условий передачи в соответствующем направлении.

Еще одним важным средством протокола TCP является способность мультиплексировать логические сеансы между удаленными хостами. Такая возможность предусмотрена и в TСР, и в UDP и позволяет применять одновременно сразу несколько соединений, поскольку данные, передаваемые по каждому из них, различаются с помощью транспортного протокола.

Процесс разрыва сеанса TCP аналогичен процессу его установления. Вначале участник соединения, желающий закрыть сеанс (предположим, что в данном примере это – клиент), инициализирует процесс завершения сеанса, отправляя сегмент с установленным битом завершения (FINish – FIN). Сервер отвечает, передавая в ответ на сегмент FIN клиента подтверждение АСК. Затем сервер передает собственный сегмент с установленным битом FIN. После этого клиент передает в ответ на сегмент FIN сервера подтверждение АСК и сеанс закрывается.

Протокол TCP определен документом RFC 793 (стандарт 7), который находится по адресу ftp://ftp.isi.edu/in-notes/std/std7.txt.








Дата добавления: 2015-04-15; просмотров: 889;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.