Редактирование: UNИX, осень 2008, 08 лекция (от 19 ноября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 45 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 11: Строка 11:
</gallery>
</gallery>
-
= Лекция =
 
-
== Оффтоп ==
 
Лектор делится открытием, не имеющим напрямую отношения к теме лекции.
Лектор делится открытием, не имеющим напрямую отношения к теме лекции.
Вышел новый дистрибутив AltLinux Desktop 4.1.
Вышел новый дистрибутив AltLinux Desktop 4.1.
Строка 18: Строка 16:
Полоски с градиентом можно генерировать автоматически с помощью программы (штук 50) и выбрать лучший.
Полоски с градиентом можно генерировать автоматически с помощью программы (штук 50) и выбрать лучший.
С помощью какой программы можно генерировать фон разных размеров?
С помощью какой программы можно генерировать фон разных размеров?
- 
ImageMagick растровый.
ImageMagick растровый.
Можно сгенерировать картинку и ресайзить.
Можно сгенерировать картинку и ресайзить.
Строка 24: Строка 21:
Было бы неплохо сделать в векторном режиме, а затем генерировать нужного размера.
Было бы неплохо сделать в векторном режиме, а затем генерировать нужного размера.
Выбираешь количество, тип градиента.
Выбираешь количество, тип градиента.
- 
Было предположение о GLE.
Было предположение о GLE.
GLE — язык написания простейших программ, рисующих картинки.
GLE — язык написания простейших программ, рисующих картинки.
Строка 43: Строка 39:
Закрываем тему.
Закрываем тему.
-
== Вступление ==
 
Открываем тему транспортного уровня стека протоколов TCP/IP.
Открываем тему транспортного уровня стека протоколов TCP/IP.
За последнее тысячелетие сведения сильно устарели.
За последнее тысячелетие сведения сильно устарели.
Если использовать литературу прошлого тысячелетия, можно знать не все.
Если использовать литературу прошлого тысячелетия, можно знать не все.
-
== Теория ==
+
Теория.
Что такое транспортный уровень?
Что такое транспортный уровень?
Такой уровень, когда мы хотим забыть о проблемах доставки.
Такой уровень, когда мы хотим забыть о проблемах доставки.
Строка 63: Строка 58:
На следующем уровне (прикладном) мы будем общаться либо с ненадежными данными, либо мы обеспечиваем надежность на транспортном уровне.
На следующем уровне (прикладном) мы будем общаться либо с ненадежными данными, либо мы обеспечиваем надежность на транспортном уровне.
Гарантируем, что данные не испортились и пришли все.
Гарантируем, что данные не испортились и пришли все.
- 
Другая задача состоит в том, чтобы работать с потоками данных, а не только с данными любого вида, которые отправляются и получаются.
Другая задача состоит в том, чтобы работать с потоками данных, а не только с данными любого вида, которые отправляются и получаются.
Идея в том, что когда несколько сеансов передачи данных, с точки зрения IP это одни и те же пакеты, с одним отправителем и получателем.
Идея в том, что когда несколько сеансов передачи данных, с точки зрения IP это одни и те же пакеты, с одним отправителем и получателем.
Строка 81: Строка 75:
Важным фактором является то, что начиная с интерфейсного уровня сети — сети без гарантированного времени передачи данных.
Важным фактором является то, что начиная с интерфейсного уровня сети — сети без гарантированного времени передачи данных.
Один из способов реализации такой: мы для начала потребуем от нашего получателя, чтобы он нам ответил.
Один из способов реализации такой: мы для начала потребуем от нашего получателя, чтобы он нам ответил.
-
Мы посылаем пакет на деревню дедушке, а деревни нет (или деревня есть, а дедушки нет).
+
Мы посылаем пакет на деревню дедушке, а деревни нет, или деревня есть, а дедушки нет.
Когда посылаем пакет, нужно убедиться, что получатель существует.
Когда посылаем пакет, нужно убедиться, что получатель существует.
-
 
+
Установка соединения.
-
=== Установка соединения ===
+
Передача с установлением соединения и без него.
Передача с установлением соединения и без него.
Первое в реальном времени, второе — нет.
Первое в реальном времени, второе — нет.
Строка 93: Строка 86:
Если же ответил, скорее всего, попадет.
Если же ответил, скорее всего, попадет.
-
=== Подтверждение ===
 
В ответе можно передавать дополнительные вещи.
В ответе можно передавать дополнительные вещи.
Уже возникает некая двунаправленность.
Уже возникает некая двунаправленность.
Строка 106: Строка 98:
Внутри каждого пакета будет контрольная сумма, ее будут проверять.
Внутри каждого пакета будет контрольная сумма, ее будут проверять.
-
=== Упорядочивание ===
+
Упорядочивание.
Мы должны перенумеровать все пакеты данных.
Мы должны перенумеровать все пакеты данных.
Отправитель нумерует, а получатель должен уметь отслеживать порядок, например, он получил не второй, а третий пакет.
Отправитель нумерует, а получатель должен уметь отслеживать порядок, например, он получил не второй, а третий пакет.
Должен сообщить отправителю: «Чувак, гони второй пакет».
Должен сообщить отправителю: «Чувак, гони второй пакет».
-
=== Целостность ===
 
Для отслеживания целостности нужно говорить, не повредился ли пакет.
Для отслеживания целостности нужно говорить, не повредился ли пакет.
Для решения этих задач сущестуют некоторые методы.
Для решения этих задач сущестуют некоторые методы.
Строка 118: Строка 109:
Контрольная сумма (избыточная информация).
Контрольная сумма (избыточная информация).
-
=== Балансировка ===
 
Отслеживание состояния канала (балансировка канала).
Отслеживание состояния канала (балансировка канала).
Балансировка канала — алгоритм скользящего окна, медленный старт.
Балансировка канала — алгоритм скользящего окна, медленный старт.
Строка 134: Строка 124:
Балансировка нагрузки даже если мы хотим делать широковещание — в общем-то, вещь полезная.
Балансировка нагрузки даже если мы хотим делать широковещание — в общем-то, вещь полезная.
-
== TCP и UDP ==
+
В TCP все 5 пунктов (соединение, подтверждение, упорядочивание, контрольная сумма, балансировка) реализованы, в UDP — только контрольная сумма, да и то можно отключать.
-
=== Сравнение ===
+
-
В TCP все 5 пунктов реализованы:
+
-
* соединение
+
-
* подтверждение
+
-
* упорядочивание
+
-
* контрольная сумма
+
-
* балансировка
+
-
 
+
-
В UDP — только контрольная сумма, да и то можно отключать.
+
-
 
+
Что касается UDP, все достаточно понятно.
Что касается UDP, все достаточно понятно.
Единственное ограничение — чтобы пакет не рассыпался по дороге.
Единственное ограничение — чтобы пакет не рассыпался по дороге.
Получит или не получит адресат сообщение — неизвестно.
Получит или не получит адресат сообщение — неизвестно.
- 
-
=== Идентификация потоков ===
 
Прежде чем перейти к рассмотрению TCP, решим частную задачу.
Прежде чем перейти к рассмотрению TCP, решим частную задачу.
На уровне разделения потоков потоки должны иметь разные идентификаторы.
На уровне разделения потоков потоки должны иметь разные идентификаторы.
Строка 171: Строка 149:
В течение всего сеанса четверка идентифицирует поток данных.
В течение всего сеанса четверка идентифицирует поток данных.
-
=== Упорядочивание сообщений ===
 
Наша задача не только различать потоки, но и упорядочивать.
Наша задача не только различать потоки, но и упорядочивать.
На уровне TCP есть SeqN1 (Sequence Number), SeqN2.
На уровне TCP есть SeqN1 (Sequence Number), SeqN2.
Строка 196: Строка 173:
Двустороннесть позволяет подтверждать.
Двустороннесть позволяет подтверждать.
Возможны различные ошибки, требования повторной передачи.
Возможны различные ошибки, требования повторной передачи.
- 
-
=== Балансировка нагрузки. Окна TCP ===
 
В алгоритме не предусмотрено ничего для балансировки канала.
В алгоритме не предусмотрено ничего для балансировки канала.
А она была бы не плоха, потому что пакет долго ходит по Интернету, размер одновременно передаваемого куска был как можно больше.
А она была бы не плоха, потому что пакет долго ходит по Интернету, размер одновременно передаваемого куска был как можно больше.
Строка 265: Строка 240:
Это все либо не реализовано, либо бессмысленно в TCP.
Это все либо не реализовано, либо бессмысленно в TCP.
-
=== Что лучше? ===
 
Немного разговора о том, когда применять TCP, когда UDP.
Немного разговора о том, когда применять TCP, когда UDP.
TCP — синхронный протокол.
TCP — синхронный протокол.
Строка 296: Строка 270:
Обеспечить если не гарантированное, то ожидаемое время доставки пакета.
Обеспечить если не гарантированное, то ожидаемое время доставки пакета.
-
== Другие протоколы ==
 
Есть 4 протокола, найденные автором в Википедии.
Есть 4 протокола, найденные автором в Википедии.
Реализация всего этого имеется, использоваться начнется, когда у всех будет IPv6.
Реализация всего этого имеется, использоваться начнется, когда у всех будет IPv6.
Нормальный QoS можно сделать только там, в IPv4 нельзя, там только один байт.
Нормальный QoS можно сделать только там, в IPv4 нельзя, там только один байт.
-
=== RSVP (Resource Reservation Protocol) ===
+
RSVP (Resource Reservation Protocol).
Протокол управляющий, предназначенный, чтобы разгрести место для последующей передачи данных в высоким QoS.
Протокол управляющий, предназначенный, чтобы разгрести место для последующей передачи данных в высоким QoS.
Для передачи видео должно быть место в памяти для этих пакетов.
Для передачи видео должно быть место в памяти для этих пакетов.
Строка 310: Строка 283:
Если наше устройство поддерживает, можно надеяться, что проблемы возникнут только при сбоях аппаратуры, а ресурсы зарезервированы (или маршрутизатор скажет, что ресурсов не хватает).
Если наше устройство поддерживает, можно надеяться, что проблемы возникнут только при сбоях аппаратуры, а ресурсы зарезервированы (или маршрутизатор скажет, что ресурсов не хватает).
-
=== ECN ===
+
Протокол ECN.
Как TCP справляется с ситуацией, когда отправитель отправляет слишком много?
Как TCP справляется с ситуацией, когда отправитель отправляет слишком много?
Просто выбрасывает.
Просто выбрасывает.
Строка 318: Строка 291:
Принимая во внимание особенности протокола ECN, можно разработать еще пару протоколов, которые могут как-то взаимодействовать.
Принимая во внимание особенности протокола ECN, можно разработать еще пару протоколов, которые могут как-то взаимодействовать.
-
=== DCCP (Datagram Conversion Control Protocol) ===
+
Есть протокол DCCP (Datagram Conversion Control Protocol).
Происходит управление (контроль за переполнением потока датаграмм).
Происходит управление (контроль за переполнением потока датаграмм).
Что-то более хитрое, чем UDP.
Что-то более хитрое, чем UDP.
Строка 327: Строка 300:
Контроль за переполнением.
Контроль за переполнением.
-
=== SCTP ===
+
Более развесистый протокол — SCTP.
-
Более развесистый протокол.
+
Не гибрид TCP и UDP.
Не гибрид TCP и UDP.
Работает с потоком байт.
Работает с потоком байт.
Строка 340: Строка 312:
Внутри одного соединения может быть несколько потоков данных (внутри одного потока).
Внутри одного соединения может быть несколько потоков данных (внутри одного потока).
-
=== Заключение ===
 
Все это было подготовлено для IPv6.
Все это было подготовлено для IPv6.
Эта штука более гибкая.
Эта штука более гибкая.
Строка 349: Строка 320:
-
= Конспект eSyr =
+
Конспект eSyr:
<div style="font-size:50%">
<div style="font-size:50%">
Транспортный уровень
Транспортный уровень

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы