Сетевой уровень
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
- Объединение сетей
- Маршрутизация
- Идентификация сетей
- И всех участников глобальной сети
- Пример протоколов: IP
Ip address
Ip mask
Классовая маршрутизация (устарело)
- Класс A - 0.0.0.0-127.255.255.255 (первый бит равен 0)
- Класс B - 128.0.0.0-191.255.255.255 (первые биты 1 0)
- Класс C - 192.0.0.0-223.255.255.255 (первые биты 1 1 0)
- Класс D - 224.0.0.0-239.255.255.255 (первые биты 1 1 1 0)
- используются для многоадресной рассылки (до сих пор)
- Класс E - 240.0.0.0-255.255.255.255 (первые биты 1 1 1 1)
- запрещены к использованию
Некоторые зарезервированные диапазоны (актуально)
- 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 - используются в частных сетях
- 127.0.0.0/8 - loopback, коммутация в рамках одного хоста
- никогда не обрабатываются сетевой картой
- 255.255.255.255/32 - ограниченный широковещательный адрес
- 224.0.0.0/4 - многоадресная рассылка (multicast)
- 192.0.2.0/24, 198.51.100.0/24 - примеры в документации
Распределение адресов - IANA
Функции выполняет ICANN при помощи региональных регистраторов - RIR:
Internet Assigned Numbers Authority
source
IP header
|
0 |
1 |
2 |
3 |
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 |
Version |
IHL |
DSCP |
ECN |
Total length |
| 4 |
Id |
Flags |
Fragment offset |
| 8 |
TTL |
Protocol |
Header checksum |
| 12 | Source address |
| 16 | Destination address |
| 20 | Options |
| ... |
| 56 |
Локальная сеть
- Маршрутизатор - участник сети и имеет адрес, в отличие от коммутатора
- Каждый участник имеет адрес и знает маску подсети
- Каждый участник строит таблицу маршрутизации
Таблица маршрутизации
- Router:
| Subnet | iface / next hop |
| 192.168.1.0/24 | lan |
| 10.10.0.0/23 | wan |
| 0.0.0.0/0 | 10.10.0.1 |
- PC:
| Subnet | iface / next hop |
| 192.168.1.0/24 | eth0 |
| 0.0.0.0/0 | 192.168.1.1 |
Forwarding
"Из коробки" в большинстве дистрибутивов linux не работает пересылка пакетов с одного интерфейса
на другой. На L2 это решалось при помощи bridge. Если сети не нужно объединять, но нужно
обеспечить связность (на L3) необходимо включить forwarding:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
Большая сеть
Множественные маршруты
- Допустимо существование нескольких маршрутов
- Выбор маршрута в этом случае определяется метрикой
- Метрика может зависеть от различных параметров соединения:
- Расстояния в маршрутизаторах
- Скорости работы канала
- Стоимости использования канала
Множественные маршруты
- Для каждого отдельного пакета выбор маршрута независим
- Возможны петли маршрутизации при неправильной настройке
- В качестве меры защиты используется поле TTL
Выбор маршрута в таблице маршрутизации
Address Resolution Protocol
ARP
ARP
ARP
ARP
ARP
ARP
ARP
|
0 |
1 |
2 |
3 |
| 0 |
Hardware Type |
Protocol Type |
| 4 |
hardware Length |
Protocol Length |
Operation |
| 8 | Sender hardware address |
| ... | Sender protocol address |
| ... | Target hardware address |
| ... | Target protocol address |
ARP (Ethernet)
|
0 |
1 |
2 |
3 |
| 0 |
0x0001 (Eth) |
0x0800 (IPv4) |
| 4 |
0x06 |
0x04 |
0x0001 / 0x0002 |
| 8 | 0xAAAAAAAAAAAA |
| ... | 0xC0A80A02 (192.168.10.2) |
| ... | 0x00000000 |
| ... | 0xC0A80A04 (192.168.10.4) |
Широковещательные IP пакеты
Широковещательные пакеты
Ограниченный широковещательный адрес
limited broadcast
Широковещательные пакеты
Ограниченный широковещательный адрес
limited broadcast
Широковещательные пакеты
Широковещательные пакеты
Направленное широковещание
directed broadcast
Широковещательные пакеты
Направленное широковещание
directed broadcast
Широковещательные пакеты
Направленное широковещание
directed broadcast
Широковещательные пакеты
Направленное широковещание
directed broadcast
Широковещательные пакеты
Если вы решите проверить, как это работает, то можете столкнуться с тем, что пересылка и ответы на
широковещательные запросы могут быть запрещены. В linux это поведение настраивается:
Не игнорировать широковещательные пакеты (icmp):
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0
Пересылать широковещательные пакеты (icmp):
sysctl -w net.ipv4.conf.all.bc_forwarding=1
sysctl -w net.ipv4.conf.eth0.bc_forwarding=1
Internet Control Message Protocol (ICMP)
Функции:
- Оповещение об ошибках (оповещения)
- Тестирование и отладка работоспособности (запрос - ответ)
Ping
Traceroute
Traceroute
Traceroute
Traceroute
Traceroute
Traceroute
Traceroute
Traceroute
Фрагментация IPv4
|
0 |
1 |
2 |
3 |
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 |
Version |
IHL |
DSCP |
ECN |
Total length |
| 4 |
Id |
0 |
DF |
MF |
Fragment offset |
| 8 |
TTL |
Protocol |
Header checksum |
| 12 | Source address |
| 16 | Destination address |
| 20 | Options |
| ... |
| 56 |
Фрагментация IPv4
IPv6
|
0 |
1 |
2 |
3 |
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 |
Version |
DiffServ |
ECN |
Flow label |
| 4 |
Payload Length |
Next Header |
Hop Limit |
| 8 |
Source Address |
| 12 |
| 16 |
| 20 |
| 24 | Destination Address |
| 28 |
| 32 |
| 36 |
IPv6
http://[2a11:7306:0:c::1]:778
Упражняемся в уме
Литература
-
Таненбаум Э., Фимстер Н., Уэзеролл Д. - Компьютерные сети. 6-е изд.
-
В. Олифер, Н. Олифер - Компьютерные сети. Принципы, технологии, протоколы. 6-е изд.
- Глава 13 (кроме DNS), Глава 14, 17.