Pull to refresh

Comments 61

UFO just landed and posted this here

о 4 уровнях модели TCP/IP

Чего??? Я вообще ни разу не сетевик, но и то OSI от TCP/IP отличу. :))

Я вообще ни разу не сетевик

А зачем тогда решили вдруг пообсуждать незнакомую вам область?
В статье имелась в виду четырехуровневая модель TCP/IP, иногда называемая "модель DoD" (DoD - это Department of Defence, в советской пропаганде его было принято называть Пентагоном).

А вот нужен ли кому-нибудь на Хабре очередной пересказ учебника - это мне сомнительно.

не знаю, нужен или нет, но пересказ в любом случае должен быть грамотный, модель DoD выглядит примерно так -

ps

это из статьи Gregory Ennis "Development of DoD reference model" (1983), он имел прямое отношение к этим работам, кроме прочего разработал NETBIOS для IBM

Не TCP мне IP!

С почином вас.

Продолжайте писать, у вас получается.

Не пугайтесь срача и минусов в комментариях, со всеми случается.

Удачи!

только инфа не актуальная - ужё всё подругому работает

да нет, все работает так. только предпосылки совершенно неправильно поданы. Или вообще не поданы. Зачем нужно разделение на роутеры и свитчи сказано два предложения и совершенно не раскрывающих проблематики и зачем оно в принципе нужно. в ARPANET были IMP которые суть роутеры и адресация сложнее чем в IP, но вот почему-то пришли не только к IP, но и к tcp/ip и вообще этим пресловутым 7 уровням - зачем, почему, откуда - никакой информации. Туповато.

по-серьезному надо для начала про логическую структуру сети, типа разделение по функциям ISP Tier1->Tier2->Tier3, IXP, peering, какие бывают магистрали, контракты, какое оборудование и пр., супер большая тема, даже без истории, типа IMP и пр.

нет. это вообще не нужно. это не имеет никакого отношения к технической стороне, это коммерческая организация.

Лучше скажите, чем роутер от свитча отличается? Принимая во внимание соверменные multi-layer свитчи, которые и ipv4/ipv6 маршрутизировать умеют и vxlan и evpn и даже bgp )) А начать стоит именно с этого - зачем появились роутеры.

не совсем согласен, про routers и протоколы можно долго рассуждать, но тема все же "как работает интернет", т.е. общая логическая архитектура, коммерческая организация это больше про цены, стратегии маркетинга и пр, тоже большая тема,

ps

слегка посмотрел Ваши комментарии, в этой области Вы не случайный человек, если что пишите в личку, в некотором смысле коллеги, последний проект в котором участвовал ciena 6500-s32

Чем роутер от свитча отличается

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

чуть более точно, отличаются только супер дешевые модели, начиная с середины 90х функциональность как правило интегрирована в один ящик, можно сказать также switch это уровень 2 модели OSI, имеет дело с МАС адресами , а router - уровень 3, работает с адресами IP

так а что же свитч L3? с ним как быть?

обычно это просто высоко скоростной router, давняя тенденция двигать все больше функциональности в ASIC/NP, это если на пальцах, по серьезному надо смотреть, что конкретно делается HW и что на slow path, это достаточно сложно, зависит от NP, названия типа L3 switch даются marketing, а не инженерами, которые знают сколько всего разного бывает в протоколах, что не обязательно поддерживается NP

ps

если правильно помню, только для enterprise level такая терминология

ну не совсем ) что роутеры, что свитчи в итоге создают какую-то таблицу форвардинга (FIB) в которой хранят записи, что делать в зависимости от destination. И в принципе этот самый FIB одинаково сложный, что у роутеров, что у современных multilayer-свитчей - dest может быть как просто dst-mac, так и dst-ip или что-от еще суровее, так и "что делать" может быть просто "выплюнь в порт" или сложно "поменяй метку, перепиши dst"/"уложи в vni, отправь к другому vtep".

Вот только у свитчей бывает всего один тип интерфейсов - ethernet. Или ATM. Или infiniband. Или... Но не бывает свитча eth + FR. А роутер - бывает. Вот и основная разница.

Есть еще нюансики, конечно: посмотрите мой ответ ниже - https://habr.com/ru/articles/840116/comments/#comment_27237592

совсем или нет типа Вам виднее, посмотрел по ссылке, серьезных возражений нет, кое-что конечно Вы от себя там добавили, но мелочи, если хотите напишите пару строк в личку, можно обсудить, чувствуется Вы в теме, но насколько серьезно пока не понял :)

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

У вас в этой фразе, по-видимому, ошибка

Да, первое — свитч, второе — роутер, опечатался. А вот во втором предложении — правильно написал.

Смысл ещё был в том, что сначала был коаксил на 10 мегабит (10BASE5) — топология "шина", все сидели на одном кабеле (и в этом была проблема, потому что обрыв в любом месте кабеля клал всю сеть целиком). Потом вместо коаксиала и шины пришли UTP и топология "звезда", где обрыв одного луча не клал всю сеть — но в центре (логическом, не геометрическом) пришлось ставить хаб, который ретранслировал сигнал "от всех всем". Понятно, что он был дешёвый (потому что тупой повторитель) — однако много пропускной способности уходило впустую, ибо зачем зря засорять канал, транслируя пакеты в каждый кабель, если понято, что эти пакеты реально нужны только одному получателю. Тогда по мере удешевления процессоров стали появляться "умные" свитчи, которые "в голове" составляли ту самую таблицу "в какой кабель слатьт пакеты для какого MAC", и всё заверте...

в современном мире функции роутеров и свитчей пересекаются. Большинство свитчей умеют маршрутизировать - если например на свитче создано несколько vlan-ов и каждому из них сконфигурирована своя подсеть с ip-адресом на виртуальном свитча, то свитч прекрасно будет маршрутизировать пакеты из одной подсети в другую и соответственно на выходе тегировать нужным vlan. Также многие свитчи L3+ умеют использовать протоколы маршрутизации как igp (ospf, eigp, isis), так и egp (bgp).

В свою очередь, современные роутеры могут коммутировать на основе данных из L2 - можно собрать из портов коммутируемую группу (у разных вендоров называется по-разному - bridge-group, brdige-domain и т.п.) и они будут работать как свитч.

Факторов разницы несколько:

  • порты на свитче одной и той-же технологии (ethernet, infiniband, ...), а на роутере могут одновременно быть совершенно разные порты - eth, atm, древний frame-relay, набор модемов 3g/4g/5g, какой-нить жуткий ds3/e3 и прочая экзотика; это ключевой момент из-за которого в принципе и появились роутеры;

  • портовая емкость - у свитчей как правило больше, впрочем бывают и роутеры с большим количеством портов;

  • стоимость портов на свитчах как правило в разы меньше; отсюда и портовая емкость;

  • функционал роутеров как правило гораздо шире. Протоколы маршрутизации умеют и свитчи запускать, mpls и evpn - тоже, а вот, допустим, быть vpn-клиентом и сервером или иметь развесистый иерархический QoS с парой сотен тысяч классов на одном интерфейсе - свитч так не умеет;

  • исходя из прошлого пункта - у роутеров гораздо сложнее и software и firmware (я имею в виду, то что исполняется на CPU и микропрограммы/архитектура ASICов);

а появились роутеры достаточно просто. Вот были несколько разных видов локальных сетей (lan - это сеть с одним видом технологии передачи данных и соответственно, как-то локализованная с точки зрения физики в которой хосты могут достигать друг-друга обращась по адресу привязанному непосредственно к интерфейсу (mac как-правило)) - token-ring такой, token-ring-сякой, eth, модемные пулы всякие. И если в lan-е или двух одинаковых lan-ах как-то можно общение наладить, то если есть сетка thin-TR, а в соседнем здании thick-TR и еще модемный пул рядом стоит - это беда. И нужно устройство, которое имеет набор интерфейсов с разной технологией, а более того идея как передавать данные между сетями с разной технологей. Нужна абстракция, с адресами непривязанными к железу и методы связывания абстрактных адресов с физическими. Вот отсюда и появился IP - это та самая абстракция и ARP или NDP и методы инкапсуляции данных как связь абстракции с реальностью. Ну и устройство с разными интерфейсами и работающее на основе именно адресов внутри этой абстракции (см. пункт первый в описании про роутеры) - роутер. Всё предельно просто и вытекает логично из необходимостей. Там еще много было всего связанного с отказоустойчивостью, потерями, надежностью и т.д и всё разрабатывалось одновременно, поэтому не просто ip, а сразу tcp/ip, но именно роутеры появились из-за IP.

появились роутеры достаточно просто. Вот было несколько видов lan ....

это Вы про что? или до 80х как-то без routers обходились?

к примеру, ниже схема сети 1977 года, где там lans?

