Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

TCP / TCPрус

.doc
Скачиваний:
9
Добавлен:
01.05.2014
Размер:
87.04 Кб
Скачать

TCP

TCP (протокол управления передачей), сокращенно ТСП это надежный транспортный протокол, режим соединения, описанный в РФЦ 793 ИЕТФ.

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

Работа

ТСП сессия проходит в 3 этапа

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

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

  • Закрытие соединения

Установление соединения происходит через подключение в три приема. Разрыв соединения, он, использует «рукопожатие» в четыре этапа. Во время фазы установления соединения, параметры такие как номер очереди, инициализируются с целью обеспечения надежной передачи (без потери порядка) данных.

Структура сегмента ТСП

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Port Source

Port destination

Numéro de séquence

Numéro d'acquittement

Taille de l'en-tête

réservé

ECN

URG

ACK

PSH

RST

SYN

FIN

Fenêtre

Somme de contrôle

Pointeur de données urgentes

Options

Remplissage

Données

Сигнатура полей

  • Исходный порт – номер исходного порта

  • Порт назначения – номер порта назначения

  • Номер последовательности – номер последовательности первого байта этого сегмента

  • Платежный порт – номер последовательности следующего ожидаемого байта

  • Размер заголовка – длина заголовка из 32-битных слов (выборы составляют часть заголовка)

  • Резерв – резерв для будущего использования

  • ECN - сигнал присутствия скопления, см РЦФ 3168

  • Флаги:

- URG – сигнал представления срочных данных

-ACK – сигнал, что пакет расписался в получении

-PSH – данные переданы дальше

-RST – ненормальный обрыв соединения

-SYN – запрос синхронизации или установления моединения

-FIN – запрос окончания соединения

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

  • ЧекСуммма – контрольная сумма, вычисляемая на совокупности заголовков ТСП и данных, но также на псевдо-заголовках (извлечены из заголовков IP)

  • Указатель на срочные данные – относительная позиция последних срочных данных

  • Опции – не обязательно

  • Наполнение – ноль добавлен чтобы выровнять следующие поляпакета до 32 бит, если нужно

  • Данные – последовательность байтов, передаваемая приложением

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

Если возможно для двух систем установление соединения между ними синхронно, в ов осоновном случае, система открывает сокет (точка доступа соединения ТСП) и устанавливается в пассивное ожидание запроса на соединение от другой системы. Эта работа обычно называется пассивным открытием и используется отметкой о соединении со стороны сервера. Клиентская отметка о соединении обеспечивает активное открытие в 3 этапа (рукопожатие в 3 этапа)

1. Клиент передает сегмент на сервер SYN

2. Сервер ему отвечает сегментом SYN/ACK

3. Клиент подтверждает сегментом ACK

В продолжении этого начального обмена, номера последовательностей обоих частей синхронизируются:

1. Клиент использует свой начальный номер последовательности в поле «номер последовательности» сегмента SYN (x например)

2. Сервер использует свой номер последовательности в поле «номер последовательности» сегмента SYN/ACK (y например) и добавляет номер последовательности клиента плюс 1 (х+1) в поле «ожидаемый номер».

3.Клиент подтверждает получая ACK с увеличенным номером (х+1) и ожидаемый номер соответствующий номеру последовательности сервера плюс один (у+1)

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

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

Нумерация последовательности и подтверждения приема

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

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

Например, в случает обмена сегментами по Телнету:

1. Объект А отправляет сегмент объекту В, содержащий байт данных, номер последовательности равный 42 (Seq=42) и номер сигнала получения равный 79 (Ack=79)

2/ Объект В отправляет сегмент АСК объекту А, содержащий тот же байт данных. Номер последовательности этого сегмента соответствует номеру подтверждения объекта А (Seq=79) и номер подтверждения - номеру последовательности А именно полученному В, увеличенное на количество полученных данных в байтах (Ack = 42 + 1 = 43),

3. Объект А подтверждает получение сегмента и отправляет АСК объекту В с как номером последовательности своего нового номера последовательности, ставшим 43 и как номер подтверждения номера последовательности только что полученного сегмента, увеличенному на количество переданных данных. (Ack = 79 + 1 = 80).

