Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Сетевой стек TCP/IP

Сетевой стек TCP/IP

Краткий ликбез по основам сетевого взаимодействия и базовым понятиям стека TCP/IP

58e952ea302f1fa452f69c9d8204a8bc?s=128

Vladimir Plizga

November 01, 2019
Tweet

Transcript

  1. This is your spooky presentation title

  2. TCP/IP: what the hell is this?

  3. INTRODUCTION Основы основ

  4. В чем, собственно, сложность?

  5. Сложности сетевого взаимодействия  Разнообразие устройств  Многозадачность каждого устройства

     Непредсказуемость среды передачи  Угрозы безопасности  (впиши своё)
  6. ДЕЛЕНИЕ НА УРОВНИ - ОСНОВА УСПЕХА ДЕКОМПОЗИЦИИ

  7. OSI Open System Interconnection Справочная модель сетевого взаимодействия

  8. OSI model  Создавалась 7 лет: с 1977 по 1984

    годы  Описывает 7 уровней взаимодействия  Не содержит описаний реализации протоколов  Каждый уровень добавляет заголовки
  9. 7 LEVELS OF OSI MODEL 1. Прикладной 2. Представления 3.

    Сеансовый 4. Транспортный 5. Сетевой 6. Канальный 7. Физический
  10. OSI terminology  Уровень – единица декомпозиции сетевого стека 

    Протокол – язык общения между одинаковыми уровнями на одном этаже  Интерфейс – язык общения между разными уровнями на соседних этажах
  11. Разница между интерфейсом и протоколом

  12. Инкапсуляция заголовков и передача данных в OSI

  13. TCP/IP Популярнейшая имплементация модели OSI

  14. REALITY IS DIFFERENT Даже самая продуманная теоретическая модель может оказаться

    бессильной перед реальной практикой
  15.  Самый распространенный сетевой стек на Земле  Включает только

    4 уровня:  Прикладной  Транспортный  Сетевой  Сетевых интерфейсов (физический) TCP/IP: 45+ YEARS OF SCALABILITY Не регламентирует конкретные протоколы
  16. Разница между уровнями: TCP/IP vs OSI

  17. TCP/IP: ADDRESSES  В TCP/IP используется 3 вида адресов: 

    Локальные (аппаратные, MAC)  Сетевые (IP)  Доменные (символьные, DNS) ARP DNS
  18. TCP/IP ADDRESS RESOLUTION

  19. TCP/IP TERMINOLOGY

  20. IP protocol Основной житель сетевого уровня TCP/IP

  21. “Система адресации, не зависящая от способов адресации узлов в отдельных

    сетях”
  22.  В каждом IP-пакете 2 IP-адреса: получателя и отправителя 

    IP-адрес – адрес сетевого интерфейса, а не всего узла  В каждом IP-адресе 32 бита (если это не IPv6)  Разбиение на 4 байта условно и делается для удобства  Реально в адресе всего 2 части: номер сети и номер узла  Между частями нет универсальной границы IP ADDRESS (192.168.0.1)
  23.  Фиксированная граница  Маска подсети (применяется к адресу через

    AND): 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  Классы подсетей (по первым битам адреса):  Индивидуальные: A, B, C  Групповые: D  Зарезервированные: E Способы разбиения адреса на номер сети и узла
  24. Особые адреса IP 0.0.0.0 Алиас для всех сетевых адресов узла,

    но только при прослушивании. 255.255.255.255 Широковещательный адрес. Соответствует отправке всем узлам сети. 127.x.x.x Группа петлевых адресов. Соответствует отправке самому себе.
  25. Вручную Администратор в настройках каждого сетевого интерфейса прописывает его IP

    и другие параметры. Способы назначения сетевых адресов Автоматически Сетевой интерфейс сам получает IP и другие параметры из сети по протоколу DHCP.
  26. DOMAIN NAME SERVICE Преобразует доменные адреса (DNS) в сетевые адреса

    (IP)
  27. DNS серверы составляют иерархию  На каждом узле есть файл

    hosts:  %SYSTEM32%/drivers/etc/hosts  /etc/hosts  Пример содержимого файла hosts: # 127.0.0.1 localhost 127.0.0.1 megacorp
  28. DNS клиенты встроены в каждую ОС  Называются «резольверами» 

    Имеют собственный кэш  Не требуют явного вызова из прикладного кода
  29. DNS протокол  В качестве транспорта обычно использует UDP 

    За службой DNS зарезервирован порт 53  Может заполняться как по запросу, так и в фоне  Основная утилита: nslookup
  30. ICMP is your friend Протокол сетевого уровня стека TCP/IP

  31. ping Проверяет сетевую доступность узла путем отправки специального эхо- запроса.

    Не проверяет доступность TCP-портов. ICMP призван сообщать о проблемах на пути IP-пакета tracert/traceroute Прокладывает маршрут к целевому узлу путем последовательного увеличения TTL сетевых пакетов.
  32. Системные утилиты ping & tracert в действии

  33. ICMP протокол зачастую запрещён  Некоторые известные атаки посредством ICMP:

     Перенаправление трафика  Smurf  Ping Flood  Поэтому проверять нужно через ещё и через telnet
  34. НЕ СПИ - ЗАМЁРЗНЕШЬ

  35. IP version 6 От создателей IPv4

  36. fe80::250:56ff:fe83:5bde Пример адреса в IPv6. Жуть, не правда ли? 127.0.0.1

    <=> ::1
  37. Системные утилиты ipconfig & ifconfig в действии

  38. TCP protocol Основной житель транспортного уровня TCP/IP

  39. Порт – способ мультиплексирования процессов на узле  Позволяет разруливать

    трафик разных процессов на одном хосте  Может быть либо входящим, либо исходящим  У TCP и UDP раздельные множества портов  Нумеруется от 0 до 65 535:  От 0 до 1023 – фиксированные  От 1024 до 65 535 – динамические
  40. Некоторые фиксированные порты  80 – HTTP  443 –

    HTTPS  53 – DNS  20-21 – FTP  35 – Delta Force
  41. Сокет – связка порта и IP-адреса  Socket (Connect) Timeout

    Exception Это когда ответный сетевой пакет не получен. Чаще всего значит, что к узлу нет доступа.  Connection Refused Это когда узел сознательно отвергает сетевой пакет. Чаще всего значит, что доступ есть, но запрашиваемый порт никем не слушается.
  42. Transport Control Protocol Он же TCP. Основной транспортный протокол WWW

    (по мнению моей бабушки)
  43. Transport Control Protocol (TCP)  Поддерживает логическое соединение (SYN/ACK) 

    Обеспечивает гарантированную доставку данных  Оперирует сегментами, нарезанными из потока байтов
  44. Transport Control Protocol (TCP)  Соединения обходятся дорого по ресурсам

    узла:  буферы/таймеры/счетчики  В каждом соединении участвуют только 2 узла (дуплекс)  На одном порту может быть много соединений  Мультиплексирование работает на основе пар сокетов
  45. Системная утилита telnet в действии

  46. Above TCP/IP Адресация на прикладном уровне

  47. URI Идентификатор ресурса. Указывает, как называется ресурс. Но не обязан

    сообщать, где ресурс находится. Пример: myfile.txt Ресурсы в сети обозначаются с помощью URI & URL URL Локатор ресурса. Указывает не только имя ресурса, но и где ресурс находится. Является подмножеством URI.
  48. Схема составления URI

  49. Примеры URI  https://ru.wikipedia.org:443/wiki/URI  ftp://ftp.is.co.za/rfc/rfc1808.txt  file://C:\UserName.HostName\Projects\URI.xml  ldap://[2001:db8::7]/c=GB?objectClass?one

     mailto:John.Doe@example.com  tel:+1-816-555-1212
  50. Как правильно читать URL? http://angara.ftc.ru:8081/artifactory/home.html?id=1&v=2 1. Адрес хоста – angara.ftc.ru

    2. Порт – 8081 3. Протокол – http 4. Путь к ресурсу – artifactory/home.html 5. Параметры – id=1&v=2
  51. CONCLUSION Краткая суть предыдущих 50 слайдов

  52. Резюме  Сетевое взаимодействие имеет несколько уровней  На каждом

    уровне работают свои протоколы  Понять, на каком уровне сетевая проблема – залог успеха в её решении
  53. Happy Halloween! Есть вопросы? Задавайте Слайды: https://www.slidescarnival.com/halloween-2017-free-presentation-template/2072 Картинки: https://unsplash.com/