Какой метод может использоваться двумя компьютерами для предотвращения потери пакетов из за слишком

Обновлено: 07.07.2024

1) Какие три утверждения относительно протокола IP являются верными? (Выберите три варианта.)
IP является протоколом без установления соединения.
Протокол IP не предлагает функции восстановления.
Протокол IP осуществляет негарантированную доставку данных

2) Какие компоненты модели OSI и стека протоколов TCP/IP расходятся сильнее всего?
Канальный уровень

3) Сколько бит содержит IPv4 адрес?
32

4) Каково назначение маршрутизатора?
соединение сетей между собой и выбор наилучшего пути между ними

5) Какие два утверждения о цели модели OSI являются верными? (Выберите два варианта.)
Эталонная модель OSI определяет функции сети, реализуемые на каждом уровне.
Модель OSI облегчает понимание передачи данных по сети.

6) Укажите неправильную характеристику сети с коммутацией пакетов
Трафик реального времени передается без задержек

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

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

9) Какое из этих событий произошло позже других:
изобретение Web;

10) Каково назначение коммутатора?
подключение сети к конечным системам и интеллектуальная коммутация данных внутри локальной сети

2) Какой принцип лежит в основе методов обнаружения и коррекции ошибок?
избыточность

4) Укажите неправильный вариант ответа
Кодовое расстояние в коде Хемминга dmin = 2

5) Укажите неправильный ответ о преимуществах синхронных каналов передачи данных
Невысокая цена оборудования

6) Во сколько раз увеличится ширина спектра кода NRZ при увеличении тактовой частоты передатчика в 2 раза?
2

7) Какой из вариантов является признаком синхронного канала в отличие от асинхронного
данные передаются блоками. Для синхронизации работы приемника и передатчика в начале блока передаются биты синхронизации

8) Укажите неправильное описание методов скремблирования
B8ZC используется в потоках E1 (2.044 Мбит/с)

9) Укажите неправильный вариант ответа
Текстовые документы, базы данных, принято сжимать с потерей качества

10) Укажите неправильный вариант скорости COM порта в компьютере
2048000

2) Какой разъем не используется для подключения сетевой платы к локальной сети
DB -9

3) Укажите неправильный вариант ответа
Хаб может проверить физический адрес (источник и пункт назначения), содержащиеся в пакете.

4) Какова максимальная длина сегмента 10BASE-2 в метрах
185

5) Какой стандарт не предусматривает использование витой пары?
10BASE-2

6) На каком уровне OSI работают мост и коммутатор
2

7) Какой стандарт не предусматривает использование разделяемой среды:
10GBASE-T

8) Укажите неправильный вариант ответа
мосты ведут таблицу маршрутизации, что позволяет им передавать выбрать оптимальный путь из одной сети в другую.

9) Укажите неверную запись стандарта
1GBACE –T

10) На каком уровне OSI работают репитер и хаб
1

2) Чем объясняется, что минимальный размер поля данных кадра Ethernet выбран равным 46 байт?
для устойчивого распознавания коллизий;

3) На какой скорости работает Fast Ethetnet
100М

4) Как скорость передачи данных технологии Ethernet на разделяемой среде влияет на максимальный диаметр сети?
чем выше скорость передачи, тем меньше максимальный диаметр сети;

5) В каких средах не работает Ethernet на физическом уровне
Акустический канал

6) К какому типу относится МАС-адрес 01:С2:00:00:08?
индивидуальный

7) Из каких соображений выбирается длительность слота в режиме DCF?
длительность слота должна превосходить время распространения сигнала между любыми станциями сети плюс время, затрачиваемое станцией на распознавание

8) Как называется 24-битный уникальный идентификатор организации в MAC адресе
OUI

9) Выберите утверждения, корректно описывающие особенности метода доступа технологии Ethernet:
если в течение времени передачи кадра коллизия не произошла, то кадр считается переданным успешно.

10) Какое количество бит в MAC адресе
48

2) Какие параметры сети учитывают метрики, поддерживаемые протоколом OSPF
пропускная способность

3) Данные каких трех типов предоставляются DHCP-клиенту сервером DHCP? (Выберите три варианта.)
IP-адреса DNS-серверов
маска подсети
основной шлюз

4) Какое утверждение наилучшим образом описывает статические и динамические маршруты
Статические маршруты вручную задаются администратором сети, динамические маршруты автоматически добавляются и настраиваются протоколом маршрутизации.

5) Какие три утверждения относительно протокола IP являются верными? (Выберите три варианта.)
IP является протоколом без установления соединения.
Протокол IP осуществляет негарантированную доставку данных.
Протокол IP не предлагает функции восстановления.

6) В студенческом общежитии живет 200 студентов и каждый из них имеет собственный ноутбук. В общежитии оборудована специальная комната, в которой развернута компьютерная сеть, имеющая 25 коннекторов для подключения компьютеров. Время от времени студенты работают в этом компьютерном классе, подключая свои ноутбуки к сети. Каким количеством IP-адресов должен располагать администратор этой компьютерной сети, чтобы все студенты могли подключаться к сети, не выполняя процедуру конфигурирования своих ноутбуков при каждом посещении компьютерного класса не используя DHCP?
254

7) К какому типу стандартов могут относиться современные документы RFC
к международным стандартам.

8) В чем назначение технологии NAT
решение проблемы дефицита адресов в протоколе IPv4;

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

3) Каков размер ячейки ATM
53

4) Какая из атак осуществляется отправкой подложного ARP ответа?
Перенаправление трафика

5) Какая из функций IPsec может выполняться алгоритмом AES?
Конфиденциальность

6) Какая из сетевых технологий появилась раньше?
X.25

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

8) Какой из хорошо известных портов используется FTP протоколом
21

9) Какая разновидность облачных технологий предоставляет программное обеспечение как услугу
SaaS

10) Укажите назначение сервера DNS
Преобразует имя компьютера или домена в ассоциированный IP-адрес.

Доброго времени суток. Решил поделиться с вами своим пониманием этого вопроса, и механизма его решения, используемого в устройствах WAN оптимизации Silver Peak.

Итак, практическое большинство современных сетей, использует в своей основе пакетную передачу и протокол IP. Информация передается через сеть кусочками информации, и обычно размер этих кусочков варьируется от 1 байта до 1500 байт (Я имею ввиду полезную нагрузку). По пути через WAN сеть, такие пакеты могут пройти через великое множество маршрутизаторов и шлюзов. Некоторые из этих перевалочных пунктов вы можете увидеть при помощи утилиты Traceroute. Но это далеко не все реальные транзитные узлы, например вы не увидите здесь те узлы, через которые трафик прошел туннелированным (MPLS VPN, GRE и т.д.). При этом, с ненулевой долей вероятности, какой-нибудь из транзитных узлов будет в данный момент сильно загружен, и уничтожит ваш пакет, чтобы не допускать перегрузки сети. И чем больше таких транзитных узлов, тем больше вероятность потери пакета в сети.

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

image

Теоретически, такое отбрасывание пакета, вещь вполне безопасная и нормальная – за целостность передачи данных следит специальный протокол TCP. Но как всегда, есть нюансы. Нюансы состоят в том, что протокол TCP, в случае потери пакета, должен будет послать его через сеть заново. Но для того, чтобы принять решение о перепосылке, нужно дождаться уведомления от приемной стороны, что очередной пакет не получен. И тут на первый план выходит такой параметр сети, как задержка сигнала. Чем она дольше, тем дольше передающая сторона будет в неведении, и тем медленнее будет происходить передача информации.
Ниже приведены графики зависимости скорости передачи трафика от задержки в канале связи и процента потери пакетов. Из него видно, что на самом деле, основная потеря в скорости передачи в канале с типовой для WAN задержкой 50-100 миллисекунд, происходит при еще вполне, казалось бы, незначительном проценте потерь: 1-2%.

image

Если же говорить о приложениях, работающих через UDP, и ориентированных на работу в режиме реального времени, например телефония или видеоконференции, то в них не предусмотрен и не оправдан механизм повторной передачи. И если есть потери, то, как ни крути, вылезают артефакты в виде «кваканий», «заиканий», и рассыпающейся периодически картинке.
Оказывается, на потерю пакетов можно посмотреть несколько по другим углом, и решить ее достаточно элегантным способом, как это сделали инженеры Silver Peak. Наверняка многие из вас слышали, про специальные методы кодирования, позволяющие выявлять ошибки, а некоторые из них даже исправлять ошибки в информации. Например, ECC коды и коды Рида-Соломона, впервые промышленно использованные еще в 70-х годах при появлении CD дисков. Общий смысл таких кодов, в том, что они вносят некоторую избыточность, причем избыточность эта, может адаптивно подстраиваться под текущие характеристики канала. Другим, более наглядным примером, может служить технология защиты информации на дисковых массивах RAID5, которая предусматривает один избыточный дисковый накопитель на каждые 3, 4, 5 и более дисков с данными. В случае пакетной передачи, аналогом дисков, является непосредственно пакет — на каждые N пакетов, создается один избыточный.
Беда в том, что такие технологии, имеющее общее англоязычное название Forward Error Correction (FEC) применяются, обычно, только на физическом уровне канала передачи данных. И никоим образом не могут устранить потери информации, связанные с перегрузками в сети, динамическими перестроениями топологии и т.д. Инженеры Silver Peak реализовали технологию FEC на канальном уровне, так, что между любыми двумя устройствами Silver Peak, создается свой «туннель», в котором поддерживается и адаптивно подстраивается некоторое количество избыточных пакетов. Типовая топология канала связи с применением этого решения и технологии FEC, показана на следующей картинке:

image

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

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

Что такое потеря пакетов?

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

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

Что вызывает потерю пакетов в вашей сети

  • Пропускная способность сети и перегрузка . Основной причиной потери пакетов является недостаточная пропускная способность сети для требуемого соединения. Это происходит, когда слишком много устройств пытаются установить связь в одной сети.
  • Недостаточно мощное оборудование. Любое оборудование в сети, которое маршрутизирует пакеты, может привести к потере пакетов. Маршрутизаторы, коммутаторы, брандмауэры и другие аппаратные устройства являются наиболее уязвимыми. Если они не могут «идти в ногу» с трафиком, который вы передаете через них, они будут отбрасывать пакеты. Думайте об этом как официанте с полными руками: если вы попросите их взять другую тарелку, они, вероятно, уронят одну или несколько других тарелок.
  • Поврежденные кабели. Потеря пакетов может произойти на уровне 1, физическом сетевом уровне. Если ваши кабели Ethernet повреждены, неправильно подключены или слишком медленны для обработки сетевого трафика, они будут «пропускать» пакеты.
  • Программные ошибки: ни одно программное обеспечение не является безупречным. Микропрограмма вашего сетевого оборудования или программного обеспечения вашего компьютера может содержать ошибки, которые могут привести к потере пакетов. В этом случае потребитель мало что может сделать. Вы можете попытаться решить проблему самостоятельно, но часто единственным способом решения проблемы является исправление микропрограммы от поставщика, поставляющего оборудование. Обязательно сообщайте о предполагаемых ошибках, чтобы найти поставщиков, которые помогут решить проблему.

Обнаружение потери пакета

    В Windows откройте окно командной строки и используйте команду ping для настройки вашего маршрутизатора. Например, если локальный IP-адрес вашего маршрутизатора 127.0.0.1, следующая команда будет проверять связь с маршрутизатором:

В macOS или Linux откройте окно терминала и используйте следующую команду:

В Windows вы можете использовать tcpdump через оболочку Bash в Windows 10 или запустить Wireshark.

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

Определение причины потери пакета

Чтобы определить основную причину потери пакетов, вы должны начать с самой простой проблемы, чтобы обнаружить и вернуться обратно.

Сначала проверьте соединение Ethernet между устройствами. Проверьте наличие явных признаков физического повреждения и неправильного подключения. Эти кабели работают правильно? Решает ли переключение кабелей проблему? Проверьте маршрутизаторы и коммутаторы аналогичным образом.

Во-вторых, определите, достаточно ли пропускной способности для обработки необходимых устройств в вашей сети. Является ли какой-либо один аппаратный элемент обработкой значительно большего количества соединений, чем следует? Это часто процесс поиска и замены, пока проблема не решится. Вы также можете использовать «заведомо исправный» коммутатор и маршрутизатор, поменяв его местами с потенциально проблемными устройствами в сети, чтобы увидеть, исчезает ли потеря пакетов при удалении определенного устройства.

Как только вы определили причину потери пакета, есть два исправления, которые могут быть применены.

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

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

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

Управление потоком

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

  • В момент времени 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 демонстрирует это.

  • В момент времени 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, лучше всего начать с некоторых определений:

Большинство реализаций 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-соединений; например, хост, подключающийся к службе через порт 80 на сервере, будет использовать эфемерный порт в качестве исходного TCP-порта. До тех пор, пока любой конкретный хост использует данный эфемерный номер порта только один раз для любого TCP-соединения, каждый сеанс TCP в любой сети может быть однозначно идентифицирован через исходный адрес, исходный порт, адрес назначения, порт назначения и номер протокола, работающего поверх TCP.

Настройка сеанса TCP

TCP использует трехстороннее рукопожатие для установки сеанса:

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

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

Читайте также: