Эндрю Уэзеролл - Компьютерные сети. 5-е издание

Тут можно читать онлайн Эндрю Уэзеролл - Компьютерные сети. 5-е издание - бесплатно ознакомительный отрывок. Жанр: Прочая старинная литература, издательство Питер, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Эндрю Уэзеролл - Компьютерные сети. 5-е издание краткое содержание

Компьютерные сети. 5-е издание - описание и краткое содержание, автор Эндрю Уэзеролл, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Компьютерные сети. 5-е издание - читать онлайн бесплатно ознакомительный отрывок

Компьютерные сети. 5-е издание - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Эндрю Уэзеролл
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Рис 67 Сегменты не могут заходить в запретную зону а проблема - фото 326

Рис. 6.7. Сегменты не могут заходить в запретную зону (а); проблема ресинхронизации (б)

Как только обе транспортные подсистемы договариваются о начальном порядковом номере, для управления потоком данных может применяться любой протокол скользящего окна. Такой протокол правильно найдет и удалит дубликаты пакетов, когда они уже будут приняты. В действительности график порядковых номеров (показанный жирной линией) не прямой, а ступенчатый, так как показания часов увеличиваются дискретно. Впрочем, для простоты мы проигнорируем эту деталь.

Чтобы порядковые номера пакетов не попадали в запретную зону, необходимо обратить внимание на следующее.

Неприятности у протокола могут возникнуть по двум причинам. Если хост посылает слишком быстро и слишком много данных, кривая используемых в действительности порядковых номеров может оказаться круче линии зависимости начальных номеров от времени, в результате чего порядковый номер попадет в запретную зону. Чтобы этого не произошло, скорость передачи данных в каждом открытом соединении должна быть ограничена одним сегментом за единицу времени. Кроме того, это означает, что транспортная подсистема после восстановления, прежде чем открывать новое соединение, должна подождать, пока изменят свое состояние часы, чтобы один и тот же номер не использовался дважды. Следовательно, интервал изменения состояния часов должен быть коротким (1 мкс или меньше). Но также часы не должны идти слишком быстро (относительно порядковых номеров). Если скорость

часов равна C, а пространство порядковых номеров имеет размер S, условие S/C > T является обязательным, чтобы порядковые номера не сделали полный круг слишком быстро.

В запретную зону можно попасть не только снизу, передавая данные слишком быстро. Как видно из рис. 6.7, б, при любой скорости передачи данных, меньшей скорости часов, кривая используемых в действительности порядковых номеров попадет в запретную зону слева, когда порядковые номера пройдут по кругу. Чем круче наклон этой кривой, тем дольше придется ждать этого события. Чтобы избежать такой ситуации, можно ограничить скорость продвижения порядковых номеров для соединения (или время жизни соединения).

Использующий показания часов метод решает проблему невозможности различения опаздывающих дубликатов сегментов и новых сегментов. Однако в таком случае при установлении соединений могут возникнуть проблемы. Поскольку обычно получатель не помнит порядковые номера для различных соединений, он не может узнать, является ли сегментCONNECTION REQUEST , содержащий какой-либо начальный порядковый номер, дубликатом одного из предыдущих соединений. Для текущего соединения такой проблемы не возникает, так как протокол скользящего окна знает текущий порядковый номер.

Для разрешения этой специфической проблемы Томлинсон (1975) предложил тройное рукопожатие (three-way handshake). Этот протокол установления соединения предполагает, что одна из сторон проверяет, является ли соединение все еще действующим. Нормальная процедура установления соединения показана на рис. 6.8, а. Хост 1 инициирует установление, выбирая порядковый номер х, и посылает сегмент CONNECTION REQUEST , содержащий этот начальный порядковый номер, хосту 2. Хост 2 отвечает сегментомACK , подтверждая х и объявляя свой начальный порядковый номер у. Наконец, хост 1 подтверждает выбранный хостом 2 начальный порядковый номер в первом посылаемом им информационном сегменте.

Рассмотрим теперь работу «тройного рукопожатия» в присутствии задержавшегося дубликата управляющего сегмента. На рис. 6.8, б первый сегмент представляет собой задержавшийся дубликат сегментаCONNECTION REQUEST от старого соединения. Этот сегмент прибывает на хост 2 тайком от хоста 1. Хост 2 реагирует на этот сегмент отправкой хосту 1 сегментаACK , таким образом, прося хост 1 подтвердить, что тот действительно пытался установить новое соединение. Когда хост 1 отказывается это сделать, хост 2 понимает, что он был обманут задержавшимся дубликатом, и прерывает соединение. Таким образом, задержавшийся дубликат не причиняет вреда.

При наихудшем сценарии оба сегмента —CONNECTION REQUEST иACK — блуждают по подсети. Этот случай показан на рис. 6.8, в. Как и в предыдущем примере, хост 2 получает задержавшийся сегментCONNECTION REQUEST и отвечает на него. В этом месте следует обратить внимание на то, что хост 2 предложил использовать у в качестве начального порядкового номера для трафика от хоста 2 к хосту 1, хорошо зная, что сегментов, содержащих порядковый номер у, или их подтверждений в данный момент в сети нет. Когда хост 2 получает второй задержавшийся сегмент, он понимает, что это дубликат, так как в этом модуле подтверждается не у, а z. Здесь важно понять, что не существует такой комбинации сегментов, которая заставила бы протокол ошибиться и случайно установить соединение, когда оно никому не нужно.

Рис 68Три сценария установки соединения с помощью тройного рукопожатия CR - фото 327

Рис. 6.8.Три сценария установки соединения с помощью «тройного рукопожатия» (CR означает CONNECTION REQUEST): а — нормальная работа; б — появление старого дубликата CR; в — дубликат сегмента CR и дубликат сегмента ACK

TCP использует «тройное рукопожатие» для установки соединения. Внутри соединения к 32-битному порядковому номеру добавляется метка времени, чтобы он не мог использоваться повторно в течение максимального времени жизни пакета, даже если скорость соединения составляет несколько гигабит в секунду. Этот механизм был добавлен в TCP для решения проблем, возникших при использовании быстрых линий. Он описан в RFC 1323 и называется PAWS( Protection Against Wrapped Sequence numbersдетектирование повторного использования порядковых номеров). Для работы с несколькими соединениями, имеющими начальные порядковые номера, до появления PAWS протокол TCP применял метод, использующий показания часов (см. выше). Однако этот метод оказался неэффективным с точки зрения безопасности.

Благодаря использованию часов злоумышленники могли легко угадать следующий начальный порядковый номер, и таким образом обманув схему «тройного рукопожатия», инициировать ложное соединение. Поэтому на практике используются псевдослучайные начальные порядковые номера. Но для таких порядковых номеров, со стороны кажущихся абсолютно случайными, все-таки важно, чтобы они не повторялись в течение определенного промежутка времени. Иначе задержавшиеся дубликаты могут вызвать серьезные неполадки в работе сети.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Эндрю Уэзеролл читать все книги автора по порядку

Эндрю Уэзеролл - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Компьютерные сети. 5-е издание отзывы


Отзывы читателей о книге Компьютерные сети. 5-е издание, автор: Эндрю Уэзеролл. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x