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

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

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

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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
[[Изображение:Uneex 08 10 08 frbrgeorge.jpg|thumb|240px]]
[[Изображение:Uneex 08 10 08 frbrgeorge.jpg|thumb|240px]]
-
= Лекция =
+
Краткое содержание пред. серии: лектор рассказал, как с его т. з. стуктурирован стек ТЦП/ИП, показав естественность его происхождения. 5 уровней, а не 4, потому что речь не только о TCP/IP, а о сетевом взаимод. как таковом, и аппаратного уровня в TCP/IP нет. Второе, о чём лектор хотел бы напомнить: свойство инкапсуляции. Трктье: независимость. Мы можем выбр. некую реализацию на апп. уровне, поверх неё можно организорвать IP. TCP может работать поверх чего угодно, в том числе IP, прикладные протоколы тоже необязательно могут работать поверх TCP. Как следствие, если надо передавать по TCP/IP, то на каждом уровне необходимо независимо резать и оборачивтаь пакеты.
-
== Вступление ==
+
-
Краткое содержание предыдущей серии: лектор рассказал, как с его точки зрения структурирован стек TCP/IP, показав естественность его происхождения.
+
-
5 уровней, а не 4, потому что речь не только о TCP/IP, а о сетевом взаимодействии как таковом, и аппаратного уровня в TCP/IP нет.
+
-
Второе, о чём лектор хотел бы напомнить: свойство инкапсуляции.
+
-
Третье: независимость уровней.
+
-
Мы можем выбрать некую реализацию на аппаратном уровне, поверх неё можно организовать IP.
+
-
TCP может работать поверх чего угодно, в том числе IP, прикладные протоколы тоже необязательно могут работать поверх TCP.
+
-
Как следствие, если надо передавать по TCP/IP, то на каждом уровне необходимо независимо резать и оборачивать пакеты.
+
-
== Методологические проблемы ==
+
Про апп уровнь лектор и собирался рассказавать, но натолкнулся на некие препятствия.
-
Про аппаратный уровень лектор и собирался рассказавать, но натолкнулся на некие препятствия.
+
Первый из 5 уровней, тот самый, который не опис. в TCP/IP, наз. аппраатным, и речь тут идёт о двух вещах:
 +
* Уровень проводовв и розеток
 +
