По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Первая часть статьи доступна по ссылке: Базовая настройка коммутатора Cisco - часть 1 Защита доступа в пользовательском режиме с помощью локальных имен пользователей и паролей Коммутаторы Cisco поддерживают два других метода безопасного входа, которые используют пары имя пользователя / пароль вместо общего пароля без ввода имени пользователя. Первый метод, использует ввод локального имени пользователя и пароля. Происходит настройка пары имя пользователя / пароль локально-то есть в конфигурации коммутатора. Коммутаторы поддерживают режим локального имени пользователя / пароля для входа по консоли, по Telnet и даже по SSH, но не изменяют пароль от привилегированного режима (enable), используемый для входа в режим enable. Настройки для перехода от использования простых общих паролей к использованию локальных имен пользователей/паролей требует лишь небольших изменений конфигурации, как показано на рис.3. На рисунке показаны два ПК, пытающиеся получить доступ к пользовательскому режиму. Один из ПК подключен по консольному кабелю в пользовательский режим через линию console 0, а другой ПК по Telnet, соединяющийся через терминальные линии vty 0 15. Оба ПК не имеют паролей для входа, и задано имя пользователя для обоих ПК - " local." На рисунке в Пользовательском режиме используется две команды: 1- username ulanbaby secret box 2- username landy secret box Глядя на настройки на рисунке, видно, во-первых, коммутатору, необходимо задать пару имя пользователя/пароль. Для их создания, в режиме глобальной конфигурации, введите команду создания имени пользователя и зашифрованного пароля -username <имя пользователя> secret <пароль>. Затем, чтобы включить тип безопасности входа с проверкой логина (имени пользователя ) по консоли или Telnet, просто добавьте команду login local. По сути, эта команда означает " использовать локальный список имен пользователей для входа в систему." Вы также можете использовать команду no password, чтобы очистить все оставшиеся команды паролей из консоли или режима vty, потому что эти команды не нужны при использовании локальных имен пользователей и паролей. Ниже подробно описаны шаги для настройки доступа к к коммутатору с использованием логина и пароля: Шаг 1. В режиме глобальной конфигурации используйте команду username <имя пользователя > secret <пароль>, чтобы создать одну или несколько пар имя пользователя/пароль в локальной базе коммутатора. Шаг 2. Настройте консоль на использование пар имя пользователя / пароль из локальной базы коммутатора: используйте команду line con 0 для входа в режим конфигурации консоли. используйте подкоманду login local, чтобы разрешить коммутатору запрашивать имя пользователя и пароль, совпадающие со списком локальных имен пользователей/паролей. (необязательно) используйте подкоманду no password для удаления всех существующих простых общих паролей, просто для оптимизации конфигурации. Шаг 3. Настройте Telnet (vty) для использования пар имя пользователя / пароль из локальной базы коммутатора: 1. используйте команду line vty 0 15 для входа в режим конфигурации vty для всех 16 терминальных линий vty (пронумерованных от 0 до 15). 2. используйте подкоманду login local, чтобы разрешить коммутатору запрашивать имя пользователя и пароль для всех входящих пользователей Telnet, со списком локальных имен пользователей/паролей. 3. (необязательно) используйте подкоманду no password для удаления всех существующих простых общих паролей, просто для оптимизации конфигурации. При попытке подключиться по Telnet к коммутатору, настроенному как показано на рисунке, пользователю будет предложено сначала ввести имя пользователя, а затем пароль, как показано в Примере 4. Пара имя пользователя / пароль должна быть в локальной базе коммутатора.В противном случае вход в систему будет отклонен. В примере 4 коммутаторы Cisco не отображает символы при вводе пароля по соображениям безопасности. Защита доступа в пользовательском режиме с помощью внешних серверов аутентификации В конце примера 4 показано одно из многочисленных улучшений безопасности, когда требуется, чтобы каждый пользователь входил под своим собственным именем пользователя. Также в конце примера показано, как пользователь входит в режим конфигурации (configure terminal), а затем сразу же покидает его (end). Обратите внимание, что при выходе пользователя из режима конфигурации коммутатор генерирует сообщение журнала (log). Если пользователь вошел в систему с именем пользователя, сообщение журнала (log) идентифицирует это имя пользователя; В примере сгенерировано сообщение журнала по имени "ulanbaby". Однако использование имени пользователя / пароля, настроенного непосредственно на коммутаторе, не всегда удобно при администрировании. Например, каждому коммутатору и маршрутизатору требуется настройка для всех пользователей, которым может потребоваться войти на устройства. Затем, когда возникнет необходимость внесения изменений в настройки, например, изменение паролей для усиления безопасности, настройки всех устройств должны быть изменены. Лучшим вариантом было бы использовать инструменты, подобные тем, которые используются для многих других функций входа в ИТ. Эти инструменты обеспечивают центральное место для безопасного хранения всех пар имя пользователя / пароль, с инструментами, чтобы заставить пользователей регулярно менять свои пароли, инструменты, чтобы отключать пользователей, когда они завершают сеанс работы, и так далее. Коммутаторы Cisco позволяют именно этот вариант, используя внешний сервер, называемый сервером аутентификации, авторизации и учета (authentication, authorization, and accounting)(AAA). Эти серверы содержат имена пользователей / пароли. Сегодня многие существующие сети используют AAA-серверы для входа на коммутаторы и маршрутизаторы. Да для настройки данного входа по паре имя пользователя / пароль необходимо произвести дополнительные настройки коммутатора. При использовании AAA-сервера для аутентификации коммутатор (или маршрутизатор) просто отправляет сообщение на AAA-сервер, спрашивая, разрешены ли имя пользователя и пароль, и AAA-сервер отвечает. На рисунке показано, что пользователь сначала вводит имя пользователя / пароль, коммутатор запрашивает AAA-сервер, а сервер отвечает коммутатору, заявляя, что имя пользователя/пароль действительны. На рисунке процесс начинается с того, что ПК " А " отправляет регистрационную информацию через Telnet или SSH на коммутатор SW1. Коммутатор передает полученную информацию на сервер "AAA" через RADIUS или TACACS+. Сервер отправляет подтверждение коммутатору, который, в свою очередь, отправляет приглашение (разрешение) на ввод команды в пользовательскую систему. Хотя на рисунке показана общая идея, обратите внимание, что информация поступает с помощью нескольких различных протоколов. Слева, соединение между Пользователем и коммутатором или маршрутизатором использует Telnet или SSH. Справа коммутатор и AAA-сервер обычно используют протокол RADIUS или TACACS+, оба из которых шифруют пароли, при передаче данных по сети. Настройка защищенного удаленного доступа по SSHl До сих пор мы рассматривали доступ к коммутатору по консоли и Telnet, в основном игнорируя SSH. У Telnet есть один серьезный недостаток: все данные в сеансе Telnet передаются в открытом виде, включая обмен паролями. Таким образом, любой, кто может перехватывать сообщения между Пользователем и коммутатором (man-in-the-middle attack), может видеть пароли. SSH шифрует все данные, передаваемые между SSH-клиентом и сервером, защищая данные и пароли. SSH может использовать тот же метод аутентификации локального входа, что и Telnet, с настроенными именем пользователя и паролем в локальной базе коммутатора. (SSH не работает с методами аутентификации, которые не используют имя пользователя, например только общие пароли.) Итак, в настройке доступа для локальных пользователей по Telnet, как показано ранее на рисунке, также включена локальная аутентификация по имени пользователя для входящих соединений SSH. На рисунке показан один пример настройки того, что требуется для поддержки SSH. Рисунок повторяет конфигурацию создания локального пользователя, (см. рисунок) для подключения по Telnet. На скриншоте показаны три дополнительные команды, необходимые для завершения настройки SSH на коммутаторе. На рисунке показаны три дополнительные команды, необходимые для завершения настройки SSH на коммутаторе. На рисунке показан листинг настройки SSH. Для настройки SSH на рисунке, отображаются команды: hostname sw-1 (задает имя коммутатору) ip domain-name testing.com (команда использует полное доменное имя sw-1.testing.com) crypto key generate rsa. Для локальной конфигурации имени пользователя (например, Telnet) отображаются следующие команд: username ulanbaby secret box username landy secret man line vty 0 15 login local IOS использует три команды: две для конфигурации SSH, а также одну команду для создания ключей шифрования SSH. Сервер SSH использует полное доменное имя коммутатора в качестве входных данных для создания этого ключа. Коммутатор создает полное доменное имя из имени хоста и доменного имени коммутатора. Рисунок 5 начинается с установки обоих значений (на тот случай, если они еще не настроены). Затем третья команда, команда crypto key generate rsa, генерирует ключи шифрования SSH. IOS по умолчанию использует SSH-сервер. Кроме того, IOS по умолчанию разрешает SSH-соединения по vty. Просмотр настроек в режиме конфигурации, шаг за шагом, может быть особенно полезен при настройке SSH. Обратите внимание, в частности, что в этом примере команда crypto key запрашивает у пользователя модуль ключа; вы также можете добавить параметр modulus modulus-value в конец команды crypto key, чтобы добавить этот параметр в команду. В примере 5 показан порядок настройки ssh ( такие же команды, что и на рис. 5) Ключ шифрования является последним шагом. Ранее упоминалось, что одним полезным значением по умолчанию было то, что коммутатор по умолчанию поддерживает как SSH, так и Telnet на линиях vty. Однако, поскольку Telnet не безопасный протокол передачи данных, то вы можете отключить Telnet, чтобы обеспечить более жесткую политику безопасности. Для управления тем, какие протоколы коммутатор поддерживает на своих линиях vty, используйте подкоманду transport input {all | none / telnet / ssh} vty в режиме vty со следующими опциями: transport input all or transport input telnet ssh поддержка как Telnet, так и SSH transport input none: не поддерживается ни один протокол transport input telnet: поддержка только Telnet transport input ssh: поддержка только SSH В завершении этой части статьи о SSH, расписана пошаговая инструкция настройки коммутатора Cisco для поддержки SSH с использованием локальных имен пользователей. (Поддержка SSH в IOS может быть настроена несколькими способами; эта пошаговая инструкция показывает один простой способ ее настройки.) Процесс, показанный здесь, заканчивается инструкцией настройки локального имени пользователя на линиях vty, как было обсуждено ранее в первой части данной серии статей. Шаг 1. Настройте коммутатор так, чтобы он генерировал совпадающую пару открытых и закрытых ключей для шифрования: если еще не настроено, задайте командой hostnamename имя для этого коммутатора в режиме глобальной конфигурации. Если еще не настроено, задайте командой ip domain-namename доменное имя для коммутатора в режиме глобальной конфигурации. Используйте команду crypto key generate rsa в режиме глобальной конфигурации (или команду crypto key generate RSA modulus modulus-value, чтобы избежать запроса модуля ключа) для генерации ключей. (Используйте по крайней мере 768-битный ключ для поддержки SSH версии 2.) Шаг 2. (Необязательно) используйте команду ip ssh version 2 в режиме глобальной конфигурации, чтобы переопределить значение по умолчанию для поддержки обеих версий протокола удаленного доступа SSH 1 и 2, так что бы разрешены были только соединения SSHv2. Шаг 3. (Необязательно) если вы еще не настроили нужный параметр, задайте на линии vty для работы по SSH и Telnet.: используйте команду transport input ssh в режиме конфигурации линий vty, чтобы разрешить только SSH. используйте команду transport input all (по умолчанию) или команду transport input telnet ssh в режиме конфигурации линий vty, чтобы разрешить как SSH, так и Telnet. Шаг 4. Используйте различные команды в режиме конфигурации линий vty для настройки локальной аутентификации имени пользователя, как описано ранее в этой статье. На маршрутизаторах Cisco часто по умолчанию настроен параметр transport input none. Поэтому необходимо добавить подкоманду transport input line для включения Telnet и / или SSH в маршрутизаторе. Для просмотра информации о состояния SSH на коммутаторе используются две команды. Во-первых, команда show ip ssh выводит информацию о состоянии самого SSH-сервера. Затем команда show ssh выводит информацию о каждом клиенте SSH, подключенном в данный момент к коммутатору. В пример 6 показаны примеры работы каждой из команд, причем пользователь ULANBABY в данный момент подключен к коммутатору.
img
Напомним немного про OSI Современный мир немыслим без средств связи. Десятки миллионов устройств по всему миру связываются посредством компьютерных сетей. И каждая компьютерная сеть организована по определенным стандартам. Любые устройства взаимодействуют по общепринятой модели OSI, или Базовой Эталонной Модели Взаимодействия Открытых Систем. Данная модель определяет взаимодействие различных сетевых устройств на семи уровнях – Media (к ним относятся физический, канальный и сетевой) и Host – (транспортный, сеансовый, представления и прикладной). В данной статье мы рассмотрим два самых распространенных сетевых протокола транспортного уровня – TCP и UDP, примеры их применения, а также сравним их характеристики. Видео: TCP и UDP | что это такое и в чем разница? В чем же разница TCP и UDP? Вообще, протоколы транспортного уровня широко применяются в современных сетях. Именно они позволяют гарантировать доставку сообщения до адресата, а также сохраняют правильную последовательность передачи данных. При этом протоколы имеют ряд различий, что позволяет использовать их профильно, для решения своих задач каждый. Протокол TCP (Transmission Control Protocol) – это сетевой протокол, который «заточен» под соединение. Иными словами, прежде, чем начать обмен данными, данному протоколу требуется установить соединение между двумя хостами. Данный протокол имеет высокую надежность, поскольку позволяет не терять данные при передаче, запрашивает подтверждения о получении от принимающей стороны и в случае необходимости отправляет данные повторно. При этом отправляемые пакеты данных сохраняют порядок отправки, то есть можно сказать, что передача данных упорядочена. Минусом данного протокола является относительно низкая скорость передачи данных, за счет того что выполнение надежной и упорядоченной передачи занимает больше времени, чем в альтернативном протоколе UDP. Протокол UDP (User Datagram Protocol), в свою очередь, более прост. Для передачи данных ему не обязательно устанавливать соединение между отправителем и получателем. Информация передается без предварительной проверки готовности принимающей стороны. Это делает протокол менее надежным – при передаче некоторые фрагменты данных могут теряться. Кроме того, упорядоченность данных не соблюдается – возможен непоследовательный прием данных получателем. Зато скорость передачи данных по данному транспортному протоколу будет более высокой. Заключение и наглядное сравнение Приведем несколько основных пунктов: Надежность: в этом случае предпочтительнее будет протокол TCP, за счет подтверждения получения данных, повторной отправки в случае необходимости, а также использованию такого инструмента как тайм-аут. Протокол UDP такого инструментария не имеет, а потому при получении отправленные данные могут приходить не полностью; Упорядоченность: опять будет предпочтительнее TCP, поскольку этот протокол гарантирует передачу пакетов данных именно в том порядке, в котором они были отправлены. В случае с UDP такой порядок не соблюдается; Скорость: здесь уже лидировать будет UDP, так как более тяжеловесному TCP-протоколу будет требоваться больше времени для установки соединения, подтверждения получения, повторной отправки данных и т.д. ; Метод передачи данных: в случае с TCP данные передаются потоково, границы фрагментов данных не имеют обозначения. В случае с UDP данные передаются в виде датаграмм – проверка пакетов на целостность осуществляется принимающей стороной только в случае получения сообщения. Также пакеты данных имеют определенные обозначения границ; Сравнивая оба протокола, очевидно, что протокол TCP – это, можно сказать, «снайпер». Прицелился, выстрелил, зафиксировал попадание, ищет следующую цель. UDP – это, скорее, «пулеметчик» - выставил ствол в направлении врага и начал долбить очередями, не слишком заботясь о точности. Как в войсках важны обе эти воинские специальности, так и в интернете важны оба этих протокола. TCP применяется там, где требуется точная и подтверждаемая передача данных – например, отправка фотографий, или переписка между пользователями. UDP, в свою очередь, нужен для общения в голосовом формате, или при передаче потокового видео, например, с веб-камер или IP-камер.
img
Основная цель TCP состоит в том, чтобы обеспечить транспортировать данные поверх IP. Как протокол более высокого уровня, он полагается на возможности адресации и мультиплексирования IPv6 для передачи информации на правильный хост назначения. По этой причине TCP не требует схемы адресации. Управление потоком TCP использует метод скользящего окна для управления потоком информации по каждому соединению между двумя хостами. Рисунок 1 демонстрирует это. На рисунке 1 предположим, что начальный размер окна установлен равным 20. Затем последовательность событий: В момент времени t1 отправитель передает 10 пакетов или октетов данных (в случае TCP это 10 октетов данных). В момент времени t2 получатель подтверждает эти 10 октетов, и для окна установлено значение 30. Это означает, что отправителю теперь разрешено отправлять еще до 30 октетов данных перед ожиданием следующего подтверждения; другими словами, отправитель может отправить до 40 октетов, прежде чем он должен будет дождаться подтверждения для отправки дополнительных данных. В момент времени t3 отправитель отправляет еще 5 октетов данных, номера 11–15. В момент времени t4 приемник подтверждает получение октетов через 15, и окно устанавливается на 40 октетов. В момент времени t5 отправитель отправляет около 20 октетов данных, пронумерованных 16–35. В момент времени t6 получатель подтверждает 35, и окно устанавливается на 50. Следует отметить несколько важных моментов, касающихся этой техники: Когда получатель подтверждает получение определенного фрагмента данных, он неявно также подтверждает получение всего, что было до этого фрагмента данных. Если приемник не отправляет подтверждение—к примеру , передатчик отправляет 16-35 в момент времени t5, а приемник не отправляет подтверждение—отправитель будет ждать некоторое время и считать, что данные никогда не поступали, поэтому он будет повторно отправлять данные. Если получатель подтверждает некоторые данные, переданные отправителем, но не все, отправитель предполагает, что некоторые данные отсутствуют, и ретранслирует с точки, которую подтвердил получатель. Например, если отправитель передал 16-35 в момент времени t6, а получатель подтвердил 30, отправитель должен повторно передать 30 и переслать. Окно устанавливается как для отправителя, так и для получателя Вместо использования номеров октетов TCP присваивает каждой передаче порядковый номер; когда приемник подтверждает определенный порядковый номер, передатчик предполагает, что приемник фактически получил все октеты информации вплоть порядкового номера передачи. Для TCP, таким образом, порядковый номер действует как своего рода “стенография” для набора октетов. Рисунок 2 демонстрирует это. На рисунке 2: В момент времени t1 отправитель объединяет октеты 1–10 и передает их, помечая их как порядковый номер 1. В момент времени t2 получатель подтверждает порядковый номер 1, неявно подтверждая получение октетов 1–10. В момент времени t3 отправитель связывает октеты 11–15 вместе и передает их, помечая их как порядковый номер 2. В момент времени t4 получатель подтверждает порядковый номер 2, неявно подтверждая октеты, отправленные через 15. В момент времени t5 предположим, что 10 октетов поместятся в один пакет; в этом случае отправитель отправит два пакета, один из которых содержит 16–25 с порядковым номером 3, а другой - октеты 26–35 с порядковым номером 4. В момент времени t6 приемник подтверждает порядковый номер 4, неявно подтверждая все ранее переданные данные. Что произойдет, если один пакет информации будет пропущен? Что делать, если первый пакет из потока в 100 пакетов не получен? Используя систему, описанную на рисунке 2, получатель просто не подтвердит этот первый пакет информации, вынуждая отправителя повторно передать данные через некоторое время. Однако это неэффективно; каждый потерянный пакет информации требует полной повторной отправки из этого пакета. Реализации TCP используют два разных способа, чтобы получатель мог запросить один пакет. Первый способ - тройное признание. Если получатель трижды подтверждает пакет, который предшествует последнему подтвержденному серийному номеру, отправитель предполагает, что получатель запрашивает повторную передачу пакета. Три повторных подтверждения используются для предотвращения неправильной доставки пакетов или отброшенных пакетов, вызывающих ложный запрос на повторную передачу. Второй способ заключается в реализации выборочных подтверждений (SACK).15 SACK добавляет новое поле к подтверждению TCP, которое позволяет получателю подтвердить получение определенного набора серийных номеров, а не предполагать, что подтверждение одного серийного номера также подтверждает каждый более низкий серийный номер. Как долго передатчик ждет перед повторной передачи? Первый способ, которым отправитель может обнаружить потерянный пакет - это время ожидания повторной передачи (RTO), которое рассчитывается как функция времени приема-передачи (RTT или rtt). Rtt — это временной интервал между передачей пакета отправителем и получением подтверждения от получателя. RTT измеряет задержку в сети от передатчика до приемника, время обработки в приемнике и задержку в сети от приемника до передатчика. Обратите внимание, что rtt может варьироваться в зависимости от пути, по которому каждый пакет проходит через сеть, локальных условий в момент коммутации пакета и т. д. RTO обычно рассчитывается как средневзвешенное значение, при котором более старые временные интервалы оказывают меньшее влияние, чем более поздние измеренные значения. Альтернативным механизмом, используемым в большинстве реализаций TCP, является быстрая ретрансляция. При быстрой повторной передаче получатель добавляет единицу к ожидаемому порядковому номеру в любом подтверждении. Например, если отправитель передает последовательность 10, получатель подтверждает последовательность 11, даже если он еще не получил последовательность 11. В этом случае порядковый номер в подтверждении подтверждает получение данных и указывает, какой порядковый номер он ожидает от отправителя для передачи в следующий раз. Если передатчик получает подтверждение с порядковым номером, который на единицу больше последнего подтвержденного порядкового номера три раза подряд, он будет считать, что следующие пакеты были отброшены. Таким образом, существует два типа потери пакетов в TCP, когда реализован быстрый запуск. Первый-это стандартный тайм-аут, который возникает, когда отправитель передает пакет и не получает подтверждения до истечения срока действия RTO. Это называется отказом RTO. Второй называется быстрым сбоем ретрансляции. Эти два условия часто обрабатываются по-разному. Как выбирается размер окна? При выборе размера окна необходимо учитывать ряд различных факторов, но доминирующим фактором часто является получение максимально возможной производительности при одновременном предотвращении перегрузки канала. Фактически, контроль перегрузки TCP, вероятно, является основной формой контроля перегрузки, фактически применяемой в глобальном Интернете. Чтобы понять контроль перегрузки TCP, лучше всего начать с некоторых определений: Окно приема (RWND): объем данных, которые приемник готов принять; это окно обычно устанавливается на основе размера буфера приемника или какого-либо другого ресурса, доступного в приемнике. Это размер окна, объявленный в заголовке TCP. Окно перегрузки (CWND): объем данных, которые передатчик готов отправить до получения подтверждения. Это окно не объявляется в заголовке TCP; получатель не знает размер CWND. Порог медленного запуска (SST): CWND, при котором отправитель считает соединение с максимальной скоростью передачи пакетов без возникновения перегрузки в сети. SST изначально устанавливается реализацией и изменяется в случае потери пакета в зависимости от используемого механизма предотвращения перегрузки. Большинство реализаций TCP начинают сеансы с алгоритма медленного старта. 16 На этом этапе CWND начинается с 1, 2 или 10. Для каждого сегмента, для которого получено подтверждение, размер CWND увеличивается на 1. Учитывая, что такие подтверждения должны занимать ненамного больше времени, чем один rtt, медленный запуск должен привести к удвоению окна каждого rtt. Окно будет продолжать увеличиваться с этой скоростью до тех пор, пока либо пакет не будет потерян (приемник не сможет подтвердить пакет), CWND не достигнет RWND, либо CWND не достигнет SST. Как только любое из этих трех условий происходит, отправитель переходит в режим предотвращения перегрузки. Примечание. Каким образом увеличение CWND на 1 для каждого полученного ACL удваивает окно для каждого rtt? Идея состоит в следующем: когда размер окна равен 1, вы должны получать один сегмент на каждый RTT. Когда вы увеличиваете размер окна до 2, вы должны получать 2 сегмента в каждом rtt; на 4, вы должны получить 4 и т. д. Поскольку получатель подтверждает каждый сегмент отдельно и увеличивает окно на 1 каждый раз, когда он подтверждает сегмент, он должен подтвердить 1 сегмент в первом rtt и установить окно на 2; 2 сегмента во втором rtt, добавляя 2 к окну, чтобы установить окно на 4; 4 сегмента в третьем RTT, добавив 4 к окну, чтобы установить размер окна равным 8 и т. д. В режиме предотвращения перегрузки CWND увеличивается один раз за каждый rtt, что означает, что размер окна перестает расти экспоненциально, а вместо этого увеличивается линейно. CWND будет продолжать расти либо до тех пор, пока получатель не подтвердит получение пакета (TCP предполагает, что это означает, что пакет был потерян или отброшен), либо пока CWND не достигнет RWND. Существует два широко распространенных способа, которыми реализация TCP может реагировать на потерю пакета, называемых Tahoe и Reno. Примечание. На самом деле существует множество различных вариаций Tahoe и Reno; здесь рассматриваются только самые базовые реализации. Также существует множество различных методов реагирования на потерю пакета, когда соединение находится в режиме предотвращения перегрузки. Если реализация использует Tahoe, и потеря пакета обнаружена посредством быстрой повторной передачи, она установит SST на половину текущего CWND, установит CWND на исходное значение и снова начнет медленный запуск. Это означает, что отправитель снова будет передавать 1, 2 или 10 порядковых номеров, увеличивая CWND для каждого подтвержденного порядкового номера. Как и в начале процесса медленного запуска, это приводит к удвоению CWND каждого rtt. Как только CWND достигнет SST, TCP вернется в режим предотвращения перегрузки. Если реализация использует Reno, и потеря пакета обнаружена посредством быстрой повторной передачи, она установит SST и CWND на половину текущего CWND и продолжит работу в режиме предотвращения перегрузки. В любой реализации, если обнаруживается потеря пакета из-за того, что получатель не отправляет подтверждение в пределах RTO, CWND устанавливается на 1, и медленный запуск используется для увеличения скорости соединения. Контроль ошибок TCP предоставляет две формы обнаружения ошибок и управления ими: Сам протокол, наряду с механизмом управления окнами, обеспечивает доставку данных в приложение по порядку и без какой-либо недостающей информации. Контрольная сумма дополнения единицы, включенная в заголовок TCP, считается более слабой, чем Cyclic Redundancy Check (CRC) и многие другие формы обнаружения ошибок. Эта проверка ошибок служит дополнением, а не заменой, коррекции ошибок, обеспечиваемой протоколами ниже и выше в стеке. Если получатель обнаруживает ошибку контрольной суммы, он может использовать любой из описанных здесь механизмов, чтобы запросить отправителя повторно передать данные—просто не подтверждая получение данных, запрашивая повторную передачу через SACK, активно не подтверждая получение данных через быструю повторную передачу или отправляя тройное подтверждение для конкретного сегмента, содержащего поврежденные данные. Номера портов TCP TCP не управляет каким-либо типом мультиплексирования напрямую; однако он предоставляет номера портов, которые приложения и протоколы выше TCP в стеке протоколов могут использовать для мультиплексирования. Хотя эти номера портов передаются в TCP, они обычно непрозрачны для TCP; TCP не придает никакого значения этим номерам портов, кроме использования их для отправки информации правильному приложению на принимающем узле. Номера TCP-портов делятся на два широких класса: хорошо известные и эфемерные. Хорошо известные порты определяются как часть спецификации протокола верхнего уровня; эти порты являются портами «по умолчанию» для этих приложений. Например, службу, поддерживающую Simple Mail Transfer Protocol (SMTP), обычно можно найти, подключившись к узлу с использованием TCP на порт номер 25. Службу, поддерживающую Hypertext Transport Protocol (HTTP), обычно можно найти, подключившись к узлу с использованием TCP на порт 80. Эти службы не обязательно должны использовать эти номера портов; большинство серверов можно настроить на использование какого-либо номера порта, отличного от указанного в спецификации протокола. Например, веб-серверы, не предназначенные для общего (или общедоступного) использования, могут использовать какой-либо другой TCP-порт, например 8080. Эфемерные порты значимы только для локального хоста и обычно назначаются из пула доступных номеров портов на локальном хосте. Эфемерные порты чаще всего используются в качестве исходных портов для TCP-соединений; например, хост, подключающийся к службе через порт 80 на сервере, будет использовать эфемерный порт в качестве исходного TCP-порта. До тех пор, пока любой конкретный хост использует данный эфемерный номер порта только один раз для любого TCP-соединения, каждый сеанс TCP в любой сети может быть однозначно идентифицирован через исходный адрес, исходный порт, адрес назначения, порт назначения и номер протокола, работающего поверх TCP. Настройка сеанса TCP TCP использует трехстороннее рукопожатие для установки сеанса: Клиент отправляет синхронизацию (SYN) на сервер. Этот пакет является обычным TCP-пакетом, но с битом SYN, установленным в заголовке TCP, и указывает, что отправитель запрашивает сеанс для настройки с получателем. Этот пакет обычно отправляется на хорошо известный номер порта или на какой-то заранее установленный номер порта, который, как известно клиенту, будет прослушиваться сервером по определенному IP-адресу. Этот пакет включает в себя начальный порядковый номер клиента. Сервер отправляет подтверждение для SYN, SYN-ACK. Этот пакет подтверждает порядковый номер, предоставленный клиентом, плюс один, и включает начальный порядковый номер сервера в качестве порядкового номера для этого пакета. Клиент отправляет подтверждение (ACK), включающее начальный порядковый номер сервера плюс один. Этот процесс используется для обеспечения двусторонней связи между клиентом и сервером перед началом передачи данных. Первоначальный порядковый номер, выбранный отправителем и получателем, в большинстве реализаций рандомизирован, чтобы не дать стороннему злоумышленнику угадать, какой порядковый номер будет использоваться, и захватить сеанс TCP на начальных этапах его формирования.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59