Номера последовательности это целые 32-битные числа, которые переходят через ноль после достижения 2^32-1. выбор начального номера – это ключ к устойчивости безопасности соединения ТСП.

Улучшение ТСП, называемый выборочным подтверждением, авторизует получателя ТСП подтверждая получение блока данных полученных в беспорядке.

Контрольная сумма

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

Контрольная сумма используемая ТСП относительно слаба согласно современным стандартам. Это ограничивает использование ТСП в сетях предлагающих малое число ошибок. Если ТСП был бы переопределен сегодня , использовали бы вероятно СРС на 32 битах вместо данного механизма. Это пренебрежение слабостью контрольной суммы частично компенсируется частым использование СРС или одного из лучших интегрированных контролей 2 уровня (передачи данных), под TCP/IP как например в кадрах РРР или изернет. Тем не менее, это не показывает, что контрольная сумма ТСП лишняя: изучения трафика Интернет показали что часто встречающиеся ошибки аппаратные и программные, которые вводят ошибки в пакеты между узлами, защищенными СРС и что принцип контрольной суммы полностью на ТСП определяет большинство таких ошибок.

Задержки

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

Фактически, задержка перед повторным отправлением должна быть выше среднего РТТ сегмента, что значит времени, которое берет сегмент для осуществления «движения» между клиентом и сервером. Так как это значение может меняться во времени, «вычитают» выборки постоянно и вычисляют средневзвешенное значение.

Типичное значение для альфа – 0,125. Влияние выборки уменьшается экспоненциально во времени.

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

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

Иногда, когда задержка слишком длинная, полезно не ожидать перед повторной передачей сегмента. Если объект послал 3 АСК для одного сегмента, тогда он рассматривает что все сегменты переданные после полученного сегмента потеряны и повторная передача начинается немедленно.

Контроль потока

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

Другие алгоритмы как Нагл или Кларк так же облегчают контроль потока.

Контроль скоплений

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

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

Существует множество алгоритмов предотвращения скоплений, как и версий ТСП.

Разное

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

Закрытие соединения

Этап закрытия соединения использует «рукопожатие» в 4 этапа, каждый конец соединения осуществляющий свое завершение независимо. Так, конец соединения необходим паре сегментов FIN и ACK для каждого конца.

Порты ТСП

ТСп использует номер порта для определения приложения. Каждый конец соединения ТСП ассоциирован с номером порта на 16 бит связанным с передающим или принимающим приложением. Порты могут быть частью трех базовых категорий – хорошо известные порты, порты незарегистрированные и порты динамические/частные. Порты хорошо известные назначены ИАНА и часто используются системными процессами где обладают привилегированными правами. Приложения хорошо известные, кто работает в качестве сервера и находятся в ожидании соединения используют главным образом этот тип портов. Например, ФТП (21), Телнет (23), СМТП(25), ХТТП (80). Незарегистрированные порты главным образом используются пользовательскими приложениями как порты однодневные для подключения к серверу, но они могут также службы незарегистрированные ИАНА. Динамические (частные) могут так же использоваться пользовательскими приложениями, но реже. В этом нет смысла, помимо частного ТСП соединения.

Развитие ТСП

Именно американский министр безопасности имел источник развития ссылочной модели ТСП\ИП, ибо он имел нужду в сети, которая может противостоять всем ситуациям. ТСП это достаточно сложный развивающийся протокол. Если знаковые улучшения были привнесены в течение лет, его базовая работа мало изменилась с РФЦ 793, опубликованном в 1981 году. РФЦ 1122 прояснил некоторое количество пред-требований для выполнения в протоколе ТСП. РФЦ 2581, один из наиболее важных за последние годы, описывает новые алгоритмы, используемые ТСП для избегания скоплений. В 2001 РФЦ 3168 был написан с целью представить механизм сигнализации скоплений и добавился к списку важных РФЦ, которые дополняют исходную спецификацию. В начале 21 века ТСП используют приблизительно для 95 процентов всего Интернет трафика. Приложения, чаще других используюшие ТСП – ХТТп\ХТТПС, СМТП\ПОП3\ИМАП (почта) и ФТП (передача файлов). Его широкое использование это доказательство качества концепции, реализуемой создателями.

Решения по изменению ТСП

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

5

Соседние файлы в папке TCP