* Уровень кодир. сигнала.
-
Первый из 5 уровней, тот самый, который не описан в TCP/IP, называется аппаратным, и речь тут идёт о двух вещах:
+
Так получилось, что эти задачи в больш. слкучаев не разделяются: когда мы говорим про провод, по которому передаются данные, мы сразу говорим, как они там кодируются. Есть СПД, в которых могут исопльзоваться разные способы кодирования.
-
* Уровень проводов и розеток;
+
-
* Уровень кодирования сигнала.
+
-
Так получилось, что эти задачи в большинстве случаев не разделяются: когда мы говорим про провод, по которому передаются данные, мы сразу говорим, как они там кодируются.
+
По суть, задача аппаратного уровня — превратить аналоговый сигнал в цифровой. Поскольку дальше му будем работать с 0 и с 1, и только с ним. Поскольку дальше мы будлем говорить мы не про ращзличные напряжения, изменения частот и так далее, а про них. После этого мы можем подходить к этому как программисты, до этого — не можем. Речь о том, чтобы свести всё к 0 и 1.
-
Есть СПД, в которых могут использоваться разные способы кодирования.
+
-
По сути, задача аппаратного уровня — превратить аналоговый сигнал в цифровой.
+
Есть книжка ... они издавалась в разных формах, в том числе и на интуите, книжка большая, в ней много чего, и всё, что нужно, там есть. Ссылка на неё есть на uneex.ru.
-
Поскольку дальше мы будем работать с 0 и с 1, и только с ними.
+
-
Поскольку дальше мы будем говорить про них, а не про различные напряжения, изменения частот и так далее.
+
-
После этого мы можем подходить к этому как программисты, до этого — не можем.
+
-
Речь о том, чтобы свести всё к 0 и 1.
+
-
Есть книжка ... она издавалась в разных формах, в том числе и на интуите, книжка большая, в ней много чего, и всё, что нужно, там есть.
+
В любом случае, нельзя строго раздельно рассм. эти два пункта. Поскольку когда мы изобретаем провода и розетки, то для того, чтобы передавать данные.
-
Ссылка на неё есть на uneex.ru.
+
-
В любом случае, нельзя строго раздельно рассматривать эти два пункта.
+
Лектор попробует сказать немнождко про провода и розетки. При попытке это как-то классифицировать лектор немедленно сдался. При опытке зайти на спец. сайт и посмотреть, какие бывают витые пары, то увижеть большущий список различных типов с различными хароактеристиками, отсылающими к более верхним уровням, причём абсолютно несистематизировано. Поэтому к этому всему необх. относиться как к некоей данности.
-
Поскольку когда мы изобретаем провода и розетки, то для того, чтобы передавать данные нужно рассмотреть и методы их кодирования.
+
-
== Провода и розетки ==
+
Тем не менее, на жтом уровне необходимо более-миенее описать, с каким носителем имеем дело. Упомянутая витая пара состоит из попарно скрученных проводов, предназн. для того, чтобы кодировать передаванмый сигнал, используя какой-то (в случае езернета — манчестерский) способ кодирования. Более того, на этом уровне возн. моного забавных проблем.
-
Лектор попробует сказать немножко про провода и розетки.
+
Проблема 1. Нажи нет ничего, и мы должны делать передачу из воздуха. Проблема 1 — синхронизация. Есть два устр. — перед. и принимающее. Перед. передаёт, принимающее принимает. Предающее передало 37 сигналов, 30 ноликов и 7 единичек. Вопрос: исходя из каких сообр. принимающее решило, что это 30 ноличков и 7 единичек, исходя из чего оно решило, что их 37, исходя из чего оно решило, что они вообще есть?
-
При попытке это как-то классифицировать лектор немедленно сдался.
+
-
При попытке зайти на специальный сайт и посмотреть, какие бывают витые пары, увидел большущий список различных типов с различными характеристиками, отсылающими к более верхним уровням, причём абсолютно несистематизированно.
+
-
Поэтому к этому всему необходимо относиться как к некоей данности.
+
-
Тем не менее, на этом уровне необходимо более-менее описать, с каким носителем имеем дело.
+
Первый вопрос относительно простой — пусть 0 отсутствие напр., 1 — наличие напряжения. Но уже тут возникает вопрос — где кончается 0 и нач. 1? Должна сущ. опр. мерка, которая говрит, что больше опр. порога 1, меньше 0. И между ними хорошо было бы иметь некий промежуток, ошибка.
-
Упомянутая витая пара состоит из попарно скрученных проводов, предназначенных для того, чтобы кодировать передаваемый сигнал, используя какой-то (в случае Ethernet манчестерский) способ кодирования.
+
-
Более того, на этом уровне возникает много забавных проблем.
+
-
( Проблема 1. Ниже нет ничего, и мы должны делать передачу из воздуха. )
+
Второй вопрос — почему 37? Простой ответ — они работают с частотой 10 мегагерц. Если примем такой способ кодирования, указанный ранее, то ровно за 37 миллионых передали 30 раз 0 и 7 раз единицу, приним. устройство 30 раз замерило 0, и 7 раз единицу. Но проблема в том, что мегагерцы разные: все устройства работают с немного разной частотой: перед. устройство передало 3700 0 и 1, принимающее приняло 3770. Обращаемся к кратинке 01010101. Она нужна для того, чтобы делать синхронизацию. Прежде чем послать eth-фрейм, предварительно посылается посл. 0 и 1, чтобы принимающее устройство откалибровало своё принимающее устройство. В начале именно всё так и работало. Впоследствии частота стала настолько большая, что это перестало работать.
-
=== Проблема 1: синхронизация. ===
+
Хорошо, но что значит, если устройство преедаёт сплошные нули? Оно дейтв. передаёт нули или провод перерезали? Хорошо, давайте исп. биполярное кодирование. Но при этом всё равно необходим маркер начала передачи. Зачем он нужен? Потому же, потому что не можем 3 вольта принимать за 5: мало ли почему у нас начало меняться напряжение. Мы должны договориться о некоем протоколе, который предваряет и заверш. передачу данных.
-
Есть два устройства — передающее и принимающее.
+
Понятно, что всё это будет на инт. уровне в нагрузку к полезным передаваемым данных.
-
Передающее передаёт, принимающее принимает.
+
-
Передающее передало 37 сигналов, 30 ноликов и 7 единичек.
+
-
Вопрос: исходя из каких соображений принимающее решило, что это 30 ноличков и 7 единичек, исходя из чего оно решило, что их 37, исходя из чего оно решило, что они вообще есть?
+
-
 
