Pull to refresh

Huawei совместно с госструктурами Китая разрабатывает новый интернет-протокол вместо TCP/IP

IT Infrastructure *IT-companies


Корпорация Huawei при поддержке китайского правительства занялась разработкой нового интернет-протокола New IP, который, по планам компании, должен заменить существующий базовый протокол TCP/IP. В Huawei заявляют, что новый протокол обеспечит более эффективную адресацию и повысит скорость передачи данных. Однако некоторые эксперты считают, что New IP даст возможность властям деанонимизировать пользователей и блокировать сайты.
Читать дальше →
Total votes 21: ↑13 and ↓8 +5
Views 13K
Comments 28

Винт Серф продвигает свой протокол для создания межпланетного Интернета

Wireless technologies *Popular science Astronautics The future is here
imageФото: www.quantamagazine.org

Пионер Интернета Винтон Серф, который помог создавать Сеть 40 лет назад, заявил, что он все еще работает над тем, чтобы объединить людей по всему миру и за его пределами. Для межпланетного Интернета будущего разработали и тестируют специальные пакетные протоколы.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 3.6K
Comments 9

Преодоление разрыва удаленного соединения при отсутствии действий пользователя

InterSystems corporate blog
Tutorial
При работе с GUI и терминальными приложениями нередко случается, что пользователь, работая в режиме удаленного доступа (как правило, через Интернет), покинув компьютер минут на 15, по возвращении обнаруживает, что программа зависла. На любое действие она отвечает ошибкой, содержащей примерно такие фразы: «Потеряна связь с сервером», "[WINSOCK] virtual circuit reset by host" и т.п. Наблюдается такое и при выполнении «долгоиграющих» методов (запросов к серверу), в которых не предусмотрен вывод прогресс-бара или какая-либо интерактивность.

Данная проблема характерна не только для GUI и терминальных решений на базе СУБД Caché и Ensemble компании InterSystems, а вообще для любого клиент-серверного взаимодействия по протоколу TCP/IP. Обычно она решается на прикладном уровне путём периодического обмена пустыми сообщениями специального вида, предназначенными лишь для того, чтобы просигнализировать о том, что приложение «живо».

Ниже о том, как можно решать эту проблему без программирования.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views 64K
Comments 2

Современному Интернету исполнилось 30 лет

Webnames.ru corporate blog
1 января 2013 года исполнилось 30 лет со дня внедрения протокола TCP/IP, который сейчас лежит в основе архитектуры Интернета.

По случаю этой знаменательной даты Винтон Серф, один из разработчиков TCP/IP, которого по праву считают создателем Интернета, и который сейчас занимает пост вице-президента компании Google, рассказал о том, как всё происходило:
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 9.6K
Comments 1

Многопутевая (multipath) модификация для протокола TCP: первый эксперимент

IT Standards *


В TCP/IP мы устанавливаем соединение с определённым IP-адресом, после чего обмениваемся пакетами только с этим адресом. Разработчики нового расширения для протокола Multipath TCP (RFC 6824) предлагают снять это историческое ограничение. По их мнению, использование многопутевой (multipath) модификации TCP упростит использование этого протокола во многих прикладных задачах, таких как прозрачное перенаправление трафика с одного устройства на другое и балансировка нагрузки.

Многопутевая модификация Multipath TCP или MPTCP позволяет легко подключать сервер сразу к нескольким каналам Ethernet, а на смартфоне использовать одновременно WiFi и 3G, да и вообще появляется много других интересных возможностей.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Views 30K
Comments 58

IPv6 — один год спустя

Webnames.ru corporate blog
6 июня 2012 г. cостоялся запуск IPv6 — новой версии протокола IP, которая пришла на смену IPv4. Ввиду стремительного роста количества смартфонов, планшетов и других устройств с возможностью подключения к Интернету возник риск того, что запас доступных IP-адресов скоро иссякнет. IPv6 решает эту проблему, а также некоторые другие недоработки, связанные с обеспечением безопасности.

К сожалению, IPv4 и IPv6 несовместимы, поэтому возникла необходимость постепенно перевести Интернет с одной версии протокола на другую. Существуют разные методы перехода. Самое распространенное решение — назначать как IPv4-, так и IPv6-адреса до тех пор, пока большая часть Интернета не перейдет на IPv6.

Большинство операционных систем, устройств и интернет-провайдеров уже поддерживают IPv6, но среди пользователей эта технология распространяется очень медленно.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Views 24K
Comments 35

Как воспользоваться возможностями R в C++

C++ *Data Mining *R *
Tutorial
R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU © Wikipedia.

В R собрано огромное число статистических алгоритмов на все случаи жизни и их можно использовать не только из родной програмной среды: его поддерживают такие известные математические пакеты, как SPSS, Statistica, SAS, Wolfram Mathematica и некоторые другие. Как же можно интегрировать R в свои приложения?
На хабрахабре уже была статья про использование R в С++, однако она осветила всего один из способов, который возможно использовать только если ваш код распространяется под GPL-совместимой лицензией. Но и в противном случае есть выход — использование пакета Rserve.
Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Views 10K
Comments 3

Новый вид DDoS-атаки: найден баг протокола ТСР в Windows

IT Standards *
Уважаемые хабро-читатели, прежде чем перейти к сути хочу сразу сказать, что автор не является каким бы то ни было хакером или зловредным программером, исследующим со свечкой каждый темный угол драйвера или чего-либо другого программного, поэтому если об этой уязвимости уже известно, то не судите строго, а лучше посоветуйте патч.

Итак, в процессе отладки стека протоколов для сетей MANET, где тестировалось модифицированное ТСР-соединение радиосети с компьютером через Ethernet-шлюз, было случайно выявлено, что путем некорректного закрытия соединения клиентом на стороне сервера возможно удерживание ресурсов сокета бесконечно долго!

Началось всё с этого:


На скрин-шоте представлено ТСР-соединение между клиентом 192.168.0.108 (Ethernet шлюз) и сервером 192.168.0.187 (OS Windows Vista).

Как видно, при неправильном указании номера последовательности в пакете FIN ACK клиента, Windows сервер не закрыл сокет и не освободил ресурсы. Попытка соединиться еще раз с того же порта клиента (source port 40400) на порт сервера (destination port 31000) оказалась неуспешной. Сервер упорно требовал ACK в ответ на новый SYN от клиента.

Сначала, я решил что это просто какой-то баг на стороне стека MANET (помимо, конечно же, неправильного seqno в FIN ACK), но проанализировав поток по номерам sequence / acknowledgement и повторив этот же эксперимент для других портов оказалось, что таки да, Windows…

Пример другого порта сервера (30000):



Потом, перегрузив комп и повторили все еще раз. На этот раз соединение закрывал клиент, а сервер слушал порт 32000.



Результат тот же.
Читать дальше →
Total votes 144: ↑128 and ↓16 +112
Views 66K
Comments 36

Почему рост качества вызывает рост некачества, или должна ли работать основная функция

Debugging *
Аналоговое видео Глупо спорить с тем, что аналоговое видеонаблюдение уходит в прошлое: дешевые IP камеры дают картинку сопоставимого качества с дорогими аналоговыми. Помимо этого, IP камеры не ограничены сверху ничем, кроме производительности регистратора, тогда как аналоговые камеры требуют жесткого соответствия приёмной карты, согласования уровней сигнала передатчиков/усилителей/приемников и прочего шаманства.
Конструируя систему на базе IP камер в любой момент можно снять камеру и заменить на более качественную — если при этом сохранить IP адрес и логин-пароль, то, скорее всего, даже не придётся менять настройки приемника — просто в архив пойдёт более качественная картинка.
С другой стороны, это накладывает ограничения на регистратор — он должен быть готов работать с любым разрешением, любым битрейтом, любым кодеком и любым протоколом… Ну или по крайней мере, корректно работать с заявленным.

Шива В мире софта есть два пути — есть linux-way: это набор небольших программ, каждая из которых делает одну функцию, но очень хорошо; и есть windows-way: это огромные кухонные комбайны, которые умеют делать всё, и немного больше. Главная проблема linux-way — это отсутствие интерфейса. Чтобы получить всю пользу придётся скурить маны (или хотя бы прочитать --help), и поэкспериментировать. А так же сообразить, что и с чем можно скомбинировать и как. Главная проблема windows-way — это потеря основной функции. Очень быстро при обрастании доп.функционалом теряются тесты ключевого функционала, и со временем начинаются проблемы даже с ним. А еще при этом начинается инерция мышления: «это главная функция, она оттестирована сильнее всего, там бага быть не может, пользователь делает что-то не то».
Читать дальше →
Total votes 67: ↑64 and ↓3 +61
Views 31K
Comments 51

Let's Lab. IS-IS routing protocol. Часть 1

Cisco *Network technologies *
Tutorial
Привет, хабр.

Маршрутизация – это весело. А IGP-маршрутизация — это ещё и быстро. Есть, конечно, энтузиасты, которым не хватает всего многообразия решений, и в результате мы видим такие забавные реализации, как тысячи статических маршрутов или полное доминирование iBGP в маленьких сеточках.

Но сегодня мы не будем запихивать слона в игольное ушко. Обсуждаемой теме уже 100 лет в обед, но я всё чаще становлюсь свидетелем того, как заслуженный протокол признают уделом извращенцев. А говорю я об integrated IS-IS.
С тех пор как Cisco вырезала топик из CCNP R&S, все кому не лень стали кидать в беднягу тапками. Мол «вали туда, где покоятся frame relay и x25, у нас есть OSPF». Да, давайте просто так назовём дураками и лентяями крупнейших провайдеров, может они правда не хотят идти в ногу со временем?

Я думаю всё дело в том, что не так много начинающих инженеров сталкивается в своей работе с этим протоколом. Кстати в CCNP Service Provider топик не обошли вниманием. А те, кто пошёл по пути Juniper, возможно, и вовсе не имеют таких предрассудков. Захотели сдать CCIE R&S written?- пожалуйте на страницы учебников, «матчасть» надо знать.

Не сочтите меня фанатом IS-IS, я считаю, что всему своё место, и не стоит пихать IS-IS в каждый энтерпрайз «лишь бы было». Но вот что меня не устраивает категорически, так это количество учебных материалов и заметок в интернете. Очень трудно «въехать с нуля».

Тем, чьё сердце пленили операторские сети, тем, кто не боится знать правду и тем, кто страстно желал видеть IS-IS хоть где-нибудь, посвящается.



Под катом нет текстовой статьи. Только ссылки на литературу и источники.
Я уже пробовал пояснить причины такого форм-фактора в пилотном выпуске, но НЛО отправило меня в read-only за «не магазин» и ссылку на линкмиап.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 33K
Comments 11

Let's Lab. IS-IS routing protocol. Часть 2

Cisco *Network technologies *
Tutorial
Привет, Хабр!

Концепции и правила! Они окружают нас повсюду. Что употреблять в пищу, как переходить дорогу, почему не стоит облизывать лягушек и как перекладывать пакеты, если ты маршрутизатор. Очень много всяких штук приходится держать в голове сетевому инженеру. Порой и не поймёшь, так ли тебе надо знать все типы LSA в OSPF, по какому порту строятся TCP сессии в BGP, и так ли важно каждый день узнавать что-то новое, при этом, не забывая старое.

Так или иначе, переходить к практике рано, пока нет понимания теории. В выпуске будет очень много концепций, которые я постараюсь вам объяснить. Всю воду и историю я слил в первый выпуск. А данный выпуск будет состоять из двух секций, в первой из которых я подробно расскажу о топологиях с IS-IS. Вторая секция будет посвящена данным, которыми обмениваются маршрутизаторы в IS-IS.

И вот о чём пойдёт речь:
Тяжко ли быть маршрутизатором с OSPF или IS-IS на борту?
Как OSPF и IS-IS строят топологию?
L1, L2, L1/L2 маршрутизаторы и куда их пристроить.
Что такое Partial route calculation и как работает ISPF?
Зачем нам куча Area, и так ли они важны?
Нужен ли в IS-IS virtual link?
Поменять номер Area без downtime?
Почему IS-IS называют L2-протоколом?
Бабушка, а зачем тебе такое больше MTU?
Что такое PDU, и какими они бывают в IS-IS?
Почему я так люблю Overload bit?
И как запихнуть в OSI-протокол ip-префиксы и чизбургер?



В следующем выпуске больше веселья. Даёшь командную строку!

Под катом нет текстовой статьи. Только ссылки на литературу и источники.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 11K
Comments 4

Let's Lab. IS-IS routing protocol. Часть 3

Cisco *Network technologies *
Tutorial
Привет, Хабр!

Вы когда-нибудь пробовали стрелять из лука? Наверное, не самое популярное занятие. А как насчёт коньков и роликов? Сотни раз я видел, как люди, экипированные всевозможными защитными приспособлениями на всех частях тела, подвергаясь всемирному закону тяготения, наносят себе травмы. Тогда как опытные спортсмены месяцами катаются без единого падения.

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

IS-IS легко можно назвать странным протоколом. Но такой он только в теории. На практике мы встречаемся с теми же проблемами, что караулили нас во время использования других IGP-протоколов. Основная его цель – распространение маршрутной информации и принятие решений по её добавлению в таблицу маршрутизации.

Данный выпуск оказался длиннее, чем я рассчитывал. Больше часа информации не каждый способен осилить за один раз. В силу обстоятельств, я не могу разбить видео на два выпуска.

Смотрите в этой части:

— Базовая настройка IS-IS на Cisco IOS и IOS-XR;
— Установление соседства между маршрутизаторами;
— Дебаг и разбор дампа трафика при обнаружении соседа;
— Метрика протокола и его настройка;
— Hello и Hold таймеры и их причуды;
— Hello-padding;
— Линки с множественным доступом и DIS;
— Обмен между L1 и L2 базами. Значение ATT bit;
— Анонс префиксов из BGP в IS-IS;
— External маршруты и их метрика;
— Как избежать петель при импорте из L2 в L1;
— Ассиметричная маршрутизация и Suboptimal routing;
— Будь крутым, настрой роль каждого линка правильно.



Под катом нет текстовой статьи. Только ссылки на литературу и источники.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 11K
Comments 3

Let's Lab. IS-IS routing protocol. Часть 4 (final)

Cisco *Network technologies *
Tutorial
Привет, Хабр!

Все хорошо в меру.
Вы когда-нибудь задумывались о том, что благодаря таким вещам, как баланс и гармония, наша вселенная держится вместе?

И о том, как порой тяжело найти что-то одновременно простое, функциональное и надежное?
Когда первый раз настраиваешь динамическую маршрутизацию, тебе кажется, что ты близок к правде и пониманию того, как устроены сети. Но стоит новичку взглянуть на рабочий конфиг серьезной операторской сети, как становится понятно, что мир не заканчивается командой «network».

Взрослые дядьки то и дело выкручивают таймеры и наполняют конфиг непонятной всячиной. Но зачастую за этими непонятными буквами и цифрами стоит метод проб и ошибок. Простоями и авариями выложен путь к балансу и тюнингу маршрутизации.

Но не все так страшно! Уделите внимание литературе, спросите про шишки более мудрых камрадов, и дзен станет ближе.

Вашему вниманию я предлагаю последний выпуск про IS-IS!

В этом выпуске:
  • Ешь, пей в аду. Пиши сценарий к IS-IS.
  • Почему OSPF сильнее Супермена?
  • Что будет в OSPFv4?*
  • Overload bit и iSPF — сложнее объяснить, чем сделать.
  • BFD. Молниеносный убийца вашего CPU.
  • Почему Горден Фримен радуется, когда вы настраиваете dampening?
  • Алгоритм экспоненциального откладывания или история про жадного ребенка.
  • Сходимость и циферки!
  • Как несчастный IGP ждал LDP. Жалко я не вспомнил Хатико.


*понятия не имею, но расскажу.



Под катом нет текстовой статьи. Только ссылки на литературу и источники. Также вы можете проголосовать за тему следующего выпуска или выбрать её самостоятельно.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 9.2K
Comments 5

Как мы преодолевали передачу данных по USB

НТЦ Метротек corporate blog Website development *System Programming *Debugging *
Sandbox

С чего все началось


Итак, в нашем замечательном приборе Беркут-ММТ (на базе PXA320 и GNU/Linux) есть не менее замечательный модуль OTDR (на базе STM32 и NutOS), представляющий собой импульсный оптический рефлектометр. Эта связка работает следующим образом: пользователь нажимает на экране на различные элементы UI, в приборе происходит немножечко магии, и желания пользователя трансформируются в команды вида «duration 300», которые уходят в измерительный модуль. Конкретно эта команда выставляет длительность измерений в 300 секунд. Модуль к прибору подключен по USB, для передачи команд поверх USB поднят CDC-ACM.

Кратенько — CDC-ACM позволяет эмулировать последовательный порт через USB. Так что для верхнего уровня наш измерительный модуль в системе доступен как /dev/ttyACM0. CDC-ACM служит для передачи команд в модуль или чтения текущих настроек/состояния модуля. Для передачи самой рефлектограммы служил USB Bulk интерфейс, который все свое время посвящал только одному — передаче данных рефлектограммы из модуля в прибор, как бинарного потока данных. В какой-то момент мы заметили, что рефлектограмма приходит к нам не полностью. Так мы открыли для себя, что USB может терять данные.
Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Views 18K
Comments 21

Виртуальный сетевой интерфейс

ua-hosting.company corporate blog Programming *
Общеизвестно, что драйверы Linux — это модули ядра. Все драйверы являются модулями, но не все модули — драйверы. Примером одной из таких групп модулей, не являющихся драйверами, и гораздо реже появляющиеся в обсуждениях, являются сетевые фильтры на различных уровнях сетевого стека Linux.

