Протоколы компьютерных сетей и сетевые операционные системы

Стратегии межсетевого взаимодействия. Средства согласования протоколов на разных уровнях. Протоколы канального уровня, управления каналом и нижнего уровня сети INTERNET. IP-протокол, принципы маршрутизации. Автоматизация процессов назначения IP-адресов.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 06.05.2013
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При установлении нового соединения взводится флаг SYN. Поле номера последовательности (sequence number field) содержит исходный номер последовательности (ISN - initial sequence number), который выбирается хостом для данного соединения. Номер последовательности первого байта данных, который посылается этим хостом, будет равен ISN плюс один, потому что флаг SYN занимает собой номер последовательности.

-Поле «Номер подтверждения» (acknowledgment number) - это следующий номер последовательности, который ожидает получить отправитель подтверждения. Это номер последовательности плюс 1 последнего успешно принятого байта данных. Это поле принимается в рассмотрение только если флаг ACK (описан ниже) взведен.

Отправка ACK не стоит ничего (это означает, что на подтверждение не тратится сегмент), потому что 32-битное поле номера подтверждения всегда является частью заголовка, так же как и флаг ACK. Мы увидим, что когда соединение установлено, это поле всегда установлено и флаг ACK всегда взведен.

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

-Поле «Длина TCP-заголовка» (Data Offset) означает размер TCP-заголовка в 32-разрядных словах. Эта информация нужна, так как поле Параметры может быть переменной длины, а вместе с ним и весь заголовок. Это поле можно рассматривать, как смещение от начала сегмента до начала данных в 32-битовых словах.

-Следом идет неиспользуемое 6-битовое поле (Reserved). Тот факт, что это поле выжило в течение десяти лет, является свидетельством того, насколько хорошо продуман дизайн TCP. Это резервное поле, должно быть заполнено нулями.

Затем следуют шесть 1-битовых флагов (Control Bits):

-Бит URG устанавливается в 1 в случае использования поля Указатель на срочные данные, содержащего смещение в байтах от текущего порядкового номера байта до места расположения срочных данных. Таким образом, в протоколе TCP реализуются прерывающие сообщения. Как уже упоминалось, содержимым срочных данных целиком занимается прикладной уровень. Протокол TCP лишь обеспечивает их доставку и не интересуется причиной прерывания;

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

-Бит АСК, будучи установлен в 1, означает, что поле «Номер подтверждения» содержит осмысленные данные. В противном случае данный сегмент не содержит подтверждения и поле «Номер подтверждения» просто игнорируется;

-Бит PSH является флагом PUSH, с помощью которого отправитель просит получателя доставить данные приложению сразу по получении пакета, а не хранить его в буфере, пока буфер не наполнится, что получатель может делать ради большей эффективности;

-Бит RST используется для сброса состояния соединения, которое из-за сбоя хоста или по другой причине попало в тупиковую ситуацию. Кроме того, он используется для отказа от неверного сегмента или от попытки создать соединение. Если вы получили сегмент с установленным битом RST, это означает наличие какой-то проблемы;

-Бит SYN применяется для установки соединения. У запроса соединения бит SYN = 1, а бит АСХ = 0, это означает, что поле подтверждения не используется. В ответе на этот запрос содержится подтверждение, поэтому значения этих битов в нем равны: SYN = 1, АСК = 1. Таким образом, бит SYN используется для обозначения сегментов «CONNECTION REQUEST» и «CONNECTION ACCEPTED», а бит АСК - чтобы отличать их друг от друга;

-Бит FIN используется для разрыва соединения. Он указывает, что у отправителя больше нет данных для передачи. Однако даже закрыв соединение, процесс может продолжать получать данные неопределенно долго. У сегментов с битами FIN и SYN есть порядковые номера, что гарантирует правильный порядок их выполнения.

Управление потоком в протоколе TCP осуществляется при помощи скользящего окна переменного размера.

-Поле «Размер окна» (Window) сообщает, сколько байтов может быть послано после получившего подтверждения байта. Значение поля «Размер окна» может быть равно нулю, это означает, что все байты вплоть до Номер подтверждения получены, но у получателя в данный момент какие-то проблемы, и остальные байты он пока принять не может. Разрешение на дальнейшую передачу может быть выдано отправкой сегмента с таким же значением поля «Номер подтверждения» и ненулевым значением поля «Размер окна».

-Поле «Контрольная сумма» (Checksum) призвано повысить надежность. Оно содержит контрольную сумму заголовка, данных и псевдо- заголовка, показанного на рисунке 105. При выполнении вычислений поле «Контрольная сумма» устанавливается на ноль, а поле данных дополняется нулевым байтом, если его длина представляет собой нечетное число. Алгоритм вычисления контрольной суммы просто складывает все 16-разрядные слова в дополнительном коде, а затем вычисляет дополнение для всей суммы. В результате, когда получатель считает контрольную сумму всего сегмента, включая поле «Контрольная сумма», результат должен быть равен 0.

-Поле «Указатель на срочные данные» (Urgent Pointer) используется совместно с управляющим битом URG. Число, помещаемое в это поле, указывает на конец срочных данных. Срочные данные передаются вне очереди (вне потока - out of band).

Псевдозаголовок содержит 32-разрядные IP-адреса отправителя и получателя, номер протокола для TCP и счетчик байтов для ТСР-сегмента (включая заголовок). Включение псевдозаголовка в контрольную сумму TCP помогает обнаружить неверно доставленные пакеты, хотя это нарушает иерархию протоколов, так как IP-адреса в нем принадлежат IP-уровню, а не TCP-уровню.

-Поле «Параметры» (Options) предоставляет дополнительные возможности, не покрываемые стандартным заголовком. Один из наиболее важных параметров позволяет каждому хосту указать максимальный размер поля полезной нагрузки, который он может принять. Использование сегментов большего размера является более эффективным, так как при этом снижается удельный вес накладных расходов в виде заголовка, однако не все хосты способны принимать очень большие сегменты. Хосты могут сообщить друг другу максимальный размер ноля полезной нагрузки во время установки соединения. По умолчанию этот размер равен 536 байтам. Все хосты обязаны принимать ТСР - сегменты размером

536+20=556 байт. Для двух направлений могут быть установлены различные значения размера поля полезной нагрузки.

Если параметры занимают не полностью 32 битовое поле то остаток заполняется нулями. Это действие называется выравниванием (Padding).

Для линий с большой скоростью передачи и большой задержкой окно размером в 64 Кбайт оказывается слишком маленьким. Так, для линии 73 (44,736 Мбит/с) полное окно может быть передано в линию всего за 12 мс.

Если значение времени распространения сигнала в оба конца составляет 50мс (типично для трансконтинентального оптического кабеля), 3/4 времени отправитель будет заниматься ожиданием подтверждения. При связи через спутник ситуация будет еще хуже. Больший размер окна мог бы улучшить эффективность, но 16-битовое поле «Размер окна» не позволяет указать больше 64 Кбайт. В RFC 1323 был предложен новый параметр «Масштаб окна», о значении которого два хоста могли договориться при установке соединения. Это число позволяет сдвигать поле «Размер окна» до 14 разрядов влево, позволяя расширять размер окна до 230 байт (1 Гбайт). В настоящее время большинство реализации протокола TCP поддерживают эту возможность.

Еще одна возможность, предложенная в RFC 1106 и широко применяемая сейчас, состоит в использовании протокола выборочного повтора вместо возврата на n. Если адресат получает один плохой сегмент и следом за ним большое количество хороших, у нормального TCP-протокола в конце концов истечет время ожидания, и он передаст повторно все неподтвержденные сегменты, включая те, что были получены правильно. В документе RFC 1106 было предложено использовать отрицательные подтверждения (NAK), позволяющие получателю запрашивать отдельный сегмент или несколько сегментов. Получив его, принимающая сторона может подтвердить все хранящиеся в буфере данные, уменьшая таким образом количество повторно передаваемых данных.

9.5 Управление TCP-соединением

9.5.1 В протоколе TCP соединения устанавливаются с помощью “тройного рукопожатия” (“three-way handshake”). Чтобы установить соединение, одна сторона (например, сервер) пассивно ожидает входящего соединения, выполняя примитивы LISTEN и ACCEPT, либо указав конкретный источник, либо не указав никого конкретно.

Другая сторона (например, клиент) выполняет примитив CONNECT, указывая IP-адрес и порт, с которым он хочет установить соединение, максимальный размер ТСР - сегмента и, по желанию, некоторые данные пользователя (например, пароль). Примитив «CONNECT» посылает ТСР-сегмент с установленным битом SYN u сброшенным битом АСК и ждет ответа.

Когда этот сегмент прибывает в пункт назначения, TCP-сущность проверяет, выполнил ли какой-нибудь процесс примитив «LISTEN», указав в качестве параметра тот же порт, который содержится в поле «Порт получателя». Если такого процесса нет, она отвечает отправкой сегмента с установленным битом RST для отказа от соединения.

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

Если два хоста одновременно попытаются установить соединение друг с другом, используя одну и ту же пару сокетов, то будет установлено лишь одно соединение, так как пара конечных точек однозначно определяет соединение. Последовательность событий показана на рисунке 106 б.

Размещено на http://www.allbest.ru/

Рисунок 106- Установка TCP-соединения в нормальном случае (а); столкновение вызовов (б)

Начальное значение порядкового номера не равно нулю. Используется схема, основанная на часах, тикающих каждые 4 мкс. Для большей надежности хосту после сбоя запрещается перезагружаться ранее, чем через 120 с (максимальное время жизни пакета), чтобы гарантировать, что ни один пакет от прежних соединений не бродит где-нибудь в Интернете.

9.5.2 Хотя TCP-соединения являются дуплексными, чтобы понять, как происходит их разъединение, лучше считать их парами симплексных соединений. Каждое симплексное соединение разрывается независимо от своей пары.

Для того чтобы установить соединение, необходимо 3 сегмента, а для того чтобы разорвать - 4. Это объясняется тем, что TCP соединение может быть в наполовину закрытом состоянии. Так как TCP соединение полнодуплексное (данные могут передвигаться в каждом направлении независимо от другого направления), каждое направление должно быть закрыто независимо от другого. Правило заключается в том, что каждая сторона должна послать FIN, когда передача данных завершена. Когда TCP принимает FIN, он должен уведомить приложение, что удаленная сторона разрывает соединение и прекращает передачу данных в этом направлении. FIN обычно отправляется в результате того, что приложение было закрыто.

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

Можно сказать, что та сторона, которая первой закрывает соединение (отправляет первый FIN), осуществляет активное закрытие, а другая сторона (которая приняла этот FIN) осуществляет пассивное закрытие. Обычно одна сторона осуществляет активное закрытие, а другая - пассивное, однако в обе стороны могут осуществить активное закрытие "Одновременное закрытие".

Когда сервер получает FIN, он отправляет назад ACK с принятым номером последовательности плюс один. На FIN тратится один номер последовательности, так же как на SYN. В этот момент TCP сервер также доставляет приложению признак конца файла (end-of-file) (чтобы выключить сервер). Затем сервер закрывает свое соединение, что заставляет его TCP послать FIN, который клиент должен подтвердить (ACK), увеличив на единицу номер принятой последовательности.

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