+
-
Первый вопрос относительно простой — пусть 0 обозначается отсутствием напряжение, 1 — наличием напряжения.
+
-
Но уже тут возникает вопрос — где кончается 0 и начинается 1?
+
-
Должна существовать определённая мерка, которая говорит, что больше определённого порога 1, меньше — 0.
+
-
И между ними хорошо было бы иметь некий промежуток, ошибка.
+
-
 
+
-
Второй вопрос — почему 37?
+
-
Простой ответ — они работают с частотой 10 мегагерц.
+
-
Если примем такой способ кодирования, указанный ранее, то ровно за 37 миллионых передали 30 раз 0 и 7 раз единицу, принимающее устройство 30 раз замерило 0, и 7 раз единицу.
+
-
Но проблема в том, что мегагерцы разные: все устройства работают с немного разной частотой: передающее устройство передало 3700 0 и 1, принимающее приняло 3770.
+
-
Обращаемся к картинке 01010101.
+
-
Она нужна для того, чтобы делать синхронизацию.
+
-
Прежде чем послать ethernet-фрейм, предварительно посылается последовательность 0 и 1, чтобы принимающее сторона откалибровало своё устройство-приёмник.
+
-
В начале именно всё так и работало.
+
-
Впоследствии частота стала настолько большая, что это перестало работать.
+
-
 
+
-
Хорошо, но что значит, если устройство преедаёт сплошные нули?
+
-
Оно действительно передаёт нули или провод перерезали?
+
-
Хорошо, давайте использовать биполярное кодирование.
+
-
Но при этом всё равно необходим маркер начала передачи.
+
-
Зачем он нужен?
+
-
Потому же, потому что не можем 3 вольта принимать за 5: мало ли почему у нас начало меняться напряжение.
+
-
Мы должны договориться о некоем протоколе, который предваряет и завершает передачу данных.
+
-
 
