Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
91
Добавлен:
11.04.2015
Размер:
121 Кб
Скачать
☆

Протокол tcp

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

Для обеспечения надежной доставки применяется последовательная нумерация и подтверждение. С помощью последовательной нумерации определяется порядок следования данных в пакетах и выявляются пропущенные пакеты. Последовательная нумерация с подтверждением позволяет организовать надежную связь, которая называется полным дуплексом(fullduplex). Каждая сторона соединения обеспечивает собственную нумерацию для другой стороны.

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

Offset

0

7

8

15

16

31

0

Source Port

Destination Port

2

Sequence Number

8

Acknowledgement Number

1

Data Offset

Reserved

U

R

G

A

C

K

P

S

H

R

S

T

S

Y

N

F

I

N

Window

1

Checksum

Urgent Pointer

2

Options

Padding

Рис. Формат заголовка TCP-пакета

Назначение полей tcp пакета:

Номер порта отправителя – Source Port(16 бит) – содержит номер порта, с которого был отправлен пакет, когда это имеет значение (например, отправитель ожидает ответа). Если это поле не используется, оно заполняется нулями.

Номер порта назначения – Destination Port(16 бит) – содержит номер порта, на который будет доставлен пакет.

Порядковый номер – Sequence number(32 бита) – значение, присвоенное пакетуTCP, определяющее номер стартового байта пакета, если не установлен битSYN. Если установлен указанный бит, то порядковый номер является начальным порядковым номером (ISN) и первый байт данных равенISN+ 1;

Номер подтверждения – Acknowledgment Number(32 бита) – значение, отсылаемое принимающей станцией отправителю, подтверждающее прием переданного ранее пакета (пакетов). Оно задает следующий порядковый номер, который целевая станция ожидает получить при установленном битеACK. При установленном соединении подтверждение отправляется всегда.

Смещение данных – Data Offset(4 бита) – задает длину заголовкаTCP(количество 32-битовых слов в заголовкеTCP);

Резервное поле – Reserved(6 бит) – зарезервировано.

Флаги управления:

URG– флаг срочности, применяется при посылке сообщения получателю, ожидающему приема экстренной информации;

ACK– флаг пакета, содержащего подтверждение получения;

PSH– флаг выталкивания, немедленная отсылка данных после считывания данных этого пакета;

RST– флаг переустановки соединения;

SYN– флаг синхронизации чисел последовательности;

FIN– флаг окончания передачи со стороны отправителя.

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

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

Указатель срочных данных – Urgent Pointer(16 бит) – содержит значение счетчика байтов, начиная с которого следуют данные повышенной срочности. Данное поле интерпретируется только в пакетах с установленным флагомURG;

Опции – Options– имеет переменную длину и содержит дополнительные параметры;

Заполнение – Padding– имеет переменную длину и используется для выравнивания заголовка по 32-битному слову нулевыми значениями.

Соседние файлы в папке Lectures 1semestr