Соединения обычно устанавливаются клиентом, то есть первый SYN двигается от клиента к серверу. Однако любая сторона может активно закрыть соединение (послать первый FIN). Часто, однако, именно клиент определяет, когда соединение должно быть разорвано, так как процесс клиента в основном управляется пользователем, который вводит что-нибудь подобное "quit", чтобы закрыть соединение.

Рисунок 107 - Обычный обмен сегментами при закрытии соединения.

С одной стороны (часто, но не всегда, со стороны клиента) осуществляется активное закрытие, при этом посылается первый FIN. Также возможно для обеих сторон осуществить активное закрытие, так как протокол TCP позволяет осуществить одновременное закрытие (simultaneous close).

При разъединении оба конца переходят от состояния «Установлено» (ESTABLISHED) к состоянию «Ожидание FIN 1» (FIN WAIT 1), когда приложение выдает сигнал к закрытию. При этом оба посылают FIN, которые возможно встретятся где-нибудь в сети. Когда FIN принят, на каждом конце происходит переход из состояния FIN WAIT 1 в состояние «Закрываю» (CLOSING) и с каждой стороны посылается завершающий ACK. Когда каждый конец получает завершающий ACK, состояние меняется на TIME WAIT. На рисунке 108 показаны изменения состояний.

Рисунок 108 - Обмен сегментами в процессе одновременного закрытия.

При одновременном закрытии происходит обмен таким же количеством пакетов, как и при обычном закрытии.

Чтобы избежать проблемы двух армий, используются таймеры. Если ответ на посланный FIN-ceruem не приходит в течение двух максимальных интервалов времени жизни пакета, отправитель FIN-сегмеита разрывает соединение. Другая сторона в конце концов заметит, что ей никто не отвечает, и также разорвет соединение. Хотя такое решение и не идеально, учитывая недостижимость идеала, приходится пользоваться тем, что есть. На практике проблемы возникают довольно редко.

9.5.3 TCP предоставляет возможность одному участнику соединения прекратить передачу данных, однако все еще получать данные от удаленной стороны. Это называется наполовину закрытый TCP. Немногие приложения могут пользоваться этой возможностью.

Чтобы использовать эту характеристику программного интерфейса, необходимо предоставить возможность приложению сказать: "Я закончило передачу данных, поэтому посылаю признак конца файла (end-of-file) (FIN) на удаленный конец, однако я все еще хочу получать данные с удаленного конца до тех пор, пока он мне не пошлет признак конца файла (end-of-file) (FIN)."

На рисунке 109 показан стандартный сценарий для полузакрытого TCP. Мы показали клиента с левой стороны, он инициирует полузакрытый режим, однако это может сделать любая сторона. Первые два сегмента одинаковы: FIN от инициатора, за ним следует ACK и FIN от принимающего. Однако дальше сценарий будет отличаться от того, который приведен на рисунке 108, потому что сторона, которая приняла приказ "полузакрыть", может все еще посылать данные. На рисунке 109 показан только один сегмент данных, за которым следует ACK, однако в этом случае может быть послано любое количество сегментов данных. Когда конец, который получил приказ "полузакрыть", осуществил передачу данных, он закрывает свою часть соединения, в результате чего посылается FIN, при этом признак конца файла доставляется приложению, которое инициировало "полузакрытый" режим. Когда второй FIN подтвержден, соединение считается полностью закрытым.

Рисунок 109 - TCP в полузакрытом режиме

9.5.4 Этапы, необходимые для установки и разрыва соединения, могут быть представлены в виде диаграммы конечных состояний, 11 состояний которой перечислены в таблице 11. В каждом состоянии могут происходить разрешенные и запрещенные события. В ответ на какое-либо разрешенное событие может осуществляться определенное действие. При возникновении запрещенных событий сообщается об ошибке. Каждое соединение начинается в состоянии CLOSED (закрытое). Оно может покинуть это состояние, предпринимая либо активную (CONNECT), либо пассивную (LISTEN) попытку открыть соединение. Если противоположная сторона предпринимает противоположные действия, соединение устанавливается и переходит в состояние ESTABLISHED. Инициатором разрыва соединения может выступить любая сторона. По завершении процесса разъединения соединение возвращается в состояние CLOSED.

Таблица 11. - Состояния, используемые в диаграмме конечных состояний, управляющей TCP-соединением

Состояние

Описание

CLOSED

Закрыто. Соединение не является активным и не находится в процессе установки

LISTEN

Ожидание. Сервер ожидает входящего запроса

SYN RCVD

Прибыл запрос соединения. Ожидание подтверждения

SYN SENT

Запрос соединения послан. Приложение начало открывать соединение

ESTABLISHED

Установлено. Нормальное состояние передачи данных

FIN WAIT 1

Приложение сообщило, что ему больше нечего передавать

Состояние

Описание

FIN WAIT 2

Другая сторона согласна разорвать соединение

TIMED WAIT

Ожидание, пока в сети не исчезнут все пакеты

CLOSING

Обе стороны попытались одновременно закрыть соединение

CLOSE WAIT

Другая сторона инициировала разъединение

LAST ACK

Ожидание, пока в сети не исчезнут все пакеты

Диаграмма конечных состоянии показана на рисунке 110. Обычный случаи клиента, активно соединяющегося с пассивным сервером, показан жирными линиями - сплошными для клиента и пунктиров для сервера. Тонкие линии обозначают необычные последовательности событий. Каждая линия на рисунке 110 маркирована парой событие/действие. Событие может быть либо обращением пользователя к системной процедуре (CONNECT, LISTEN, SEND или CLOSE), либо прибытием сегмента (SYN, FIN, ACK или RST), либо, в одном случае, истекшим периодом ожидания, равным двойному времени жизни пакетов. Действие может состоять в отправке управляющего сегмента (SYN, FIN или RST) или может не предприниматься никакого действия, что обозначается прочерком. В скобках приводятся комментарии.

