Чтение онлайн

на главную - закладки

Жанры

Настройка сетей Microsoft дома и в офисе. Учебный курс

Сергеев Александр

Шрифт:

Две взаимодействующие программы могут корректно завершить сеанс соединения, используя процедуру закрытия. Для этого используется модифицированный метод трехстороннего квитирования. Необходимо помнить, что ТСР-соеди-нение является дуплексным. Поэтому его можно использовать для передачи двух независимых потоков данных в противоположных направлениях. Получив от приложения сообщение о том, что все данные переданы, экземпляр протокола TCP закрывает соединение со своей стороны. Прежде чем закрыть половину соединения, экземпляр протокола

должен отправить компьютеру-получателю все находящиеся в буфере данные, а также подождать подтверждения их приема. После этого получателю отправляется сегмент данных, в заголовке которого полю FIN присваивается единица. После того как FIN-сегмент будет получен компьютером-получателем, соответствующий экземпляр протокола посылает компьютеру-отправителю сигнал подтверждения приема и уведомляет собственное приложение о том, что отправителем переданы все данные. Для этой цели могут использоваться стандартные предоставляемые операционной системой средства, например может устанавливаться признак конца файла при очередной попытке считать данные из открытого соединения.

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

На самом деле процесс закрытия соединения выглядит немного сложнее, чем описано ранее. В этом случае протоколом TCP применяется модифицированный метод трехстороннего квитирования связи.

После получения первого FIN-сегмента второй FIN-сегмент посылается компьютеру-отправителю не сразу, в отличие от SYN-сегмента. Отправителю посылается сигнал подтверждения приема первого FIN-сегмента, после чего выполняемое на компьютере получателя приложение уведомляется о получении запроса на закрытие соединения. От момента уведомления приложения до получения отклика может пройти достаточно много времени. Отправка сигнала подтверждения приема первого FIN-сегмента позволяет исключить повторную передачу этого сегмента отправителем по истечении тайм-аута. Получив от приложения, выполняемого на компьютере получателя, команду на закрытие соединения, экземпляр протокола TCP отошлет отправителю второй FIN-сегмент, при этом отправитель должен прислать уведомление о получении этого сегмента (третий АСК-сегмент).

Обычно после завершения передачи данных приложение закрывает соединение с помощью специальной команды. Поэтому данную операцию следует рассматривать как неотъемлемую часть нормального функционирования системы по аналогии с операцией

закрытия обычного файла. Однако иногда обстоятельства могут сложиться так, что прикладная программа или сетевое программное обеспечение вынуждены разорвать соединение досрочно. Поэтому в протоколе TCP предусмотрены средства обработки подобных ситуаций, которые реализуют сброс соединения.

Для сброса соединения одна из сторон должна инициировать процесс досрочного прекращения передачи данных при помощи отправки сегмента, у которого полю RST присвоена единица. Получив подобный запрос, другая сторона должна немедленно разорвать соединение. При этом о поступившем запросе на сброс соединения экземпляр протокола TCP также уведомляет приложение. Таким образом, операция сброса соединения приводит к немедленному прекращению передачи данных в обоих направлениях и освобождению всех занятых ресурсов, например к очистке буферов памяти.

Ранее уже упоминалось о том, что протоколе TCP разбиение потока данных на сегменты происходит без учета объема данных, переданных экземпляру протокола приложением. Разработчики руководствовались соображениями требуемой эффективности. Благодаря этому экземпляр протокола может накапливать во внутреннем буфере памяти необходимое для эффективной передачи количество данных, что позволяет снизить накладные расходы при передаче по сети сегментов данных небольшого размера.

Хотя благодаря буферизации существенно повышается пропускная способность сети, она может негативно сказаться на функционировании некоторых приложений. Можно рассмотреть процесс передачи символов с клавиатуры терминала на удаленный компьютер с применением заранее установленного ТСР-соединения. Понятно, что пользователю вряд ли понравится замедленная реакция компьютера в ответ на нажатие клавиш. Но если экземпляр протокола TCP перед отправкой символов помещает их в буфер, удаленный компьютер будет реагировать на каждое нажатие клавиши с большой задержкой. Вполне возможно, что удаленный компьютер отреагирует только после нажатия нескольких сотен клавиш, причем на все одновременно. Точно так же экземпляр протокола TCP, выполняемый на компьютере-получателе, реализует буферизацию полученных по сети данных, прежде чем передать их приложению.

 

Очевидно, что для своевременной доставки данных приложению нельзя просто вынудить отправителя переслать их по сети. Для обеспечения приемлемой работы интерактивных программ протокол TCP предусматривает специальную команду принудительной отсылки данных – push. Именно эта команда применяется для незамедлительной передачи байтов данных, помещенных в выходной поток данных. Во время выполнения этой команды полю PSH присваивается единица. Это гарантирует, что данные будут переданы без задержки приложению, которое выполняется на компьютере-получателе.

А теперь следует рассмотреть стандартные номера портов, используемые протоколом TCP.

Поделиться:
Популярные книги

Эволюционер из трущоб. Том 7

Панарин Антон
7. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 7

Девочка для Генерала. Книга первая

Кистяева Марина
1. Любовь сильных мира сего
Любовные романы:
остросюжетные любовные романы
эро литература
4.67
рейтинг книги
Девочка для Генерала. Книга первая

Темный Патриарх Светлого Рода

Лисицин Евгений
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода

Цусима — знамение конца русской истории. Скрываемые причины общеизвестных событий. Военно-историческое расследование. Том II

Галенин Борис Глебович
Научно-образовательная:
военная история
5.00
рейтинг книги
Цусима — знамение конца русской истории. Скрываемые причины общеизвестных событий. Военно-историческое расследование. Том II

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Новый Рал 10

Северный Лис
10. Рал!
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Новый Рал 10

Бестужев. Служба Государевой Безопасности. Книга четвертая

Измайлов Сергей
4. Граф Бестужев
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга четвертая

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Боевой маг. Трилогия

Бадей Сергей
114. В одном томе
Фантастика:
фэнтези
9.27
рейтинг книги
Боевой маг. Трилогия

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Тайны затерянных звезд. Том 1

Лекс Эл
1. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
фэнтези
5.00
рейтинг книги
Тайны затерянных звезд. Том 1

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я