IP-мережі та принципи Інтернету
Автори: Олів'є Альфанд, Анджей Дуда, Франк Руссо, Мацей Корчинський
та їх рішення !
1.1 Основні поняття

Взаємозв'язок маршрутизаторів та ліній зв'язку дозволяє спілкуватися між хостами та серверами.
Як зв’язати будь-яку пару хостів або серверів ?
Ми можемо охопити великі ділянки міжміськими лініями зв'язку та частковою сіткою маршрутизаторів та ліній зв'язку.
1.1.2 Комутація пакетів
Рисунок 2: Комутація пакетів
У чому принцип комутація пакетів ?
Рисунок 3: Перемикання повідомлень проти комутація пакетів
1.1.3 Що таке Інтернет ?
Рисунок 4: Інтернет
Що таке хост в Інтернеті?
1.1.4 Виконання протоколу
- біт/с - b/s, kb/s = \ (10 ^ 3 \) b/s, Mb/s = \ (10 ^ 6 \) b/s, Gb/s = \ (10 ^ 9 \) б/с;
- kb/s означає 1000 b/s, а не 1024 b/s, 1 kB/s = 1000 байт/s = 8000 b/s.
\ (D = T_p + T_t + T_w \), де
\ (l \) - відстань, а \ (v \) - швидкість поширення сигналу:
- \ (v = 2,3 \ разів 10 ^ 8 \) м/с для мідних кабелів;
- \ (v = 2 \ разів 10 ^ 8 \) м/с для скла (оптичні волокна);
- \ (v = 3 \ разів 10 ^ 8 \) м/с, швидкість світла у вакуумі (супутники).
Корисним емпіричним правилом для розрахунку часу поширення є підрахунок \ (5 \ mu s \) на км, наприклад, час поширення на відстань 10000 кілометрів становить 50 мс.
\ (11 \ раз 0,8 + 25 = 33,8 \) мс
\ (2 \ раз 0,8 + 10 \ раз 8 + 50 = 131,6 \) мс
\ (\ beta = C \ times RTT \) [біти],
\ (1 \) Мб/с \ (\ разів 100 \) мс \ (= 10 ^ 5 \) біт \ (= 12500 \) байт.
1.2 Інтернет-протокол (IP)
1.2.1 Адреси IPv4
Рисунок 6: Рівень 3 - взаємозв'язок IP
Як визначити хоста в Інтернеті ?
За своєю адресою IPv4 або IPv6.
129.88.30.11 та 129.88.30.12
|| 129.88.30 || = 8 + 8 + 8 = 24 біти.
1.2.1.2 CIDR (безкласова міждоменна маршрутизація)
1.2.1.4 Мережева маска
1.2.1.5 Адресні класи
Клас A -/8 діапазон адрес від 0.0.0.0 до 127.255.255.255, клас B -/16 діапазон адрес від 128.0.0.0 до 191.255.255.255, клас C -/24 діапазон адрес від 192.0.0.0 Г 223.255.255.255 .
Є також два інші класи:
192.168.255.255, BSD: 192.168.0.0
Що таке адреса зворотного зв'язку? Приклад ?
127.x.x.x, приклад: 127.0.0.1
10/8, 172.16/12, 192.168/16
1.2.2 Передача пакетів
У цій частині пояснюється, як маршрутизатори передають пакети на основі адрес призначення.
1.2.2.1 Таблиця маршрутизації
Для переадресації пакетів вузлу (хосту або маршрутизатору) потрібна інформація про наступний маршрутизатор (наступний стрибок) куди він повинен відправити пакет, щоб він дійшов до пункту призначення.
A таблиця маршрутизації надає цю інформацію у такій формі:
Ви можете перевірити таблицю маршрутизації за допомогою такої команди, як netstat на Unix або маршрут на Windows.
Що таке дорога ?
що таке наступний стрибок ?
Маршрутизатор, на який вузол повинен переадресувати пакет, щоб пройти маршрут.
Адреса: 0.0.0.0 маска: 0.0.0.0
1.2.2.2 Таблиця фізичних інтерфейсів
Ви можете перевірити таблицю фізичних інтерфейсів за допомогою команди ifconfig на Unix та ipconfig на Windows.
1.2.2.3 Алгоритм ретрансляції пакетів
Хости та маршрутизатори дотримуються наведених нижче правил, щоб переслати пакет із адресою призначення destAddr:
Припустимо, destAddr - адреса призначення пакета, що підлягає передачі, destinationAddr - адреса в таблиці маршрутизації.
Що таке гостьовий маршрут ?
1.2.3.1 Поля заголовка
Заголовок пакета IPv4 має такі поля:
Чому поле довжина заголовка ?
Заголовок пакета може містити різну кількість параметрів, тому нам потрібна його довжина.
загальна довжина упаковки - довжина заголовка.
Як вузол знає, який протокол використовувати для обробки корисного навантаження ?
Значення поля протоколу.
1.2.3.2 Параметри заголовка
1.2.3.3 MTU (Максимальна одиниця передачі), максимальний розмір передачі
1.2.3.4 Фрагментація
L: довжина, I: ідентифікатор, MF: більше прапорця фрагмента, Of: зміщення
- L = 980, I = 567, MF = 1, Of = 0
- L = 460, I = 567, MF = 0, Of = 120
1.2.3.5 ICMP (Internet Control Message Protocol)
Маршрутизатори та хости використовують протокол ICMP, щоб повідомити про помилку в обробці пакетів: пакет може не досягти місця призначення, маршрутизатор скидає пакет через TTL = 0 або коли маршрутизатор повідомляє хосту про надсилання трафіку на коротший маршрут.
Основні повідомлення ICMP:
Інші повідомлення ICMP:
1.2.4 Протокол дозволу адрес (ARP)
1.2.4.1 Формат повідомлення ARP
1.2.4.2 Алгоритм протоколу ARP
Запит ARP надіслано
# + BEGIN_важливо Отримано пакет ARP
Чи можемо ми дізнатися MAC-адресу будь-якого хоста в Інтернеті за допомогою ARP ?
Якщо хосту потрібно відправити пакет на маршрутизатор, чи потрібно йому також знаходити MAC-адресу маршрутизатора?
Так, хост отримує IP-адресу наступного переходу з таблиці маршрутизації, і йому потрібно знайти відповідну MAC-адресу за допомогою ARP.
1.2.5 IP-багатоадресне передавання
1.2.6 IPv6 (RFC 2460)
1.2.6.1 Поля заголовка
Заголовок пакета IPv6 має такі поля:
1.2.6.2 Розширення заголовка
1.2.6.3 Адреси IPv6
Розмір адрес IPv6 становить 16 байт (128 біт), в 4 рази більше бітів, ніж у IPv4 (кількість адрес: \ (3,4 \ раз 10 ^ \)).
- 2001: 660: 5301: 26: 210: 83ff: fe35: 3404/64
- fe80: 210: 83ff: fe35: 3404
- : 1/128 (петля)
- 2000: 123: 4567: 89AB: CDEF
- FF05: 1: 3
1.2.6.4 Багатоадресні адреси IPv6:
FF02: 101 усі локальні NTP-сервери (обсяг = 2, група NTP = 101), FF02: 0: 0: 0: 0: 0: 0: 1 усі локальні вузли посилань.
- адреса багатоадресного запиту вузла, що відповідає адресі IPv6 4037: 01: 800: 200E: 8C6C - це FF02: 1: FF0E: 8C6C .
Що таке адреса багатоадресної передачі Запрошений вузол ?
1.2.7 ICMPv6
Замінює ICMP та ARP IPv4.
Основні повідомлення ICMPv6:
IPv6 підтримує автоматичне налаштування адреси.
1.2.7.2 Локальні адреси посилань (локальне право)
1.2.7.3 Глобальні адреси для маршрутизації
Вимагання сусідів (ICMPv6 тип 135) та Сусідська реклама (ICMPv6 тип 136) замінюють ARP.
1.3 Протоколи маршрутизації
1.3.1 Вектор відстані
$$ D (i, n) = \ min_k (c (i, k) + D (k, n)) $$
Приклади протоколів маршрутизації: RIP, IGRP.
\ (R_2 \): 1.1.1/24, \ (d = 1 \); 4.4.4/24, \ (d = 2 \) \ (R_3 \): 1.1.1/24, \ (d = 2 \); 4.4.4/24, \ (d = 1 \) \ (R_5 \): 1.1.1/24, \ (d = 2 \); 4.4.4/24, \ (d = 1 \) \ (R_6 \): 1.1.1/24, \ (d = 1 \); 4.4.4/24, \ (d = 2 \) - \ (R_1 \):
Мережа призначення: Next-HopDistance 1.1.1/24 прямий 0 4.4.4/24 \ (R_2 \) 3
1.3.2 Держави посилань
- Ініціалізація: змінна PATH: маршрутизатор A (найкращі шляхи до пунктів призначення) Змінна TENT: порожня (тимчасові шляхи)
- Для кожного маршрутизатора \ (N \) у PATH для кожного сусіда \ (M \) з \ (N \)
$$ c (A, M) = c (A, N) + c (N, M) $$
Зрештою, PATH містить дерево найкращих шляхів до всіх пунктів призначення: наступний стрибок і найкоротша відстань для всіх напрямків.
1.3.3 Зовнішня маршрутизація - BGP (Border Gateway Protocol)
Рисунок 7: Шар посилання
Рисунок 8: MAC та LLC
2.1 PPP (протокол "точка-точка")
2.1.1 Набивання байтів
0x7d, 0x5e, 0x41, 0x7d, 0x5d, 0x33, 0x7d, 0x21
0x7e, 0x41, 0x7d, 0x33, 0x01
2.2 Ethernet
2.2.1 Початковий варіант
Рисунок 9: Ethernet
- \ (r = \ mbox (2 ^ k - 1) \),
- \ (k = \ min (n, 10) \),
- \ (\ mbox = 51,2 \ mu s \).
Діапазон значень \ (r \) для послідовних зіткнень такий:
- Перше зіткнення, \ (r \ у [0, 1] \)
- Друге зіткнення, \ (r \ у [0, 3] \)
- 10, \ (r \ у [0, 1023] \)
- ...
- 14, \ (r \ у [0, 1023] \)
- 15, зупиняємось.
Рисунок 10: CSMA/CD, зіткнення та повторна передача
2.2.3 Формат кадру, адреси
Інкапсуляція Ethernet 2:
- адреса групи: 01: 00: 5e: 02: a6: пор .
- адреса багатоадресної розсилки для IPv4: 01: 00: 5e: 02: a6: cf .
- адреса багатоадресної розсилки для IPv6: 33: 33: ff: 02: a6: cf .
Чому фрейм Ethernet має мінімальний розмір?
2.2.4 Еволюція Ethernet
Гігабітний Ethernet: 1 Гбіт/с, 10 Гбіт/с, 40 Гбіт/с над волокном.
Повнодуплексний Ethernet: дозволяє одночасно надсилати та отримувати. Жодне зіткнення неможливе.
2.2.5 Навчання перемикачам (або вивченню мостів)
2.3 802.11 (Wi-Fi)
- 802.11b/g/n: від 2,4 до 2,483 ГГц (кілька каналів шириною 22 МГц)
- 802.11a: від 5,15 до 5,725 ГГц (кілька каналів шириною 22 МГц)
802.11 охоплює відстань порядку
2.3.1 CSMA/CA
2.4 VLAN (віртуальні локальні мережі)
VLAN = набір станцій, які можуть взаємодіяти між собою на рівні зв'язку.
2.4.1 VLAN на порт
Рисунок 11: VLAN на порт
2.4.2 802.1Q VLAN
На наступному малюнку показано кадр Ethernet із тегом 802.1Q.
Це маркування можна зробити на інтерфейсі машини або на портах комутатора.
Рисунок 12: 802.1Q VLAN
Таблиця звучить так:
3 Транспортний шар
3.1 Транспорт
3.1.2 Регулювання потоку
3.2 TCP (протокол управління передачею)
3.2.1 Сегмент TCP
Заголовок сегмента TCP має такі поля:
Що таке MSS ?
3.2.2 Встановлення та припинення зв'язку
- 1-й сегмент SEQ = 100, LEN = 10
- 2-й сегмент SEQ = 110, LEN = 20
- 3-й сегмент SEQ = 130, LEN = 10
- ACK для 1-го сегменту: ACK = 110
- ACK для 2-го сегменту: ACK = 130
- ACK для 3-го сегменту: ACK = 140
- Надіслати сегмент SEQ = 100, ACK = 1100, LEN = 10
- Отримати сегмент SEQ = 1100, ACK = 110, LEN = 50
- Надіслати сегмент SEQ = 110, ACK = 1150, LEN = 10
- Отримати сегмент SEQ = 1150, ACK = 120, LEN = 50
3.2.4 Регулювання потоку
- 1-й сегмент SEQ = 1000, LEN = 1000
- 2-й сегмент SEQ = 2000, LEN = 1000
- 3-й сегмент SEQ = 3000, LEN = 1000
Який максимальний розмір \ (rwnd \) ?
3.2.5 Перевірка помилок
3.2.6 Затримка повторної передачі
Алгоритм оцінки RTT .
3.3 Контроль заторів TCP
3.3.1 Принципи контролю заторів
TCP використовує алгоритм додаткового збільшення мультиплікативного зменшення (AIMD) для контролю перевантажень:
3.3.2 Вікно заторів
$$ W = хв (cwnd, rwnd) $$.
У наступних прикладах контролю заторів ми вважаємо, що \ (rwnd \) є достатньо великим, що лише \ (cwnd \) обмежує вікно \ (W \).
3.3.3 Варіанти TCP
Повільний старт і Уникнення заторів.
Повільний старт, Уникнення заторів, і Швидке відновлення.
3.3.4 Повільний запуск
- втрата, ми повертаємось до Повільного старту, або
- cwnd \ (> = \) sshtresh, ми переходимо до Уникнення заторів.
Як працює алгоритм Повільний старт ?
Алгоритм Повільний старт:
Який принцип експоненціального збільшення ?
3.3.5 Уникнення заторів
Алгоритм Уникнення заторів:
- аддитивне збільшення потоку:
- додати 1 MSS для правильно переданого вікна (насправді: \ (cwnd \) збільшується на MSS x MSS/\ (cwnd \) для кожного отриманого ACK).
- при втраті відкоригуйте порогові значення:
- \ (ssthresh = cwnd/2 \) (але не менше 2 MSS)
- введіть Повільний старт (\ (cwnd = 1 \) MSS)
В чому полягає принцип збільшення добавок? ?
3.3.6 Швидка ретрансляція
що Швидка ретрансляція ?
3.3.7 Швидке відновлення
Навіщо надувати \ (cwnd \) 3 MSS ?
3.4 UDP
Заголовок дейтаграми UDP має такі поля:
3.5 NAT (переклад мережевих адрес)
Коли маршрутизатор NAT отримує IP-пакет із:
- вихідна IP-адреса, вихідний порт, наприклад 10.0.0.1 та 51234
він замінює їх на:
- IP-адреса відкритого джерела, порт загальнодоступного джерела, наприклад, 129.88.48.1 та 58765
- IP-адреса призначення, порт призначення, наприклад 129.88.48.1 та 58765
він шукає у таблиці відповідний порт і замінює адресу призначення та порт призначення значеннями з таблиці:
Він передає пакет цільовому хосту в Інтранеті.