Диаграмму легче всего понять, сначала следуя по пути клиента (сплошная жирная линия), затем по пути сервера (пунктир). Когда приложение на машине клиента вызывает примитив CONNECT, локальная TCP-сущность создает запись соединения, помечает его состояние как

SYN SENT посылает, SYN сегмент. Несколько приложений одновременно могут открыть несколько соединений, поэтому свое состояние, хранящееся в записи соединения, есть у каждого отдельного соединения. Когда прибывает сегмент SYN + ACK, TCP-сущность посылает последний ACK-сегмент «тройного рукопожатия» и переключается в состояние ESTABLISHED. В этом состоянии могут пересылаться и получаться данные.

На рисунке 110 жирной сплошной линией показан нормальный путь клиента. Пунктиром показан путь сервера. Тонкими линиями обозначены необычные события.

Размещено на http://www.allbest.ru/

Рисунок 110 - Диаграмма конечных состояний TCP-соединения.

Когда у приложения больше нет данных для передачи, оно выполняет примитив CLOSE, заставляющий локальную TCP-сущность послать F/N-сегмент и ждать ответного ACK-сегмента (пунктирный прямоугольник с пометкой «активное разъединение»). Когда прибывает подтверждение, происходит переход в состояние FIN WAIT 2, и одно направление соединения закрывается. Когда приходит встречный FIN-сегмент, в ответ на него также высылается подтверждение, и второе направление соединения также закрывается. Теперь обе стороны соединения закрыты, но TCP-сущность выжидает в течение времени, равного максимальному времени жизни пакета, чтобы гарантировать, что все пакеты этого соединения больше не перемещаются по сети, даже в том случае, если подтверждение было потеряно. Когда этот период ожидания истекает, TCP-сущность удаляет запись о соединении.

Рассмотрим теперь управление соединением с точки зрения сервера. Сервер выполняет примитив LISTEN и переходит в режим ожидания запросов соединения. Когда приходит SYN сегмент, в ответ на него высылается подтверждение, после чего сервер переходит в состояние SYNRCVD (запрос соединения получен). Когда в ответ на SYN-подтверждение сервера от клиента приходит ACK-сегмент, процедура «тройного рукопожатия» завершается и сервер переходит в состояние ESTABLISHED. Теперь можно пересылать данные.

Когда клиент передал достаточное количество данных, он выполняет примитив CLOSE, в результате чего FIN-сегмент прибывает на сервер (пунктирный прямоугольник, обозначенный как пассивное разъединение). Теперь сервер выполняет примитив CLOSE, a FIN-сегмент посылается клиенту. Когда от клиента прибывает подтверждение, сервер разрывает соединение и удаляет запись о соединении.

Протокол TCP обеспечивает надёжную доставку информации в том смысле, что он организует прямое подтверждение (квитирование) корректного приёма информации получателем.

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

Ожидание квитанции может быть бесконечным. Для выхода из такого состояния используется механизм тайм-аута. Сущность его заключается в том, что отправитель, передав в канал блок, включает счетчик времени и ожидает квитанцию в течение некоторого временного интервала (тайм-аута) с момента передачи. По истечении этого времени отправитель считает, что пакет утерян или искажен, и повторяет передачу (положительное квитирование с повторной передачей - positive acknowledgment with retransmission).

В таблице 12. сведены состояния TCP соединения с указанием состояний битов управления на каждом из этапов состояния соединения, А также указаны содержания полей: «порядковый номер» N(S) и «Номер подтверждения» N(R). Поле «номер» указывает на последовательность передачи блоков.

Таблица 12- Состояния TCP соединения

Этап соединения

Вид

Направление передачи и состояние битов управления

Состояние полей номеров

Прямое направление

Обратное направление

N(S)

N(R)

Установление соединения

Нормальный

1

SYN

-

X

-

2

-

ACK, SYN

Y

+1

3

ACK

-

+1

+1

Столкновение вызовов

1

SYN

-

X

-

2

-

SYN

Y

-

3

ACK

-

+1

+1

4

-

ACK

+1

+1

Передача данных

Простая передача

1

ACK данные

-

X

Y

2

-

ACK

Y

+1

-1

ACK данные

-

X+(n-1)/2

Y+(n-1)/2

n

-

ACK

Y+(n/2-11)

X+(n/2)

Групповая пересылка (групповое квитирование)

1

ACK данные

-

X

Y

2

ACK данные

-

+1

Y

3

ACK данные

-

+2

Y

4

-

ACK

Y

+3

5

ACK данные

-

+3

+1

6

ACK данные

-

+4

+1

7

ACK данные

-

+5

+1

8

-

ACK

+1

+6

Разрыв соединения

Нормальный

1

FIN, ACK

-

X

Y

2

-

ACK

Y

+1

3

-

FIN, ACK

+1

X

4

ACK

-

+1

+2

Одновременное закрытие

1

FIN, ACK

-

X

Y

2

-

FIN, ACK

Y

X

3

ACK

-

+1

+1

4

-

ACK

+1

+1

Наполовину закрытый TCP

1

FIN, ACK

-

X

Y

2

-

ACK

Y

+1

3

-

ACK данные

+1

+1

4

ACK

-

+1

+2

5

-

ACK данные

+2

+2

6

ACK

-

+2

+3

n+1

FIN, ACK

Y+(n/2+1)

X+(n/2+1)

n

ACK

X+(n/2+1)

X+(n/2)