+
-
Понятно, что всё это будет на интерфейсном уровне в нагрузку к полезным передаваемым данных.
+
Итого три задачи:
Итого три задачи:
* Вопрос синхронизации
* Вопрос синхронизации
-
* Вопрос ... ''отсутствия сигнала?'' [[Участник:Hades|Hades]] 21:15, 15 декабря 2008 (UTC)
+
* Вопрос ...
* Вопрос начала и конца прередачи
* Вопрос начала и конца прередачи
-
Лектор напоминает, что это самый нижний уровень, и тут начинают накладываться самые разные вопросы: например, хотим совмещать питание и передачу данных.
+
Лектор напоминает, что это самый нижний уровень, и тут начинают накладываться самые разные вопросы: например, хотим совмещать питание и передачу данных. Тогда нужно придумать такую систему кодирования, которая позв. поверх напряжения передавать данные. И чтобы это напр. всегда было и ток тёк. Есть вариант, когда отсутствие смена напряжения в одну сторону — 0, в другую — 1. Это, собственно, и есть манч. кодирование.
-
Тогда нужно придумать такую систему кодирования, которая позволяет поверх напряжения передавать данные.
+
-
И чтобы это например всегда было и ток тёк.
+
-
Есть вариант, когда смена напряжения в одну сторону — 0, в другую — 1.
+
-
Это, собственно, и есть манчестерское кодирование.
+
-
=== Проблема 2: ошибки ===
+
Ещё какая проблема: проблема ошибок. Нам легко рассуждать о восст. ошибок во всём остальном. Но на апп. уровне ошибка это ошибка. Не передалось и ничего с этим не сделаешь. Более того, именно ошибки на этом уровне могут привести весь канал передачи данных в полную негодность. Порка мы до TCP дойдём, может столько всего произойти. Если у нас каждый пакет превращ. в кашу, когда мы передаём, а мы это даже не можем проверить... Более того, ошибки могут быть дву родов: порча анных и штатные ошибки (например, в eth — коллизии; когда два абонента начинают одновременно данные передавать, получается каша и кашу эту надо распознавать). Поскольку стоимость ошибки очень большая, то в том числе надо спотреть, насколько этот способ кодирования устоёчив к ошибкам.
-
Нам легко рассуждать о восстановлении ошибок во всём остальном.
+
Здесь опять нач. всякие разговоры. Чем больше у нас разхных уровней: например, мы решили исп. 20-уровневое кодирование. Понятно, что ошибки будут тогда почти постоянно. Более того, внутри этого всего существует множество всяфких тезник кодированиыя, про которые лектор даже и не уоминает, чтобы не забивать голову.
-
Но на аппаратном уровне ошибка это ошибка.
+
-
Не передалось и ничего с этим не сделаешь.
+
-
Более того, именно ошибки на этом уровне могут привести весь канал передачи данных в полную негодность.
+
-
Пока мы до TCP дойдём, может столько всего произойти.
+
-
Если у нас каждый пакет превращается в кашу, когда мы передаём, а мы это даже не можем проверить...
+
-
Более того, ошибки могут быть двух родов: порча данных и штатные ошибки (например, в ethernet — коллизии; когда два абонента начинают одновременно данные передавать, получается каша и кашу эту надо распознавать).
+
-
Поскольку стоимость ошибки очень большая, то в том числе надо смотреть, насколько этот способ кодирования устойчив к ошибкам.
+
-
 
+
-
Здесь опять начинаются всякие разговоры.
+
-
Чем больше у нас разных уровней сигнала, тем больше ошибок.
+
-
Например, мы решили использовать 20-уровневое кодирование.
+
-
Понятно, что ошибки будут тогда почти постоянно.
+
-
Более того, внутри этого всего существует множество всяких техник кодирования, про которые лектор даже и не упоминает, чтобы не забивать голову.
+
Лектор, забегая вперёд, количество передаваемых за раз данных зависит от того, ...
Лектор, забегая вперёд, количество передаваемых за раз данных зависит от того, ...
-
Это к тому, что способ кодирования сигнала зависит от того, где мы собираемся передавать данные, учитывая разные странные вещи.
+
Этор к тому, что способ кодирования сигнала зависит от того, гдк мы собир. передавать данные, учитывая разные старнныые вещи.
-
Что касается ошибок, есть две вещи:
+
Что касается ошибок, есть две вещи:
-
* Ошибки можно обнаружить;
+
* Ошибки можно обнаружить
-
* Ошибки можно корректировать.
+
* Ошибки можно корректировать
 +
Последнее обязательно связано с передачей доп. данных, первое в некоторых случаях этого не требует.
-
Последнее обязательно связано с передачей дополнительных данных, первое в некоторых случаях этого не требует.
+
Например, для обн. ошибок можно использовать бит чётности. Чем плох он: неокоторые ошибки взаимоуничтожаются. Поэтому на уровне передачи больше, чем несколько битов, исп. системы контроля целостности, у которых очень низкая вероятность false-positive. И тут опять нач. математика. Всё это разви лось буквально за несколько десятков лет.
-
Например, для обнаружения ошибок можно использовать бит чётности.
+
С обн. ошибки есть одна проблема. Ну, обнаружили мы ошибку. Что делать? Вообше, надо запрашивать повтор, но мы это так просто не можем сделать. Например, есть спец. протокола Eth. Но на апп. уровне ничего такого просто нет. И тогда важной задачей становится коррекция ошибок. Шаманские действия заключаются в том, чтобы передавать больше данных, которые позв. восстановить, например, единичные ошибки. Например, передавать данные в виде матр. n×n, и передавать вместе с ними биты чётности. Ещё есть кодирование Шеннона.
-
Чем плох он: неокоторые ошибки взаимоуничтожаются.
+
-
Поэтому на уровне передачи больше, чем несколько битов, используются системы контроля целостности, у которых очень низкая вероятность false-positive.
+
-
И тут опять начинается математика.
+
-
Всё это развилось буквально за несколько десятков лет.
+
-
 
+
-
С обнаружением ошибки есть одна проблема.
+
-
Ну, обнаружили мы ошибку. Что делать?
+
-
Вообще, надо запрашивать повтор, но мы это так просто не можем сделать.
+
-
Например, есть специальный фрейм протокола Ethernet.
+
-
Но на аппаратном уровне ничего такого просто нет.
+
-
И тогда важной задачей становится коррекция ошибок. Шаманские действия заключаются в том, чтобы передавать больше данных, которые позв. восстановить, например, единичные ошибки. Например, передавать данные в виде матр. n×n, и передавать вместе с ними биты чётности. Ещё есть кодирование Шеннона.
+
На этом систематизированные знания у лектора заканчиваются.
На этом систематизированные знания у лектора заканчиваются.
-
То, что тут было сказано, должно было создать представление о том, что передача данных на физическом уровне — вешь достаточно сложная, и для тестирования провода амперметра недостаточно.
+
То, что тут было сказано, должно было создать представление о том, что передача данных на физ. уровне — вешь достаточно сложная, и для тестирования провода амперметра недостаточно.
-
Например, как лектора подключили к домашней сети: монтажники увидели, что соседи поключены, и вкрутили проводки в имеющийся провод.
+
Например, как лектора подключили к домашней сети: монтажники увидели, что соседи поключены, и вкрутили проводки в имеющийся провод. Кроме того, там у них есть своя специальная разводка.
-
Кроме того, там у них есть своя специальная разводка.
+
Кроме того, стандартов витой пары много.
Кроме того, стандартов витой пары много.
-
Лектору кажется, что из стека исключена аппаратная часть для того, чтобы не пудрить людям голову.
+
Лектору кажется, что из стека искл. апп. часть для того, чтобы не пудрить людям голову. Знание которых может пригодиться только специалистам по прокладке сети, остальным же дост. соблюдать простые нормы, не задумываясь, откуда они берутся.
-
Это детали, знание которых может пригодиться только специалистам по прокладке сети, остальным же достаточно соблюдать простые нормы, не задумываясь, откуда они берутся.
+
-
 