в ARPANET не было аналогов LAN. host-to-host всегда общались через IMP и не было никаких таких разделений на то что два хоста могут пообщаться друг с другом минуя IMP, просто узнав адрес друг-друга.

но с другой стороны IMP - это не просто роутер, как в текущем понимании. Т.к. логика слоя tcp работала именно на IMP. Ну вот фаргментация пакетов, подтверждения доставки, сборка пакетов обратно и гарантия очередности доставки.

Я бы сказал, что IMP больше похож на самом деле на брокер очередей, чем на роутер. Host-IMP - это скорее API к IMP. А host-host - это прям очередь.

вот описание IMP:

https://walden-family.com/impcode/BBN1822_Jan1976.pdf

спасибо, про imp кое-что знаю, на самом деле работал с людьми из bbn в свое время, про routers тем более, именно этим занимался еще с 80х, может быть с Вами в одной компании?

ps

однако посмотрев Ваш год рождения, последнее маловероятно :)

FYI, про routing в ранних сетях, и развитие bbn IMP->Pluribus->C30->C300, заметим Pluribus симметричная много процессорная архитектура

Добрый день. Очень интересно все это.

Не подскажите что можно почитать, задачники может какие есть?

Спасибо.

Привет! начните с этого:

https://linkmeup.ru/sdsm/

там целый цикл статей, найдите начало - 0ю часть - и прямо вот с неё.

Ну это так, книжек полсотни на пару книжных полок.

Это если по-серьёзному😁

Вы жалуетесь или хвалитесь?😆

4 (min) конечно, да и второй транспортным никогда не был, в статье столько подобных неточностей, что зашкаливает, типа это реальность habr

В этой статье на Википедии есть неполный список транспортных протоколов: TCP, UDP, DCCP, SCTP, RSVP, QUIC. UDP/QUIC, насколько я понимаю, заменяет TCP/TLS, оба из которых являются транспортными. За неправильную нумерацию уровней извиняюсь, я её уже исправил.

Транспорт транспорту рознь. Вы хоть по электронной почте можете данные транспортировать, но коли уж взялись писать статью и делите ее на слои, то хорошо бы соблюдать точность.

Физический <- Канальный <- Сетевой <- Транспортный <- ...

на транспортном уровне у нас для передачи данных используется преимущественно TCP или UDP и это граница ОС - на этом уровне у нас еще нет возможности пилить что-то свое, так что тут все вросло корнями. А вот выше этого уровня уже идут всякие современные QUIC и чего пожелаете, и все это поверх UDP можно намонстрякать.

Ах, до меня дошло. Вы используете не OSI модель. А какую то упрощенную.

Если простыми словами и для обывателя, то да, вполне можно назвать QUIC транспортным уровнем

Ага, стек протоколов TCP/IP.

Например, если админ настроил Dynamic PAT на маппинг 10.6.6.0/24 в 32.8.2.66, то когда на роутер придёт пакет от 10.6.6.61:2222, он транслирует этот адрес во что-то вроде 32.8.2.66:7777, т. е. он сам выберет случайный номер порта и запишет его себе в какую-нибудь таблицу.

Вот всё шло хорошо, всё было понятно и тут, бац! — вылезает 10.6.6.0/24. Кому-то это может быть очевидно, но я сетями не занимаюсь и половина написанного мне уже непонятна... Почему 24? И что это такое вообще? Порт? Какие ещё цифры там могут быть?

Что будет, если отправлю запрос на 10.6.6.0:2222? А на 10.6.6.61:7777?

Да, автор явно лукавит, заявляя

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья — для вас.

Даже если взять самое начало, автор начинает расписывать какие-то уровни неведомой штуки TCP/IP, при этом ничего не сказав, что это вообще такое и зачем оно нужно.

Далее автор тоже подчас использует новые термины, не поясняя, что это вообще такое.

Ещё автор не упомянул о BGP и, судя по всему, много чего ещё опущено. Кмк, про этот протокол стоило сказать.

Поверхностно я понял, что да как, в итоге всё равно придётся начинать с книги networking for dummies 😀

Ну, я сказал, что существуют протоколы маршрутизации, «чтобы распределённо хранить на маршрутизаторах информацию, как добраться до других подсетей, не связанных с маршрутизатором напрямую». Конкретные протоколы, типа BGP — это сложная (реально сложная) тема для тех, кто хочет углублённо изучать этот предмет. Я вижу, что вы один из таких людей. Моя статья для тех, кто хочет поверхностно ознакомиться с этой темой. Много ли надо знать человеку, чтобы, например, начать изучение какого-нибудь фреймворка для разработки веб-сервисов?

