Компьютерная сеть — это множество вычислительных устройств, взаимодействующих между собой и совместно использующих ресурсы. Компьютерные сети бывают:
- Персональные — Personal Area Network (PAN).
- Локальные — Local Area Network (LAN).
- Городские — Metropolitan Area Network (MAN).
- Глобальные — Wide Area Network (WAN).
IP-адрес и MAC-адрес
IP-адрес - Уникальный числовой идентификатор устройства в сетях TCP/IP
Адреса используемые в локальных сетях:
- 10.0.0.0/8 - класс A
- 172.16.0.0/12 - класс B
- 192.168.0.0/16 - класс C
Адреса для внутреннего использования:
- 127.0.0.0/8 - используется для коммуникаций внутри хоста (localhost).
- 169.254.1.0 по 169.254.254.255 - используется для автоматической настройки сетевого интерфейса в случае отсутствия DHCP
Маска сети - определяет размер подсети (доступное в них кол-во IP-адресов). Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу самого узла в этой сети.
MAC-адрес - Уникальный идентификатор сетевого оборудования или интерфейсов в компьютерных сетях Ethernet
Модель OSI
7 уровней модели OSI:
Прикладной уровень (L7) - верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью (HTTP, FTP, SMB, IMAP, SMTP, BGP, SIP, NTP, SSH, RDP)
Уровень представления (L6) - обеспечивает преобразование протоколов и кодирование/декодирование данных (SSL, TLS)
Сеансовый уровень (L5) - обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время (NetBIOS, RPC, PAP, L2TP, PPTP)
Транспортный уровень (L4) - предназначен для обеспечения надёжной передачи данных от отправителя к получателю (TCP, UDP)
Сетевой уровень (L3) - предназначен для определения пути передачи данных, определение кратчайших маршрутов, коммутацию и маршрутизацию (IPv4, IPv6, IPsec, OSPF, ICMP, GRE, IGMP)
Канальный уровень (L2) - предназначен для обеспечения взаимодействия сетей на физическом уровне (PPP, PPPoE, Ethernet, WiFi, DSL, ARP)
Физический уровень (L1) - нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства к другому (витая пара,оптоволокно, радиоканал)
Модель TCP/IP
Прикладной уровень (L7) - на этом уровне работает большинство сетевых приложений (HTTP, FTP, SMTP, SSH, DNS, RIP). Соотносится с уровнями L5-L7 модели OSI.
Транспортный уровень (L4) - протоколы этого уровня решают задачу доставки сообщений, автоматической маршрутизации (TCP, UDP, OSPF). Включает в себя уровни L5-L7 модели OSI. Соотносится с уровнем L4 модели OSI.
Сетевой (межсетевой) уровень (L3) - предназначен для передачи данных из одной сети в другую (ICMP, IGMP, RIP). На этом уровне работают маршрутизаторы. Соотносится с уровнем L3 модели OSI.
Канальный уровень (L2) - описывает способ кодирования данных для передачи пакета данных на физическом уровне (Ethernet, WiFi). Соотносится с уровнями L1-L2 модели OSI.
Как работает сеть TCP/IP
Базовые понятия TCP/IP:
- хост (host) - любое устройство в сети
- сообщение - поток данных
- IP-датаграмма - протокол передачи данных
- IP-пакет - форматированный блок информации, передаваемый по компьютерной сети, структура которого определена протоколом IP
- фрейм - фрагмент данных протокола канального уровня модели OSI, передаваемый по линии связи
- IP-адрес - см. выше
- MAC-адрес- см. выше
- TCP-сегмент - предоставляет поток данных с предварительной установкой соединения, тем самым гарантируя целостность передаваемых данных и уведомление отправителя о результатах передачи
- UDP-датаграмма - блок информации, передаваемый протоколом через сеть связи без предварительного установления соединения
- MTU - максимальный размер полезного блока данных одного пакета
Множество хостов связанных между собой непосредственно или при помощи сетевого оборудования (маршрутизаторы или коммутаторы) обмениваются сообщениями используя интерфейсы. Физический интерфейс отправляет и принимает фреймы, а логический интерфейс оправляет и принимает IP-пакеты.
Физический интерфейс идентифицируется MAC-адресом, логический интерфейс IP-адресом.
Передаваемое сообщение представляет собой UDP-датаграмму или TCP-сегмент. Сообщение содержит заголовок и полезные данные. Чтобы передать сообщение внутри IP-сети оно помещается в IP-датаграмму. Конкретный физический интерфейс позволяет передавать данные порциями, которые имеют определённый максимально допустимый размер (MTU). Если размер IP-датаграммы превышает MTU, выполняется её фрагментация и создаётся несколько IP-пакетов, иначе создаётся только один IP-пакет для всей IP-датаграммы.
IP-пакет в соответствии с таблицей маршрутизации хоста передаётся на выбранный логический интерфейс.
Логический интерфейс сам непосредственно не может передать IP-пакет, он использует физический интерфейс. Физический интерфейс передаёт данные фреймами. Фрейм имеет заголовок и полезные данные (payload). В заголовке фрейма указывается MAC-адрес получателя, MAC-адрес отправителя и какому протоколу принадлежат данные в payload (Ethertype). Адрес отправителя известен, это МАС-адрес интерфейса отправляющего хоста.
Адрес физического интерфейса определяется путём посылки ARP-сообщения в широковещательный домен. В сообщении указывается MAC-адрес отправителя, широковещательный MAC-адрес получателя и интересующий IP-адрес. Хост с физическим интерфейсом, которому назначен этот IP-адрес в ответном сообщении, указывает MAC-адрес этого физического интерфейса. Чтобы не отсылать ARP-сообщение каждый раз, соответствие IP-адреса MAC-адресу сохраняется в кеше хоста.
После передачи фрейма на другой сетевой интерфейс из него извлекается содержимое IP-пакета, и, если IP-адрес логического интерфейса хоста соответствует IP-адресу получателя, он собирается в IP-датаграмму. Из IP-датаграммы извлекается TCP-сегмент или UDP-датаграмма. Из них извлекаются сами данные и передаются процессу операционной системы, который уже понимает, что с ними делать дальше.
Иначе IP-пакет или отвергается или пересылается далее в соответствии с таблицей маршрутизации хоста. При отсылке он опять передаётся на логический интерфейс. Там упаковывается во фрейм и отсылается.