+
-
== Выводы ==
+
Попробуем сделать из этого достойные выводы:
Попробуем сделать из этого достойные выводы:
-
* Аппаратный уровень предназначен для того, чтобы перевести в цифру то, что цифрой не является
+
* Апп. уровень предназначен для того, чтобы перевести в цифру то, что цифрой не ялвяется
-
* На аппаратном уровне существует гораздо больший оверхед, чем мы можем себе вообразить
+
* На апп. цровне сущ. гораздо больший оверхед, чем мы можем себе вообразить
-
* Налицо отличная иллюстрация независимости уровней. Как бы ни был устроен провод, каким бы способом кодирования вы бы не пользовались. С точки зрения интерфейсного уровня это всё равно будет Ethernet.
+
* Налицо отличная иллюстрация независимости уровней. Как бы не был устроен провод, каким бы способом кодирования вы бы не пользовались. С точки срения инт. уровня это всё равно будет езернет
* В реальной жизни эти подробности, как оно устроено, проще не знать.
* В реальной жизни эти подробности, как оно устроено, проще не знать.
-
От себя лектор добавит, что есть очевидная тенденция разделять эти два уровня: повились стандарты на провода и на всё остальное.
+
От себя лектор добавит, что есть очевидная тенденция разделять эти два уровня: повились стандарты на провода и на всё остальное. По всей видимости, с передачей данных по витой паре, со стандртом 10 гигабит всё закончится.
-
По всей видимости, с передачей данных по витой паре, со стандартом 10 гигабит всё закончится.
+
Теперь время позадавать какие-нибудь вопросы.
Теперь время позадавать какие-нибудь вопросы.
-
MAC-адрес это какой уровень?
+
MAC-адрпес это какой уровень?
-
Это уровень интерфейсный, поскольку он решает идентификацию устройства передающего данные в СПД. Интерфейсный уровень решает задачи ...
+
Это уровень интерфейсный, поскольку он решает идентификацию устройства преед. данных в СПД. Инт. уровень реш
Какой уровень овечает за IP-адрес отправителя? И можно ли указать другой адрес отправителя?
Какой уровень овечает за IP-адрес отправителя? И можно ли указать другой адрес отправителя?
Строка 163: Строка 83:
Можно, но зачем?
Можно, но зачем?
-
Можно ли внутри IP-пакета управлять маршрутизацией?
+
Можжно ли внутри IP-пакета управлять маршрутизацией?
В IPv6 можно, в IPv4 нет. Есть QoS, и на него можно навесить свою семантику.
В IPv6 можно, в IPv4 нет. Есть QoS, и на него можно навесить свою семантику.
-
Почему некоторые устройства (PCMCIA-карты) так плохо поддерживаются Linux?
+
Почему некоторые устройства (PCMSIA-карты) так плохо поддерживаются в linux?
-
Нормально они поддерживаются.
+
Нормально они поддерживаются. Что касается беспроводных адаптеров, то там есть несколько чипсетов, и они закрытые, только alteros полностью открытый. Пробелма в том, что wi-fi пока ещё является предметом технологического преимущества. Вопрос в итоге к производителям железок, почему они не делают драйвера.
-
Что касается беспроводных адаптеров, то там есть несколько чипсетов, и они закрытые, только alteros (''atheros''? [[Участник:Hades|Hades]] 21:23, 15 декабря 2008 (UTC)) полностью открытый. Проблема в том, что wi-fi пока ещё является предметом технологического преимущества. Вопрос в итоге к производителям железок, почему они не делают драйвера.
+
А вот в СКИФе, там же свои протоколы обшения между нодами...
А вот в СКИФе, там же свои протоколы обшения между нодами...
-
Помимо всего прочего, обратите внимание, что слово Linux здесь не возникло ни разу, поскольку про ОС мы можем говорить только там, где у нас есть некое цифровое представление информации. И дальше мы будем говорить в следующий раз.
+
Помимо всего прочего, обратите внимание, что слово linux здесь не возникло ни разу, поскольку про ОС мы можем гвоорить только там, где у нас есть некое цифровое предст. инф. И дальше мы будем говорить в след. раз.
-
= Конспект Kda =
+
Конспект Kda:
На прошлой лекции лектор пытался не произносить слова TCP/IP.
На прошлой лекции лектор пытался не произносить слова TCP/IP.

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

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