Иногда, и даже достаточно часто, хотелось бы иметь сетевой интерфейс, который мог бы оперировать с трафиком любого другого интерфейса, но каким-то образом дополнительно «окрашивать» этот трафик. Такое может понадобится для дополнительного анализа, или контроля трафика, или его шифрования, …

Идея крайне проста: канализировать трафик уже существующего сетевого интерфейса во вновь создаваемый интерфейс с совершенно другими характеристиками (имя, IP, маска, подсеть, …). Один из способов выполнения таких действий в форме модуля ядра Linux мы и обсудим (он не единственный, но другие способы мы обсудим отдельно в другой раз).
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Views 36K
Comments 11

Ещё один виртуальный интерфейс

ua-hosting.company corporate blog Programming *
В предыдущей заметке был показан набросок кода модуля ядра Linux для создания дополнительного виртуального сетевого интерфейса. Это был упрощённый фрагмент из реального проекта, отработавшего несколько лет без сбоев и рекламаций, так что он вполне может служить шаблоном для дальнейшего улучшения, исправления и развития.

Но такой подход к реализации, во-первых, не единственный, а, во-вторых, в некоторых ситуациях он может быть и неприемлемым (например, во встраиваемой системе с ядром младше 2.6.36, где ещё нет вызова netdev_rx_handler_register()). Ниже будет рассмотрен альтернативный вариант с той же функциональностью, но реализующий её на совсем другом слое сетевого стека TCP/IP.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 10K
Comments 0

Ошибка в ядре Linux отправляет поврежденные TCP/IP-пакеты в контейнеры Mesos, Kubernetes и Docker

ua-hosting.company corporate blog
Translation
image
А обнаружена она была на серверах Twitter

Ядро Linux имеет ошибку, причиной которой являются контейнеры. Чтобы не проверять контрольные суммы TCP, для сетевой маршрутизации контейнеры используют veth-устройства (такие как Docker на IPv6, Kubernetes, Google Container Engine и Mesos). Это приводит к тому, что в ряде случаев приложения ошибочно получают поврежденные данные, как это происходит при неисправном сетевом оборудовании. Мы проверили, что эта ошибка появилась, по крайней мере, три года назад и до сих пор «сидит» в ядрах. Наш патч был проверен и введен в ядро, и в настоящее время обеспечивает ретроподдержку стабильного релиза 3.14 в различных дистрибутивах (таких как Suse и Canonical). Если Вы в своей системе используете контейнеры, я рекомендую Вам воспользоваться этим патчем или установить ядро вместе с ним, когда это станет доступным.

Примечание: это не относится к сетям с NAT, по умолчанию используемых для Docker, так как Google Container Engine практически защищен от ошибок «железа» своей виртуализированной сетью. Еще Джейк Бауэр (Jake Bower) считает, что эта ошибка очень похожа на ошибку Pager Duty, обнаруженную ранее.

Как это все началось


В один из выходных ноября группа саппорт-инженеров Твиттера просматривала логи. Каждое неработающее приложение выдавало «невероятные» ошибки в виде строк странных символов или пропусков обязательных полей. Взаимосвязь этих ошибок не была очевидна из-за природы распределенной архитектуры Твиттера. Вся ситуация осложнялась еще и тем, что в любой распределенной системе данные, когда-то испорченные, могут вызвать ошибки еще довольно продолжительное время (они сохраняются в кэшах, записываются на дисках, в журналах и т.д.).

После суток непрерывной работы по поиску неисправности на уровне приложений, команде удалось локализовать проблему до отдельных рэковых стоек. Инженеры определили, что значительное увеличение числа выявленных ошибок контрольной суммы TCP произошло непосредственно перед тем, как они дошли до адресата. Казалось, что этот результат «освобождал от вины» софт: приложение может вызвать перегрузку сети, а не повреждение пакета!
Читать дальше →
Total votes 42: ↑42 and ↓0 +42
Views 16K
Comments 5

Пишем VoIP iOS чат на CORE AUDIO для конкурса VK Mobile Challenge

Development for iOS *Development of mobile applications *VK API *Objective C *
Недавно, команда ВК объявила конкурс на разработку мобильного приложения, которое бы расширяло возможности соцсети "ВКонтакте", и я решил принять участие, так как по условиям конкурса можно придумать свою идею приложения. У меня было три идеи, и нужно было выбрать, за какую из них взяться.

image

Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Views 17K
Comments 39