TCP/IP (компьютерное)
Aug. 23rd, 2004 10:01 pm1. А могли ведь, наверное (подумалось мне как-то недавно) внести в TCP встроенную возможность передавать много параллельных потоков по одному каналу. Самым простым и примитивным способом: ввести в заголовок TCP поле “номер потока”, размером в байт, например (256 потоков).
О, да кстати там и поле reserved в 6 бит есть, вижу (64 потока). Дать к номеру потока доступ на уровне сокетов или других интерфейсов с помощью соответствующих расширенных функций. И пусть те аппликации, кому удобно, используют. По умолчанию всегда будет один поток, нулевой.
Зачем это нужно и почему просто не открыть несколько TCP-соединений? Несколько соединений могут легко рассинхронизироваться и вообще пойти через разные раутеры даже. Несколько потоков в одном соединении будут ползти одним потоком с точки зрения самого TCP.
Предположим, мне нужно транслировать фильм по сети, чтобы на втором конце его могли проигрывать в realtime. Что сейчас делают? Используют формат, который мультиплексирует видео- и аудио-поток вместе, так, чтобы они были синхронизированы в общем потоке. Попеременно идут фреймы видео-аудио-видео-аудио (ясно, что удельный вес видео больше). Например, формат AVI, или MPEG, или новые OGM и Matroska. Но чем плохо было бы просто пустить фильм по TCP, пометив видео и аудио как разные потоки? Посылающая программа следила бы за синхронизацией, а сам протокол TCP обеспечивал бы тот факт, что они не рассинхронизируются по пути. И не нужен отдельный файловый формат.
Ещё, наверное, всякие примеры можно придумать.
P.S. Забыл упомянуть, что, собственно, весьма примитивная поддержка этого дела в TCP есть — но только двух потоков: обычного и "срочного" (с помощью urgent pointer). Этого, ясно, недостаточно, да и семантика тут чуть другая. Я вообще-то не знаю, пользуется ли кто-то серьёзно этими самыми urgent-данными в TCP (кажется, telnet пользуется для чего-то там — и больше никого не знаю).
2. Наивный немного вопрос: а что там вообще происходит с IPv6, кто-то следит за этим делом? А то я уже, наверное, лет восемь слышу разговоры о том, что у нас вот-вот кончатся 32-битные адреса, и что мы вот-вот перейдём все на IPv6. Тем временем адреса вроде бы не кончаются (или кончаются всё-таки?) и на IPv6 мы не переходим. В каком состоянии вообще всё это находится?
О, да кстати там и поле reserved в 6 бит есть, вижу (64 потока). Дать к номеру потока доступ на уровне сокетов или других интерфейсов с помощью соответствующих расширенных функций. И пусть те аппликации, кому удобно, используют. По умолчанию всегда будет один поток, нулевой.
Зачем это нужно и почему просто не открыть несколько TCP-соединений? Несколько соединений могут легко рассинхронизироваться и вообще пойти через разные раутеры даже. Несколько потоков в одном соединении будут ползти одним потоком с точки зрения самого TCP.
Предположим, мне нужно транслировать фильм по сети, чтобы на втором конце его могли проигрывать в realtime. Что сейчас делают? Используют формат, который мультиплексирует видео- и аудио-поток вместе, так, чтобы они были синхронизированы в общем потоке. Попеременно идут фреймы видео-аудио-видео-аудио (ясно, что удельный вес видео больше). Например, формат AVI, или MPEG, или новые OGM и Matroska. Но чем плохо было бы просто пустить фильм по TCP, пометив видео и аудио как разные потоки? Посылающая программа следила бы за синхронизацией, а сам протокол TCP обеспечивал бы тот факт, что они не рассинхронизируются по пути. И не нужен отдельный файловый формат.
Ещё, наверное, всякие примеры можно придумать.
P.S. Забыл упомянуть, что, собственно, весьма примитивная поддержка этого дела в TCP есть — но только двух потоков: обычного и "срочного" (с помощью urgent pointer). Этого, ясно, недостаточно, да и семантика тут чуть другая. Я вообще-то не знаю, пользуется ли кто-то серьёзно этими самыми urgent-данными в TCP (кажется, telnet пользуется для чего-то там — и больше никого не знаю).
2. Наивный немного вопрос: а что там вообще происходит с IPv6, кто-то следит за этим делом? А то я уже, наверное, лет восемь слышу разговоры о том, что у нас вот-вот кончатся 32-битные адреса, и что мы вот-вот перейдём все на IPv6. Тем временем адреса вроде бы не кончаются (или кончаются всё-таки?) и на IPv6 мы не переходим. В каком состоянии вообще всё это находится?
no subject
Date: 2004-08-23 12:15 pm (UTC)Необходимо также учитывать, что открытие множественных ТСР-сессий может быть предпочтительнее в ряде ситуаций, т.к. каждая сессия регулирует свой размер окна независимо от других.
no subject
Date: 2004-08-23 12:35 pm (UTC)Сегодня - да, но я как раз предлагаю "спустить" эту возможность на transport layer, путём внесения её в сам протокол TCP.
Необходимо также учитывать, что открытие множественных ТСР-сессий может быть предпочтительнее в ряде ситуаций, т.к. каждая сессия регулирует свой размер окна независимо от других.
Да, это понятно.
no subject
Date: 2004-08-23 01:53 pm (UTC)no subject
Date: 2004-08-23 06:52 pm (UTC)no subject
Date: 2004-08-23 12:18 pm (UTC)рынок регулировал-регулировал, и нарегулировал ситуацию, в которой куча народу сидит за NAT-router'ами и не жужжит. IPv6 может особо не торопиться, насколько я понимаю.
перспектива тоже не видится мне ужасной: NAT-routing, насколько я опять же понимаю, допускает многоуровневое вложение.
no subject
Date: 2004-08-23 12:59 pm (UTC)(no subject)
From:no subject
Date: 2004-08-23 01:00 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2004-08-23 01:38 pm (UTC) - Expand(no subject)
From:(no subject)
From: (Anonymous) - Date: 2004-08-23 01:58 pm (UTC) - Expand(no subject)
From:(no subject)
From: (Anonymous) - Date: 2004-08-23 03:02 pm (UTC) - Expandno subject
Date: 2004-08-23 12:18 pm (UTC)no subject
Date: 2004-08-23 12:23 pm (UTC)no subject
Date: 2004-08-23 12:51 pm (UTC)Т.е. технически это верно, конечно, "триллионы" новых адресов. Очень-очень много триллионов... ;)
(no subject)
From:no subject
Date: 2004-08-23 12:22 pm (UTC)2. В довольно медленном. Адреса действительно не кончаются, да в IPv6 есть нерешенных проблем.
no subject
Date: 2004-08-23 12:44 pm (UTC)no subject
Date: 2004-08-23 12:31 pm (UTC)а всё живо из-за проклятого NAT'а. если бы не он, давно бы адреса кончились.
no subject
Date: 2004-08-23 12:36 pm (UTC)no subject
Date: 2004-08-23 12:38 pm (UTC)(no subject)
From:(no subject)
From:Курица и яйцо
From:(no subject)
From:(no subject)
From:(no subject)
From:Мультиплексирование
From:Re: Мультиплексирование
From:Re: Мультиплексирование
From:(no subject)
From:(no subject)
From:Это верблюдов на переправе не меняют
From:Re: Это верблюдов на переправе не меняют
From:(no subject)
From:no subject
Date: 2004-08-23 12:42 pm (UTC)no subject
Date: 2004-08-23 12:45 pm (UTC)(no subject)
From:no subject
Date: 2004-08-23 01:00 pm (UTC)вот и весь вопрос.
no subject
Date: 2004-08-23 01:55 pm (UTC)Что означает .UPDATE.?
Программы стирки вашего стирального аппарата определяются
программным обеспечением.
Новые виды текстиля и моющих средств могут потребовать в
будущем изменения программ стирки. Тогда программное
обеспечение может быть в большинстве случаев изменено в
соответствии с этими требованиями. Чтобы произвести это
изменение (провести .update.) обращайтесь, пожалуйста, в
авторизованные изготовителем сервисные центры. Там же вы
сможете узнать расценки на изменение программ.
(no subject)
From:Спасибо
From:no subject
Date: 2004-08-23 01:39 pm (UTC)no subject
Date: 2004-08-23 01:50 pm (UTC)Заворачивание фильма в TCP в принципе неправильно. И дважды неправильно заорачивание в общий поток изображения и звука.
Дело в том, что TCP не предназначен для передачи реалтаймового потока данных (которыми является аудио/видео). При передачи таких потоков недопустимы паузы и задержки -- если у нас потерялся пакет, но следует про него забыть и ни в коем случае не прерывать передачу остального потока дыбы найти потерянный фрагмент. Поэтому VoIP работает по UDP. Точнее RTP.
Неправильно замешивать видео и звук в общий поток -- у звука достаточно фиксированная и относительно небольшая полоса и он очень чувствителен к задержкам. Чуть что не так -- начинаются булькания, заикания.
Видео же, наоборот, занимает довольно большую полосу, но при этом гораздо менее чувствительно к задержкам и пропаданиям.
Поэтому эти два потока на роутерах при передаче имеет смысл передавать с разными дисциплинами. Но в любом случае -- лучше независимо.
no subject
no subject
Date: 2004-08-23 02:17 pm (UTC)no subject
Date: 2004-08-23 02:33 pm (UTC)Начнем с того, что при передаче в одном потоке механизм для синхронизации _все равно нужен_. Потому как видео -- дискретно-покадровое, а звук -- непрерывный.
в RTP на каждом пакете есть временная метка (64-бит, в формате NTP) -- проблем с синхронизацией никаких нету.
...да забыли про овраги...
Date: 2004-08-23 06:48 pm (UTC)Причина очень проста - если получатель одного из потоков тормозит, то все остальные тоже будут блокированы. Так что реально нужно делать не только framing с идентификаторами потоков, но и раздельный flow control для каждого потока (так чтобы flow contol в самом TCP никогда не тормозил передачу).
Кроме того, нужна поддержка для создания и уничтожения потоков.
На практике ещё нужно делать enforcement of fairness между потоками - скажем, используя Fair Queueing. Иначе один поток может запросто монополизировать ресурсы сети (это невозможно если для каждого потока используется своё TCP-соединение - TCP's cooperative congestion control делит пропускную способность канала примерно поровну между TCP-соединениями (при условии достаточных оклн на приёме и передаче, и примерно одинаковой задержки из конца в конец).
а что там вообще происходит с IPv6
А ничего особо не происходит - никому он не нужен, кроме производителей router-ов. Чтобы, эта, можно было продать новые железки.
Re: ...да забыли про овраги...
Date: 2004-08-23 06:57 pm (UTC)А по поводу перечисления Вами всего, что нужно добавить в мультиплексирование для того, чтобы это все работало - так это все уже сделано. TCP называется :)
Re: ...да забыли про овраги...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2004-08-23 06:48 pm (UTC)no subject
Date: 2004-08-24 03:15 am (UTC)no subject
Date: 2004-08-23 06:49 pm (UTC)А вот в Японии все гораздо бодрее, например, я участвовал в проекте переноса кое-чего на IPv6 в связи с тем. что одна японская мобильная сеть целиком переводит всех абонентов на IPv6
no subject
Date: 2004-08-24 12:19 pm (UTC)Я помню массу криков о не-портабельности адресов, которая стала необходимой для аггрегации маршрутов (весь смысл CIDR :)
no subject
Date: 2004-08-23 08:01 pm (UTC)> через разные раутеры даже.
Почему "даже" ? И одно соединение может идти через разные раутеры
no subject
Date: 2004-08-23 11:57 pm (UTC)Вообще идея мне кажется несколько надуманной, особенно мысль о подмене AVI множественными потоками в TCP.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:TCP непригоден для передачи media
Date: 2004-08-25 08:30 am (UTC)IPv6 в действии
Date: 2004-08-27 06:57 pm (UTC)Оказывается, что крупные провайдеры, а в моём случае это был Акамай уже давно им пользуются. Однако, только для внутренних целей. Вся внутренняя инфраструктура уже пару лет как перешла на IPv6. В разных странах у них стоят так называемые edge servers которые служат раутерами IPv6 <-> IPv4. A для чего им нужен v6? Дело в том, что так как там реализована поддержка приоритетов на траффик, им (Акамаю) удобно приоретизировать траффик глобальных клиентов, чьи оффисы разбросаны по всем континентам.
Для клиентов Акамая эта услуга, естественно, "прозрачна".