Professional Documents
Culture Documents
Лабораторна Робота 2 Tcp Ip4 Crc
Лабораторна Робота 2 Tcp Ip4 Crc
Теоретичні відомості
IPv4-адрес відправника
IPv4-адрес отримувача
Зміст
Опції. . . пакету
0
𝑊𝑠 = 𝑎 𝑊𝑖
𝑖
4. В тому випадку, якщо результат додавання W s у двійковому поданні
перевищує по довжині 16 біт, він розбивається на два 16-бітних слова, які
додаються між собою. Цю процедуру називають «круговим перенесенням»,
тобто, переповнення старшого розряду переноситься в молодший, наприклад,
якщо:
Ws = (2A4E3)16; то Ws = (0002)16 + (A4E3)16 = (A4E5)16:
5. У випадку, якщо результат додавання Ws знову перевищує 16 біт, то
попередня операція повторюється.
6. Знаходиться двійкове порозрядне доповнення результату додавання,
яке і записується в поле контрольної суми:
CSIP = (FFFF)16 Ws:
0 15 16 31
4500 0076
252D 4000
4011 0000
C0A8 010F
C1C8 B708
Рис. 2.3. Приклад заголовка пакета IPv4 з обнуленим полем контрольної суми
1. Розбиваємо заголовок з обнуленим полем контрольної суми на слова
по 16 біт і обраховуємо суму отриманих 16-бітових слів:
(4500)16 +(0076)16 +(252D)16 +(4000)16 +(4011)16+…+(0000)16 +
(C0A8)16 + (010F)16 + (C1C8)16 + (B708)16 = (3253B)16:
2. Оскільки результат додавання в двійковому поданні перевищує 16
розрядів (або 4 шістнадцяткових цифри), то розбиваємо його на два слова по
16 біт кожне і знову їх беремо їх суму:
(0003)16 + (253B)16 = (253E)16:
3. Знаходимо контрольну суму, як двійкове порозрядне доповнення
результату складання:
CSIP = (FFFF)16(253E)16 = (DAC1)16:
Отримане число заноситься в поле контрольної суми заголовка IP пакета
(рис. 3.3).
Приклад 3.
Маємо кадр Ethernet:
1. Виділяємо заголовок:
Вище представлений IP-header TCP-пакету, зазначеного за варіантом.
“46” на початку означає наступне:
4 — версія IP-протоколу, а 6 – довжина заголовку.
Так як довжина описана за допомогою тетрад по 4 байти, то довжина
заголовку розраховується наступним чином: 4х6 = 24.
“c0” - TOS (тип сервіса). “
00 20” - довжина заголовку. В даному випадку вона дорівнює 32.
“52 16” - поле ідентифікації. “00 00” - перший байт відповідає за флаги а
другий — fragment offset. “01 02” - перший байт відповідає за TTL поле, а
другий — за поле протоколу.
«00 00» - поле контрольної суми, яку треба знайти.
«ac 10 04 04» - порт відправника.
«e0 00 00 01» - порт одержувача. 1. Розбиваємо TCP заголовок на слова
по 16 біт і додаємо їх:
TCP-протокол.
Поле Описание
Source port(порт отправителя) Порт ТСР узла отправителя
Destination port(порт получателя) Порт ТСР узла получателя
Sequence Number(порядковый номер) Номер последовательности пакетов
Acknowledgement Number(Номер Порядковый номер байта, который локальный
потверждения) узел расчитывает получить следующим
Data Length(длинна данных) Длинна ТСР-пакета
Reserved(зарезервированно) Зарезервированно для будущего использования
Flags(Флаги) Описание содержимого сегмента
Показывает доступное место в окне протокола
Window(окно)
ТСР
Checksum(контрольная сумма) Значение для проверки целостности пакета
При отправке срочных данных в этом поле
Urgent Point(Указатель срочности)
задается гранича области срочных данных
0000: 00 50 FC 1E BF 8D 00 30 4F 0E 89 65 08 00 45 00
0010: 00 38 89 28 40 00 80 06 11 21 C0 A8 01 32 C3 13
0020: DB 88 04 50 00 15 00 4C 69 E7 3C 00 27 92 50 18
0030: 22 05 D3 39 00 00 55 53 45 52 20 61 6E 6F 6E 79
0040: 6D 6F 75 73 0D 0A
Псевдозаголовок:
C0 A8 01 32
C3 13 DB 88
00 06 00 24
Індивідуальні завдання