9.5.5 Ожидание квитанции может быть бесконечным. Для выхода из такого состояния используется механизм тайм-аута. Сущность его заключается в том, что отправитель, передав в канал блок, включает счетчик времени и ожидает квитанцию в течение некоторого временного интервала (тайм-аута) с момента передачи. По истечении этого времени отправитель считает, что пакет утерян или искажен, и повторяет передачу (положительное квитирование с повторной передачей - positive acknowledgment with retransmission).

В Internet (ввиду глобальности сети) нельзя заранее принять конкретное усредненное значение длительности тайм-аута. Если тайм-аут настроен на задержку, оптимальную для локальной сети, то скорее всего о будет слишком коротким для информационного обмена через глобальные сети. Большое же время ожидания снижает эффективность использования пропускной способности сети, поскольку отправитель может слишком долго ждать подтверждений.

TCP управляет четырьмя таймерами для каждого соединения:

-Таймер повторной передачи (retransmission) используется в том случае, когда ожидается подтверждение от удаленного конца.

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

-Таймер времени жизни (keepalive) определяет, когда можно считать, что удаленный конец вышел из строя или перезагрузился.

-Таймер 2MSL определяет время, в течение которого соединение может быть в состоянии «TIME WAIT».

Основой тайм-аутов и повторных передач TCP является расчет времени возврата (RTT - round-trip time), соответствующего данному соединению. Мы ожидаем, что оно может изменяться со временем, так как может измениться маршрут или загрузка сети. TCP должен отследить эти изменения и соответственно модифицировать тайм-ауты.

Состояние «Время ожидания» (TIME WAIT) также иногда называется состоянием ожидания 2MSL (MSL - maximum segment lifetime). В каждой реализации выбирается значение для максимального времени жизни сегмента MSL. Это максимальное время, в течение которого сегмент может существовать в сети, перед тем как он будет отброшен. Мы знаем, что это время ограничено, так как TCP сегменты передаются посредством IP датаграмм, а каждая IP датаграмма имеет поле TTL, которое ограничивает время ее жизни.

При использовании MSL действуют следующие правила: когда TCP осуществляет активное закрытие и посылает последний сегмент, содержащий подтверждение (ACK), соединение должно остаться в состоянии TIME WAIT на время равное двум MSL. Это позволяет TCP повторно послать последний ACK в том случае, если первый ACK потерян (в этом случае удаленная сторона отработает тайм-аут и повторно передаст свой конечный FIN).

Другое назначение ожидания 2MSL заключается в том, что пока TCP соединение находится в ожидании 2MSL, пара сокетов, выделенная для этого соединения (IP адрес клиента, номер порта клиента, IP адрес сервера и номер порта сервера), не может быть повторно использована. Это соединение может быть использовано повторно только, когда истечет время ожидания 2MSL.

К сожалению, большинство реализаций подчиняются более жестким требованиям. По умолчанию локальный номер порта не может быть повторно использован до тех пор, пока этот номер порта является локальным номером порта пары сокетов, который находится в состоянии ожидания 2MSL. Ниже мы рассмотрим примеры общих требований.

Некоторые реализации и API предоставляют средства, которые позволяют обойти эти ограничения. С использованием API сокет может быть указана опция сокета «SO REUSEADDR». Она позволяет вызывающему назначить себе номер локального порта, который находится в состоянии 2MSL, однако мы увидим, что правила TCP не позволяют этому номеру порта быть использованным в соединении, которое находится в состоянии ожидания 2MSL.

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

Как мы уже показали, обычно клиент осуществляет активное закрытие и входит в режим «TIME WAIT». Сервер обычно осуществляет пассивное закрытие и не проходит через режим «TIME WAIT». Можно сделать вывод, что если мы выключим клиента и немедленно его перестартуем, этот новый клиент не сможет использовать тот же самый локальный номер порта. В этом нет никакой проблемы, так как клиенты обычно используют динамически назначаемые порты и не заботятся, какой динамически назначаемый порт используется в настоящее время.

Однако, с точки зрения сервера, все иначе, так как сервера используют заранее известные порты. Если мы выключим сервер, который имеет установленное соединение, и постараемся немедленно перестартовать его, сервер не может использовать свой заранее известный номер порта в качестве конечной точки соединения, так как этот номер порта является частью соединения, находящегося в состоянии ожидания 2MSL. Поэтому может потребоваться от 1 до 4 минут, перед тем как сервер будет перестартован.

Состояние ожидания 2MSL предоставляет защиту от опоздавших пакетов, принадлежащих ранним соединениям, при этом они не будут интерпретироваться как часть нового соединения, которое использует те же самые локальный и удаленный IP адреса и номера портов. Однако это работает только в том случае, если хост с соединением в состоянии 2MSL не вышел из строя.

Что если хост с портами в состоянии 2MSL вышел из строя, перезагрузился во время MSL и немедленно установил новые соединения с использованием тех же самых локальных и удаленных IP адресов и номеров портов, соответствующих локальным портам, которые были в состоянии 2MSL перед поломкой? В этом случае опоздавшие сегменты из соединения, которое существовало перед поломкой, могут быть ошибочно интерпретированы как принадлежащие новому соединению, созданному после перезагрузки. Это может произойти вне зависимости от того, какой исходный номер последовательности выбран после перезагрузки.

Чтобы защититься от подобных нежелательных сценариев, RFC 793 указывает, что TCP не должен создавать новые соединения до истечения MSL после момента загрузки. Это называется тихое время (quiet time).

В некоторых реализациях хосты ожидают даже дольше, чем время MSL после перезагрузки.