Ещё был RIP (и я даже одно время конфиги писал) — но, похоже, R.I.P.

открыл статью про RIP - увидел знакомое слово "хопы". я так понимаю, это в рамках конкретного протокола стоит рассматривать

Не лукавит, а совершает ошибку, которую нужно исправить. Статья действительно предназначена для новичков, которые хотят с нуля разобраться в теме, без того чтобы просматривать 100500 статей и видеороликов, на 50% состоящих из информации, которая им непонятна и не нужна.

На новые термины мне уже указали в других комментариях, и я постарался всё исправить.

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

Я думаю, должны отозваться сетевики и помочь в вычитке черновика. Иногда встречаю такие статьи, в конце обычно список юзеров, помогавших автору оформить всё)

Через / пишется нетмаска (netmask) — это количество идущих подряд единичных бит, которые нужно AND с пришедшим IP-адресом, чтобы получить адрес сети.

10.6.6.0/24 — это то же самое, что 10.6.6.0/255.255.255.0

Спасибо за наводку, почитал в вики, там как раз есть таблица вариантов, стало немного понятнее 🙂

Добавил в статью небольшое пояснение насчёт подсетей. Благодарю за замечание. Когда я всё это изучал, меня самого раздражали статьи, в которых авторы пишут что-то очевидное для них, но совсем не очевидное для меня. Я не хотел попадать в ту же самую ловушку.

В то же время, я не хотел погружаться в подробности, вроде устройства адресов IPv4. Это общая, обзорная статья.

Спасибо 👍

Думаю, если где-то что-то сократили, то стоит добавить сноски на полную инфу, как обычно в конце перечисляются источники 🙂

И для наглядности можно показать, как пользоваться TRACERT (только сейчас вспомнил про эту утилитку)

Мне кажется, такие вещи, как Traceroute, Tracert и Ping — это точно не тема для обзорной статьи. Насчёт источников подумаю. Вообще, источники имеет смысл указывать, если у автора есть эксклюзивное знание о каких-то качественных, но малоизвестных источниках, которые точно лучше того, что читатель сможет сам найти беглым поиском.

имел ввиду ввод команды, чтобы отобразить весь пусть до точки назначения или вроде того, не обзор на сами утилиты)

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

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

блин меня одного корёжит от нумерации уровней наоборот?

Исправил нумерацию уровней в статье: 1 - канальный, 2 - межсетевой, 3 - транспортный, 4 - прикладной. Спасибо за замечание!

Согласен с предыдущими комментаторами, статья отнюдь не для новичков. Очень много терминов, которые понятны только тем, кто уже в теме. И да переворачивать нумерацию модели TCP/IP вверх ногами - некрасиво.

Исправил нумерацию уровней в статье. Извиняюсь за неточность. Непонятные термины тоже стараюсь исправлять. Если найдёте время написать, какие термины нуждаются в пояснении — буду благодарен. Статья действительно предназначена для новичков, и я стремлюсь сделать её максимально понятной.

Со скамейки новичков ответственно заявляю: статья не несет научной ценности и не претендует на курс "сетевик с нуля до мидла за 3 дня", но для категории продолжающих тут все основные моменты разложены по полкам и объяснены, что помогает хорошо структурировать в голове начальные знания. Аффтар, пеши исчо!

"human-readable", "парсить", статья на русском языке, к чему все эти мудренные словечки. Такие авторы напоминают женщину из ролика "Очень очень affordable".

Да я сам уже стал как эта женщина. Для меня «парсить» — это вполне себе русское слово))

Исправил «парсить» на «распознавать» и «human-readable» на «человекочитаемый» (насчёт последнего не уверен, но вроде оно должно быть интуитивно понятно даже для тех, кто далёк от IT). Заодно убрал слово «креденшиалы» из предпоследнего раздела и «маппинг» из раздела про NAT.

Мне понравилась эта статья, я немного что-то понимал, понимаю теперь чуть побольше.

Спасибо. Читается легко и сподвигает на более глубокое изучение вопроса по ходу прочтения. Вообще, написать простым и доходчивым языком о довольно сложных вещах – отдельный вид искусства, у вас получается неплохо.

Sign up to leave a comment.

Articles