Участник:Shersh/Билеты к экзамену по сетям — различия между версиями
Gromak (обсуждение | вклад) (→5. Модель OSI. Канальный уровень (протоколы).) |
Shersh (обсуждение | вклад) (→16. SCTP (основы, свойства, отличия).: добавлена инфа по SCTP) |
||
Строка 61: | Строка 61: | ||
=== 15. TCP/IP. TCP (модификации). Производительность транспортного уровня. === | === 15. TCP/IP. TCP (модификации). Производительность транспортного уровня. === | ||
=== 16. SCTP (основы, свойства, отличия). === | === 16. SCTP (основы, свойства, отличия). === | ||
+ | '''SCTP''' ('''Stream Control Transmission Protocol''' {{---}} протокол передачи с управлением потока) {{---}} протокол транспортного уровня. Выполняет те же функции, что и протоколы TCP и UDP. Но объединяет при этом их преимущества, лишает недостатков и добавляет новые возможности. | ||
+ | |||
+ | Таблица преимуществ: | ||
+ | |||
+ | [[Файл:SctpTable.png]] | ||
+ | |||
+ | Основные преимущества (пояснения к таблице): | ||
+ | * Сохранение границ {{---}} в протоколе TCP данные передаются непрерывным потоком байт, читаются так же, поэтому программист должен сам следить за тем, как расставлять границы в этом потоке и разделать куски данных. SCTP позволяет ставить границы и обрабатывать данные пакетами, как в UDP. Но при этом гарантирует порядок доставки пакетов, обеспечивает надёжность и ориентирован на соединения. Упорядоченность пакетов, кстати, можно отключить для повышения скорости. | ||
+ | * Multihoming (''многолинейность, множественная адресация'', см. иллюстрацию ниже) {{---}} SCTP позволяет устанавливать соединение к одному серверу по разным линиям связи (например, по Wi-Fi и по Ethernet). Таким образом, если одна линия связи отвалится (скорей всего Wi-Fi), то соединение не разорвётся. Это так же позволяет передавать данные сразу по нескольким линиям, что увеличивает скорость передачи. | ||
+ | |||
+ | [[Файл:Multihoming.png]] | ||
+ | |||
+ | * Multithreading (''многопоточность'') {{---}} позволяет передавать несколько потоков в рамках одной ассоциации (ассоциацией в SCTP называется соединение между двумя хостами). Например в TCP данные и служебная информация передаются по одному соединению. Поэтому задержка в получении служебнной информации может быть вызвана текущей передачей данных (например, ACK может не прийти вовремя, поэтому мы пошлём дупликат). Многопоточность позволяет передавать эти данные независимо, что приведёт к лучшему использованию доступных ресурсов. | ||
+ | * 4-way handshake {{---}} протокол TCP подвержен SYN-flood атакам. Злоумышленник шлёт много пакетов в короткое время для запроса TCP соединения (запрос на соединение помечен битом SYN в заголовке, поэтому и SYN-flood). Но при этом не подтверждает установление соединения. Таким образом на сервере образуются полуоткрытые соединения. Они закрываются сами по истечению таймаута. Но цель злоумышленника состоит в том, чтобы создать как можно больше таких соединений, не давая тем самым создавать новые валидные соединения из-за ограничения в их количестве на стороне сервера (сервер не может иметь бесконечное число соединений, а если сделать таймаут на обрыв слишком маленьким, то валидные соединения могут отваливаться раньше времени, что тоже нехорошо, и это всё делает syn-атаки возможными). В SCTP используется не тройное рукопожатие, а четверное (из разряда: "я хочу установить соединение - ты точно хочешь установить соединение? - да, я точно хочу установить соединение - ну тогда ладно"). Таким образом за короткий промежуток времени нельзя создать много новых соединений. | ||
+ | |||
+ | [[Файл:Synfloodsctp.png]] | ||
+ | |||
+ | * В SCTP не бывает полузакрытых соединений, как в TCP. Если мы закрываем соединение, то сразу в обе стороны. | ||
+ | |||
+ | К сожалению, несмотря на все преимущеста, протокол SCTP не получил пока широкого распространения. Это связано с инертностью (TCP работает, зачем менять?) и сложностью поддержки на аппаратном уровне (например, вся обёртка сетевых протоколов, те же фаерволы, имеют правила в духе "пропускать только UDP, TCP" пакеты; для примера можно вспомнить, как это используется в NAT). | ||
== Блок 3. == | == Блок 3. == |
Версия 23:44, 1 апреля 2015
Содержание
- 1 Блок 1.
- 1.1 1. Коммутация на канальном уровне.
- 1.2 2. Сети с общей средой передачи данных (подуровень MAC, протоколы).
- 1.3 3. Физическое кодирование.
- 1.4 4. Модель OSI. Канальный уровень (сервисы, подуровни).
- 1.5 5. Модель OSI. Канальный уровень (протоколы).
- 1.6 6. Модель OSI. Канальный уровень (контроль и исправление ошибок).
- 1.7 7. Модель OSI. Канальный уровень (мосты).
- 1.8 8. Модель OSI. Физический уровень (введение).
- 1.9 9. Модель OSI. Физический уровень (проводные сети).
- 1.10 10. Модель OSI. Физический уровень (оптоволоконные сети).
- 1.11 11. Ethernet.
- 1.12 12. Bluetooth.
- 1.13 13. Виртуальные локальные сети.
- 1.14 14. Протоколы стандарта 802.11*.
- 2 Блок 2.
- 2.1 1. Модель OSI. Сетевой уровень (введение, сервисы).
- 2.2 2. Модель OSI. Сетевой уровень (алгоритмы маршрутизации).
- 2.3 3. Модель OSI. Сетевой уровень (алгоритмы борьбы с перегрузкой).
- 2.4 4. Модель OSI. Сетевой уровень (качество обслуживания).
- 2.5 5. Модель OSI. Сетевой уровень (объединение сетей).
- 2.6 6. Мультикаст. Мультикаст маршрутизация.
- 2.7 7. IPv4. Основы.
- 2.8 8. IPv4. Маршрутизация.
- 2.9 9. Управляющие протоколы Internet.
- 2.10 10. Протоколы внешнего и внутреннего шлюза.
- 2.11 11. IPv6.
- 2.12 12. Модель OSI. Транспортный уровень (сервисы, примитивы, элементы транспортных протоколов).
- 2.13 13. TCP/IP. UDP.
- 2.14 14. TCP/IP. TCP (принцип работы, основы).
- 2.15 15. TCP/IP. TCP (модификации). Производительность транспортного уровня.
- 2.16 16. SCTP (основы, свойства, отличия).
- 3 Блок 3.
- 3.1 1. Служба DNS. Пространство имен в Internet.
- 3.2 2. Служба электронной почты.
- 3.3 3. WWW. HTTP. Основы и развитие.
- 3.4 4. FTP. Telnet. SSH.
- 3.5 5. Авторизация. Аутентификация. Аудит. Radius. Diameter.
- 3.6 6. Шифрование. Алгоритмы с симметричным ключом.
- 3.7 7. Шифрование. Алгоритмы с открытым ключом.
- 3.8 8. Шифрование. Цифровые подписи.
- 3.9 9. Шифрование. Системы управления открытыми ключами.
- 3.10 10. TLS. IPsec. Основы, отличия. IPv6 и шифрование.
- 3.11 11. Протоколы аутентификации.
- 3.12 12. Firewall. Концепция, примеры.
- 3.13 13. SIP. Телефония поверх IP.
- 3.14 14. Одноранговые сети.
- 3.15 15. Сетевые атаки. Классификация, описания.
- 3.16 16. Мультимедиа поверх IP. RTSP.
Блок 1.
1. Коммутация на канальном уровне.
2. Сети с общей средой передачи данных (подуровень MAC, протоколы).
3. Физическое кодирование.
4. Модель OSI. Канальный уровень (сервисы, подуровни).
5. Модель OSI. Канальный уровень (протоколы).
Общие объявления
TODO
Неограниченный симлексный протокол
TODO
Симлексный протокол с ожиданием
TODO
Симплексный протокол для замушлённых каналов
TODO
Протоколы скользящего окна
TODO
Протоколы с возвратом на N
TODO
Протоколы с выборочным повтором
TODO
Верификация протоколов
TODO
6. Модель OSI. Канальный уровень (контроль и исправление ошибок).
7. Модель OSI. Канальный уровень (мосты).
8. Модель OSI. Физический уровень (введение).
9. Модель OSI. Физический уровень (проводные сети).
10. Модель OSI. Физический уровень (оптоволоконные сети).
11. Ethernet.
12. Bluetooth.
13. Виртуальные локальные сети.
Тут всё понятно написано: Xgu.ru — VLAN
Ещё ссылка: intuit.ru — VLAN
14. Протоколы стандарта 802.11*.
Блок 2.
1. Модель OSI. Сетевой уровень (введение, сервисы).
2. Модель OSI. Сетевой уровень (алгоритмы маршрутизации).
3. Модель OSI. Сетевой уровень (алгоритмы борьбы с перегрузкой).
4. Модель OSI. Сетевой уровень (качество обслуживания).
5. Модель OSI. Сетевой уровень (объединение сетей).
6. Мультикаст. Мультикаст маршрутизация.
7. IPv4. Основы.
8. IPv4. Маршрутизация.
9. Управляющие протоколы Internet.
10. Протоколы внешнего и внутреннего шлюза.
11. IPv6.
12. Модель OSI. Транспортный уровень (сервисы, примитивы, элементы транспортных протоколов).
13. TCP/IP. UDP.
14. TCP/IP. TCP (принцип работы, основы).
15. TCP/IP. TCP (модификации). Производительность транспортного уровня.
16. SCTP (основы, свойства, отличия).
SCTP (Stream Control Transmission Protocol — протокол передачи с управлением потока) — протокол транспортного уровня. Выполняет те же функции, что и протоколы TCP и UDP. Но объединяет при этом их преимущества, лишает недостатков и добавляет новые возможности.
Таблица преимуществ:
Основные преимущества (пояснения к таблице):
- Сохранение границ — в протоколе TCP данные передаются непрерывным потоком байт, читаются так же, поэтому программист должен сам следить за тем, как расставлять границы в этом потоке и разделать куски данных. SCTP позволяет ставить границы и обрабатывать данные пакетами, как в UDP. Но при этом гарантирует порядок доставки пакетов, обеспечивает надёжность и ориентирован на соединения. Упорядоченность пакетов, кстати, можно отключить для повышения скорости.
- Multihoming (многолинейность, множественная адресация, см. иллюстрацию ниже) — SCTP позволяет устанавливать соединение к одному серверу по разным линиям связи (например, по Wi-Fi и по Ethernet). Таким образом, если одна линия связи отвалится (скорей всего Wi-Fi), то соединение не разорвётся. Это так же позволяет передавать данные сразу по нескольким линиям, что увеличивает скорость передачи.
- Multithreading (многопоточность) — позволяет передавать несколько потоков в рамках одной ассоциации (ассоциацией в SCTP называется соединение между двумя хостами). Например в TCP данные и служебная информация передаются по одному соединению. Поэтому задержка в получении служебнной информации может быть вызвана текущей передачей данных (например, ACK может не прийти вовремя, поэтому мы пошлём дупликат). Многопоточность позволяет передавать эти данные независимо, что приведёт к лучшему использованию доступных ресурсов.
- 4-way handshake — протокол TCP подвержен SYN-flood атакам. Злоумышленник шлёт много пакетов в короткое время для запроса TCP соединения (запрос на соединение помечен битом SYN в заголовке, поэтому и SYN-flood). Но при этом не подтверждает установление соединения. Таким образом на сервере образуются полуоткрытые соединения. Они закрываются сами по истечению таймаута. Но цель злоумышленника состоит в том, чтобы создать как можно больше таких соединений, не давая тем самым создавать новые валидные соединения из-за ограничения в их количестве на стороне сервера (сервер не может иметь бесконечное число соединений, а если сделать таймаут на обрыв слишком маленьким, то валидные соединения могут отваливаться раньше времени, что тоже нехорошо, и это всё делает syn-атаки возможными). В SCTP используется не тройное рукопожатие, а четверное (из разряда: "я хочу установить соединение - ты точно хочешь установить соединение? - да, я точно хочу установить соединение - ну тогда ладно"). Таким образом за короткий промежуток времени нельзя создать много новых соединений.
- В SCTP не бывает полузакрытых соединений, как в TCP. Если мы закрываем соединение, то сразу в обе стороны.
К сожалению, несмотря на все преимущеста, протокол SCTP не получил пока широкого распространения. Это связано с инертностью (TCP работает, зачем менять?) и сложностью поддержки на аппаратном уровне (например, вся обёртка сетевых протоколов, те же фаерволы, имеют правила в духе "пропускать только UDP, TCP" пакеты; для примера можно вспомнить, как это используется в NAT).