В состоянии «FIN WAIT 2» (Ожидание и подтверждение FIN) мы посылаем наш FIN, а удаленная сторона подтверждает его. Если мы не находимся в состоянии полузакрытого соединения, то ожидаем от приложения на удаленном конце, что оно опознает прием признака конца файла и закроет свою сторону соединения, причем пошлет нам FIN. Только когда процесс на удаленном конце осуществит это закрытие, наша сторона перейдет из режима «FIN WAIT 2» в режим «TIME WAIT».

Это означает, что наша сторона соединения может остаться в этом режиме навсегда. Удаленная сторона все еще в состоянии «CLOSE WAIT» и может оставаться в этом состоянии всегда, до тех пор, пока приложение не решит осуществить закрытие.

9.5.6 Максимальный размер сегмента (MSS) это самая большая порция данных, которую TCP пошлет на удаленный конец. Когда соединение устанавливается, каждая сторона может объявить свой MSS. IP дейтаграмма, которая получится в результате, обычно на 40 байт больше: 20 байт отводится под TCP заголовок и 20 байт под IP заголовок.

Когда соединение устанавливается, каждая сторона объявляет MSS, которой она собирается принимать. (Опция MSS может быть использована только в SYN сегменте.) Если одна сторона не принимает опцию MSS от другой стороны, используется размер по умолчанию в 536 байт. (В этом случае, при 20-байтном IP заголовке и 20-байтном TCP заголовке, размер IP датаграммы будет составлять 576 байт.)

В общем случае, чем больше MSS тем лучше, до тех пор пока не происходит фрагментация. Большие размеры сегмента позволяют послать больше данных в каждом сегменте, что уменьшает относительную стоимость IP и TCP заголовков. Когда TCP отправляет SYN сегмент, либо когда локальное приложение хочет установить соединение, или когда принят запрос на соединение от удаленного хоста, может быть установлено значение MSS равное MTU исходящего интерфейса минус размер фиксированных TCP и IP заголовков. Для Ethernet MSS может достигать 1460 байт. При использовании инкапсуляции IEEE 802.3 MSS может быть до 1452 байт.

Если IP адрес назначения "нелокальный", MSS обычно устанавливается по умолчанию - 536. Является ли локальным или нелокальным конечный пункт назначения можно следующим образом. Пункт назначения, IP адрес которого имеет тот же самый идентификатор сети и ту же самую маску подсети, что и у отправителя, является локальным. Пункт назначения, IP адрес которого полностью отличается от идентификатора сети, является нелокальным, Пункт назначения с тем же самым идентификатором сети, однако с другой маской подсети может быть как локальным, так и нелокальным. Большинство реализаций предоставляют опцию конфигурации, которая позволяет системному администратору указать, какие подсети являются локальными, а какие нелокальными. Установка этой опции определяет максимальный анонсируемый MSS (который по величине может достигать MTU исходящего интерфейса), иначе используется значение по умолчанию равное 536.

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

