Skip to content

Latest commit

 

History

History
110 lines (73 loc) · 13.3 KB

File metadata and controls

110 lines (73 loc) · 13.3 KB

Вопросы для собеседования

Основы сетей

Какие существуют уровни модели OSI?

# Уровень (layer) Тип данных (PDU) Функции Примеры
7 Прикладной (application) - Доступ к сетевым службам HTTP, FTP
6 Представительский (представления) (presentation) - Представление и шифрование данных ASCII, JPEG
5 Сеансовый (session) - Управление сеансом связи RPC, PAP
4 Транспортный (transport) Сегменты(segment) / Дейтаграммы(datagram) Прямая связь между конечными пунктами и надежность TCP, UDP
3 Сетевой (network) Пакеты (packet) Определение маршрута и логическая адресация IP, AppleTalk
2 Канальный (data link) Биты (bit) / Кадры (frame) Физическая адресация Ethernet, IEEE 802.2, L2TP
1 Физический (physical) Биты (bit) Работа со средой передачи, сигналами и двоичными данными USB, витая пара

к оглавлению

Что такое TCP/IP?

TCP/IP - это два основных сетевых протокола Internet. Часто это название используют и для обозначения сетей, работающих на их основе.

IP (Internet Protocol) - маршрутизируемый протокол, отвечающий за IP-адресацию, маршрутизацию, фрагментацию и восстановление пакетов. В его задачу входит продвижение пакета между сетями – от одного маршрутизатора до другого и тех пор, пока пакет не попадет в сеть назначения. В отличие от протоколов прикладного и транспортного уровней, протокол IP разворачивается не только на хостах, но и на всех шлюзах (маршрутизаторах). Этот протокол работает без установления соединения и без гарантированной доставки.

В настоящее время используются следующие две версии протокола IP:

  • IPv6 — IP-адрес имеет разрядность 128 бит и записывается в виде восьми 16-битных полей, с использованием шестнадцатеричной системы счисления и с возможностью сокращения двух и более последовательных нулевых полей до ::, например: 2001:db8:42::1337:cafe
  • IPv4 — IP-адрес имеет разрядность 32 бита и записывается в виде четырех десятичных чисел в диапазоне 0 … 255 через точку, например: 192.0.2.34.

TCP (Transfer Control Protocol) - протокол, обеспечивающий надежную, требующую логического соединения связь между двумя компьютерами. Отвечает за установление соединения, упорядочивание посылаемых пакетов и восстановление пакетов, потерянных в процессе передачи.

Стек протоколов TCP/IP включает в себя четыре уровня:

  1. канальный уровень (link layer) - например Ethernet, IEEE 802.11 Wireless Ethernet, физическая среда и принципы кодирования информации
  2. сетевой уровень (Internet layer) - например IP
  3. транспортный уровень (transport layer) - например TCP, UDP
  4. прикладной уровень (application layer) - например HTTP, FTP, DNS

TCP-соединение двух узлов начинается с handshake (рукопожатия):

  • Узел A посылает узлу B специальный пакет SYN — приглашение к соединению
  • B отвечает пакетом SYN-ACK — согласием об установлении соединения
  • A посылает пакет ACK — подтверждение, что согласие получено

После этого TCP соединение считается установленным и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными.

В заголовке TCP/IP пакета указывается:

  • IP-адрес отправителя
  • IP-адрес получателя
  • Номер порта

к оглавлению

Что такое UDP?

UDP, User Datagram Protocol (Протокол пользовательских датаграмм) — протокол, который обеспечивает доставку без требований соединения с удаленным модулем UDP и обязательного подтверждения получения.

К заголовку IP-пакета UDP добавляет всего четыре поля по 2 байта каждое:

  1. поле порта источника (source port)
  2. поле порта пункта назначения (destination port)
  3. поле длины (length)
  4. поле контрольной суммы (checksum)

Поля «порт источника» и «контрольная сумма» не являются обязательными для использования в IPv4. В IPv6 необязательно только поле «порт отправителя».

UDP используется DNS, SNMP, DHCP и другими приложениями.

к оглавлению

Чем отличаются TCP и UDP?

TCP — ориентированный на соединение протокол, что означает необходимость «рукопожатия» для установки соединения между двумя хостами. Как только соединение установлено, пользователи могут отправлять данные в обоих направлениях.

  • Надёжность — TCP управляет подтверждением, повторной передачей и тайм-аутом сообщений. Производятся многочисленные попытки доставить сообщение. Если оно потеряется на пути, сервер вновь запросит потерянную часть. В TCP нет ни пропавших данных, ни (в случае многочисленных тайм-аутов) разорванных соединений.
  • Упорядоченность — если два сообщения последовательно отправлены, первое сообщение достигнет приложения-получателя первым. Если участки данных приходят в неверном порядке, TCP отправляет неупорядоченные данные в буфер до тех пор, пока все данные не могут быть упорядочены и переданы приложению.
  • Тяжеловесность — TCP необходимо три пакета для установки соединения перед тем, как отправить данные. TCP следит за надёжностью и перегрузками.
  • Потоковая передача — данные читаются как поток байтов, не передается никаких особых обозначений для границ сообщения или сегментов.

UDP — более простой, основанный на сообщениях протокол без установления соединения. Протоколы такого типа не устанавливают выделенного соединения между двумя хостами. Связь достигается путём передачи информации в одном направлении от источника к получателю без проверки готовности или состояния получателя.

  • Ненадёжность — когда сообщение посылается, неизвестно, достигнет ли оно своего назначения — оно может потеряться по пути. Нет таких понятий как подтверждение, повторная передача, тайм-аут.
  • Неупорядоченность — если два сообщения отправлены одному получателю, то порядок их достижения цели не может быть предугадан.
  • Легковесность — никакого упорядочивания сообщений, никакого отслеживания соединений и т. д. Это лишь транспортный уровень.
  • Датаграммы — пакеты посылаются по отдельности и проверяются на целостность только если они прибыли. Пакеты имеют определенные границы, которые соблюдаются после получения, то есть операция чтения на получателе выдаст сообщение таким, каким оно было изначально послано.
  • Отсутствие контроля перегрузок — для приложений с большой пропускной способностью существует шанс вызвать коллапс перегрузок, если только они не реализуют меры контроля на прикладном уровне.

к оглавлению

Что такое протокол передачи данных? Какие протоколы вы знаете?

Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом.

Наиболее известные протоколы передачи данных:

  • HTTP (Hyper Text Transfer Protocol)
  • FTP (File Transfer Protocol)
  • POP3 (Post Office Protocol)
  • SMTP (Simple Mail Transfer Protocol)
  • TELNET (TErminaL NETwork)

к оглавлению

Вопросы для собеседования