9.5.7 В TCP заголовке существует бит, называемый RST, что означает "сброс" (reset). В общем случае сигнал "сброс" (reset) посылается TCP в том случае, если прибывающие сегменты не принадлежат указанному соединению. (термин "указанное соединение" (referenced connection), который обозначает соединение, идентифицируемое IP адресом назначения и номером порта назначения, а также IP адресом источника и номером порта источника. (В RFC 793 - называется "сокет".)

Самый общий случай, при котором генерируется сброс (reset), это когда запрос о соединении прибывает и при этом не существует процесса, который слушает порт назначения. В случае UDP, если дейтаграмма прибывает на неиспользуемый порт назначения - генерируется ошибка ICMP о недоступности порта. TCP вместо этого использует сброс.

Рассмотрим поле номера последовательности и поле номера подтверждения в сбросе. Так как бит подтверждения (ACK) не был установлен в прибывшем сегменте, номер последовательности сброса установлен в 0, а номер подтверждения установлен во входящий исходный номер последовательности (ISN) плюс количество байт данных в сегменте. Несмотря на то, что в прибывшем сегменте не присутствует реальных данных, бит SYN логически занимает 1 байт в пространстве номера последовательности; таким образом, в этом примере номер подтверждения в сбросе устанавливается в ISN плюс длина данных (0) плюс один SYN бит.

Обычный метод, используемый для разрыва соединения, заключается в том, что одна из сторон посылает FIN. Иногда это называется правильным освобождением (orderly release), так как FIN посылается после того, как все данные, ранее поставленные в очередь, были отправлены, и обычно при этом не происходит потеря данных. Однако существует возможность прервать соединение, послав сброс (reset) вместо FIN. Иногда это называется прерывающим освобождением (abortive release).

Подобный разрыв соединения предоставляет приложению две возможности:

-любые данные, стоящие в очереди, теряются, и сброс отправляется немедленно;

-сторона, принявшая RST, может сказать, что удаленная сторона разорвала соединение, вместо того чтобы закрыть его обычным образом. Программный интерфейс (API), который используется приложением, должен предоставлять способ сгенерировать подобный сброс вместо нормального закрытия.

9.5.8 Определение полуоткрытого соединения

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

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

9.6 Управление передачей в TCP

9.6.1 Управление окном в TCP не привязано напрямую к подтверждениям, как это делается в большинстве протоколов передачи данных. Например, предположим, у получателя есть 4096-байтовый буфер, как показано на рисунке 111. Если отправитель передает 2048-байтовый сегмент, который успешно принимается получателем, то получатель подтверждает получение сегмента. Однако при этом у получателя остается всего лишь 2048 байт свободного буферного пространства (пока приложение не заберет сколько-нибудь данных из буфера), о чем он и сообщает отправителю, указывая соответствующий размер окна и номер следующего ожидаемого байта.

Теперь отправитель посылает еще 2048 байт, получение которых подтверждается, но размер окна объявляется равным 0. Отправитель должен остановиться, пока получающий хост не освободит места в буфере и не увеличит размер окна.

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

Отправители не обязаны передавать данные сразу, как только они приходят от приложения. Также никто не требует от получателей посылать подтверждения как можно скорее. Например, на рисунке 111. TCP-сущность, получив от приложения первые 2 Кбайт данных и зная, что доступный размер окна равен 4 Кбайт, была бы совершенно права, просто сохранив полученные данные в буфере до тех пор, пока не прибудут другие 2 Кбайт данных, чтобы передать сразу сегмент с 4 Кбайт полезной нагрузки. Эта свобода действий может использоваться для улучшения производительности.

Рассмотрим TELNET соединение с интерактивным редактором, реагирующим на каждое нажатие клавиши. В худшем случае, когда символ прибывает к передающей TCP-сущности, она создает 21-байтовый ТСР-сегмент и передает его IP-уровню, который, в свою очередь, посылает 41-байтовую IP-дейтаграмму. На получающей машине TCP-сущность немедленно отвечает 40-байтовым подтверждением (20 байт TCP-заголовка и 20 байт IP-заголовка). Затем, когда редактор прочитает этот байт из буфера, TCP-сущность пошлет обновленную информацию о размере буфера, передвинув окно на 1 байт вправо. Размер этого пакета также 40 байт. Наконец, когда редактор обработает этот символ, он отправляет обратно эхо, передаваемое также 41-байтовым пакетом. Итого для каждого введенного с клавиатуры символа пересылается четыре пакета общим размером в 162 байта. При недостаточной пропускной способности линий этот метод работы нежелателен.

Для улучшения этой ситуации многие реализации TCP используют задержку подтверждении и обновлении размера окна на 500 мс, в надежде получить дополнительные данные, вместе с которыми можно будет отправить подтверждение одним пакетом. Если редактор успеет выдать эхо в течение 500 мс, удаленному пользователю нужно будет выслать только один 41-байтовый пакет, таким образом снизив нагрузку на сеть вдвое.

Размещено на http://www.allbest.ru/

Рисунок 111- Управление окном в TCP

Хотя такой метод задержки и снижает нагрузку на сеть, тем не менее, эффективность использования сети отправителем продолжает оставаться невысокой, так как каждый байт пересылается в отдельном

41-байтовом пакете. Метод, позволяющий повысить эффективность, известен как алгоритм Нагля (Nagle).

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

Алгоритм Нагля широко применяется различными реализациями протокола TCP, однако иногда бывают ситуации, в которых его лучше отключить. В частности, во время работы приложения X-Windows в Интернете информация о перемещениях мыши пересылается на удаленный компьютер. Если буферизировать эти данные для пакетной пересылки, курсор будет перемещаться рывками с большими паузами, в результате чего пользоваться программой будет очень сложно, если вообще возможно.

Еще одна проблема, способная значительно снизить производительность протокола TCP, известна под именем синдрома «глупого» окна (SWS - silly window syndrome). Суть проблемы в том, что данные пересылаются TCP-сущностью крупными блоками, но принимающая сторона интерактивного приложения читает их посимвольно. Чтобы ситуация стала понятнее, рассмотрим рисунок. 112. Вначале TCP-буфер приемной стороны полон, и отправителю это известно (то есть размер его окна равен 0). Затем интерактивное приложение читает один символ из TCP-потока. Принимающая TCP-сущность сообщает отправителю, что размер окна увеличился и что он теперь может послать один байт. Отправитель повинуется и посылает один байт. Буфер снова полон, о чем получатель и извещает, посылая подтверждение для 1-байтового сегмента с нулевым размером окна. И так может продолжаться вечно.

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

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

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

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

Размещено на http://www.allbest.ru/

Рисунок 112 - Синдром глупого окна

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

Еще одна проблема получателя состоит в сегментах, полученных с нарушением порядковых номеров. Они могут храниться или игнорироваться по усмотрению получателя. Разумеется, подтверждение может быть выслано, только если все данные вплоть до подтверждаемого байта получены. Если до получателя доходят сегменты 0, 1, 2, 4, 5, 6 и 7, он может подтвердить получение данных вплоть до последнего байта сегмента 2. Когда у отправителя истекает время ожидания, он передает сегмент 3 еще раз. Если к моменту прибытия сегмента 3 получатель сохранил в буфере сегменты с 4 по 7, он может подтвердить получение всех байтов, вплоть до последнего байта сегмента 7.

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

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

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

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

Решение, применяемое в Интернете, состоит в осознании существования двух потенциальных проблем: низкой пропускной способности сети и низкой емкости получателя - и в раздельном решении обеих проблем. Для этого каждый отправитель содержит два окна: окно, предоставленное получателем, и окно перегрузки. Каждое окно отражает количество байтов, которое отправитель имеет право передать. Отправитель руководствуется минимальным из этих двух значений. Например, если получатель говорит: «Посылайте 8 Кбайт», но отправитель знает, что если он пошлет более 4 Кбайт, то в сети образуется затор, он посылает 4 Кбайт. Если же отправитель знает, что сеть способна пропустить и большее количество данных, например 32 Кбайт, он передаст столько, сколько просит получатель.

9.7 Будущее TCP и его производительность

9.7.1 TCP функционирует уже в течение многих лет и по SLIP каналам со скоростью 1200 бит в секунду, и по Ethernet. В 80-х и начале 90-х годов Ethernet был основным типом канального уровня для TCP/IP. Несмотря на то, что TCP корректно работает на скоростях больших, чем предоставляемые Ethernet (телефонные линии T3, FDDI и гигабитные сети, например), на повышенных скоростях начинают сказываться некоторые ограничения TCP.

Рассмотрим T/TCP - модификацию TCP для транзакций. Режим транзакций это характеристики коммуникации, при которых на запрос от клиента приходит отклик от сервера. Основная задача T/TCP заключается в том, чтобы уменьшить количество сегментов, которыми обмениваются два участника соединения, при этом отпадает необходимость в трехразовом рукопожатии (three-way handshake) и четырех сегментах, которыми необходимо обменяться, чтобы закрыть соединение. При этом клиент получает отклик от сервера через время, равное одному RTT, плюс время, необходимое для обработки запроса.

Характеристики определения транспортного MTU, опции масштабирования окна, опции временной марки и T/TCP - уже совместимы с существующими реализациями TCP. Новые системы, которые имеют эти опции, могут общаться с более ранними системами. За исключением дополнительных полей в ICMP сообщении, которые могут быть использованы при определении транспортного MTU, новые опции должны быть реализованы только на конечных системах, которые хотят пользоваться их преимуществами.

9.7.2 Транспортный MTU - это минимальный MTU в любой из сетей, по которым проходит маршрут между двумя хостами. При определении транспортного MTU в IP заголовке устанавливается бит "не фрагментировать" (DF - don't fragment), что позволяет определить, необходимо ли какому-либо маршрутизатору на текущем маршруте фрагментировать IP дейтаграммы, которые мы посылаем.

Алгоритм определения транспортного MTU TCP работает следующим образом: когда соединение установлено, TCP использует минимальный MTU исходящего интерфейса или MSS, объявленный удаленным концом, в качестве исходного размера сегмента. Алгоритм определения транспортного MTU не позволяет TCP превосходить MSS, объявленный удаленным концом. Если удаленный конец не указал MSS, то он устанавливается по умолчанию в значение равное 536. Реализации могут сохранить информацию о транспортном MTU определенного канала.

После того как выбран исходный размер сегмента, во всех IP дейтаграммах, отправляемых TCP по этому соединению, устанавливается бит DF. Если промежуточному маршрутизатору необходимо фрагментировать дейтаграмму, в которой установлен бит DF, он отбрасывает дейтаграмму и генерирует ICMP ошибку "не могу фрагментировать" (can't fragment). Если принята такая ICMP ошибка, TCP уменьшает размер сегмента и повторяет передачу. Если маршрутизатор сгенерировал новую ICMP ошибку, размер сегмента может быть установлен в MTU следующей пересылки минус размеры IP и TCP заголовков.

Если возвратилась старая ICMP ошибка, должно быть использовано следующее меньшее значение MTU. Когда осуществляются повторные передачи, вызванные этими ICMP ошибками, окно переполнения не должно изменяться, вместо этого должен быть использован медленный старт.


Подобные документы

  • Отображение физических адресов на IP-адреса: протоколы ARP и RARP. Примеры организации доменов и доменных имен. Автоматизация процесса порядка назначения IP-адресов узлами сети. Маска подсети переменной длины. Протокол межсетевого взаимодействия IP.

    контрольная работа [145,7 K], добавлен 23.01.2015

  • Общие понятия компьютерных сетей. Протоколы и их взаимодействие. Базовые технологии канального уровня. Сетевые устройства физического и канального уровня. Характеристика уровней модели OSI. Глобальные компьютерные сети. Использование масок в IP-адресации.

    курс лекций [177,8 K], добавлен 16.12.2010

  • Распространенные сетевые протоколы и стандарты, применяемые в современных компьютерных сетях. Классификация сетей по определенным признакам. Модели сетевого взаимодействия, технологии и протоколы передачи данных. Вопросы технической реализации сети.

    реферат [22,0 K], добавлен 07.02.2011

  • Модели и протоколы передачи данных. Эталонная модель OSI. Стандартизация в области телекоммуникаций. Стеки протоколов и стандартизация локальных сетей. Понятие открытой системы. Internet и стек протоколов TCP/IP. Взаимодействие открытых систем.

    дипломная работа [98,9 K], добавлен 23.06.2012

  • Работы по созданию сети ARPANET, протоколы сетевого взаимодействия TCP/IP. Характеристика программного обеспечения для TCP/IP. Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур. Архитектура, уровни сетей и протоколы TCP/IP.

    реферат [15,7 K], добавлен 03.05.2010

  • Классификация компьютерных сетей. Взаимодействие компьютеров в сети. Сетевые модели и архитектуры. Мосты и коммутаторы, сетевые протоколы. Правила назначения IP-адресов сетей и узлов. Сетевые службы, клиенты, серверы, ресурсы. Способы доступа в Интернет.

    курсовая работа [1,5 M], добавлен 11.05.2014

  • Компьютерные сети и их классификация. Аппаратные средства компьютерных сетей и топологии локальных сетей. Технологии и протоколы вычислительных сетей. Адресация компьютеров в сети и основные сетевые протоколы. Достоинства использования сетевых технологий.

    курсовая работа [108,9 K], добавлен 22.04.2012

  • Достоинства компьютерных сетей. Основы построения и функционирования компьютерных сетей. Подбор сетевого оборудования. Уровни модели OSI. Базовые сетевые технологии. Осуществление интерактивной связи. Протоколы сеансового уровня. Среда передачи данных.

    курсовая работа [2,7 M], добавлен 20.11.2012

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

    контрольная работа [23,4 K], добавлен 04.10.2008

  • Internet – глобальная компьютерная сеть. Обмен данными между рассредоточенными системами. Построение распределённых ресурсов, их администрирование и наполнение. Сущность IP адреса, TCP/IP - протокол контроля передачи и протокол межсетевого взаимодействия.

    контрольная работа [32,5 K], добавлен 10.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.