[{"id":"it.internet-history.web-birth","domain":"it","topic_id":"it.internet-history","order":2,"title":"Как в CERN придумали веб","hook":"Система, которую сначала называли Mesh, к концу 1994 года выросла до 10 000 серверов","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","веб","cern"],"prerequisites":["it.internet-history.how-it-began"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.web-birth.mesh","status":"active","version":1,"tags":[],"title":"Сначала веб назывался Mesh","body":"Предложение «Information Management: A Proposal» Тим Бернерс-Ли написал в CERN в марте 1989 года, а в мае 1990 года распространил его снова, без изменений, только с новой датой. Позже он отметил, что тогда у системы было одно название, Mesh. Имя World Wide Web он выбрал в 1990 году, когда писал код.","sources":[{"title":"Tim Berners-Lee: Information Management. A Proposal (HTML version)","url":"https://www.w3.org/History/1989/proposal.html","accessed":"2026-10-03","kind":"primary","quote":"Note that the only name I had for it at this time was \"Mesh\" -- I decided on \"World Wide Web\" when writing the code in 1990."}],"concepts":["world_wide_web"],"prereq_concepts":[],"type":"fact","claim":"В предложении 1989 года система называлась Mesh, а имя World Wide Web Бернерс-Ли выбрал в 1990 году, когда писал код."},{"id":"it.internet-history.web-birth.lost-information","status":"active","version":1,"tags":[],"title":"Бернерс-Ли о том, почему в CERN терялась информация","body":"Предложение 1989 года начинается с проблемы самого CERN: люди там часто меняются. Бернерс-Ли пишет, что при типичном сроке работы в два года информация постоянно теряется. Решение он выводит из распределённой гипертекстовой системы, то есть системы документов со ссылками друг на друга, которые хранятся на разных компьютерах.","sources":[{"title":"Tim Berners-Lee: Information Management. A Proposal (HTML version)","url":"https://www.w3.org/History/1989/proposal.html","accessed":"2026-10-03","kind":"primary","quote":"A problem, however, is the high turnover of people. When two years is a typical length of stay, information is constantly being lost."}],"concepts":["hypertext"],"prereq_concepts":["world_wide_web"],"type":"quote","text":"When two years is a typical length of stay, information is constantly being lost.","translation":"Когда обычный срок работы составляет два года, информация постоянно теряется.","author":"Тим Бернерс-Ли","year":1989,"context":"Раздел «Losing Information at CERN» в предложении «Information Management. A Proposal», март 1989 года."},{"id":"it.internet-history.web-birth.three-pieces","status":"active","version":1,"tags":[],"title":"Из чего состоял веб к Рождеству 1990 года","body":"К Рождеству 1990 года Бернерс-Ли определил основные понятия веба: HTML (язык разметки страниц), HTTP (протокол их передачи) и URL (адрес страницы). Он написал первый браузер-редактор и программу веб-сервера, который отдаёт страницы. Первый в мире веб-сервер работал на компьютере NeXT в CERN, его адрес info.cern.ch.","sources":[{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-03","kind":"primary","quote":"By Christmas 1990, Sir Berners-Lee had defined the Web’s basic concepts, the html, http and URL, and he had written the first browser/editor and server software."},{"title":"info.cern.ch: home of the first website","url":"https://info.cern.ch/","accessed":"2026-10-03","kind":"primary","quote":"http://info.cern.ch - home of the first website"}],"concepts":["html","http","url","web_server"],"prereq_concepts":["world_wide_web"],"type":"how_it_works","steps":["Бернерс-Ли определяет основные понятия веба, HTML, HTTP и URL.","Пишет первый браузер-редактор и программу веб-сервера.","Запускает первый веб-сервер на компьютере NeXT по адресу info.cern.ch."]},{"id":"it.internet-history.web-birth.mesh-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.web-birth.mesh","explanation":"Других имён у системы тогда не было, World Wide Web появилось только в 1990 году. Само предложение должно было убедить руководство CERN, что глобальная гипертекстовая система ему нужна.","type":"quiz_single","question":"Как Бернерс-Ли называл свою систему в предложении 1989 года?","options":["World Wide Web","Mesh","Hypertext","Network"],"correct":1},{"id":"it.internet-history.web-birth.public-domain","status":"active","version":1,"tags":[],"title":"Почему веб стал открытым стандартом","body":"30 апреля 1993 года CERN выпустил заявление о передаче веба в общественное достояние (public domain): программы веба перестали быть собственностью CERN. По словам CERN, так веб смог работать как открытый стандарт, то есть общие правила для всех. Этот шаг сразу сказался на распространении веба.","sources":[{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-03","kind":"primary","quote":"On 30 April 1993, CERN issued a statement putting the Web into the public domain, ensuring that it would act as an open standard. The move had an immediate effect on the spread of the web."}],"concepts":["public_domain","open_standard"],"prereq_concepts":["world_wide_web"],"type":"why"},{"id":"it.internet-history.web-birth.growth-1994","status":"active","version":1,"tags":[],"title":"К концу 1994 года у веба было 10 000 серверов","body":"По данным CERN, к концу 1993 года известных веб-серверов было больше 500, а на веб приходился 1% интернет-трафика. Через год, к концу 1994 года, у веба было уже 10 000 серверов, из них 2000 коммерческих, и 10 миллионов пользователей.","sources":[{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-03","kind":"primary","quote":"By the end of 1994, the Web had 10,000 servers - of which 2000 were commercial - and 10 million users."}],"concepts":["web_server"],"prereq_concepts":["world_wide_web"],"type":"fact","claim":"К концу 1994 года у веба было 10 000 серверов, из них 2000 коммерческих, и 10 миллионов пользователей.","number":{"value":10000,"unit":"серверов"}},{"id":"it.internet-history.web-birth.public-domain-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.web-birth.public-domain","explanation":"Наоборот, 30 апреля 1993 года CERN передал веб в общественное достояние. По словам CERN, это позволило вебу работать как открытый стандарт.","type":"quiz_true_false","statement":"В апреле 1993 года CERN оставил права на программы веба за собой","correct":false}]},{"id":"it.internet-history.first-browsers","domain":"it","topic_id":"it.internet-history","order":3,"title":"Первые браузеры, от NeXT до Mosaic","hook":"Первый браузер умел ещё и править страницы, а первый популярный браузер не был первым","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","браузер","mosaic"],"prerequisites":["it.internet-history.web-birth"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.first-browsers.worldwideweb","status":"active","version":1,"tags":[],"title":"Первый браузер назывался WorldWideWeb","body":"Первый веб-браузер Тим Бернерс-Ли написал в 1990 году на компьютере NeXT. Точнее, это был браузер-редактор: в нём страницы можно было не только открывать, но и править. Программа называлась WorldWideWeb. Позже её переименовали в Nexus, чтобы не путать программу с самим информационным пространством, которое теперь пишут раздельно: World Wide Web.","sources":[{"title":"Tim Berners-Lee: WorldWideWeb, the first Web client","url":"https://www.w3.org/People/Berners-Lee/WorldWideWeb.html","accessed":"2026-10-03","kind":"primary","quote":"The first web browser - or browser-editor rather - was called WorldWideWeb as, after all, when it was written in 1990 … Much later it was renamed Nexus in order to save confusion between the program and the abstract information space"}],"concepts":["web_browser"],"prereq_concepts":["world_wide_web"],"type":"fact","claim":"Первый веб-браузер, браузер-редактор WorldWideWeb, написан в 1990 году и позже переименован в Nexus."},{"id":"it.internet-history.first-browsers.line-mode","status":"active","version":1,"tags":[],"title":"Почему простой браузер Line Mode был полезен","body":"Браузер-редактор Бернерс-Ли работал на компьютере NeXT. По данным CERN Web at 30, к марту 1991 года пользователям центральных компьютеров CERN стал доступен простой браузер Line Mode («построчный режим»). Функций у него было меньше, зато он запускался на более широком круге компьютеров. Написала его Никола Пеллоу на студенческой практике в CERN.","sources":[{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-03","kind":"primary","quote":"By March 1991, a simple ‘Line-Mode’ browser was made available to users of CERN’s central computers. … it had the big advantage of being able to run on a wider range of computers. It was written by Nicola Pellow"}],"concepts":["line_mode_browser"],"prereq_concepts":["web_browser"],"type":"why"},{"id":"it.internet-history.first-browsers.browsers-timeline","status":"active","version":1,"tags":[],"title":"От WorldWideWeb до Mosaic: браузеры 1990-1993 годов","body":"В декабре 1990 года в CERN заработал первый браузер. К марту 1991 года, по данным CERN Web at 30, Line Mode стал доступен на центральных компьютерах CERN. К концу 1992 года шла работа над графическими браузерами MIDAS, Viola и Erwise. С января 1993 года суперкомпьютерный центр NCSA выпускал пробные версии Mosaic, официальный выпуск вышел 21 апреля.","sources":[{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-03","kind":"primary","quote":"By March 1991, a simple ‘Line-Mode’ browser was made available to users of CERN’s central computers. … From January 1993, the … (NCSA) … provided pre-releases of its Mosaic browser … The first official release was on 21 April 1993."}],"concepts":["mosaic"],"prereq_concepts":["web_browser","line_mode_browser"],"type":"timeline","events":[{"year":1990,"label":"Первый браузер-редактор в CERN"},{"year":1991,"label":"Браузер Line Mode доступен в CERN"},{"year":1992,"label":"Идёт работа над MIDAS, Viola и Erwise"},{"year":1993,"label":"Первый официальный выпуск Mosaic"}],"takeaway":"К выходу Mosaic браузеры уже были, и среди них графические."},{"id":"it.internet-history.first-browsers.line-mode-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.first-browsers.line-mode","explanation":"Возможностей у Line Mode было меньше, чем у браузера-редактора на NeXT, но его большим преимуществом CERN называет запуск на более широком круге компьютеров.","type":"quiz_single","question":"Чем браузер Line Mode выигрывал у браузера-редактора на NeXT?","options":["Показывал картинки вместе с текстом","Умел не только открывать, но и править страницы","Запускался на более широком круге компьютеров","Предлагал больше функций и удобное меню"],"correct":2},{"id":"it.internet-history.first-browsers.mosaic-first-myth","status":"active","version":1,"tags":[],"title":"Mosaic не был первым браузером","body":"NCSA, где создали Mosaic, сама пишет, что браузеры делали и раньше: Бернерс-Ли собрал простой браузер ещё в 1990 году. По цитате на сайте NCSA, ранние браузеры было трудно установить и запустить, а Mosaic был намного проще, во многом благодаря Эрику Бине. И он первым из опубликованных браузеров автоматически показывал картинки вместе с текстом.","sources":[{"title":"NCSA: NCSA Mosaic","url":"https://www.ncsa.illinois.edu/research/project-highlights/ncsa-mosaic/","accessed":"2026-10-03","kind":"primary","quote":"People had created Web browsers before. In fact Tim Berners-Lee … built a rudimentary one himself in 1990. … Mosaic was the first published browser that automatically displayed pictures along with text"}],"concepts":["mosaic_history"],"prereq_concepts":["mosaic","web_browser"],"type":"myth_vs_fact","myth":"Mosaic был первым веб-браузером в мире","fact":"Браузеры делали и до Mosaic, а он, по словам NCSA, первым из опубликованных автоматически показывал картинки вместе с текстом"},{"id":"it.internet-history.first-browsers.mosaic-spread","status":"active","version":1,"tags":[],"title":"Mosaic в декабре 1993 года: больше 5 000 загрузок в месяц","body":"Mosaic разработали в NCSA при Иллинойсском университете в Урбане-Шампейне на основе исследований, которые финансировал Национальный научный фонд США (NSF). Когда в декабре 1993 года Mosaic попал на обложку бизнес-раздела газеты New York Times, браузер скачивали больше 5 000 раз в месяц.","sources":[{"title":"NCSA: NCSA Mosaic","url":"https://www.ncsa.illinois.edu/research/project-highlights/ncsa-mosaic/","accessed":"2026-10-03","kind":"primary","quote":"By the time Mosaic landed on the cover of the New York Times business section in December 1993, more than 5,000 copies of the browser were being downloaded a month"},{"title":"NSF: Birth of the Commercial Internet","url":"https://www.nsf.gov/impacts/internet","accessed":"2026-10-03","kind":"agency","quote":"Mosaic was developed out of NSF-funded research at the National Center for Supercomputing Applications at the University of Illinois Urbana-Champaign."}],"concepts":["mosaic_spread"],"prereq_concepts":["mosaic"],"type":"fact","claim":"В декабре 1993 года Mosaic скачивали больше 5 000 раз в месяц.","number":{"value":5000,"unit":"загрузок в месяц"}},{"id":"it.internet-history.first-browsers.mosaic-first-myth-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.first-browsers.mosaic-first-myth","explanation":"Неверно: по словам NCSA, браузеры делали и до Mosaic, Бернерс-Ли собрал свой в 1990 году. Mosaic выделялся другим: там же NCSA называет его первым опубликованным браузером, который автоматически показывал картинки вместе с текстом.","type":"quiz_true_false","statement":"Mosaic был первым веб-браузером в мире","correct":false}]},{"id":"it.internet-history.arpanet-imp","domain":"it","topic_id":"it.internet-history","order":4,"title":"IMP, предки роутеров","hook":"Первые узлы ARPANET были машинами размером с холодильник, и строили их не ради ядерной войны","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","arpanet","imp"],"prerequisites":["it.internet-history.how-it-began"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.arpanet-imp.imp-router","status":"active","version":1,"tags":[],"title":"IMP, предшественник роутера размером с холодильник","body":"По DARPA, в 1968 году ARPA заключила с компанией BBN контракт на постройку IMP (Interface Message Processor, процессор интерфейсных сообщений), и на следующий год ARPANET заработала. По RFC 2555 IMP были предшественниками современных роутеров, каждый размером с холодильник и стоимостью около 100 000 долларов в ценах 1969 года.","sources":[{"title":"RFC 2555: 30 Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc2555","accessed":"2026-10-03","kind":"primary","quote":"… had won the all-important contract to build and operate the Interface Message Processors or \"IMPs\", the forerunners of the modern routers. They were each the size of a refrigerator and cost about $100,000 in 1969 dollars."},{"title":"DARPA: ARPANET","url":"https://www.darpa.mil/news/features/arpanet","accessed":"2026-10-03","kind":"agency","quote":"in 1968 when ARPA contracted BBN Technologies to build the first routers, known as Interface Message Processors or IMPs, which enabled ARPANET to become operational the following year."}],"concepts":["imp"],"prereq_concepts":["arpanet"],"type":"fact","claim":"Каждый IMP был размером с холодильник и стоил около 100 000 долларов в ценах 1969 года.","number":{"value":100000,"unit":"долларов"}},{"id":"it.internet-history.arpanet-imp.host-and-imp","status":"active","version":1,"tags":[],"title":"Как большие компьютеры ARPANET говорили через IMP","body":"В 1967 году Уэсли Кларк предложил управлять сетью через соединённые между собой IMP, которые стоят перед основными компьютерами. Такие компьютеры называли хостами (host). По RFC 1 от 7 апреля 1969 года программы IMP специфицировала BBN, а о программах хостов группы хостов договаривались сами. RFC 1 описывал предварительные договорённости.","sources":[{"title":"Computer History Museum: Internet History of 1960s","url":"https://www.computerhistory.org/internethistory/1960s/","accessed":"2026-10-03","kind":"museum","quote":"At the conclusion, Wesley Clark suggests that the network be managed by interconnected ‘Interface Message Processors’ in front of the major computers."},{"title":"RFC 1: Host Software","url":"https://www.rfc-editor.org/rfc/rfc1","accessed":"2026-10-03","kind":"primary","quote":"A message is any stream of not more than 8080 bits, together with its header. … After receiving a message from a HOST, an IMP partitions the message into one or more packets. … Packets are reassembled into messages at the destination IMP."}],"concepts":["host"],"prereq_concepts":["imp"],"type":"how_it_works","steps":["Хост передаёт своему IMP сообщение не длиннее 8080 бит вместе с заголовком.","IMP делит сообщение на пакеты, то есть части, которые IMP пересылают друг другу.","IMP на стороне получателя снова собирает пакеты в сообщение."]},{"id":"it.internet-history.arpanet-imp.nuclear-myth","status":"active","version":1,"tags":[],"title":"ARPANET строили не ради ядерной войны","body":"Есть слух, что ARPANET создавали как сеть, способную пережить ядерную войну. Авторы истории интернета на сайте Internet Society называют его ложным и пишут, что он пошёл от исследования группы RAND. Для ARPANET это никогда не было правдой: ядерную войну рассматривало только отдельное исследование RAND о защищённой голосовой связи.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"… the false rumor started claiming that the ARPANET was somehow related to building a network resistant to nuclear war. This was never true of the ARPANET, only the unrelated RAND study on secure voice considered nuclear war."}],"concepts":["arpanet_myth"],"prereq_concepts":["arpanet"],"type":"myth_vs_fact","myth":"ARPANET строили как сеть, которая переживёт ядерную войну","fact":"Ядерную войну рассматривало только отдельное исследование RAND о защищённой голосовой связи, не связанное с ARPANET","why_myth_exists":"По Internet Society, ложный слух пошёл от исследования RAND."},{"id":"it.internet-history.arpanet-imp.nuclear-myth-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.arpanet-imp.nuclear-myth","explanation":"Неверно: авторы истории из Internet Society называют это ложным слухом. Упор на живучесть, в том числе при потере больших частей сетей, сделали позже, в работе над объединением сетей.","type":"quiz_true_false","statement":"ARPANET проектировали как сеть, которая переживёт ядерную войну","correct":false},{"id":"it.internet-history.arpanet-imp.arpanet-timeline","status":"active","version":1,"tags":[],"title":"ARPANET: от идеи IMP до закрытия","body":"Идея IMP появилась в 1967 году на конференции в Анн-Арборе. В декабре 1968 года проект выиграла BBN. Первым узлом стал Калифорнийский университет в Лос-Анджелесе (UCLA), установка прошла в сентябре 1969 года. По Computer History Museum, в 1990 году ARPANET официально закрыли, а «сеть» за двадцать лет выросла с 4 до более чем 300 000 хостов.","sources":[{"title":"Computer History Museum: Internet History of 1960s","url":"https://www.computerhistory.org/internethistory/1960s/","accessed":"2026-10-03","kind":"museum","quote":"BBN wins the project in December. … Kleinrock’s team prepares the network measurement system at UCLA, which is to become the site of the first node."},{"title":"Computer History Museum: Internet History of 1990s","url":"https://www.computerhistory.org/internethistory/1990s/","accessed":"2026-10-03","kind":"museum","quote":"ARPANET formally shuts down. In twenty years, ‘the net’ has grown from 4 to over 300,000 hosts."}],"concepts":["arpanet_history"],"prereq_concepts":["imp"],"type":"timeline","events":[{"year":1967,"label":"Уэсли Кларк предлагает IMP на конференции в Анн-Арборе"},{"year":1968,"label":"BBN в декабре выигрывает проект IMP"},{"year":1969,"label":"Установка в UCLA, первом узле сети"},{"year":1990,"label":"ARPANET официально закрыта"}],"takeaway":"От установки первого IMP в 1969 году до закрытия ARPANET в 1990 году прошло около двадцати лет."},{"id":"it.internet-history.arpanet-imp.packet-word","status":"active","version":1,"tags":[],"title":"Слово «пакет» ARPANET взяла у Дональда Дэвиса","body":"В 1967 году Дональд Дэвис, Пол Бэран и Ларри Робертс узнали о работах друг друга на конференции ACM, где встретились все трое. По данным Computer History Museum, от Дэвиса в ARPANET переняли слово «пакет», а предлагаемую скорость линий сети подняли с 2,4 до 50 Кбит/с.","sources":[{"title":"Computer History Museum: Internet History of 1960s","url":"https://www.computerhistory.org/internethistory/1960s/","accessed":"2026-10-03","kind":"museum","quote":"Donald Davies, Paul Baran, and Larry Roberts become aware of each other’s work at an ACM conference where they all meet. From Davies, the word ‘packet’ is adopted and the proposed line speed in ARPANET is increased from 2.4 Kbps to 50 Kbps."}],"concepts":["packet_word"],"prereq_concepts":["arpanet"],"type":"fact","claim":"В 1967 году ARPANET переняла у Дэвиса слово «пакет», а предлагаемую скорость линий подняли с 2,4 до 50 Кбит/с.","number":{"value":50,"unit":"Кбит/с"}},{"id":"it.internet-history.arpanet-imp.packet-word-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.arpanet-imp.packet-word","explanation":"Предлагаемую скорость линий подняли с 2,4 до 50 Кбит/с в том же 1967 году, когда от Дэвиса переняли слово «пакет». О работах друг друга Дэвис, Бэран и Робертс узнали на конференции ACM.","type":"quiz_fill_in","template":"В 1967 году предлагаемую скорость линий ARPANET подняли с 2,4 до ___ Кбит/с","answers":[["50"]]}]},{"id":"it.internet-history.rfc-series","domain":"it","topic_id":"it.internet-history","order":5,"title":"RFC, записки, которые стали стандартами","hook":"Правила интернета записаны в серии «запросов комментариев», и первый вышел в апреле 1969 года","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","rfc","arpanet"],"prerequisites":["it.internet-history.arpanet-imp"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.rfc-series.rfc-1","status":"active","version":1,"tags":[],"title":"RFC 1 написали, когда ARPANET ещё проектировали","body":"Серия RFC начинается с документа RFC 1 под названием «Host Software». Его автор Стив Крокер из Калифорнийского университета в Лос-Анджелесе (UCLA), в шапке документа стоит дата 7 апреля 1969 года. Когда Крокер писал RFC 1, сеть ARPANET ещё только проектировалась.","sources":[{"title":"RFC 1: Host Software","url":"https://www.rfc-editor.org/rfc/rfc1","accessed":"2026-10-03","kind":"primary","quote":"Title: Host Software Author: Steve Crocker Installation: UCLA Date: 7 April 1969"},{"title":"RFC 2555: 30 Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc2555","accessed":"2026-10-03","kind":"primary","quote":"At the time RFC 1 was written, the ARPANET was still under design."}],"concepts":["rfc"],"prereq_concepts":["arpanet"],"type":"fact","claim":"RFC 1 «Host Software» написал Стив Крокер из UCLA, документ датирован 7 апреля 1969 года."},{"id":"it.internet-history.rfc-series.humble-name","status":"active","version":1,"tags":[],"title":"Почему записки назвали «запросом комментариев»","body":"RFC значит Request for Comments, «запрос комментариев». В 1987 году в RFC 1000 Стив Крокер вспоминал, что боялся обидеть официальных разработчиков протоколов, кем бы они ни были, и провёл бессонную ночь, подбирая скромные слова. Правило записок: любой может сказать что угодно, ничего не официально. Название это подчёркивало.","sources":[{"title":"RFC 1000: The Request for Comments Reference Guide","url":"https://www.rfc-editor.org/rfc/rfc1000","accessed":"2026-10-03","kind":"primary","quote":"The basic ground rules were that anyone could say anything and that nothing was official. And to emphasize the point, I labeled the notes \"Request for Comments.\""}],"concepts":["rfc_name"],"prereq_concepts":["rfc"],"type":"why","deeper":"Крокер признавался, что не думал, что записки будут рассылать по той самой сети, которую они обсуждали."},{"id":"it.internet-history.rfc-series.rfc-timeline","status":"active","version":1,"tags":[],"title":"Серия RFC: от первой записки до IETF","body":"Первый RFC вышел в апреле 1969 года, а в апреле 1971 года RFC впервые разослали по сети. 1 апреля 1978 года вышел RFC 748, первый первоапрельский RFC. В январе 1986 года прошла первая встреча Инженерного совета интернета (Internet Engineering Task Force, IETF).","sources":[{"title":"RFC 8700: Fifty Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc8700","accessed":"2026-10-03","kind":"primary","quote":"April 1971 First distribution of RFCs over the network"},{"title":"RFC Editor: RFC 748 info page","url":"https://www.rfc-editor.org/info/rfc748","accessed":"2026-10-03","kind":"primary","quote":"Date published 1 April 1978"}],"concepts":["rfc_history","ietf"],"prereq_concepts":["rfc"],"type":"timeline","events":[{"year":1969,"label":"Выходит RFC 1, первый документ серии"},{"year":1971,"label":"RFC впервые рассылают по сети"},{"year":1978,"label":"1 апреля выходит RFC 748, первый первоапрельский RFC"},{"year":1986,"label":"Первая встреча IETF"}],"takeaway":"Первоапрельские RFC появились раньше, чем IETF."},{"id":"it.internet-history.rfc-series.humble-name-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.rfc-series.humble-name","explanation":"Крокер боялся задеть официальных разработчиков протоколов, а правило было такое: любой может сказать что угодно. Позже он признавался, что не ждал, что записки пойдут по самой сети.","type":"quiz_single","question":"Зачем Крокер назвал записки «Request for Comments»?","options":["Чтобы отчитываться ими по контракту с компанией BBN","Чтобы показать, что ничего официального в них нет","Чтобы их одобрили официальные разработчики протоколов","Чтобы следовать правилам UCLA для служебных записок"],"correct":1},{"id":"it.internet-history.rfc-series.april-fools","status":"active","version":1,"tags":[],"title":"Не каждый RFC стандарт, бывают и шуточные","body":"По RFC 8700 (2019 год), в серии есть лучшие практики, экспериментальные протоколы, информационные материалы и стандарты интернета. Есть и шуточные первоапрельские RFC без формального рецензирования и утверждения. RFC 1149 от 1 апреля 1990 года описывает передачу IP-пакетов птицами и называет себя экспериментальным, не рекомендуемым стандартом.","sources":[{"title":"RFC 8700: Fifty Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc8700","accessed":"2026-10-03","kind":"primary","quote":"These are humorous RFCs that have no formal review and approval process."},{"title":"RFC 1149: A Standard for the Transmission of IP Datagrams on Avian Carriers","url":"https://www.rfc-editor.org/rfc/rfc1149","accessed":"2026-10-03","kind":"primary","quote":"This memo describes an experimental method for the encapsulation of IP datagrams in avian carriers. … This is an experimental, not recommended standard."}],"concepts":["april_fools_rfc","internet_standard"],"prereq_concepts":["rfc"],"type":"myth_vs_fact","myth":"Любой RFC это утверждённый стандарт интернета","fact":"Серия включает стандарты, лучшие практики, экспериментальные протоколы, информационные материалы и шуточные первоапрельские RFC"},{"id":"it.internet-history.rfc-series.postel-editor","status":"active","version":1,"tags":[],"title":"Джон Постел 28 лет редактировал серию RFC","body":"Джон Постел 28 лет собирал, архивировал и редактировал серию RFC. В апреле 1999 года, к 30-летию серии, в ней было больше 2500 документов о компьютерных сетях. В декабре 2019 года в RFC 8700 писали, что опубликовано уже больше 8500 RFC. Оба числа относятся к своему году, а не к сегодняшнему дню.","sources":[{"title":"RFC 2555: 30 Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc2555","accessed":"2026-10-03","kind":"primary","quote":"This was the first of a series that currently contains more than 2500 documents on computer networking, collected, archived, and edited by Jon Postel for 28 years."},{"title":"RFC 8700: Fifty Years of RFCs","url":"https://www.rfc-editor.org/rfc/rfc8700","accessed":"2026-10-03","kind":"primary","quote":"Today, over 8500 RFCs have been published, ranging across best practice guidance, experimental protocols, informational material, and, of course, Internet standards."}],"concepts":["rfc_editor"],"prereq_concepts":["rfc"],"type":"fact","claim":"Джон Постел 28 лет собирал, архивировал и редактировал серию RFC, к апрелю 1999 года в ней было больше 2500 документов.","number":{"value":28,"unit":"лет"}},{"id":"it.internet-history.rfc-series.april-fools-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.rfc-series.april-fools","explanation":"Неверно: в серии есть лучшие практики, экспериментальные протоколы и информационные материалы, а первоапрельские RFC выходят без формального утверждения. Таких шуточных RFC за год может выйти лишь несколько.","type":"quiz_true_false","statement":"Любой RFC является утверждённым стандартом интернета","correct":false}]},{"id":"it.internet-history.email-standards","domain":"it","topic_id":"it.internet-history","order":6,"title":"Как почта получила свои стандарты","hook":"В 1973 году письма шли через протокол передачи файлов, а три шага SMTP описаны одной фразой с 1982 года","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","электронная почта","smtp"],"prerequisites":["it.internet-history.rfc-series"],"related":["it.how-internet-works.email-delivery"],"cover":null,"cards":[{"id":"it.internet-history.email-standards.ftp-mail","status":"active","version":1,"tags":[],"title":"В 1973 году почту передавали через FTP","body":"5 сентября 1973 года Абхай Бхушан, Кен Погран, Рэй Томлинсон и Джим Уайт выпустили RFC 561. Тогдашний способ пересылки писем они называют «FTP mail protocol», почтовой частью FTP (File Transfer Protocol), протокола передачи файлов. Текст письма шёл по соединению FTP командой MAIL или по отдельному соединению для данных командой MLFL.","sources":[{"title":"RFC 561: Standardizing Network Mail Headers","url":"https://www.rfc-editor.org/rfc/rfc561","accessed":"2026-10-03","kind":"primary","quote":"Abhay Bhushan (AKB) MIT-DMCG NIC # 18516 Ken Pogran (KP) MIT-MULTICS Ray Tomlinson (RST) BBN-TENEX Jim White (JEW) SRI-ARC 5 September 73 Standardizing Network Mail Headers One of the deficiences of the current FTP mail protocol…"}],"concepts":["ftp_mail"],"prereq_concepts":["rfc"],"type":"fact","claim":"В RFC 561 от 5 сентября 1973 года тогдашний способ пересылки писем назван «FTP mail protocol»."},{"id":"it.internet-history.email-standards.why-headers","status":"active","version":1,"tags":[],"title":"Почему письмам понадобились общие заголовки","body":"В 1973 году почтовый протокол FTP не предусматривал явного указания автора, заглавия и даты письма. Многие системы эти данные передавали, но каждая в своём формате. Авторы RFC 561 пишут, что из-за этого системе или программе было почти невозможно разумно обрабатывать входящую почту. Временным решением они предложили единый синтаксис заголовков.","sources":[{"title":"RFC 561: Standardizing Network Mail Headers","url":"https://www.rfc-editor.org/rfc/rfc561","accessed":"2026-10-03","kind":"primary","quote":"Many systems send that information, but each in a different format. One fairly serious result of this lack of standardization is that it's next to impossible for a system or user program to intelligently process incoming mail."}],"concepts":["mail_headers"],"prereq_concepts":["ftp_mail"],"type":"why","deeper":"Долгосрочным решением авторы считали, вероятно, новые команды в самом почтовом протоколе, а единый формат заголовков предлагали как вариант, который можно внедрить быстрее."},{"id":"it.internet-history.email-standards.smtp-steps","status":"active","version":1,"tags":[],"title":"Как SMTP передаёт письмо за три шага","body":"В августе 1982 года Джонатан Постел описал в RFC 821 протокол SMTP (Simple Mail Transfer Protocol), цель которого передавать почту надёжно и эффективно. Передача письма, или почтовая транзакция SMTP, состоит из трёх шагов. Действующий стандарт RFC 5321 от октября 2008 года описывает эти три шага так же.","sources":[{"title":"RFC 821: Simple Mail Transfer Protocol","url":"https://www.rfc-editor.org/rfc/rfc821","accessed":"2026-10-03","kind":"standard","quote":"There are three steps to SMTP mail transactions. The transaction is started with a MAIL command which gives the sender identification. A series of one or more RCPT commands follows giving the receiver information."},{"title":"RFC 5321: Simple Mail Transfer Protocol","url":"https://www.rfc-editor.org/rfc/rfc5321","accessed":"2026-10-03","kind":"standard","quote":"There are three steps to SMTP mail transactions. The transaction starts with a MAIL command that gives the sender identification."}],"concepts":["smtp","smtp_transaction"],"prereq_concepts":["rfc"],"type":"how_it_works","steps":["Клиент SMTP начинает транзакцию командой MAIL и называет отправителя.","Клиент называет получателей одной или несколькими командами RCPT.","Клиент передаёт сами данные письма командой DATA."]},{"id":"it.internet-history.email-standards.why-headers-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.email-standards.why-headers","explanation":"Автора, заглавие и дату системы передавали каждая по-своему, и входящую почту было почти невозможно разбирать программой. В примере из RFC 561 строка автора выглядит так: «From: White at SRI-ARC».","type":"quiz_single","question":"Какую проблему авторы RFC 561 хотели решить в 1973 году?","options":["Письма терялись, если компьютер получателя был выключен","Каждая система писала автора и дату в своём формате","Одно письмо нельзя было отправить сразу нескольким людям","Письма шли слишком медленно из-за перегрузки сети"],"correct":1},{"id":"it.internet-history.email-standards.mime-myth","status":"active","version":1,"tags":[],"title":"Вложения и другие кодировки в письмах появились не сразу","body":"По RFC 2045 стандарт RFC 822 оставлял тело письма текстом в US-ASCII, 7-битной кодировке. Аудио и изображения в нём не упоминались. MIME (Multipurpose Internet Mail Extensions) позволил текст в других кодировках, нетекстовые вложения и письма из нескольких частей. Первая версия MIME, RFC 1341, вышла в июне 1992 года, RFC 2045 в ноябре 1996 года.","sources":[{"title":"RFC 2045: MIME Part One","url":"https://www.rfc-editor.org/rfc/rfc2045","accessed":"2026-10-03","kind":"standard","quote":"STD 11, RFC 822, defines a message representation protocol specifying considerable detail about US-ASCII message headers, and leaves the message content, or message body, as flat US-ASCII text."},{"title":"RFC Editor: RFC 1341 info page","url":"https://www.rfc-editor.org/info/rfc1341","accessed":"2026-10-03","kind":"standard","quote":"Request for Comments: 1341 N. Freed, Innosoft June 1992 MIME (Multipurpose Internet Mail Extensions)"}],"concepts":["mime"],"prereq_concepts":["mail_headers"],"type":"myth_vs_fact","myth":"Электронная почта с самого начала умела передавать картинки и текст на любом языке","fact":"RFC 822 оставлял тело письма текстом в US-ASCII, а другие кодировки, вложения и письма из нескольких частей позволил MIME, первая версия которого вышла в 1992 году"},{"id":"it.internet-history.email-standards.mail-timeline","status":"active","version":1,"tags":[],"title":"Почта по годам: SMTP и коммерческие службы","body":"В августе 1982 года вышел RFC 821 о протоколе SMTP. В 1988 году организация CNRI получила разрешение подключить коммерческую службу MCI Mail к интернету. К 1989 году MCI Mail, OnTyme, Telemail и CompuServe подключили к интернету свои почтовые системы. 1 апреля 2001 года на смену RFC 821 пришёл RFC 2821, а позже и его отменил RFC 5321.","sources":[{"title":"Computer History Museum: Internet History of 1980s","url":"https://www.computerhistory.org/internethistory/1980s/","accessed":"2026-10-03","kind":"museum","quote":"CNRI obtains permission … to interconnect the commercial MCI Mail service to the Internet. … By 1989 MCI Mail, OnTyme, Telemail and CompuServe had all interconnected their commercial email systems to the Internet"},{"title":"RFC Editor: RFC 2821 info page","url":"https://www.rfc-editor.org/info/rfc2821","accessed":"2026-10-03","kind":"standard","quote":"Obsoletes (3) RFC 1869: SMTP Service Extensions, RFC 821: Simple Mail Transfer Protocol, RFC 974: Mail routing and the domain system. Obsoleted by (1) RFC 5321: Simple Mail Transfer Protocol. Date published 1 April 2001"}],"concepts":["commercial_email"],"prereq_concepts":["smtp"],"type":"timeline","events":[{"year":1982,"label":"RFC 821 описывает протокол SMTP"},{"year":1988,"label":"CNRI получает разрешение подключить MCI Mail к интернету"},{"year":1989,"label":"MCI Mail, OnTyme, Telemail и CompuServe связаны с интернетом"},{"year":2001,"label":"RFC 2821 приходит на смену RFC 821"}],"takeaway":"Коммерческие почтовые службы подключились к интернету к 1989 году, а описание SMTP из RFC 821 позже сменили RFC 2821 и затем RFC 5321."},{"id":"it.internet-history.email-standards.smtp-steps-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.email-standards.smtp-steps","explanation":"MAIL называет отправителя, одна или несколько команд RCPT называют получателей, DATA передаёт данные письма. По RFC 5321 признак конца данных письма заодно подтверждает всю транзакцию.","type":"quiz_ordering","prompt":"Расставьте команды транзакции SMTP по порядку, от первой к последней","items":["RCPT с получателями","DATA с данными письма","MAIL с отправителем"],"correct_order":[2,0,1]}]},{"id":"it.internet-history.tcp-ip-origins","domain":"it","topic_id":"it.internet-history","order":7,"title":"От NCP к TCP/IP","hook":"Первый протокол ARPANET не умел заглядывать дальше своей сети, и TCP пришлось разрезать надвое","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","arpanet","tcp-ip","ncp"],"prerequisites":["it.internet-history.arpanet-imp"],"related":["it.internet-history.how-it-began"],"cover":null,"cards":[{"id":"it.internet-history.tcp-ip-origins.ncp","status":"active","version":1,"tags":[],"title":"Первым протоколом между хостами ARPANET был NCP","body":"В декабре 1970 года Сетевая рабочая группа (Network Working Group) под руководством С. Крокера закончила первый протокол ARPANET для связи между хостами, то есть подключёнными к сети компьютерами. Его назвали Network Control Protocol, NCP. Когда узлы ARPANET внедрили NCP в 1971-1972 годах, пользователи сети наконец смогли разрабатывать приложения.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"In December 1970 the Network Working Group (NWG) working under S. Crocker finished the initial ARPANET Host-to-Host protocol, called the Network Control Protocol (NCP)."}],"concepts":["ncp"],"prereq_concepts":["arpanet","host"],"type":"fact","claim":"Первый протокол ARPANET между хостами, NCP, закончили в декабре 1970 года."},{"id":"it.internet-history.tcp-ip-origins.ncp-limits","status":"active","version":1,"tags":[],"title":"Почему NCP не подошёл для объединения сетей","body":"NCP не умел адресовать сети и машины дальше IMP назначения, то есть коммутатора пакетов ARPANET, к которому подключён нужный хост. За сквозную надёжность NCP полагался на саму ARPANET: при потере пакетов протокол, а вероятно и приложения на нём, остановился бы. Поэтому Боб Кан решил разработать новую версию протокола для открытой архитектуры сетей.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"NCP did not have the ability to address networks (and machines) further downstream than a destination IMP on the ARPANET and thus some change to NCP would also be required."}],"concepts":["ncp_limits"],"prereq_concepts":["ncp","imp"],"type":"why"},{"id":"it.internet-history.tcp-ip-origins.tcp-split","status":"active","version":1,"tags":[],"title":"Как один TCP стал двумя протоколами","body":"В статье Винта Серфа и Боба Кана был описан один протокол, TCP: он давал все транспортные услуги и пересылку в интернете. Работа над передачей голоса пакетами в 1970-х показала, что иногда потери пакетов лучше оставить приложению, а не исправлять в TCP. Поэтому исходный TCP разделили на два протокола.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"This led to a reorganization of the original TCP into two protocols, the simple IP which provided only for addressing and forwarding of individual packets, and the separate TCP…"}],"concepts":["tcp_ip","udp"],"prereq_concepts":["tcp"],"type":"how_it_works","steps":["Выделили простой IP (межсетевой протокол), который только адресует и пересылает отдельные пакеты.","Оставили отдельный TCP (протокол управления передачей) для управления потоком и восстановления потерянных пакетов.","Добавили UDP (протокол пользовательских датаграмм), чтобы приложения без услуг TCP обращались к IP напрямую."]},{"id":"it.internet-history.tcp-ip-origins.ncp-limits-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.tcp-ip-origins.ncp-limits","explanation":"NCP видел только ARPANET: адресовать сети и машины за IMP назначения он не мог, а надёжность оставлял самой сети. Новый протокол Кана со временем назвали TCP/IP.","type":"quiz_single","question":"Чего не умел NCP, из-за чего понадобился новый протокол?","options":["Доставлять данные до IMP назначения в ARPANET","Адресовать машины в других сетях за ARPANET","Полагаться на надёжность доставки в ARPANET","Соединять между собой хосты внутри ARPANET"],"correct":1},{"id":"it.internet-history.tcp-ip-origins.relay-hosts","status":"active","version":1,"tags":[],"title":"Ретрансляторы между хостами NCP и TCP","body":"План перехода RFC 801 вышел в ноябре 1981 года. Его цель: полностью перейти с NCP на IP/TCP к 1 января 1983 года, а внедрение должно было начаться не позже 1 января 1982 года. Любому новому хосту в ARPANET следовало поддерживать только IP/TCP и сервисы на TCP. Перевести все хосты одновременно было нельзя, поэтому понадобились ретрансляторы.","sources":[{"title":"RFC 801: NCP/TCP Transition Plan","url":"https://www.rfc-editor.org/rfc/rfc801","accessed":"2026-10-03","kind":"primary","quote":"To do this certain hosts which implement both NCP and IP/TCP will be designated as relay hosts. These relay hosts will support Telnet, FTP, and Mail services on both NCP and TCP."},{"title":"RFC 801: NCP/TCP Transition Plan (TXT)","url":"https://www.rfc-editor.org/rfc/rfc801.txt","accessed":"2026-10-03","kind":"primary","quote":"The goal is to make a complete switch over from the NCP to IP/TCP by 1 January 1983. It is the task of each host organization to implement IP/TCP for its own hosts. This implementation task must begin by 1 January 1982."}],"concepts":["ncp_tcp_transition"],"prereq_concepts":["ncp","tcp_ip"],"type":"mini_case","situation":"Часть хостов ARPANET уже работает на IP/TCP, часть пока только на NCP, а пользователям нужны Telnet, FTP и почта между ними.","question":"Как по плану связать хосты, которые работают на разных протоколах?","solution":"Назначить ретрансляторами часть хостов, где есть и NCP, и IP/TCP. Они поддерживают Telnet, FTP и почту в обеих средах. Для Telnet пользователь сначала подключается к ретранслятору, а с него к нужному хосту.","lesson":"По плану RFC 801 ретрансляторы связывали хосты только с NCP и только с TCP временно, на время перехода."},{"id":"it.internet-history.tcp-ip-origins.tcp-timeline","status":"active","version":1,"tags":[],"title":"TCP/IP по годам: от черновика до RFC 793","body":"Весной 1973 года Боб Кан попросил Винта Серфа, тогда работавшего в Стэнфорде, вместе разработать протокол. Первый письменный вариант разослали как INWG#39 в сентябре 1973 года на встрече в Университете Сассекса. В сентябре 1981 года вышел RFC 793 с описанием TCP. Сейчас RFC 793 заменён документом RFC 9293.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"the first written version of the resulting approach was distributed as INWG#39 at a special meeting of the International Network Working Group (INWG) at Sussex University in September 1973."},{"title":"RFC Editor: RFC 793 info page","url":"https://www.rfc-editor.org/info/rfc793","accessed":"2026-10-03","kind":"standard","quote":"Obsoleted by (1) RFC 9293: Transmission Control Protocol (TCP). Date published September 1981"}],"concepts":["tcp_ip_history"],"prereq_concepts":["tcp","rfc"],"type":"timeline","events":[{"year":1973,"label":"Весной Кан просит Серфа вместе разработать протокол"},{"year":1973,"label":"В сентябре первый вариант рассылают как INWG#39"},{"year":1981,"label":"Выходит RFC 793 с описанием TCP"}],"takeaway":"RFC 793 теперь история, TCP описывает RFC 9293."},{"id":"it.internet-history.tcp-ip-origins.tcp-timeline-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.tcp-ip-origins.tcp-timeline","explanation":"Весной 1973 года Кан позвал Серфа, в сентябре того же года INWG#39 разослали на специальной встрече International Network Working Group, в 1981 году вышел RFC 793, а позже его заменил RFC 9293.","type":"quiz_ordering","prompt":"Расставьте события по порядку, от раннего к позднему","items":["Выходит RFC 793 с описанием TCP","Рассылка первого варианта INWG#39","RFC 9293 заменяет RFC 793","Кан просит Серфа вместе разработать протокол"],"correct_order":[3,1,0,2]}]},{"id":"it.internet-history.dns-birth","domain":"it","topic_id":"it.internet-history","order":8,"title":"Как один файл превратился в DNS","hook":"До DNS все имена хостов интернета лежали в одном файле, и его скачивал каждый компьютер сети","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","dns","домены"],"prerequisites":["it.internet-history.tcp-ip-origins"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.dns-birth.hosts-txt","status":"active","version":1,"tags":[],"title":"До DNS все имена хостов лежали в одном файле","body":"До DNS (Domain Name System, система доменных имён) имена хостов, компьютеров сети, и их адреса вёл Network Information Center (NIC), сетевой информационный центр, в одном файле HOSTS.TXT. Каждый хост забирал его по FTP, протоколу передачи файлов. По RFC 952 (октябрь 1985 года) это файл NETINFO:HOSTS.TXT на хосте SRI-NIC.","sources":[{"title":"RFC 1034: Domain Names, Concepts and Facilities","url":"https://www.rfc-editor.org/rfc/rfc1034","accessed":"2026-10-03","kind":"standard","quote":"Host name to address mappings were maintained by the Network Information Center (NIC) in a single file (HOSTS.TXT) which was FTPed by all hosts"},{"title":"RFC 952: DoD Internet Host Table Specification","url":"https://www.rfc-editor.org/rfc/rfc952","accessed":"2026-10-03","kind":"standard","quote":"A machine-translatable ASCII text version of the DoD Host Table is online in the file NETINFO:HOSTS.TXT on the SRI-NIC host."}],"concepts":["hosts_txt","network_information_center"],"prereq_concepts":["ip_address"],"type":"fact","claim":"Соответствие имён хостов и адресов вёл NIC в одном файле HOSTS.TXT, который все хосты забирали по FTP."},{"id":"it.internet-history.dns-birth.why-dns","status":"active","version":1,"tags":[],"title":"Почему одного файла HOSTS.TXT стало мало","body":"По RFC 1034 (1987 год) трафик на рассылку новой версии HOSTS.TXT был пропорционален квадрату числа хостов, а нагрузка на хост NIC была значительной. Организации сами вели свои имена и адреса, но ждали, пока NIC изменит файл, чтобы их увидел весь интернет. Когда независимо управляемых сетей стало много, единая таблица хостов стала невыполнимой.","sources":[{"title":"RFC 1034: Domain Names, Concepts and Facilities","url":"https://www.rfc-editor.org/rfc/rfc1034","accessed":"2026-10-03","kind":"standard","quote":"bandwidth consumed in distributing a new version by this scheme is proportional to the square of the number of hosts in the network, and even when multiple levels of FTP are used, the outgoing FTP load on the NIC host is considerable."},{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"The shift to having a large number of independently managed networks (e.g., LANs) meant that having a single table of hosts was no longer feasible"}],"concepts":["hosts_txt","dns"],"prereq_concepts":["network_information_center"],"type":"why"},{"id":"it.internet-history.dns-birth.mockapetris","status":"active","version":1,"tags":[],"title":"Первые RFC о DNS вышли в ноябре 1983 года","body":"По Internet Society, DNS изобрёл Пол Мокапетрис (Paul Mockapetris) из USC/ISI. Его RFC 882 и RFC 883, первые описания DNS, вышли в ноябре 1983 года. В ноябре 1987 года их заменил RFC 1034 вместе с парным RFC 1035. Отметки об отмене (Obsoleted by) у RFC 1034 нет, его дополняют более поздние RFC.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-03","kind":"primary","quote":"the Domain Name System (DNS) was invented by Paul Mockapetris of USC/ISI"},{"title":"RFC Editor: RFC 1034 info page","url":"https://www.rfc-editor.org/info/rfc1034","accessed":"2026-10-03","kind":"standard","quote":"P. Mockapetris, \"Domain names - Concepts and Facilities,\" RFC-882, USC/Information Sciences Institute, November 1983.  Superceeded by this memo."}],"concepts":["dns","rfc"],"prereq_concepts":[],"type":"fact","claim":"Первые описания DNS, RFC 882 и RFC 883 Мокапетриса, вышли в ноябре 1983 года, в ноябре 1987 года их заменили RFC 1034 и RFC 1035.","number":{"value":1983,"unit":"год"}},{"id":"it.internet-history.dns-birth.why-dns-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.dns-birth.why-dns","explanation":"По RFC 1034 трафик на рассылку новой версии HOSTS.TXT пропорционален квадрату числа хостов: 2^2 = 4, то есть вчетверо. Даже с несколькими уровнями рассылки по FTP нагрузка на хост NIC была значительной.","type":"quiz_single","question":"Число хостов выросло вдвое. Во сколько раз, по оценке RFC 1034, вырос трафик на рассылку новой версии HOSTS.TXT?","options":["В 2 раза","В 8 раз","В 4 раза","В 16 раз"],"correct":2},{"id":"it.internet-history.dns-birth.name-tree","status":"active","version":1,"tags":[],"title":"Как устроено дерево доменных имён","body":"Ранние предложения об именах сходились в одном: имена образуют иерархию, примерно повторяющую структуру организаций, а точка отмечает границу между уровнями. В DNS пространство имён устроено как дерево. Как правило, отдельный сервер имён полностью знает свою часть дерева и хранит указатели на другие серверы имён.","sources":[{"title":"RFC 1034: Domain Names, Concepts and Facilities","url":"https://www.rfc-editor.org/rfc/rfc1034","accessed":"2026-10-03","kind":"standard","quote":"a common thread was the idea of a hierarchical name space, with the hierarchy roughly corresponding to organizational structure, and names using \".\"  as the character to mark the boundary between hierarchy levels."},{"title":"RFC Editor: RFC 1034 info page, раздел 2.4","url":"https://www.rfc-editor.org/info/rfc1034","accessed":"2026-10-03","kind":"standard","quote":"in general a particular name server has complete information about a subset of the domain space, and pointers to other name servers that can be used to lead to information from any part of the domain tree."}],"concepts":["domain_name_tree","name_server"],"prereq_concepts":["dns"],"type":"how_it_works","steps":["Точка делит имя на уровни иерархии.","Каждый узел дерева имён называет свой набор информации.","Сервер имён, как правило, полностью знает свою часть дерева и указывает на другие серверы."]},{"id":"it.internet-history.dns-birth.com-myth","status":"active","version":1,"tags":[],"title":".com значит commercial, а не computer","body":"RFC 920 Постела и Рейнольдс (октябрь 1984 года) перечисляет начальные домены верхнего уровня: временный ARPA, категории GOV, EDU, COM, MIL, ORG и двухбуквенные коды стран. COM там расшифрован как Commercial: любые коммерческие домены, подходящие под требования второго уровня. По базе IANA, дата регистрации самого домена .com 1 января 1985 года.","sources":[{"title":"RFC 920: Domain Requirements","url":"https://www.rfc-editor.org/rfc/rfc920","accessed":"2026-10-03","kind":"primary","quote":"COM  =  Commercial, any commercial related domains meeting the second level requirements."},{"title":"IANA: Delegation Record for .COM","url":"https://www.iana.org/domains/root/db/com.html","accessed":"2026-10-03","kind":"agency","quote":"Registration date 1985-01-01."}],"concepts":["generic_tld","domain_name"],"prereq_concepts":["dns"],"type":"myth_vs_fact","myth":"Домен .com назван по слову computer, компьютер","fact":"В RFC 920 (октябрь 1984 года) COM расшифрован как Commercial: любые коммерческие домены, подходящие под требования второго уровня."},{"id":"it.internet-history.dns-birth.com-myth-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.dns-birth.com-myth","explanation":"В RFC 920 COM означает Commercial, коммерческие домены. В том же списке ORG означает Organization, для остальных доменов, подходящих под требования второго уровня.","type":"quiz_true_false","statement":"В RFC 920 домен верхнего уровня COM расшифрован как Computer","correct":false}]},{"id":"it.internet-history.runet-domains","domain":"it","topic_id":"it.internet-history","order":9,"title":"Домены .su, .ru и .рф","hook":"По базе IANA домен .su зарегистрирован в 1990 году, раньше .ru и .рф","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","домены","рунет"],"prerequisites":["it.internet-history.dns-birth"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.runet-domains.su-1990","status":"active","version":1,"tags":[],"title":"Домен .SU зарегистрирован в 1990 году","body":"IANA (Internet Assigned Numbers Authority) управляет корневой зоной DNS и ведёт её базу со сведениями о доменах верхнего уровня, то есть о последней части адреса вроде .su или .ru. В записи о .SU указана дата регистрации: 19 сентября 1990 года, а сам домен отнесён к национальным (country-code top-level domain), то есть к доменам страны.","sources":[{"title":"IANA: Delegation Record for .SU","url":"https://www.iana.org/domains/root/db/su.html","accessed":"2026-10-03","kind":"agency","quote":"Delegation Record for .SU (Country-code top-level domain) … Registration date 1990-09-19."},{"title":"IANA: Root Zone Database","url":"https://www.iana.org/domains/root/db","accessed":"2026-10-03","kind":"agency","quote":"The Root Zone Database represents the delegation details of top-level domains … As the manager of the DNS root zone, we are responsible for coordinating these delegations"}],"concepts":["su_domain"],"prereq_concepts":["domain_name"],"type":"fact","claim":"В базе корневой зоны IANA у домена .SU указана дата регистрации 19 сентября 1990 года."},{"id":"it.internet-history.runet-domains.ru-1994","status":"active","version":1,"tags":[],"title":"7 апреля 1994 года Россия получила домен .RU","body":"7 апреля 1994 года Российская Федерация получила национальный домен .RU. Его зарегистрировал международный сетевой центр InterNIC, а администратором домена стал РосНИИРОС. Так эту дату описывает Координационный центр доменов .RU/.РФ. В базе корневой зоны IANA у .RU стоит та же дата регистрации: 1994-04-07.","sources":[{"title":"Координационный центр доменов .RU/.РФ: О доменах","url":"https://cctld.ru/domains/about/","accessed":"2026-10-03","kind":"primary","quote":"7 апреля 1994 г. Российская Федерация получила национальный домен .RU, зарегистрированный международным сетевым центром InterNIC. Администратором домена стал РосНИИРОС."},{"title":"IANA: Delegation Record for .RU","url":"https://www.iana.org/domains/root/db/ru.html","accessed":"2026-10-03","kind":"agency","quote":"Delegation Record for .RU (Country-code top-level domain) … Registration date 1994-04-07."}],"concepts":["ru_domain"],"prereq_concepts":["domain_name"],"type":"fact","claim":"7 апреля 1994 года Россия получила домен .RU, зарегистрированный InterNIC, администратором стал РосНИИРОС."},{"id":"it.internet-history.runet-domains.tilde-pages","status":"active","version":1,"tags":[],"title":"Где жила домашняя страница в 1995-1997 годах","body":"По истории Координационного центра доменов .RU/.РФ, в 1995-1997 годах домен .RU развивался прежде всего на профессиональном уровне. Домашняя страница со своим именем второго уровня, вида name.ru, была большой редкостью. Люди обходились именем третьего уровня, вида name.site.ru, или, чаще, страницей у провайдера после знака «~», тильды.","sources":[{"title":"Координационный центр доменов .RU/.РФ: О доменах","url":"https://cctld.ru/domains/about/","accessed":"2026-10-03","kind":"primary","quote":"1995-1997 гг. Домен .RU развивался, в первую очередь, на профессиональном уровне (домашние страницы … были большой редкостью … или же, чаще, страничкой у провайдера, после знака «~» — «тильда»)"}],"concepts":["tilde_homepage"],"prereq_concepts":["ru_domain"],"type":"mini_case","situation":"В 1996 году вы хотите завести в Рунете домашнюю страницу.","question":"Где, скорее всего, окажется ваша страница?","solution":"Чаще всего у провайдера, после знака «~», тильды. Своё имя второго уровня в .RU для домашней страницы тогда было большой редкостью, иногда выручало имя третьего уровня.","lesson":"В 1995-1997 годах домен .RU развивался прежде всего на профессиональном уровне."},{"id":"it.internet-history.runet-domains.ru-1994-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.runet-domains.ru-1994","explanation":"7 апреля 1994 года .RU зарегистрировал международный сетевой центр InterNIC, а администратором стал РосНИИРОС. В базе корневой зоны IANA у .RU записана та же дата регистрации.","type":"quiz_single","question":"Кто зарегистрировал домен .RU в 1994 году и кто стал его администратором?","options":["РосНИИРОС, администратором стал InterNIC","InterNIC, администратором стал РосНИИРОС","VeriSign, администратором стал РосНИИРОС","InterNIC, администратором стал VeriSign"],"correct":1},{"id":"it.internet-history.runet-domains.rf-timeline","status":"active","version":1,"tags":[],"title":"Путь к .РФ: от кириллических имён до 2010 года","body":"Кириллические имена появились в 2001 году, когда их тестировали: VeriSign стала регистрировать их в .NET и .COM. В октябре 2008 года зона получила название «РФ». Первые адреса в .РФ заработали 12 мая 2010 года, сразу после того как домен передали России. С 11 ноября 2010 года регистрация открыта всем, за первые сутки купили свыше 240 тысяч имён.","sources":[{"title":"Координационный центр доменов .RU/.РФ: О доменах","url":"https://cctld.ru/domains/about/","accessed":"2026-10-03","kind":"primary","quote":"кириллические доменные имена появились в интернете еще в 2001 году … Первые кириллические адреса в Сети заработали 12 мая 2010 года, сразу после того, как домен .РФ был официально делегирован России … свыше 240 тысяч доменных имен"}],"concepts":["cyrillic_domain"],"prereq_concepts":["ru_domain"],"type":"timeline","events":[{"year":2001,"label":"VeriSign регистрирует кириллические имена в .NET и .COM"},{"year":2008,"label":"В октябре кириллическая зона получает название «РФ»"},{"year":2010,"label":"12 мая заработали первые адреса в .РФ"},{"year":2010,"label":"11 ноября регистрация в .РФ открыта для всех"}],"takeaway":"Кириллические имена в интернете появились раньше, чем зона .РФ."},{"id":"it.internet-history.runet-domains.three-zones","status":"active","version":1,"tags":[],"title":"Как .SU и .РФ записаны в базе IANA","body":"В базе IANA оба домена значатся национальными, а .РФ закреплён за двухбуквенным кодом страны RU. .SU зарегистрирован 19 сентября 1990 года, .РФ 12 мая 2010 года. Отчёт IANA о делегировании .рф датирован раньше, 7 апреля 2010 года. В записи о .РФ есть и его латинская форма: .xn--p1ai.","sources":[{"title":"IANA: Delegation Record for .SU","url":"https://www.iana.org/domains/root/db/su.html","accessed":"2026-10-03","kind":"agency","quote":"Delegation Record for .SU (Country-code top-level domain) ccTLD Manager Russian Institute for Development of Public Networks (ROSNIIROS) … Registration date 1990-09-19."},{"title":"IANA: Delegation Record for .РФ","url":"https://www.iana.org/domains/root/db/xn--p1ai.html","accessed":"2026-10-03","kind":"agency","quote":"(Country-code top-level domain designated for two-letter country code RU) ccTLD Manager Coordination Center for TLD RU … .xn--p1ai domain Administrative group … (2010-04-07) … Registration date 2010-05-12."}],"concepts":["tld_record"],"prereq_concepts":["su_domain","cyrillic_domain"],"type":"comparison","a":".SU","b":".РФ","criteria":[{"name":"Дата регистрации в IANA","a":"19 сентября 1990 года","b":"12 мая 2010 года"},{"name":"Тип домена в IANA","a":"Национальный домен верхнего уровня","b":"Национальный домен для двухбуквенного кода RU"},{"name":"Менеджер (ccTLD Manager)","a":"ROSNIIROS (РосНИИРОС)","b":"Coordination Center for TLD RU"},{"name":"Запись латиницей","a":".SU","b":".xn--p1ai"}]},{"id":"it.internet-history.runet-domains.three-zones-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.runet-domains.three-zones","explanation":".SU зарегистрирован 19 сентября 1990 года. У .РФ отчёт о делегировании датирован 7 апреля 2010 года, а дата регистрации в базе IANA стоит позже, 12 мая 2010 года.","type":"quiz_ordering","prompt":"Расставьте даты из базы IANA по порядку, от ранней к поздней","items":["Регистрация домена .РФ","Регистрация домена .SU","Отчёт IANA о делегировании .рф"],"correct_order":[1,2,0]}]},{"id":"it.internet-history.nsfnet","domain":"it","topic_id":"it.internet-history","order":10,"title":"NSFNET, сеть для суперкомпьютеров","hook":"Сеть, построенная ради доступа учёных к суперкомпьютерам, стала магистралью интернета в США","difficulty":3,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","nsfnet","nsf"],"prerequisites":["it.internet-history.tcp-ip-origins"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.nsfnet.nsfnet-1986","status":"active","version":1,"tags":[],"title":"NSFNET: от 2000 компьютеров до 2 миллионов","body":"По данным Национального научного фонда США (NSF), он запустил сеть NSFNET в 1986 году, чтобы связать академических исследователей с новой системой суперкомпьютерных центров. В 1986 году NSFNET связывала около 2000 компьютеров, а к 1993 году больше 2 миллионов.","sources":[{"title":"NSF: Birth of the Commercial Internet","url":"https://www.nsf.gov/impacts/internet","accessed":"2026-10-03","kind":"agency","quote":"NSFNET, launched in 1986 by NSF to connect academic researchers to a new system of supercomputer centers. … connecting around 2,000 computers in 1986 and expanding to more than 2 million by 1993."}],"concepts":["nsfnet"],"prereq_concepts":["internet"],"type":"fact","claim":"В 1986 году NSFNET связывала около 2000 компьютеров, а к 1993 году больше 2 миллионов.","number":{"value":2000000,"unit":"компьютеров"}},{"id":"it.internet-history.nsfnet.why-backbone","status":"active","version":1,"tags":[],"title":"Почему сеть для суперкомпьютеров стала магистралью","body":"Магистралью (backbone) называют основную линию, через которую связаны другие сети. По хронике NSF, фонд объединил свои суперкомпьютерные центры и региональную университетскую сеть в NSFNET, предшественницу интернета. По оценке NSF, именно как первая сеть, доступная каждому исследователю, NSFNET стала фактической магистралью интернета в США.","sources":[{"title":"NSF: Birth of the Commercial Internet","url":"https://www.nsf.gov/impacts/internet","accessed":"2026-10-03","kind":"agency","quote":"As the first network available to every researcher, NSFNET became the de facto U.S. internet backbone"},{"title":"NSF: History","url":"https://www.nsf.gov/about/history","accessed":"2026-10-03","kind":"agency","quote":"NSF links the centers and its regional university network to form NSFNET, forerunner of the internet."}],"concepts":["internet_backbone"],"prereq_concepts":["nsfnet"],"type":"why"},{"id":"it.internet-history.nsfnet.parallel-routers","status":"active","version":1,"tags":[],"title":"Магистраль T1 на 24 компьютерах IBM RT-PC","body":"24 ноября 1987 года NSF объявил соглашение с Merit, IBM и MCI о строительстве новой скоростной магистрали NSFNET. По данным Computer History Museum, в 1987 году NSF начал строить магистраль на линиях T1 между суперкомпьютерными центрами на 24 компьютерах RT-PC. IBM объединила их как «параллельные маршрутизаторы» (parallel routers).","sources":[{"title":"NSF: History","url":"https://www.nsf.gov/about/history","accessed":"2026-10-03","kind":"agency","quote":"NSF announces the awarding of the NSFNET Cooperative Agreement to Merit, IBM and MCI. With additional support from the state of Michigan, the agreement will result in the building of a new, high-speed NSFNET backbone"},{"title":"Computer History Museum: Internet History of 1980s","url":"https://www.computerhistory.org/internethistory/1980s/","accessed":"2026-10-03","kind":"museum","quote":"The NSF starts to implement its T1 backbone between the supercomputing centers with 24 RT-PCs in parallel implemented by IBM as ‘parallel routers’."}],"concepts":["parallel_routers"],"prereq_concepts":["internet_backbone"],"type":"fact","claim":"В 1987 году NSF начал строить магистраль T1 на 24 компьютерах RT-PC, которые IBM объединила как «параллельные маршрутизаторы».","number":{"value":24,"unit":"компьютера RT-PC"}},{"id":"it.internet-history.nsfnet.why-backbone-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.nsfnet.why-backbone","explanation":"NSF пишет, что NSFNET стала фактической магистралью как первая сеть, доступная каждому исследователю. Собрали её из суперкомпьютерных центров NSF и региональной университетской сети.","type":"quiz_single","question":"Почему, по оценке NSF, NSFNET стала фактической магистралью интернета в США?","options":["Её строили для коммерческих интернет-провайдеров США","Она была первой сетью для каждого исследователя","Её создало Министерство обороны США для армии","Она связывала суперкомпьютеры без университетов"],"correct":1},{"id":"it.internet-history.nsfnet.speed-timeline","status":"active","version":1,"tags":[],"title":"Как ускорялась магистраль NSFNET","body":"По данным Computer History Museum, в 1986 году магистраль между центрами NSF работала на 56 Кбит/с. В 1987 году NSF начал строить магистраль на линиях T1, а в 1988 году переход магистрали NSFNET на T1 завершился. В 1991 году магистраль NSFNET перешла на T3, по данным музея это 44 Мбит/с.","sources":[{"title":"Computer History Museum: Internet History of 1980s","url":"https://www.computerhistory.org/internethistory/1980s/","accessed":"2026-10-03","kind":"museum","quote":"The 56Kbps backbone between the NSF centers … The NSF starts to implement its T1 backbone between the supercomputing centers … The upgrade of the NSFNET backbone to T1 completes"},{"title":"Computer History Museum: Internet History of 1990s","url":"https://www.computerhistory.org/internethistory/1990s/","accessed":"2026-10-03","kind":"museum","quote":"The NSFNET backbone upgrades to T3, or 44 Mbps."}],"concepts":["backbone_speed"],"prereq_concepts":["internet_backbone"],"type":"timeline","events":[{"year":1986,"label":"Магистраль между центрами NSF работает на 56 Кбит/с"},{"year":1987,"label":"NSF начинает строить магистраль на линиях T1"},{"year":1988,"label":"Переход магистрали NSFNET на T1 завершён"},{"year":1991,"label":"Магистраль NSFNET переходит на T3, 44 Мбит/с"}],"takeaway":"С 1986 по 1991 год скорость магистрали NSFNET выросла с 56 Кбит/с до 44 Мбит/с, по данным Computer History Museum."},{"id":"it.internet-history.nsfnet.arpanet-vs-nsfnet","status":"active","version":1,"tags":[],"title":"ARPANET и NSFNET рядом","body":"ARPANET и NSFNET запускали разные ведомства США. По данным DARPA, в 1968 году агентство ARPA заключило контракт с компанией BBN, и на следующий год, в 1969-м, ARPANET заработала, начав с четырёх узлов. По данным NSF, фонд запустил NSFNET в 1986 году, чтобы связать академических исследователей с суперкомпьютерными центрами.","sources":[{"title":"DARPA: ARPANET","url":"https://www.darpa.mil/news/features/arpanet","accessed":"2026-10-03","kind":"agency","quote":"the ARPANET began with four computer nodes … in 1968 when ARPA contracted BBN Technologies to build the first routers … which enabled ARPANET to become operational the following year. … not formally decommissioned until 1990."},{"title":"NSF: Birth of the Commercial Internet","url":"https://www.nsf.gov/impacts/internet","accessed":"2026-10-03","kind":"agency","quote":"In 1986, the U.S. National Science Foundation launched NSFNET to connect academic researchers to a new system of supercomputer centers. … prompted the U.S. National Science Foundation to shut down NSFNET in 1995."}],"concepts":["arpanet_vs_nsfnet"],"prereq_concepts":["arpanet","nsfnet"],"type":"comparison","a":"ARPANET","b":"NSFNET","criteria":[{"name":"Кто запустил","a":"Агентство ARPA","b":"Национальный научный фонд США (NSF)"},{"name":"Начало работы","a":"1969 год, четыре узла","b":"1986 год, по данным NSF"},{"name":"Закрытие","a":"Официально в 1990 году, по данным DARPA","b":"В 1995 году, по данным NSF"}]},{"id":"it.internet-history.nsfnet.speed-timeline-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.nsfnet.speed-timeline","explanation":"Сначала 56 Кбит/с в 1986 году, затем стройка T1 с 1987 года и её завершение в 1988 году, а в 1991 году переход на T3. Computer History Museum оценивает скорость T3 в 44 Мбит/с.","type":"quiz_ordering","prompt":"Расставьте этапы магистрали NSFNET по порядку, от раннего к позднему","items":["Переход магистрали на T3","Завершён переход на T1","Магистраль работает на 56 Кбит/с","Начало строительства магистрали T1"],"correct_order":[2,3,1,0]}]},{"id":"it.internet-history.ipv6-path","domain":"it","topic_id":"it.internet-history","order":11,"title":"Прогноз и исчерпание адресов IPv4","hook":"В 1994 году рабочая группа IETF прогнозировала конец адресов IPv4 между 2005 и 2011 годами, пул IANA опустел в 2011-м","difficulty":3,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","ipv4","ipv6"],"prerequisites":["it.internet-history.tcp-ip-origins","it.internet-history.nsfnet"],"related":[],"cover":null,"cards":[{"id":"it.internet-history.ipv6-path.four-billion","status":"active","version":1,"tags":[],"title":"32 бита: больше 4 миллиардов адресов на бумаге","body":"По RFC 791 (1981 год) адрес IPv4 имеет фиксированную длину: четыре октета, то есть 32 бита, а 2^32 = 4 294 967 296. В RFC 1752 (1995 год) сказано, что такая структура может перечислить больше 4 миллиардов хостов (подключённых компьютеров) в 16,7 миллиона сетей. Но реальная эффективность раздачи адресов намного ниже, даже в теории.","sources":[{"title":"RFC 791: Internet Protocol","url":"https://www.rfc-editor.org/rfc/rfc791","accessed":"2026-10-03","kind":"standard","quote":"Addresses are fixed length of four octets (32 bits)."},{"title":"RFC 1752: The Recommendation for the IP Next Generation Protocol","url":"https://www.rfc-editor.org/rfc/rfc1752","accessed":"2026-10-03","kind":"primary","quote":"even though the current 32 bit IPv4 address structure can enumerate over 4 billion hosts on as many as 16.7 million networks, the actual address assignment efficiency is far less than that, even on a theoretical basis."}],"concepts":["ipv4_address_space"],"prereq_concepts":[],"type":"fact","claim":"Адрес IPv4 занимает 32 бита и может перечислить больше 4 миллиардов хостов, но реальная эффективность раздачи адресов намного ниже.","number":{"value":32,"unit":"бита"}},{"id":"it.internet-history.ipv6-path.why-classes","status":"active","version":1,"tags":[],"title":"Почему адреса кончались быстрее, чем числа","body":"По RFC 1752, низкую эффективность раздачи адресов IPv4 усиливали крупные порции: адреса выдавали блоками классов A, B и C. В августе 1990 года на встрече IETF, Инженерного совета интернета, в Ванкувере Фрэнк Соленски, Фил Гросс и Сью Хэрс спрогнозировали: при тогдашнем темпе выдачи адреса класса B кончатся к марту 1994 года.","sources":[{"title":"RFC 1752: The Recommendation for the IP Next Generation Protocol","url":"https://www.rfc-editor.org/rfc/rfc1752","accessed":"2026-10-03","kind":"primary","quote":"… exacerbated by the granularity of assignments using Class A, B and C addresses. In August 1990 during the Vancouver IETF meeting, … projected that the current rate of assignment would exhaust the Class B space by March of 1994."}],"concepts":["ipv4_address_classes"],"prereq_concepts":["ipv4_address_space"],"type":"why"},{"id":"it.internet-history.ipv6-path.ipng-1995","status":"active","version":1,"tags":[],"title":"IPng стал IPv6 с адресом в 128 бит","body":"В январе 1995 года вышел RFC 1752 Скотта Брэднера и Эллисон Манкин, руководителей направления IPng (IP Next Generation, IP следующего поколения) в IETF. Они рекомендовали IETF принять пересмотренное предложение как IPng, протокол получил имя IPv6. По действующей спецификации RFC 8200 (июль 2017 года) IPv6 увеличивает длину адреса с 32 до 128 бит.","sources":[{"title":"RFC 1752: The Recommendation for the IP Next Generation Protocol","url":"https://www.rfc-editor.org/rfc/rfc1752","accessed":"2026-10-03","kind":"primary","quote":"The IPng Area Directors recommend that the IETF designate this revised proposal as the IPng … The IANA has assigned version number 6 to IPng. The protocol itself will be called IPv6."},{"title":"RFC 8200: Internet Protocol, Version 6 (IPv6) Specification","url":"https://www.rfc-editor.org/rfc/rfc8200","accessed":"2026-10-03","kind":"standard","quote":"IPv6 increases the IP address size from 32 bits to 128 bits"}],"concepts":["ipng","ipv6_address"],"prereq_concepts":["ipv4_address_space"],"type":"fact","claim":"RFC 1752 в январе 1995 года рекомендовал IETF принять пересмотренное предложение как IPng, в IPv6 адрес вырос с 32 до 128 бит.","number":{"value":128,"unit":"бит"}},{"id":"it.internet-history.ipv6-path.why-classes-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.ipv6-path.why-classes","explanation":"Прогноз сделали Соленски, Гросс и Хэрс на встрече IETF в Ванкувере, исходя из тогдашнего темпа выдачи. Речь шла только о классе B, а не обо всём пространстве адресов IPv4.","type":"quiz_single","question":"Что, по прогнозу августа 1990 года, должно было закончиться к марту 1994 года?","options":["Адреса класса A","Адреса класса C","Адреса класса B","Все адреса IPv4"],"correct":2},{"id":"it.internet-history.ipv6-path.last-blocks","status":"active","version":1,"tags":[],"title":"Как IANA раздала последние блоки /8","body":"До февраля 2011 года IANA (Internet Assigned Numbers Authority, служба распределения адресов) выдавала адреса IPv4 пяти региональным регистратурам (RIR) блоками /8, по 1/256 пространства. По глобальной политике последние пять блоков /8 надо было поровну раздать пяти RIR. 3 февраля 2011 года NRO, представитель RIR, объявила: пул IPv4 у IANA пуст.","sources":[{"title":"NRO: Free Pool of IPv4 Address Space Depleted","url":"https://www.nro.net/ipv4-free-pool-depleted/","accessed":"2026-10-03","kind":"agency","quote":"… 3 February 2011 – The Number Resource Organization (NRO) announced today that the free pool of available IPv4 addresses is now fully depleted. … blocks that equate to 1/256th of the entire IPv4 address space."}],"concepts":["ipv4_exhaustion","regional_internet_registry"],"prereq_concepts":["ipv4_address_space"],"type":"how_it_works","steps":["IANA выдавала регистратурам RIR блоки /8, каждый в 1/256 пространства IPv4.","31 января 2011 года IANA выдала два блока APNIC, регистратуре Азиатско-Тихоокеанского региона, и это запустило политику.","3 февраля 2011 года IANA раздала оставшиеся пять блоков /8 поровну пяти RIR."]},{"id":"it.internet-history.ipv6-path.ipv4-timeline","status":"active","version":1,"tags":[],"title":"Прогнозы конца IPv4 и что было дальше","body":"В 1994 году рабочая группа IETF ALE (Address Lifetime Expectations, ожидаемый срок жизни адресов) по тогдашней статистике выдачи предсказала конец адресов IPv4 между 2005 и 2011 годами. Надёжность прогноза оспаривали. Регистратура RIPE NCC дошла до последнего блока /8 в 2012 году, а 25 ноября 2019 года объявила, что адреса IPv4 у неё закончились.","sources":[{"title":"RFC 1752: The Recommendation for the IP Next Generation Protocol","url":"https://www.rfc-editor.org/rfc/rfc1752","accessed":"2026-10-03","kind":"primary","quote":"March 1994 Seattle … They projected at the Seattle meeting … the Internet would exhaust the IPv4 address space between 2005 and 2011. … called into question the reliability of this projection."},{"title":"RIPE NCC: The RIPE NCC has run out of IPv4 Addresses","url":"https://www.ripe.net/about-us/news/the-ripe-ncc-has-run-out-of-ipv4-addresses/","accessed":"2026-10-03","kind":"agency","quote":"The RIPE NCC has run out of IPv4 Addresses 25 Nov 2019 … IPv4 run-out has long been anticipated and planned for by the RIPE community. … after we reached our last /8 in 2012."}],"concepts":["ipv4_exhaustion"],"prereq_concepts":["regional_internet_registry"],"type":"timeline","events":[{"year":1990,"label":"Прогноз о конце адресов класса B к марту 1994 года"},{"year":1994,"label":"Группа ALE прогнозирует конец IPv4 между 2005 и 2011 годами"},{"year":2012,"label":"RIPE NCC доходит до последнего блока /8"},{"year":2019,"label":"25 ноября у RIPE NCC заканчиваются адреса IPv4"}],"takeaway":"О своём исчерпании адресов в 2019 году RIPE NCC написала, что сообщество RIPE давно его ожидало и готовилось к нему."},{"id":"it.internet-history.ipv6-path.ipv4-timeline-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.ipv6-path.ipv4-timeline","explanation":"Неверно. Конец класса B к марту 1994 года предсказали ещё в 1990 году. Группа ALE в 1994 году говорила обо всём пространстве IPv4, а её прогноз, по RFC 1752, критиковали и как слишком оптимистичный, и как слишком пессимистичный.","type":"quiz_true_false","statement":"Группа ALE в 1994 году прогнозировала конец адресов класса B, а не всего пространства IPv4","correct":false}]},{"id":"it.internet-history.how-it-began","domain":"it","topic_id":"it.internet-history","order":null,"title":"Как появился интернет","hook":"От двух букв в 1969 году до веба, которым вы пользуетесь сейчас","difficulty":1,"est_minutes":4,"status":"draft","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["история интернета","arpanet"],"prerequisites":[],"related":[],"cover":{"prompt":"Четыре больших компьютера конца 1960-х стоят далеко друг от друга и соединены длинными тонкими линиями, по линиям движутся маленькие квадратные пакеты","alt":"Четыре старых компьютера, соединённые линиями, по которым идут пакеты данных","asset":"illustrations/covers/it/internet-history/how-it-began.webp","license":"generated","credit":"Иллюстрация: Между прочим","focus":{"x":0.5,"y":0.5}},"cards":[{"id":"it.internet-history.how-it-began.lo","status":"active","version":1,"tags":[],"title":"Первым сообщением в сети ARPANET было «LO»","body":"29 октября 1969 года в 22:30 студент Чарли Клайн из Калифорнийского университета в Лос-Анджелесе попытался войти в компьютер Стэнфордского исследовательского института и набрал LOGIN. Сеть ARPANET, предшественница интернета, успела передать только «L» и «O», и система упала. Полный вход удался примерно через час.","sources":[{"title":"Leonard Kleinrock: The Day the Infant Internet Uttered its First Words","url":"https://www.lk.cs.ucla.edu/internet_first_words.html","accessed":"2026-10-01","kind":"primary","quote":"They succeeded in transmitting the \"l\" and the \"o\" and then the system crashed! Hence, the first message on the Internet was \"lo.\""}],"concepts":["arpanet"],"prereq_concepts":[],"illustration":{"prompt":"Спокойная плоская иллюстрация на тёплом бумажном фоне: два больших компьютера конца 1960-х соединены длинной линией, на экране терминала видны только буквы LO","alt":"Компьютер SDS Sigma 7 из Калифорнийского университета, первый узел сети ARPANET","asset":"illustrations/it/internet-history/how-it-began/lo.webp","license":"cc_by_sa","credit":"Фото: Andrew \"FastLizard4\" Adams from United States, CC BY-SA 2.0, Wikimedia Commons","origin":{"provider":"commons","url":"https://commons.wikimedia.org/wiki/File:The_SDS_Sigma-7_The_First_Computer_to_be_Connected_to_the_Internet_(6294434636).jpg","author":"Andrew \"FastLizard4\" Adams from United States","license_name":"CC BY-SA 2.0","license_url":"https://creativecommons.org/licenses/by-sa/2.0"},"focus":{"x":0.7,"y":0.5}},"type":"fact","claim":"Первая передача по ARPANET 29 октября 1969 года оборвалась после букв «L» и «O»."},{"id":"it.internet-history.how-it-began.web-is-not-internet","status":"active","version":1,"tags":[],"title":"Интернет и веб — не одно и то же","body":"Интернет — это сеть сетей: компьютерные сети по всему миру, связанные линиями связи. Веб — сервис поверх неё: документы и страницы со ссылками, которые открываются в браузере. Систему, из которой вырос веб, Тим Бернерс-Ли предложил в CERN в марте 1989 года, почти через 20 лет после первого сообщения в ARPANET.","sources":[{"title":"Wikipedia: World Wide Web","url":"https://en.wikipedia.org/wiki/World_Wide_Web","accessed":"2026-10-01","kind":"encyclopedia","quote":"The Internet is a global system of computer networks interconnected through telecommunications and optical networking. In contrast, the World Wide Web is a global collection of documents and other resources, linked by hyperlinks and URIs."},{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-01","kind":"primary","quote":"In March 1989, Sir Tim Berners-Lee, while working at CERN, wrote a proposal to develop a distributed information system."}],"concepts":["internet","world_wide_web"],"prereq_concepts":[],"type":"myth_vs_fact","myth":"Интернет и веб — синонимы","fact":"Веб — это сервис со ссылками между документами, а интернет — сеть, которая эти документы доставляет"},{"id":"it.internet-history.how-it-began.at-sign","status":"active","version":1,"tags":[],"title":"Почему в адресе почты стоит @","body":"В 1971 году Рэй Томлинсон из компании BBN доработал программу SNDMSG, чтобы письма уходили на другой компьютер сети. Имя пользователя нужно было отделить от имени машины. Он выбрал @: этот знак не встречался в именах пользователей, а по-английски читается «at», то есть «на». Формат user@host с тех пор не изменился.","sources":[{"title":"Wikipedia: Ray Tomlinson","url":"https://en.wikipedia.org/wiki/Ray_Tomlinson","accessed":"2026-10-01","kind":"encyclopedia","quote":"it was not used in usernames or in TENEX programming, and it intuitively conveyed the intended meaning."},{"title":"Internet Hall of Fame: Raymond Tomlinson","url":"https://www.internethalloffame.org/inductee/raymond-tomlinson/","accessed":"2026-10-01","kind":"primary","quote":"Raymond Tomlinson is widely known for inventing network electronic mail, choosing the \"@\" sign in emails to connect the username with the destination address."}],"concepts":["email_address"],"prereq_concepts":["arpanet"],"type":"why","deeper":"Первое такое письмо Томлинсон отправил между двумя компьютерами, которые стояли рядом."},{"id":"it.internet-history.how-it-began.lo-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.how-it-began.lo","explanation":"Система упала после второй буквы, поэтому первым сообщением стало «LO». Полный вход получился примерно через час.","type":"quiz_single","question":"Что успела передать ARPANET в первом сообщении 1969 года?","options":["Слово LOGIN целиком","Буквы L и O","Слово HELLO","Адрес с символом @"],"correct":1},{"id":"it.internet-history.how-it-began.packets","status":"active","version":1,"tags":[],"title":"Как данные идут по сети кусочками","body":"Телефонная сеть выделяет разговору отдельный канал на всё время звонка. ARPANET, а за ней и интернет, устроены иначе: данные делят на короткие пакеты, и сеть занимает линию только на время передачи каждого из них. Поэтому одни и те же линии одновременно обслуживают много пользователей.","sources":[{"title":"Wikipedia: Packet switching","url":"https://en.wikipedia.org/wiki/Packet_switching","accessed":"2026-10-01","kind":"encyclopedia","quote":"The packets are routed individually, sometimes taking different paths, resulting in out-of-order delivery."}],"concepts":["packet_switching"],"prereq_concepts":[],"type":"how_it_works","steps":["Сообщение делят на пакеты, в заголовке каждого есть адрес получателя, а часто и порядковый номер.","Узлы сети пересылают пакеты по отдельности, иногда разными путями, поэтому они могут прийти не по порядку.","Получатель собирает исходное сообщение по номерам пакетов."],"analogy":"Как книга, которую отправили по почте отдельными главами в пронумерованных конвертах."},{"id":"it.internet-history.how-it-began.milestones","status":"active","version":1,"tags":[],"title":"От ARPANET до веба: пять дат","body":"Интернет не включили в один день. Сначала в 1969 году заработала ARPANET. В 1974 году Винтон Серф и Роберт Кан опубликовали протокол, по которому разные сети могли обмениваться пакетами. 1 января 1983 года ARPANET разом перешла на TCP/IP. Веб появился позже, поверх уже готового интернета.","sources":[{"title":"Internet Society: A Brief History of the Internet","url":"https://www.internetsociety.org/internet/history-internet/brief-history-internet/","accessed":"2026-10-01","kind":"primary","quote":"One of the more interesting challenges was the transition of the ARPANET host protocol from NCP to TCP/IP as of January 1, 1983."},{"title":"CERN, Web at 30: Web History","url":"https://web30.web.cern.ch/web-history.html","accessed":"2026-10-01","kind":"primary","quote":"The first announcement was on 6 August 1991 to alt.hypertext, a newsgroup for hypertext enthusiasts."}],"concepts":["tcp_ip","internet"],"prereq_concepts":["arpanet"],"type":"timeline","events":[{"year":1969,"label":"Первое сообщение по ARPANET"},{"year":1974,"label":"Статья Серфа и Кана о протоколе TCP"},{"year":1983,"label":"ARPANET переходит на TCP/IP"},{"year":1989,"label":"Бернерс-Ли предлагает в CERN систему, из которой вырос веб"},{"year":1991,"label":"Бернерс-Ли объявляет о вебе в группах новостей интернета"}],"takeaway":"ARPANET появилась почти на двадцать лет раньше веба."},{"id":"it.internet-history.how-it-began.milestones-quiz","status":"active","version":1,"tags":[],"card_ref":"it.internet-history.how-it-began.milestones","explanation":"ARPANET заработала в 1969 году, статья Серфа и Кана вышла в 1974-м, переход на TCP/IP случился 1 января 1983 года, а веб предложили в 1989-м.","type":"quiz_ordering","prompt":"Расставьте события по порядку, от раннего к позднему","items":["ARPANET переходит на TCP/IP","Первое сообщение по ARPANET","Предложение веба в CERN","Статья о протоколе TCP"],"correct_order":[1,3,0,2]}]},{"id":"it.how-internet-works.after-enter","domain":"it","topic_id":"it.how-internet-works","order":1,"title":"Что происходит после нажатия Enter","hook":"Между Enter и открытой страницей браузер ищет адрес, здоровается с сервером и получает ответ по кусочкам","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["веб","браузер","dns"],"prerequisites":[],"related":["it.internet-history.how-it-began"],"cover":null,"cards":[{"id":"it.how-internet-works.after-enter.five-steps","status":"active","version":1,"tags":[],"title":"Путь от адреса сайта до готовой страницы","body":"Когда вы вводите адрес сайта, браузер сначала узнаёт у DNS, системы доменных имён, настоящий адрес сервера, на котором живёт сайт. Затем отправляет серверу HTTP-запрос на языке HTTP, которым браузер и сервер договариваются. Сервер отвечает «200 OK» и присылает файлы сайта маленькими кусочками, пакетами. Браузер собирает из них страницу.","sources":[{"title":"MDN: How the web works","url":"https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Web_standards/How_the_web_works","accessed":"2026-10-02","kind":"documentation","quote":"If the server approves the client's request, the server sends the client a \"200 OK\" message, which means \"Of course you can look at that website! Here it is\", and then starts sending the website's files to the browser as a series of small chunks called packets."}],"concepts":["page_load","http_request","packet"],"prereq_concepts":["dns"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: слева ноутбук с браузером, справа сервер. Между ними четыре пронумерованные стрелки: запрос адреса к книжке с подписью DNS, стрелка с подписью HTTP-запрос, обратная стрелка с табличкой 200 OK и цепочка маленьких конвертов-пакетов, которые складываются в страницу на экране","alt":"Шаги загрузки страницы от поиска адреса в DNS до сборки пакетов в браузере","license":"own"},"type":"how_it_works","steps":["Узнать у DNS настоящий адрес сервера, на котором живёт сайт.","Отправить серверу HTTP-запрос и получить ответ «200 OK».","Принять файлы сайта пакетами и собрать из них страницу."],"analogy":"Как поход в магазин из примера MDN: сначала найти адрес магазина, потом сделать заказ на понятном продавцу языке и забрать покупки."},{"id":"it.how-internet-works.after-enter.dns-first","status":"active","version":1,"tags":[],"title":"Первым делом браузер ищет не страницу, а адрес","body":"Если вы ещё не заходили на сайт, загрузка начинается не с запроса страницы. Сначала браузер делает DNS-запрос: имя сайта нужно превратить в IP-адрес, адрес сервера в сети. Отвечает сервер имён (name server). После этого адрес, скорее всего, какое-то время хранится во временной памяти (кэше), и в следующий раз браузер возьмёт его оттуда.","sources":[{"title":"MDN: Populating the page: how browsers work","url":"https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/How_browsers_work","accessed":"2026-10-02","kind":"documentation","quote":"If you've never visited this site, a DNS lookup must happen. Your browser requests a DNS lookup, which is eventually fielded by a name server, which in turn responds with an IP address. After this initial request, the IP will likely be cached for a time"}],"concepts":["dns_lookup","dns_cache"],"prereq_concepts":["ip_address"],"type":"fact","claim":"Загрузка страницы с нового сайта начинается с DNS-запроса, который превращает имя сайта в IP-адрес."},{"id":"it.how-internet-works.after-enter.handshakes","status":"active","version":1,"tags":[],"title":"Почему браузер сначала здоровается с сервером","body":"Узнав адрес, браузер сначала открывает соединение по TCP, протоколу надёжной доставки данных, через тройное рукопожатие (three-way handshake): три сообщения SYN, SYN-ACK и ACK, которыми стороны начинают сеанс связи. Для защищённого соединения HTTPS следом идёт согласование TLS: оно проверяет сервер и выбирает шифр. Только потом уходит запрос.","sources":[{"title":"MDN: Populating the page: how browsers work","url":"https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/How_browsers_work","accessed":"2026-10-02","kind":"documentation","quote":"TCP's three-way handshaking technique is often referred to as \"SYN-SYN-ACK\" — or more accurately SYN, SYN-ACK, ACK — because there are three messages transmitted by TCP to negotiate and start a TCP session between two computers."},{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"The principal reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion."}],"concepts":["tcp_handshake","tls_negotiation"],"prereq_concepts":["page_load"],"illustration":{"prompt":"Плоская схема последовательности на светлом фоне: слева браузер, справа сервер, между ними сверху вниз три стрелки с подписями SYN, SYN-ACK и ACK, ниже отдельный блок с замком и подписью TLS, и только под ним стрелка с подписью запрос страницы","alt":"Три сообщения SYN, SYN-ACK и ACK, затем согласование TLS и только после него запрос страницы","license":"own"},"type":"why","deeper":"RFC 9293 называет главную причину тройного обмена: он не даёт старым повторным запросам на соединение внести путаницу."},{"id":"it.how-internet-works.after-enter.five-steps-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.after-enter.five-steps","explanation":"Сначала DNS даёт адрес, затем уходит HTTP-запрос, сервер отвечает «200 OK» и шлёт файлы пакетами, а браузер их собирает. Как именно данные идут через интернет, определяют протоколы TCP/IP.","type":"quiz_ordering","prompt":"Расставьте шаги загрузки страницы по порядку, от первого к последнему","items":["Сервер отвечает «200 OK»","Браузер собирает страницу из пакетов","Браузер узнаёт адрес сервера через DNS","Браузер отправляет HTTP-запрос"],"correct_order":[2,3,0,1]},{"id":"it.how-internet-works.after-enter.first-14kb","status":"active","version":1,"tags":[],"title":"Первая порция страницы весит около 14 КБ","body":"Страница приходит не одним куском. По данным MDN, первая порция содержимого, которую получает браузер, обычно 14 КБ. Если HTML больше, браузер не ждёт остального и начинает разбирать и отрисовывать то, что уже пришло. Поэтому разработчикам советуют уложить в первые 14 КБ всё для первой отрисовки, хотя бы HTML и CSS каркаса страницы.","sources":[{"title":"MDN: Populating the page: how browsers work","url":"https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/How_browsers_work","accessed":"2026-10-02","kind":"documentation","quote":"Time to First Byte (TTFB) is the time between when the user made the request — say by clicking on a link — and the receipt of this first packet of HTML. The first chunk of content is usually 14KB of data."}],"concepts":["first_response_chunk"],"prereq_concepts":["page_load","packet"],"type":"fact","claim":"Первая порция содержимого, которую браузер получает от сервера, обычно составляет 14 КБ.","number":{"value":14,"unit":"КБ"}},{"id":"it.how-internet-works.after-enter.latency-not-speed","status":"active","version":1,"tags":[],"title":"Медленный сайт не значит, что у вас мало мегабит","body":"Мегабиты в секунду описывают пропускную способность (bandwidth), максимальную скорость канала. Задержка (latency) означает другое: время пути пакета до получателя. Она часто набегает не над океанами, а на последних милях: по отчётам FCC, комиссии связи США, в книге 2013 года, при проводном доступе в США до узла провайдера уходило 10–65 мс.","sources":[{"title":"High Performance Browser Networking: Primer on Latency and Bandwidth","url":"https://hpbn.co/primer-on-latency-and-bandwidth/","accessed":"2026-10-02","kind":"textbook","quote":"In practice this translates into 10-65 ms of latency just to the closest measuring node within the ISP’s core network, before the packet is even routed to its destination!"}],"concepts":["latency","bandwidth","last_mile"],"prereq_concepts":["packet"],"type":"myth_vs_fact","myth":"Если сайт открывается медленно, значит, у меня мало мегабит.","fact":"Пропускная способность и задержка это разные величины, и заметная часть задержки часто возникает на последних милях до пользователя."},{"id":"it.how-internet-works.after-enter.first-14kb-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.after-enter.first-14kb","explanation":"По MDN, первая порция обычно 14 КБ, и браузер начинает разбор с неё. Время от запроса до прихода этой первой порции называют TTFB (Time to First Byte), время до первого байта.","type":"quiz_single","question":"Сколько обычно весит первая порция страницы, которую получает браузер?","options":["Около 1,4 КБ","Около 14 КБ","Около 140 КБ","Около 1,4 МБ"],"correct":1}]},{"id":"it.how-internet-works.packets-and-layers","domain":"it","topic_id":"it.how-internet-works","order":2,"title":"Пакеты, слои и число 1500","hook":"У каждого пакета есть счётчик жизни, а предел в 1500 октетов для Ethernet записан в стандарт в 1984 году","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["пакеты","ip","ethernet"],"prerequisites":[],"related":["it.internet-history.how-it-began"],"cover":null,"cards":[{"id":"it.how-internet-works.packets-and-layers.four-layers","status":"active","version":1,"tags":[],"title":"Стек интернета описан четырьмя слоями, а не моделью OSI","body":"RFC 1122 (октябрь 1989 года), требования к узлам интернета, делит протоколы на четыре слоя: прикладной (например, DNS), транспортный (TCP и UDP), межсетевой (IP) и канальный, связь внутри своей сети. Со схемой слоёв OSI это не совпадает: по словам RFC, прикладной слой интернета объединяет функции двух её верхних слоёв, представления и приложения.","sources":[{"title":"RFC 1122: Requirements for Internet Hosts, Communication Layers","url":"https://www.rfc-editor.org/rfc/rfc1122","accessed":"2026-10-02","kind":"standard","quote":"The application layer of the Internet suite essentially combines the functions of the top two layers -- Presentation and Application -- of the OSI reference model."}],"concepts":["tcp_ip_layers","osi_model"],"prereq_concepts":[],"illustration":{"prompt":"Плоская схема на светлом фоне: четыре горизонтальных слоя один над другим с подписями сверху вниз прикладной, транспортный, межсетевой, канальный; в каждом слое мелко по одному примеру протокола: DNS, TCP и UDP, IP, связь в локальной сети","alt":"Четыре слоя стека интернета по RFC 1122, от прикладного до канального","license":"own"},"type":"myth_vs_fact","myth":"Интернет устроен по модели OSI, как её рисуют в учебниках.","fact":"RFC 1122 описывает стек протоколов интернета четырьмя слоями: прикладным, транспортным, межсетевым и канальным."},{"id":"it.how-internet-works.packets-and-layers.ip-header","status":"active","version":1,"tags":[],"title":"Как IP-пакет несёт адрес и счётчик жизни","body":"У IP-пакета есть заголовок, служебная часть перед данными, где записаны адреса отправителя и получателя. По RFC 791 (сентябрь 1981 года) адрес IPv4 имеет фиксированную длину: четыре октета по 8 бит, то есть 32 бита. Там же есть поле TTL (Time to Live, «время жизни»): его задаёт отправитель, а уменьшает каждая точка маршрута, где пакет обрабатывают.","sources":[{"title":"RFC 791: Internet Protocol","url":"https://www.rfc-editor.org/rfc/rfc791","accessed":"2026-10-02","kind":"standard","quote":"Addresses are fixed length of four octets (32 bits)."}],"concepts":["ip_header","ipv4_address","ttl"],"prereq_concepts":["packet"],"illustration":{"prompt":"Плоская схема на светлом фоне: конверт-пакет, у которого верхняя полоса подписана заголовок, а нижняя часть данные. В заголовке крупно выделены три поля: адрес отправителя, адрес получателя из четырёх ячеек по 8 бит и маленький счётчик TTL","alt":"IP-пакет с заголовком, где видны адреса из 32 бит и поле TTL","license":"own"},"type":"how_it_works","steps":["Отправитель записывает в заголовок адрес получателя длиной 32 бита и начальное значение TTL.","Каждый узел на пути обрабатывает заголовок, уменьшает TTL и передаёт пакет дальше.","Если TTL дошёл до нуля раньше, чем пакет добрался до цели, пакет уничтожают."]},{"id":"it.how-internet-works.packets-and-layers.ttl-counter","status":"active","version":1,"tags":[],"title":"Почему пакет не может кружить по сети вечно","body":"Каждый узел уменьшает TTL, и у счётчика есть конец. По RFC 792 (сентябрь 1981 года) шлюз, узел между сетями, увидев у пакета TTL, равный нулю, обязан пакет отбросить. Он может и сообщить отправителю служебным сообщением ICMP «время истекло» (time exceeded). В IPv6 поле называется Hop Limit («предел переходов»), каждый узел уменьшает его на 1.","sources":[{"title":"RFC 792: Internet Control Message Protocol","url":"https://www.rfc-editor.org/rfc/rfc792","accessed":"2026-10-02","kind":"standard","quote":"is zero it must discard the datagram.  The gateway may also notify the source host via the time exceeded message."},{"title":"RFC 8200: Internet Protocol, Version 6 (IPv6) Specification","url":"https://www.rfc-editor.org/rfc/rfc8200","accessed":"2026-10-02","kind":"standard","quote":"Unlike IPv4, IPv6 nodes are not required to enforce maximum packet lifetime.  That is the reason the IPv4 \"Time-to-Live\" field was renamed \"Hop Limit\" in IPv6."}],"concepts":["ttl_expiry","icmp_time_exceeded","hop_limit"],"prereq_concepts":["ttl"],"type":"why","deeper":"В IPv6 поле переименовали, потому что узлы IPv6 не обязаны ограничивать время жизни пакета: это просто счётчик переходов."},{"id":"it.how-internet-works.packets-and-layers.ip-header-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.packets-and-layers.ip-header","explanation":"Адрес IPv4 состоит из четырёх октетов по 8 бит, всего 32 бита. Поле TTL в том же заголовке занимает 8 бит.","type":"quiz_single","question":"Сколько бит занимает адрес IPv4 по RFC 791?","options":["8 бит","32 бита","48 бит","128 бит"],"correct":1},{"id":"it.how-internet-works.packets-and-layers.mtu-1500","status":"active","version":1,"tags":[],"title":"В кадр Ethernet помещается до 1500 октетов IP","body":"Кадр Ethernet, единица передачи в локальной сети, ограничен по размеру. По RFC 894 (апрель 1984 года) IP-датаграмма (IP-пакет) по Ethernet не длиннее 1500 октетов, блоков по 8 бит. Нижняя граница поля данных 46 октетов, короткий пакет дополняют нулями. Это предел Ethernet: общий для интернета максимум по умолчанию тот же RFC называет 576 октетов.","sources":[{"title":"RFC 894: A Standard for the Transmission of IP Datagrams over Ethernet Networks","url":"https://www.rfc-editor.org/rfc/rfc894","accessed":"2026-10-02","kind":"standard","quote":"thus the maximum length of an IP datagram sent over an Ethernet is 1500 octets."}],"concepts":["ethernet_mtu"],"prereq_concepts":["packet"],"type":"fact","claim":"IP-датаграмма, отправляемая по Ethernet, не может быть длиннее 1500 октетов.","number":{"value":1500,"unit":"октетов"}},{"id":"it.how-internet-works.packets-and-layers.robustness-principle","status":"active","version":1,"tags":[],"title":"Будьте либеральны в том, что принимаете","body":"Это правило устойчивости (robustness principle) из RFC 1122, вышедшего в октябре 1989 года под редакцией Р. Брейдена. По RFC, на каждом уровне протоколов применение правила может дать огромный выигрыш в устойчивости и совместимости. В RFC 791 1981 года мысль сказана иначе: реализация должна быть консервативна в отправке и либеральна в приёме.","sources":[{"title":"RFC 1122: Requirements for Internet Hosts, Communication Layers","url":"https://www.rfc-editor.org/rfc/rfc1122","accessed":"2026-10-02","kind":"standard","quote":"At every layer of the protocols, there is a general rule whose application can lead to enormous benefits in robustness and interoperability [IP:1]: \"Be liberal in what you accept, and conservative in what you send\""},{"title":"RFC 791: Internet Protocol","url":"https://www.rfc-editor.org/rfc/rfc791","accessed":"2026-10-02","kind":"standard","quote":"In general, an implementation must be conservative in its sending behavior, and liberal in its receiving behavior."}],"concepts":["robustness_principle"],"prereq_concepts":["tcp_ip_layers"],"type":"quote","text":"Be liberal in what you accept, and conservative in what you send","translation":"Будьте либеральны в том, что принимаете, и консервативны в том, что отправляете","author":"RFC 1122, редактор Р. Брейден (R. Braden)","year":1989,"context":"Раздел 1.2.2 «Robustness Principle» в требованиях к узлам интернета, которые описывают, как узлы должны работать с протоколами."},{"id":"it.how-internet-works.packets-and-layers.mtu-1500-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.packets-and-layers.mtu-1500","explanation":"Предел в 1500 октетов записан в RFC 894. Шлюзы при этом обязаны принимать пакеты полной длины и при необходимости дробить их на части.","type":"quiz_fill_in","template":"По RFC 894 IP-датаграмма, отправляемая по Ethernet, не длиннее ___ октетов","answers":[["1500","1 500"]]}]},{"id":"it.how-internet-works.ip-addresses","domain":"it","topic_id":"it.how-internet-works","order":3,"title":"Как закончились адреса IPv4","hook":"Адресов IPv4 около 4,3 миллиарда, и центральный запас IANA иссяк 3 февраля 2011 года","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["ip-адрес","ipv4","ipv6"],"prerequisites":["it.how-internet-works.packets-and-layers"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.ip-addresses.four-billion","status":"active","version":1,"tags":[],"title":"Почему адресов IPv4 всего около 4,3 миллиарда","body":"По RFC 791 (сентябрь 1981 года) адрес IPv4 имеет фиксированную длину: четыре октета, то есть 32 бита. Каждый бит бывает 0 или 1, поэтому разных адресов 2^32 = 4 294 967 296, около 4,3 миллиарда. Длина адреса не меняется, значит, и это число не растёт: больше уникальных адресов IPv4 не бывает, сколько бы устройств ни подключалось к сети.","sources":[{"title":"RFC 791: Internet Protocol","url":"https://www.rfc-editor.org/rfc/rfc791","accessed":"2026-10-02","kind":"standard","quote":"Addresses are fixed length of four octets (32 bits)."}],"concepts":["ipv4_address_space"],"prereq_concepts":["ipv4_address"],"illustration":{"prompt":"Плоская схема на светлом фоне: адрес IPv4 как четыре ячейки по 8 клеточек-битов, в каждой клеточке 0 или 1; под ячейками подпись 32 бита и стрелка к числу 4 294 967 296","alt":"Адрес IPv4 из четырёх октетов по 8 бит и число возможных адресов 4 294 967 296","license":"own"},"type":"why"},{"id":"it.how-internet-works.ip-addresses.exhaustion-2011","status":"active","version":1,"tags":[],"title":"От IANA до листа ожидания: как кончались адреса","body":"Адреса раздают по цепочке: IANA, центральный распорядитель адресов, выдаёт пяти региональным регистратурам (RIR) блоки /8, каждый в 1/256 всего пространства IPv4, а те раздают их дальше. 3 февраля 2011 года IANA раздала последние блоки, её запас иссяк. Регистратуры выдавали адреса ещё годы: RIPE NCC объявила об их исчерпании 25 ноября 2019 года.","sources":[{"title":"NRO: Free Pool of IPv4 Address Space Depleted","url":"https://www.nro.net/ipv4-free-pool-depleted","accessed":"2026-10-02","kind":"primary","quote":"Montevideo, 3 February 2011 – The Number Resource Organization (NRO) announced today that the free pool of available IPv4 addresses is now fully depleted."},{"title":"RIPE NCC: The RIPE NCC has run out of IPv4 Addresses","url":"https://www.ripe.net/about-us/news/the-ripe-ncc-has-run-out-of-ipv4-addresses/","accessed":"2026-10-02","kind":"primary","quote":"we have been able to provide many thousands of new networks in our service region with /22 allocations after we reached our last /8 in 2012."}],"concepts":["ipv4_exhaustion","regional_internet_registry"],"prereq_concepts":["ipv4_address_space"],"type":"timeline","events":[{"year":2009,"label":"ICANN утверждает правило поровну раздать последние пять блоков /8"},{"year":2011,"label":"31 января IANA выдаёт два блока регистратуре APNIC"},{"year":2011,"label":"3 февраля IANA раздаёт последние блоки пяти регистратурам"},{"year":2012,"label":"RIPE NCC доходит до последнего /8 и выдаёт блоки /22"},{"year":2019,"label":"25 ноября адреса у RIPE NCC кончаются, открыт лист ожидания"}],"takeaway":"Центральный запас иссяк в 2011 году, но регистратуры раздавали адреса ещё годы."},{"id":"it.how-internet-works.ip-addresses.private-ranges","status":"active","version":1,"tags":[],"title":"Почему адрес 192.168.x.x встречается в разных сетях","body":"RFC 1918 (февраль 1996 года) отвёл под частные сети три диапазона: от 10.0.0.0 до 10.255.255.255, от 172.16.0.0 до 172.31.255.255 и от 192.168.0.0 до 192.168.255.255. Их берут без согласования с IANA и регистратурами, поэтому одни и те же адреса живут во многих сетях. Уникальны они только внутри сети, и в чужие сети такие пакеты слать не следует.","sources":[{"title":"RFC 1918: Address Allocation for Private Internets","url":"https://www.rfc-editor.org/rfc/rfc1918","accessed":"2026-10-02","kind":"standard","quote":"An enterprise that decides to use IP addresses out of the address space defined in this document can do so without any coordination with IANA or an Internet registry. The address space can thus be used by many enterprises."}],"concepts":["private_address"],"prereq_concepts":["ipv4_address"],"type":"why"},{"id":"it.how-internet-works.ip-addresses.exhaustion-2011-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.ip-addresses.exhaustion-2011","explanation":"IANA раздала последние блоки 3 февраля 2011 года, а RIPE NCC объявила об исчерпании 25 ноября 2019 года. Тогда же она открыла лист ожидания: по одному блоку /24 для своих членов (LIR), которые раньше не получали от неё IPv4.","type":"quiz_true_false","statement":"Запас IPv4 у IANA иссяк в 2011 году, но регистратура RIPE NCC выдавала адреса ещё несколько лет","correct":true},{"id":"it.how-internet-works.ip-addresses.ipv6-128","status":"active","version":1,"tags":[],"title":"IPv4 и IPv6: 32 бита против 128","body":"IPv6, новая версия протокола IP, задумана как преемник IPv4. RFC 8200 (июль 2017 года) увеличивает длину адреса с 32 до 128 бит. Каждый лишний бит удваивает число адресов, поэтому их больше не в 4 раза, а в 2^128 / 2^32 = 2^96 раз. Поле Time to Live из заголовка IPv4 в IPv6 переименовано в Hop Limit.","sources":[{"title":"RFC 8200: Internet Protocol, Version 6 (IPv6) Specification","url":"https://www.rfc-editor.org/rfc/rfc8200","accessed":"2026-10-02","kind":"standard","quote":"IPv6 increases the IP address size from 32 bits to 128 bits, to support more levels of addressing hierarchy, a much greater number of addressable nodes, and simpler autoconfiguration of addresses."},{"title":"RFC 791: Internet Protocol","url":"https://www.rfc-editor.org/rfc/rfc791","accessed":"2026-10-02","kind":"standard","quote":"Addresses are fixed length of four octets (32 bits)."}],"concepts":["ipv6_address"],"prereq_concepts":["ipv4_address_space","ttl"],"type":"comparison","a":"IPv4","b":"IPv6","criteria":[{"name":"Длина адреса","a":"32 бита, по RFC 791","b":"128 бит, по RFC 8200"},{"name":"Число адресов","a":"2^32 = 4 294 967 296","b":"2^128 = 340 282 366 920 938 463 463 374 607 431 768 211 456"},{"name":"Счётчик в заголовке","a":"Time to Live, «время жизни»","b":"Hop Limit, «предел переходов»"}]},{"id":"it.how-internet-works.ip-addresses.ipv6-adoption","status":"active","version":1,"tags":[],"title":"Почти половина пользователей приходит к Google по IPv6","body":"Google постоянно измеряет, сколько его пользователей подключаются по IPv6, и публикует график. Он показывает долю пользователей, которые обращаются к Google по IPv6. На 2 октября 2026 года последняя точка графика относится к 30 сентября 2026 года: 46,9%. Это доля среди пользователей Google, а не среди всех устройств в интернете.","sources":[{"title":"Google: IPv6 Adoption statistics","url":"https://www.google.com/intl/en/ipv6/statistics.html","accessed":"2026-10-02","kind":"primary","quote":"We are continuously measuring the availability of IPv6 connectivity among Google users. The graph shows the percentage of users that access Google over IPv6."},{"title":"Google: IPv6 adoption data behind the graph (adoption.js, month is zero-based, 8 is September)","url":"https://www.google.com/intl/en_ALL/ipv6/statistics/data/adoption.js","accessed":"2026-10-02","kind":"primary","quote":"[2026, 8, 30, 46.901183, 46.901183]"}],"concepts":["ipv6_adoption"],"prereq_concepts":["ipv6_address"],"type":"fact","claim":"30 сентября 2026 года по IPv6 к Google обращались 46,9% его пользователей.","number":{"value":46.9,"unit":"%"}},{"id":"it.how-internet-works.ip-addresses.private-ranges-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.ip-addresses.private-ranges","explanation":"Адрес 192.168.1.20 лежит в диапазоне от 192.168.0.0 до 192.168.255.255. Адрес 172.32.0.1 похож на частный, но блок 172.16 заканчивается на 172.31.255.255.","type":"quiz_single","question":"Какой из этих адресов частный по RFC 1918?","options":["172.32.0.1","192.168.1.20","11.0.0.1","193.168.0.1"],"correct":1}]},{"id":"it.how-internet-works.dns-basics","domain":"it","topic_id":"it.how-internet-works","order":4,"title":"DNS, адресная книга интернета","hook":"Тринадцать корневых имён DNS держат 12 организаций, а экземпляров корневых серверов намного больше","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["dns","домены","кэш"],"prerequisites":["it.how-internet-works.ip-addresses"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.dns-basics.address-book","status":"active","version":1,"tags":[],"title":"Как DNS находит адрес по имени сайта","body":"DNS (Domain Name System, система доменных имён) похожа на адресную книгу сайтов: по имени она выдаёт IP-адрес. Имена в DNS образуют дерево с корнем наверху. Как правило, сервер имён знает свою часть дерева и хранит указатели на другие серверы. Резолвер (resolver), программа, добывающая данные у серверов имён для клиента, идёт по этим указателям.","sources":[{"title":"MDN: How the web works","url":"https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Web_standards/How_the_web_works","accessed":"2026-10-02","kind":"documentation","quote":"The Domain Name System (DNS) is like an address book for websites."},{"title":"RFC 1034: Domain Names, Concepts and Facilities","url":"https://www.rfc-editor.org/rfc/rfc1034","accessed":"2026-10-02","kind":"standard","quote":"RESOLVERS are programs that extract information from name servers in response to client requests.  Resolvers must be able to access at least one name server and use that name server's information to answer a query directly, or pursue the query using referrals to other name servers."}],"concepts":["dns","dns_resolver","name_server"],"prereq_concepts":["ip_address"],"illustration":{"prompt":"Плоская схема на светлом фоне: перевёрнутое дерево, наверху точка с подписью корень, ниже ветви зон верхнего уровня, ещё ниже отдельные домены. Сбоку фигурка-резолвер, от которой пунктирные стрелки идут от корня вниз по ветке к нужному листу","alt":"Дерево имён DNS с корнем наверху и путь резолвера по указателям","license":"own"},"type":"how_it_works","steps":["Клиент передаёт имя сайта резолверу и ждёт IP-адрес.","Резолвер спрашивает сервер имён, а тот отвечает сам или указывает на другой сервер.","Резолвер идёт по указателям, пока не получит ответ от сервера, который знает нужную часть дерева."]},{"id":"it.how-internet-works.dns-basics.thirteen-roots","status":"active","version":1,"tags":[],"title":"13 корневых серверов DNS это 13 имён, а не 13 экземпляров","body":"Корневых серверов имён 13, их обозначают буквами от A до M, и обслуживают их 12 независимых организаций. За этими именами стоят экземпляры серверов: по данным root-servers.org на 2 октября 2026 года, рабочих экземпляров 2045. Ряд операторов использует anycast: один адрес доступен в разных местах, пакет уходит в одно из них.","sources":[{"title":"Root Server Technical Operations Association","url":"https://root-servers.org/","accessed":"2026-10-02","kind":"primary","quote":"the root server system consists of 2045 operational instances operated by the 12 independent root server operators. The 13 root name servers are operated by 12 independent organisations."},{"title":"RFC 4786: Operation of Anycast Services","url":"https://www.rfc-editor.org/rfc/rfc4786","accessed":"2026-10-02","kind":"standard","quote":"Anycast has in recent years become increasingly popular for adding redundancy to DNS servers to complement the redundancy that the DNS architecture itself already provides.  Several root DNS server operators have distributed their servers widely around the Internet"}],"concepts":["dns_root_servers","anycast"],"prereq_concepts":["dns"],"illustration":{"prompt":"Плоская карта мира на светлом фоне, по ней рассыпаны маленькие точки; над картой ряд из 13 букв от A до M и тонкие линии от букв к точкам","alt":"13 корневых имён DNS и их экземпляры на карте мира","license":"own"},"type":"fact","claim":"13 корневых серверов имён DNS обслуживают 12 независимых организаций.","number":{"value":13,"unit":"корневых имён"}},{"id":"it.how-internet-works.dns-basics.ttl-cache","status":"active","version":1,"tags":[],"title":"Почему новый адрес сайта виден не всем сразу","body":"У каждой записи DNS есть TTL (time to live, «время жизни»): по RFC 1035 это 32-битное число, которое задаёт, сколько запись может лежать в кэше, прежде чем снова спросить источник. Пока срок не вышел, кэш может отдавать старую запись. RFC 1912 советует перед крупными изменениями заранее временно уменьшить TTL, а после проверки вернуть его обратно.","sources":[{"title":"RFC 1035: Domain Names, Implementation and Specification","url":"https://www.rfc-editor.org/rfc/rfc1035","accessed":"2026-10-02","kind":"standard","quote":"a 32 bit signed integer that specifies the time interval that the resource record may be cached before the source of the information should again be consulted."},{"title":"RFC 1912: Common DNS Operational and Configuration Errors","url":"https://www.rfc-editor.org/rfc/rfc1912","accessed":"2026-10-02","kind":"standard","quote":"If you plan to make major changes, it's a good idea to turn this value down temporarily beforehand.  Then wait the previous minimum value, make your changes, verify their correctness, and turn this value back up."}],"concepts":["dns_ttl","dns_cache"],"prereq_concepts":["dns"],"type":"why","deeper":"Нулевой TTL по RFC 1035 значит, что запись годится только для текущего обмена и кэшировать её не следует."},{"id":"it.how-internet-works.dns-basics.thirteen-roots-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.dns-basics.thirteen-roots","explanation":"13 имён от A до M обслуживают 12 организаций. Значит, хотя бы одна из них отвечает сразу за два корневых имени.","type":"quiz_single","question":"Сколько независимых организаций обслуживают 13 корневых серверов DNS?","options":["13","12","1","2045"],"correct":1},{"id":"it.how-internet-works.dns-basics.udp-512","status":"active","version":1,"tags":[],"title":"Почему длинный ответ DNS по UDP может прийти обрезанным","body":"RFC 1035 (ноябрь 1987 года) рекомендует для обычных запросов UDP (User Datagram Protocol). Без расширения EDNS(0) из RFC 6891, которым клиент сообщает, что примет ответ больше, сообщение DNS по UDP ограничено 512 байтами без заголовков IP и UDP. Более длинное обрезают и ставят в заголовке бит TC, знак усечения (truncation).","sources":[{"title":"RFC 1035: Domain Names, Implementation and Specification","url":"https://www.rfc-editor.org/rfc/rfc1035","accessed":"2026-10-02","kind":"standard","quote":"Messages carried by UDP are restricted to 512 bytes (not counting the IP or UDP headers).  Longer messages are truncated and the TC bit is set in the header."},{"title":"RFC 6891: Extension Mechanisms for DNS (EDNS(0))","url":"https://www.rfc-editor.org/rfc/rfc6891","accessed":"2026-10-02","kind":"standard","quote":"The maximum allowable size of a DNS message over UDP not using the extensions described in this document is 512 bytes."}],"concepts":["dns_udp_limit"],"prereq_concepts":["dns"],"type":"why"},{"id":"it.how-internet-works.dns-basics.encrypted-dns","status":"active","version":1,"tags":[],"title":"DNS поверх TLS и поверх HTTPS","body":"В 2016 году, когда вышел RFC 7858, почти все запросы DNS шли незашифрованными, и их мог подслушать тот, у кого был доступ к каналу связи. Два стандарта шифруют их с помощью TLS, протокола защищённого соединения: DNS поверх TLS (DoT) и DNS поверх HTTPS (DoH). Это защита именно DNS-запросов в сети, а не обещание скрыть всё, что вы делаете.","sources":[{"title":"RFC 7858: Specification for DNS over Transport Layer Security (TLS)","url":"https://www.rfc-editor.org/rfc/rfc7858","accessed":"2026-10-02","kind":"standard","quote":"Today, nearly all DNS queries [RFC1034] [RFC1035] are sent unencrypted, which makes them vulnerable to eavesdropping by an attacker that has access to the network channel"},{"title":"RFC 8484: DNS Queries over HTTPS (DoH)","url":"https://www.rfc-editor.org/rfc/rfc8484","accessed":"2026-10-02","kind":"standard","quote":"Additionally, the use of the HTTPS default port 443 and the ability to mix DoH traffic with other HTTPS traffic on the same connection can deter unprivileged on-path devices from interfering with DNS operations and make DNS traffic analysis more difficult."}],"concepts":["dns_over_tls","dns_over_https"],"prereq_concepts":["dns"],"type":"comparison","a":"DNS поверх TLS (DoT)","b":"DNS поверх HTTPS (DoH)","criteria":[{"name":"Стандарт","a":"RFC 7858, май 2016 года","b":"RFC 8484, октябрь 2018 года"},{"name":"Порт по умолчанию","a":"TCP-порт 853","b":"443, порт HTTPS по умолчанию"},{"name":"Особенность","a":"Убирает возможность подслушать и подменить DNS-запросы в сети","b":"Можно смешать с другим HTTPS-трафиком, это может затруднить анализ DNS-трафика"}]},{"id":"it.how-internet-works.dns-basics.udp-512-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.dns-basics.udp-512","explanation":"По RFC 1035 сообщение DNS по UDP не больше 512 байт без заголовков IP и UDP, более длинное обрезают. Сами UDP-запросы DNS идут на порт 53 сервера.","type":"quiz_true_false","statement":"Классический ответ DNS по UDP может быть любого размера","correct":false}]},{"id":"it.how-internet-works.domain-names","domain":"it","topic_id":"it.how-internet-works","order":5,"title":"Домены, от .ru до .рф","hook":"Кириллический домен .рф в базе IANA записан как xn--p1ai, а делегирован России 12 мая 2010 года","difficulty":2,"est_minutes":4,"status":"draft","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["домены","рф","punycode"],"prerequisites":["it.how-internet-works.dns-basics"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.domain-names.ru-1994","status":"active","version":1,"tags":[],"title":"От .RU до .РФ: даты национальных доменов","body":"7 апреля 1994 года Россия получила национальный домен .RU. Кириллическую зону ждали дольше: в октябре 2008 года она получила название «РФ», 12 мая 2010 года домен .РФ официально передали России (делегировали), и заработали первые адреса, президент.рф и правительство.рф. Регистрировать имена в .РФ любой желающий смог только с 11 ноября 2010 года.","sources":[{"title":"Координационный центр доменов .RU/.РФ: О доменах","url":"https://cctld.ru/domains/about/","accessed":"2026-10-02","kind":"primary","quote":"Первые кириллические адреса в Сети заработали 12 мая 2010 года, сразу после того, как домен .РФ был официально делегирован России."},{"title":"IANA Root Zone Database: .рф (xn--p1ai)","url":"https://www.iana.org/domains/root/db/xn--p1ai.html","accessed":"2026-10-02","kind":"primary","quote":"Registration date 2010-05-12."}],"concepts":["country_code_tld","cyrillic_domain"],"prereq_concepts":["domain_name"],"type":"timeline","events":[{"year":1994,"label":"7 апреля Россия получает национальный домен .RU"},{"year":2008,"label":"В октябре кириллическая зона получает название «РФ»"},{"year":2010,"label":"12 мая домен .РФ делегирован России"},{"year":2010,"label":"11 ноября регистрация в .РФ открыта для всех"}],"takeaway":"Между делегированием .РФ и открытой регистрацией прошло почти полгода."},{"id":"it.how-internet-works.domain-names.tree-of-names","status":"active","version":1,"tags":[],"title":"Почему домен верхнего уровня пишут последним","body":"По RFC 1034 (ноябрь 1987 года) пространство доменных имён это дерево с корнем наверху. Имя узла это список меток на пути от него к корню. По соглашению метки пишут слева направо, от самой конкретной к самой общей, поэтому метка рядом с корнем, домен верхнего уровня, стоит справа. Метка не длиннее 63 октетов, имя целиком не длиннее 255.","sources":[{"title":"RFC 1034: Domain Names, Concepts and Facilities","url":"https://www.rfc-editor.org/rfc/rfc1034","accessed":"2026-10-02","kind":"standard","quote":"By convention, the labels that compose a domain name are printed or read left to right, from the most specific (lowest, farthest from the root) to the least specific (highest, closest to the root)."},{"title":"RFC 1035: Domain Names, Implementation and Specification","url":"https://www.rfc-editor.org/rfc/rfc1035","accessed":"2026-10-02","kind":"standard","quote":"labels          63 octets or less  names           255 octets or less"}],"concepts":["domain_name_tree"],"prereq_concepts":["domain_name","dns"],"type":"why"},{"id":"it.how-internet-works.domain-names.ru-1994-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.domain-names.ru-1994","explanation":".RU появился в 1994 году, название «РФ» зона получила в 2008-м, домен делегировали 12 мая 2010 года, а открытая регистрация началась 11 ноября 2010 года.","type":"quiz_ordering","prompt":"Расставьте события по порядку, от раннего к позднему","items":["Регистрация в .РФ открыта для всех","Домен .РФ делегирован России","Россия получает домен .RU","Кириллическая зона получает название «РФ»"],"correct_order":[2,3,1,0]},{"id":"it.how-internet-works.domain-names.new-gtlds","status":"active","version":1,"tags":[],"title":"Можно ли завести свой домен верхнего уровня","body":"Кроме национальных доменов вроде .ru есть общие домены верхнего уровня (gTLD). ICANN проводит программу новых gTLD раундами. В раунде 2012 года подали 1930 заявок. По данным ICANN на 31 августа 2026 года, 1241 новый домен из этого раунда введён в интернет, 653 заявки отозваны. Счётчик не вычитает домены, которые потом убрали из корневой зоны.","sources":[{"title":"ICANN New gTLD Program: Statistics","url":"https://newgtlds.icann.org/en/program-status/statistics","accessed":"2026-10-02","kind":"primary","quote":"Overview (as of 31 August 2026) Total Applications Submitted 1930 Completed New gTLD Program (gTLD Delegated** - introduced into Internet) 1241"}],"concepts":["generic_tld"],"prereq_concepts":["domain_name_tree"],"type":"mini_case","situation":"Компания хочет, чтобы её адрес заканчивался не на .ru, а на собственное окончание.","question":"Бывает ли такой собственный домен верхнего уровня?","solution":"Бывает: новые общие домены верхнего уровня появляются через программу ICANN. В раунде 2012 года подали 1930 заявок, и на 31 августа 2026 года 1241 домен из них введён в интернет.","lesson":"Из 1930 заявок 2012 года в интернет попал 1241 домен, то есть 1241 / 1930 ≈ 64%."},{"id":"it.how-internet-works.domain-names.who-runs-tld","status":"active","version":1,"tags":[],"title":"Кто управляет доменом .ru, записано в базе IANA","body":"В открытой базе корневой зоны IANA, организации, которая управляет корнем DNS, собраны данные о делегировании доменов верхнего уровня, общих и национальных. Управляющей организацией домена .ru там указан Coordination Center for TLD RU. Это Координационный центр доменов .RU/.РФ, администратор национальных доменов .RU и .РФ.","sources":[{"title":"IANA Root Zone Database","url":"https://www.iana.org/domains/root/db","accessed":"2026-10-02","kind":"primary","quote":".ru country-code Coordination Center for TLD RU"},{"title":"Координационный центр доменов .RU/.РФ: Регистраторы","url":"https://cctld.ru/registrators/","accessed":"2026-10-02","kind":"primary","quote":"Координационный центр доменов .RU/.РФ является администратором национальных доменов верхнего уровня .RU и .РФ."}],"concepts":["tld_manager"],"prereq_concepts":["country_code_tld"],"type":"fact","claim":"В базе корневой зоны IANA управляющей организацией домена .ru указан Coordination Center for TLD RU."}]},{"id":"it.how-internet-works.home-router","domain":"it","topic_id":"it.how-internet-works","order":6,"title":"Что делает домашний роутер","hook":"Все устройства в квартире выходят в интернет под одним адресом, и это не случайность","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["роутер","dhcp","nat","ipv6"],"prerequisites":["it.how-internet-works.ip-addresses"],"related":["it.how-internet-works.tcp-handshake"],"cover":null,"cards":[{"id":"it.how-internet-works.home-router.dhcp-lease","status":"active","version":1,"tags":[],"title":"Как телефон получает адрес в сети","body":"Когда телефон подключается к сети, своего адреса у него ещё нет. Его выдаёт сервер DHCP (протокол динамической настройки узлов) по RFC 2131. В типичном случае это четыре сообщения: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST и DHCPACK. В обычном, динамическом режиме адрес выдаётся на срок, который называется арендой (lease).","sources":[{"title":"RFC 2131: Dynamic Host Configuration Protocol","url":"https://www.rfc-editor.org/rfc/rfc2131","accessed":"2026-10-02","kind":"standard","quote":"The server selected in the DHCPREQUEST message commits the binding for the client to persistent storage and responds with a DHCPACK message containing the configuration parameters for the requesting client."}],"concepts":["dhcp","dhcp_lease"],"prereq_concepts":["ip_address"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: слева смартфон, справа домашний роутер, между ними четыре горизонтальные стрелки сверху вниз, поочерёдно влево и вправо, подписанные DISCOVER, OFFER, REQUEST, ACK; под последней стрелкой у телефона появляется бирка с адресом и песочными часами","alt":"Четыре сообщения DHCP между телефоном и роутером, после которых телефон получает адрес на срок","license":"own"},"type":"how_it_works","steps":["Клиент рассылает по своей сети DHCPDISCOVER, чтобы найти доступные серверы.","Сервер отвечает DHCPOFFER и предлагает свободный адрес и другие параметры.","Клиент просит выбранные параметры через DHCPREQUEST, а сервер подтверждает их сообщением DHCPACK."],"analogy":"Как номер в гостинице, который выдают на срок, а не в собственность."},{"id":"it.how-internet-works.home-router.nat-one-address","status":"active","version":1,"tags":[],"title":"Почему у всех устройств дома один внешний адрес","body":"Провайдер нередко выдаёт роутеру один адрес на всю квартиру, а устройств в ней много. RFC 3022 описывает для этого NAPT (трансляцию сетевых адресов и портов): много внутренних адресов и их портов TCP/UDP переводятся в один адрес и его порты. Порт здесь это номер порта TCP/UDP в пакете. Снаружи дом виден как один адрес.","sources":[{"title":"RFC 3022: Traditional IP Network Address Translator (Traditional NAT)","url":"https://www.rfc-editor.org/rfc/rfc3022","accessed":"2026-10-02","kind":"standard","quote":"Network Address Port Translation, or NAPT is a method by which many network addresses and their TCP/UDP (Transmission Control Protocol/User Datagram Protocol) ports are translated into a single network address and its TCP/UDP ports."}],"concepts":["napt","nat"],"prereq_concepts":["ip_address"],"illustration":{"prompt":"Плоская иллюстрация в мягких тонах: ноутбук, телефон и телевизор слева соединены тонкими линиями с роутером в центре, у каждого устройства своя маленькая бирка с номером; справа от роутера одна толстая линия уходит к облаку интернета с единственной общей биркой","alt":"Несколько домашних устройств выходят в интернет через роутер под одним общим адресом","license":"own"},"type":"why","deeper":"RFC 3022 прямо называет такую схему подходящей для маленьких офисов и домов (SOHO), где у роутера один адрес от провайдера."},{"id":"it.how-internet-works.home-router.private-inside","status":"active","version":1,"tags":[],"title":"Адреса 192.168.x.x имеют смысл только внутри сети","body":"По RFC 1918 (февраль 1996 года) организация IANA зарезервировала для частных сетей три блока, среди них 192.168.0.0 - 192.168.255.255. Такие адреса уникальны только внутри своей сети, вне её смысла у них нет. Пакеты с ними не следует пересылать между организациями, а от маршрутизаторов провайдеров ожидают, что они отбросят маршруты к частным сетям.","sources":[{"title":"RFC 1918: Address Allocation for Private Internets","url":"https://www.rfc-editor.org/rfc/rfc1918","accessed":"2026-10-02","kind":"standard","quote":"The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)"}],"concepts":["private_address"],"prereq_concepts":["ip_address"],"type":"fact","claim":"Диапазон 192.168.0.0 - 192.168.255.255 зарезервирован RFC 1918 для частных сетей."},{"id":"it.how-internet-works.home-router.dhcp-lease-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.home-router.dhcp-lease","explanation":"Клиент ищет серверы, сервер предлагает адрес, клиент просит его, сервер подтверждает. По RFC 2131 сервер не обязан резервировать предложенный адрес до запроса DHCPREQUEST.","type":"quiz_ordering","prompt":"Расставьте сообщения DHCP в порядке отправки","items":["DHCPREQUEST","DHCPDISCOVER","DHCPACK","DHCPOFFER"],"correct_order":[1,3,0,2]},{"id":"it.how-internet-works.home-router.cgnat","status":"active","version":1,"tags":[],"title":"Внешний адрес роутера бывает не внешним","body":"В апреле 2012 года RFC 6598 отмечал, что адреса IPv4 почти закончились и многие провайдеры поставят у себя CGN (NAT операторского уровня). Для интерфейсов между CGN и оборудованием клиента, например роутером, предназначен диапазон 100.64.0.0/10. Как и частные адреса, он не маршрутизируется в интернете, но предназначен для сетей провайдеров.","sources":[{"title":"RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space","url":"https://www.rfc-editor.org/rfc/rfc6598","accessed":"2026-10-02","kind":"standard","quote":"IANA has recorded the allocation of an IPv4 /10 for use as Shared Address Space. The Shared Address Space address range is 100.64.0.0/10."}],"concepts":["carrier_grade_nat","shared_address_space"],"prereq_concepts":["nat","private_address"],"type":"fact","claim":"Для сетей между NAT провайдера и роутерами клиентов зарезервирован диапазон 100.64.0.0/10."},{"id":"it.how-internet-works.home-router.no-nat-ipv6","status":"active","version":1,"tags":[],"title":"Дом на IPv4 и дом на IPv6","body":"В IPv4 адрес занимает 32 бита, в IPv6 по RFC 8200 128 бит: это 2^32 = 4 294 967 296 адресов против 2^128. RFC 3022 описывает дом или маленький офис, где у роутера один адрес от провайдера и NAPT делит его между устройствами. RFC 8200 объясняет расширение адреса так: больше уровней иерархии, гораздо больше узлов и простая автонастройка.","sources":[{"title":"RFC 8200: Internet Protocol, Version 6 (IPv6) Specification","url":"https://www.rfc-editor.org/rfc/rfc8200","accessed":"2026-10-02","kind":"standard","quote":"IPv6 increases the IP address size from 32 bits to 128 bits, to support more levels of addressing hierarchy, a much greater number of addressable nodes, and simpler autoconfiguration of addresses."},{"title":"RFC 3022: Traditional IP Network Address Translator (Traditional NAT)","url":"https://www.rfc-editor.org/rfc/rfc3022","accessed":"2026-10-02","kind":"standard","quote":"Many Small Office, Home Office (SOHO) users and telecommuting employees have multiple Network nodes in their office, running TCP/UDP applications, but have a single IP address assigned to their remote access router by their service provider to access remote networks."}],"concepts":["ipv6","ipv4"],"prereq_concepts":["napt"],"type":"comparison","a":"Дом на IPv4","b":"Дом на IPv6","criteria":[{"name":"Длина адреса","a":"32 бита","b":"128 бит"},{"name":"Сколько всего адресов","a":"2^32 = 4 294 967 296","b":"2^128"},{"name":"Что говорят RFC","a":"у роутера один адрес от провайдера, NAPT делит его между устройствами","b":"адрес расширили ради гораздо большего числа узлов и простой автонастройки"}],"verdict":"NAPT нужен, когда устройств больше, чем адресов, а IPv6 расширил адрес ради большего числа узлов."},{"id":"it.how-internet-works.home-router.cgnat-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.home-router.cgnat","explanation":"Диапазон 100.64.0.0/10 называется Shared Address Space. Остальные три варианта это частные блоки RFC 1918. RFC 6598 отделяет от них Shared Address Space тем, что он предназначен для сетей провайдеров.","type":"quiz_single","question":"Какой диапазон RFC 6598 отвёл для сетей между NAT провайдера и роутерами клиентов?","options":["192.168.0.0/16","100.64.0.0/10","10.0.0.0/8","172.16.0.0/12"],"correct":1}]},{"id":"it.how-internet-works.tcp-handshake","domain":"it","topic_id":"it.how-internet-works","order":7,"title":"Рукопожатие TCP из трёх сообщений","hook":"Прежде чем отправить первый байт, два компьютера обмениваются тремя служебными сообщениями","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["tcp","рукопожатие","порты"],"prerequisites":["it.how-internet-works.packets-and-layers"],"related":["it.how-internet-works.tcp-vs-udp","it.how-internet-works.tls-handshake"],"cover":null,"cards":[{"id":"it.how-internet-works.tcp-handshake.three-way","status":"active","version":1,"tags":[],"title":"Три сообщения до первого байта","body":"Перед передачей данных две стороны TCP (протокола управления передачей) договариваются о начальных порядковых номерах: каждая называет свой и подтверждает чужой. В RFC 9293 это четыре шага, но второй и третий объединяются в одно сообщение. Поэтому рукопожатие (handshake) называют трёхсторонним: SYN, SYN-ACK, ACK.","sources":[{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"Because steps 2 and 3 can be combined in a single message this is called the three-way (or three message) handshake (3WHS)."},{"title":"MDN: Populating the page: how browsers work","url":"https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/How_browsers_work","accessed":"2026-10-02","kind":"documentation","quote":"TCP's three-way handshaking technique is often referred to as \"SYN-SYN-ACK\" — or more accurately SYN, SYN-ACK, ACK — because there are three messages transmitted by TCP to negotiate and start a TCP session between two computers."}],"concepts":["tcp_handshake","tcp"],"prereq_concepts":["packet_switching"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: слева ноутбук, справа сервер, между ними три наклонные стрелки сверху вниз, первая вправо с подписью SYN, вторая влево с подписью SYN-ACK, третья вправо с подписью ACK; под стрелками тонкая линия соединения","alt":"Три стрелки между клиентом и сервером, подписанные SYN, SYN-ACK и ACK","license":"own"},"type":"how_it_works","steps":["Клиент отправляет SYN со своим начальным номером.","Сервер одним сообщением SYN-ACK подтверждает номер клиента и называет свой.","Клиент отвечает ACK на номер сервера, и соединение установлено."]},{"id":"it.how-internet-works.tcp-handshake.sequence-numbers","status":"active","version":1,"tags":[],"title":"Почему у каждого байта в TCP есть номер","body":"В TCP номер получает каждый октет (байт) данных, а не пакет целиком. В заголовке сегмента, порции данных TCP, поле Sequence Number длиной 32 бита хранит номер первого октета, остальные идут подряд. Раз пронумерован каждый октет, каждый можно подтвердить, а повторно присланные дубликаты легко заметить. По номерам видно место куска в потоке.","sources":[{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"A fundamental notion in the design is that every octet of data sent over a TCP connection has a sequence number. Since every octet is sequenced, each of them can be acknowledged."}],"concepts":["tcp_sequence_number"],"prereq_concepts":["tcp"],"type":"why","deeper":"Номера идут от 0 до 2^32 - 1, а затем снова с 0, поэтому RFC 9293 требует сравнивать их по модулю 2^32."},{"id":"it.how-internet-works.tcp-handshake.retransmission","status":"active","version":1,"tags":[],"title":"Почему потерянный сегмент отправляют снова","body":"По RFC 9293 надёжность TCP включает обнаружение потерь по порядковым номерам, ошибок по контрольным суммам и повторную отправку. Отправитель держит сегмент в очереди, пока получатель не подтвердит его сообщением ACK. Даже при закрытии соединения все сегменты до флага FIN («данных больше нет») включительно повторяются, пока их не подтвердят.","sources":[{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"All segments preceding and including FIN will be retransmitted until acknowledged."}],"concepts":["tcp_retransmission"],"prereq_concepts":["tcp_sequence_number"],"type":"why","deeper":"Повторы не бесконечны: если подтверждения так и нет, после тайм-аута соединение обрывают и сообщают об этом программе."},{"id":"it.how-internet-works.tcp-handshake.three-way-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tcp-handshake.three-way","explanation":"Сначала SYN с номером клиента, потом SYN-ACK с подтверждением и номером сервера, последним ACK. Данные можно класть и в сегменты рукопожатия, но программе их отдадут только после установления соединения.","type":"quiz_ordering","prompt":"Расставьте сообщения рукопожатия TCP по порядку","items":["ACK","SYN","SYN-ACK"],"correct_order":[1,2,0]},{"id":"it.how-internet-works.tcp-handshake.ports-65536","status":"active","version":1,"tags":[],"title":"Портов ровно 65 536","body":"Адрес указывает на узел, а порт различает службы и потоки данных на нём. В заголовке TCP номер порта занимает 16 бит, то есть 2^16 = 65 536 значений, от 0 до 65 535. RFC 6335 делит их на три диапазона: системные 0-1023 и пользовательские 1024-49151 назначает организация IANA, а динамические 49152-65535 не назначаются никогда.","sources":[{"title":"RFC 6335: IANA Procedures for Service Names and Port Numbers","url":"https://www.rfc-editor.org/rfc/rfc6335","accessed":"2026-10-02","kind":"standard","quote":"TCP, UDP, UDP-Lite, SCTP, and DCCP use 16-bit namespaces for their port number registries."},{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"TCP uses port numbers to identify application services and to multiplex distinct flows between hosts."}],"concepts":["port_number","port_ranges"],"prereq_concepts":["tcp"],"illustration":{"prompt":"Плоская горизонтальная шкала от 0 до 65 535 на светлом фоне, разделённая на три участка разного цвета: короткий слева с подписью 0-1023, широкий в середине с подписью 1024-49151 и участок справа с подписью 49152-65535","alt":"Шкала номеров портов, разделённая на системные, пользовательские и динамические","license":"own"},"type":"fact","claim":"Номер порта занимает 16 бит, поэтому возможных портов 2^16 = 65 536.","number":{"value":65536,"unit":"портов"}},{"id":"it.how-internet-works.tcp-handshake.well-known-ports","status":"active","version":1,"tags":[],"title":"Откуда браузер знает, куда стучаться","body":"Вы вводите https://example.com и порт не указываете. Браузер всё равно знает, куда подключиться: по RFC 2818 для HTTP поверх TLS (протокола шифрования соединения) порт по умолчанию 443. Такие соответствия ведёт реестр IANA: имена служб закреплены там за номерами портов, например порт 25 за smtp, службой передачи почты (Simple Mail Transfer).","sources":[{"title":"RFC 2818: HTTP Over TLS","url":"https://www.rfc-editor.org/rfc/rfc2818","accessed":"2026-10-02","kind":"standard","quote":"When HTTP/TLS is being run over a TCP/IP connection, the default port is 443."},{"title":"IANA: Service Name and Transport Protocol Port Number Registry","url":"https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml","accessed":"2026-10-02","kind":"primary","quote":"Service names and port numbers are used to distinguish between different services that run over transport protocols such as TCP, UDP, DCCP, and SCTP."}],"concepts":["well_known_ports","default_port"],"prereq_concepts":["port_number"],"type":"mini_case","situation":"Вы вводите в браузере https://example.com и не указываете номер порта.","question":"К какому порту сервера подключится браузер?","solution":"К порту 443: RFC 2818 называет его портом по умолчанию для HTTP поверх TLS. Какой номер за какой службой закреплён, видно в реестре IANA, например порт 25 записан за smtp.","lesson":"Номер порта это договорённость, и реестр IANA предупреждает, что трафик на порту не обязательно относится к его службе."},{"id":"it.how-internet-works.tcp-handshake.ports-65536-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tcp-handshake.ports-65536","explanation":"16 бит дают 2^16 = 65 536 номеров. Верхний диапазон 49152-65535 RFC 6335 называет динамическими, или эфемерными (ephemeral), портами.","type":"quiz_fill_in","template":"Номер порта в заголовке TCP занимает ___ бит","answers":[["16"]]}]},{"id":"it.how-internet-works.tcp-vs-udp","domain":"it","topic_id":"it.how-internet-works","order":8,"title":"TCP или UDP, когда можно терять пакеты","hook":"Протокол 1980 года не гарантирует доставку, но на нём работают запросы DNS и HTTP/3","difficulty":2,"est_minutes":4,"status":"draft","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["udp","tcp","quic","dns"],"prerequisites":["it.how-internet-works.tcp-handshake"],"related":["it.how-internet-works.dns-basics","it.how-internet-works.http-versions"],"cover":null,"cards":[{"id":"it.how-internet-works.tcp-vs-udp.udp-no-promises","status":"active","version":1,"tags":[],"title":"UDP с 1980 года не обещает доставку","body":"UDP, протокол пользовательских датаграмм, описан в RFC 768 от 28 августа 1980 года. Датаграмма это отдельное сообщение с заголовком и данными. В RFC сказано прямо: доставка и защита от дубликатов не гарантируются, а за надёжным потоком стоит идти к TCP. Поле длины учитывает заголовок и данные, его минимум восемь: заголовок занимает 8 октетов.","sources":[{"title":"RFC 768: User Datagram Protocol","url":"https://www.rfc-editor.org/rfc/rfc768","accessed":"2026-10-02","kind":"standard","quote":"The protocol is transaction oriented, and delivery and duplicate protection are not guaranteed. Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP) [2]."}],"concepts":["udp","datagram"],"prereq_concepts":["tcp"],"type":"fact","claim":"По RFC 768 UDP не гарантирует ни доставку, ни защиту от дубликатов.","number":{"value":8,"unit":"октетов"}},{"id":"it.how-internet-works.tcp-vs-udp.tcp-vs-udp","status":"active","version":1,"tags":[],"title":"TCP и UDP по четырём пунктам","body":"TCP по RFC 9293 даёт программам надёжный упорядоченный поток байтов: сначала рукопожатие, потом нумерация и повтор неподтверждённых сегментов. UDP по RFC 768 обходится минимумом механизмов: программа отправляет датаграмму одной операцией, указав данные, порты и адреса, а доставка не гарантируется. За надёжным потоком RFC 768 сам отсылает к TCP.","sources":[{"title":"RFC 9293: Transmission Control Protocol (TCP)","url":"https://www.rfc-editor.org/rfc/rfc9293","accessed":"2026-10-02","kind":"standard","quote":"TCP provides a reliable, in-order, byte-stream service to applications."},{"title":"RFC 768: User Datagram Protocol","url":"https://www.rfc-editor.org/rfc/rfc768","accessed":"2026-10-02","kind":"standard","quote":"The protocol is transaction oriented, and delivery and duplicate protection are not guaranteed. Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP) [2]."}],"concepts":["tcp","udp"],"prereq_concepts":["tcp_handshake"],"illustration":{"prompt":"Плоская иллюстрация на светлом фоне в две колонки: слева пронумерованные конверты идут по одной ленте строго по порядку, над ними маленькая галочка подтверждения; справа отдельные открытки летят независимо, одна чуть отстала, без галочек","alt":"Слева пронумерованные сегменты с подтверждениями, справа независимые датаграммы без них","license":"own"},"type":"comparison","a":"TCP","b":"UDP","criteria":[{"name":"Начало обмена","a":"рукопожатие SYN, SYN-ACK, ACK","b":"датаграмма отправляется одной операцией с данными, портами и адресами"},{"name":"Потери","a":"неподтверждённые сегменты отправляются повторно","b":"доставка не гарантируется"},{"name":"Порядок","a":"надёжный упорядоченный поток байтов","b":"порядок не обещан, за ним RFC 768 отсылает к TCP"},{"name":"Заголовок","a":"кратен 32 битам и может включать опции","b":"8 октетов"}],"verdict":"TCP берёт на себя порядок и повторы, UDP их не обещает."},{"id":"it.how-internet-works.tcp-vs-udp.udp-no-promises-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tcp-vs-udp.udp-no-promises","explanation":"RFC 768 прямо пишет, что доставка и защита от дубликатов не гарантируются. Зато контрольная сумма, если отправитель её посчитал, охватывает также адреса и защищает от датаграмм, попавших не туда.","type":"quiz_true_false","statement":"По RFC 768 протокол UDP гарантирует доставку каждой датаграммы","correct":false},{"id":"it.how-internet-works.tcp-vs-udp.head-of-line","status":"active","version":1,"tags":[],"title":"Почему в HTTP/2 одна потеря тормозит все запросы","body":"HTTP/1.1 для параллельных запросов часто открывает несколько соединений TCP. HTTP/2 добавил мультиплексирование: запросы идут вперемешку внутри одного соединения. По RFC 9114 механизмы восстановления потерь TCP этой параллельности не видят, поэтому один потерянный или переставленный пакет останавливает все активные запросы, даже не задетые потерей.","sources":[{"title":"RFC 9114: HTTP/3","url":"https://www.rfc-editor.org/rfc/rfc9114","accessed":"2026-10-02","kind":"standard","quote":"However, because the parallel nature of HTTP/2's multiplexing is not visible to TCP's loss recovery mechanisms, a lost or reordered packet causes all active transactions to experience a stall regardless of whether that transaction was directly impacted by the lost packet."}],"concepts":["head_of_line_blocking","multiplexing"],"prereq_concepts":["tcp_retransmission"],"illustration":{"prompt":"Плоская схема на светлом фоне: одна широкая труба, внутри три разноцветные дорожки с пакетами; на одной дорожке не хватает пакета, и перед этим местом стоят пакеты всех трёх дорожек","alt":"Одна потеря в общем соединении останавливает пакеты всех потоков","license":"own"},"type":"why","deeper":"HTTP/3 работает поверх QUIC, где надёжность обеспечивается для каждого потока отдельно, а управление перегрузкой для всего соединения."},{"id":"it.how-internet-works.tcp-vs-udp.quic-over-udp","status":"active","version":1,"tags":[],"title":"QUIC работает поверх UDP","body":"QUIC описан в RFC 9000, опубликованном в мае 2021 года. Его пакеты переносятся в датаграммах UDP: так протокол проще развернуть в уже существующих системах и сетях. Поверх UDP QUIC сам даёт программам потоки, то есть упорядоченные последовательности байтов, аутентифицирует каждый пакет целиком и шифрует его настолько, насколько это практично.","sources":[{"title":"RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport","url":"https://www.rfc-editor.org/rfc/rfc9000","accessed":"2026-10-02","kind":"standard","quote":"QUIC authenticates the entirety of each packet and encrypts as much of each packet as is practical. QUIC packets are carried in UDP datagrams [UDP] to better facilitate deployment in existing systems and networks."}],"concepts":["quic"],"prereq_concepts":["udp"],"type":"fact","claim":"Пакеты QUIC переносятся в датаграммах UDP, чтобы проще развернуть протокол в существующих сетях."},{"id":"it.how-internet-works.tcp-vs-udp.quic-over-udp-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tcp-vs-udp.quic-over-udp","explanation":"Пакеты QUIC едут в датаграммах UDP, чтобы протокол проходил через уже существующие сети. Согласование ключей через TLS описано в отдельных сопутствующих документах.","type":"quiz_single","question":"В чём по RFC 9000 переносятся пакеты QUIC?","options":["В сегментах TCP","В датаграммах UDP","В кадрах HTTP/2","В записях TLS поверх TCP"],"correct":1}]},{"id":"it.how-internet-works.http-basics","domain":"it","topic_id":"it.how-internet-works","order":9,"title":"HTTP, язык запросов и ответов","hook":"Протокол веба не помнит, кто вы, и всё, что похоже на память, добавили сверху","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["http","cookie","url"],"prerequisites":["it.how-internet-works.after-enter"],"related":["it.how-internet-works.status-codes","it.how-internet-works.tls-handshake"],"cover":null,"cards":[{"id":"it.how-internet-works.http-basics.request-line","status":"active","version":1,"tags":[],"title":"Запрос HTTP можно прочитать глазами","body":"HTTP задуман так, чтобы его сообщения мог прочитать человек, даже после того как HTTP/2 стал упаковывать их в кадры. В HTTP/1.1 запрос начинается со строки из трёх частей через одиночные пробелы: метод, цель запроса (request-target) и версия протокола. Например, строка GET /where?q=now HTTP/1.1 просит у сервера ресурс /where?q=now.","sources":[{"title":"RFC 9112: HTTP/1.1","url":"https://www.rfc-editor.org/rfc/rfc9112","accessed":"2026-10-02","kind":"standard","quote":"A request-line begins with a method token, followed by a single space (SP), the request-target, and another single space (SP), and ends with the protocol version."},{"title":"MDN: An overview of HTTP","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Overview","accessed":"2026-10-02","kind":"documentation","quote":"HTTP is generally designed to be human-readable, even with the added complexity introduced in HTTP/2 by encapsulating HTTP messages into frames."}],"concepts":["http_request_line","http_message"],"prereq_concepts":["tcp"],"type":"how_it_works","steps":["Клиент пишет метод, например GET, то есть «получить».","Через пробел указывает цель запроса, а через ещё один пробел версию HTTP/1.1.","Сервер отвечает строкой состояния, где идут версия, трёхзначный код и необязательная фраза."]},{"id":"it.how-internet-works.http-basics.stateless","status":"active","version":1,"tags":[],"title":"HTTP не помнит предыдущий запрос","body":"По RFC 9110 HTTP определён как протокол без состояния: смысл каждого запроса понятен сам по себе, а то, по какому соединению пришли сообщения, на их толкование не влияет. MDN говорит проще: между двумя запросами, которые подряд прошли по одному соединению, нет связи. Для корзины в интернет-магазине это неудобно, и MDN приводит её как пример.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"HTTP is defined as a stateless protocol, meaning that each request message's semantics can be understood in isolation, and that the relationship between connections and messages on them has no impact on the interpretation of those messages."},{"title":"MDN: An overview of HTTP","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Overview","accessed":"2026-10-02","kind":"documentation","quote":"HTTP is stateless: there is no link between two requests being successively carried out on the same connection."}],"concepts":["stateless_protocol"],"prereq_concepts":["http_message"],"type":"fact","claim":"HTTP определён как протокол без состояния, каждый запрос понятен сам по себе."},{"id":"it.how-internet-works.http-basics.cookies","status":"active","version":1,"tags":[],"title":"Почему сайт помнит, что вы вошли","body":"HTTP сам состояние не хранит, его добавили сверху. RFC 6265 (апрель 2011 года) описывает заголовки Set-Cookie и Cookie. Через Set-Cookie сервер передаёт браузеру пары «имя=значение», которые называются куками (cookies). В следующих запросах браузер возвращает их в заголовке Cookie. Так сервер ведёт сессию поверх протокола без состояния.","sources":[{"title":"RFC 6265: HTTP State Management Mechanism","url":"https://www.rfc-editor.org/rfc/rfc6265","accessed":"2026-10-02","kind":"standard","quote":"This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol."}],"concepts":["http_cookie","http_session"],"prereq_concepts":["stateless_protocol"],"type":"why","deeper":"RFC 6265 отменил более ранний RFC 2965 с заголовками Cookie2 и Set-Cookie2."},{"id":"it.how-internet-works.http-basics.stateless-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.http-basics.stateless","explanation":"HTTP определён как протокол без состояния: каждый запрос понятен сам по себе. MDN уточняет формулу: HTTP без состояния, но не без сессий, их строят поверх него.","type":"quiz_true_false","statement":"Протокол HTTP сам по себе помнит, что вы уже вошли на сайт","correct":false},{"id":"it.how-internet-works.http-basics.url-anatomy","status":"active","version":1,"tags":[],"title":"Часть адреса после # остаётся в браузере","body":"По RFC 3986 адрес, или URI (единообразный идентификатор ресурса), состоит из схемы, двоеточия, иерархической части, необязательного запроса после «?» и фрагмента после «#». В примере из RFC foo://example.com:8042/over/there?name=ferret#nose схема foo, путь /over/there, запрос name=ferret, фрагмент nose. Фрагмент на сервер не отправляется.","sources":[{"title":"RFC 3986: Uniform Resource Identifier (URI): Generic Syntax","url":"https://www.rfc-editor.org/rfc/rfc3986","accessed":"2026-10-02","kind":"standard","quote":"The following are two example URIs and their component parts: foo://example.com:8042/over/there?name=ferret#nose"},{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"Although fragment identifiers used within URI references are not sent in requests, implementers ought to be aware that they will be visible to the user agent and any extensions or scripts running as a result of the response."}],"concepts":["uri_syntax","uri_fragment"],"prereq_concepts":["domain_name"],"illustration":{"prompt":"Плоская иллюстрация на светлом фоне: длинная строка адреса foo://example.com:8042/over/there?name=ferret#nose, под каждой частью цветная скобка с подписью схема, хост и порт, путь, запрос, фрагмент; часть после решётки обведена отдельно и стрелкой указывает на окно браузера, а не на сервер","alt":"Адрес из RFC 3986, разобранный на схему, хост с портом, путь, запрос и фрагмент","license":"own"},"type":"how_it_works","steps":["Браузер отделяет схему до двоеточия, например https.","Затем выделяет хост с портом, путь и запрос после «?».","Фрагмент после «#» он отрезает до обращения к ресурсу и обрабатывает сам."]},{"id":"it.how-internet-works.http-basics.get-is-primary","status":"active","version":1,"tags":[],"title":"GET главный способ получить данные в вебе","body":"Метод GET просит сервер передать текущее представление ресурса, на который указывает запрос. RFC 9110 называет GET основным механизмом получения информации в HTTP и целью почти всех оптимизаций производительности.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"GET is the primary mechanism of information retrieval and the focus of almost all performance optimizations."}],"concepts":["http_get"],"prereq_concepts":["http_request_line"],"type":"fact","claim":"RFC 9110 называет GET основным механизмом получения информации в HTTP."},{"id":"it.how-internet-works.http-basics.url-anatomy-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.http-basics.url-anatomy","explanation":"Фрагмент после «#» не отправляется в запросах, его обрабатывает браузер. При этом RFC 9110 предупреждает, что фрагмент видят браузер, его расширения и скрипты страницы.","type":"quiz_single","question":"Какая часть адреса foo://example.com:8042/over/there?name=ferret#nose не уходит на сервер?","options":["Хост example.com","Путь /over/there","Запрос name=ferret","Фрагмент nose"],"correct":3}]},{"id":"it.how-internet-works.status-codes","domain":"it","topic_id":"it.how-internet-works","order":10,"title":"404, 301 и другие три цифры","hook":"Первая цифра кода ответа говорит, чья это ошибка, а в RFC кода 451 благодарят Рэя Брэдбери","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["http","коды ответа","404"],"prerequisites":["it.how-internet-works.http-basics"],"related":["it.how-internet-works.http-versions"],"cover":null,"cards":[{"id":"it.how-internet-works.status-codes.five-classes","status":"active","version":1,"tags":[],"title":"Первая цифра кода говорит, что произошло","body":"Код ответа HTTP это трёхзначное число от 100 до 599. По RFC 9110 класс ответа задаёт первая цифра, две последние на класс не влияют. 1xx значит промежуточный ответ, 2xx успех, 3xx перенаправление, 4xx ошибку клиента, 5xx ошибку сервера. Незнакомый код клиент обязан понимать как x00 того же класса, например 471 как 400.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"All valid status codes are within the range of 100 to 599, inclusive. The first digit of the status code defines the class of response. The last two digits do not have any categorization role."}],"concepts":["http_status_code","status_code_class"],"prereq_concepts":["http_message"],"illustration":{"prompt":"Плоская иллюстрация на светлом фоне: пять подписанных ящиков в ряд, 1xx, 2xx, 3xx, 4xx и 5xx, у каждого простой значок: песочные часы, галочка, стрелка в сторону, человек с вопросом, сервер с предупреждающим треугольником; над ними карточка с числом 404, стрелка ведёт в ящик 4xx","alt":"Пять классов кодов ответа HTTP, код 404 попадает в класс 4xx","license":"own"},"type":"how_it_works","steps":["Сервер отвечает кодом из трёх цифр, например 404.","Клиент смотрит на первую цифру и узнаёт класс ответа, здесь 4xx, ошибка клиента.","Если сам код клиенту незнаком, он обрабатывает его как x00 того же класса."]},{"id":"it.how-internet-works.status-codes.not-found","status":"active","version":1,"tags":[],"title":"404 не говорит, что страницу удалили","body":"По RFC 9110 код 404 (Not Found) значит, что исходный сервер не нашёл текущего представления ресурса или не хочет раскрывать, что оно есть. Временно это или навсегда, код не сообщает. Если сервер знает, что ресурса, скорее всего, не будет и дальше, предпочтителен код 410 (Gone). MDN добавляет, что ссылки, ведущие на 404, часто называют битыми.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"A 404 status code does not indicate whether this lack of representation is temporary or permanent; the 410 (Gone) status code is preferred over 404 if the origin server knows, presumably through some configurable means, that the condition is likely to be permanent."},{"title":"MDN: 404 Not Found","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/404","accessed":"2026-10-02","kind":"documentation","quote":"Links that lead to a 404 page are often called broken or dead links and can be subject to link rot."}],"concepts":["http_404","http_410"],"prereq_concepts":["status_code_class"],"type":"fact","claim":"Код 404 не указывает, временно или навсегда отсутствует ресурс.","number":{"value":404,"unit":"код ответа"}},{"id":"it.how-internet-works.status-codes.redirects","status":"active","version":1,"tags":[],"title":"301 и 302: переехал навсегда или на время","body":"Оба кода говорят, что ресурс сейчас по другому адресу, и RFC 9110 советует присылать этот адрес в поле Location. Разница в сроке. 301 (Moved Permanently) значит, что у ресурса новый постоянный URI и будущим ссылкам следует вести туда. 302 (Found) значит, что ресурс временно лежит по другому URI, и клиенту стоит и дальше обращаться по прежнему.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"The 301 (Moved Permanently) status code indicates that the target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs."}],"concepts":["http_redirect"],"prereq_concepts":["status_code_class"],"type":"comparison","a":"301 Moved Permanently","b":"302 Found","criteria":[{"name":"Что с ресурсом","a":"получил новый постоянный URI","b":"временно находится по другому URI"},{"name":"Куда обращаться потом","a":"по одному из новых URI","b":"по прежнему URI, ведь перенаправление может меняться"}],"verdict":"Оба кода ведут на новый адрес, а различаются тем, какой адрес использовать дальше."},{"id":"it.how-internet-works.status-codes.five-classes-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.status-codes.five-classes","explanation":"Класс 5xx это ошибки сервера. Коды вне диапазона 100-599 RFC 9110 считает недопустимыми, хотя программы иногда используют 600-999 для своих внутренних сообщений.","type":"quiz_single","question":"Что означает первая цифра 5 в коде ответа HTTP?","options":["Запрос успешно принят","Нужно перейти по другому адресу","Ошибку допустил клиент","Ошибка на стороне сервера"],"correct":3},{"id":"it.how-internet-works.status-codes.server-errors","status":"active","version":1,"tags":[],"title":"500 или 503: сломался сервер или занят","body":"Оба кода из класса 5xx, ошибок сервера, но говорят о разном. По RFC 9110 500 (Internal Server Error) значит, что сервер столкнулся с неожиданным условием и не смог выполнить запрос. 503 (Service Unavailable) значит, что сервер сейчас не может обработать запрос из-за временной перегрузки или планового обслуживания, и это, скорее всего, пройдёт.","sources":[{"title":"RFC 9110: HTTP Semantics","url":"https://www.rfc-editor.org/rfc/rfc9110","accessed":"2026-10-02","kind":"standard","quote":"The 503 (Service Unavailable) status code indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay."}],"concepts":["http_500","http_503"],"prereq_concepts":["status_code_class"],"type":"mini_case","situation":"Вчера сайт отвечал вам кодом 500, а сегодня вместо страницы код 503 Service Unavailable.","question":"Чем эти два ответа отличаются для вас?","solution":"500 сообщает о неожиданной ошибке без сроков. 503 говорит, что сервер временно перегружен или на обслуживании и проблема, скорее всего, пройдёт через некоторое время. Сервер может подсказать срок в заголовке Retry-After.","lesson":"Код 503 говорит о временной проблеме, а код 500 о сроках ничего не сообщает."},{"id":"it.how-internet-works.status-codes.code-451","status":"active","version":1,"tags":[],"title":"Код 451 и строка «Thanks also to Ray Bradbury»","body":"Код 451 (Unavailable For Legal Reasons) описан в RFC 7725, опубликованном в феврале 2016 года. Он означает, что сервер отказывает в доступе к ресурсу вследствие юридического требования. В благодарностях RFC сначала назван Теренс Иден: он заметил, что код 403 здесь не подходит, и предложил новый. Затем идёт строка «Thanks also to Ray Bradbury».","sources":[{"title":"RFC 7725: An HTTP Status Code to Report Legal Obstacles","url":"https://www.rfc-editor.org/rfc/rfc7725","accessed":"2026-10-02","kind":"standard","quote":"Thanks to Terence Eden, who observed that the existing status code 403 was not really suitable for this situation, and suggested the creation of a new status code. Thanks also to Ray Bradbury."}],"concepts":["http_451"],"prereq_concepts":["status_code_class"],"type":"fact","claim":"Код 451 означает, что сервер отказывает в доступе к ресурсу вследствие юридического требования.","number":{"value":451,"unit":"код ответа"}},{"id":"it.how-internet-works.status-codes.code-451-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.status-codes.code-451","explanation":"Это RFC 7725. Код 451 не говорит, существует ли сам ресурс: даже если юридическое требование снимут, запрос всё равно может не пройти.","type":"quiz_true_false","statement":"Код 451 описан в RFC, опубликованном в феврале 2016 года","correct":true}]},{"id":"it.how-internet-works.http-versions","domain":"it","topic_id":"it.how-internet-works","order":11,"title":"От HTTP/0.9 до HTTP/3","hook":"Первый HTTP умещался в одну строку с GET, а третий работает поверх QUIC вместо TCP","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["http","веб","протоколы"],"prerequisites":["it.how-internet-works.http-basics","it.how-internet-works.tcp-vs-udp"],"related":["it.internet-history.how-it-began"],"cover":null,"cards":[{"id":"it.how-internet-works.http-versions.one-line-get","status":"active","version":1,"tags":[],"title":"Первый HTTP умещался в одну строку","body":"В HTTP образца 1991 года клиент открывал TCP-соединение и отправлял серверу одну строку обычного текста (ASCII): слово GET, пробел и адрес документа. Сервер присылал в ответ документ на HTML, тоже поток символов ASCII. Конец ответа он обозначал просто тем, что закрывал соединение. Эту первую версию сейчас называют HTTP/0.9.","sources":[{"title":"W3C: The Original HTTP as defined in 1991","url":"https://www.w3.org/Protocols/HTTP/AsImplemented.html","accessed":"2026-10-02","kind":"primary","quote":"This request consists of the word \"GET\", a space, the document address"}],"concepts":["http","http_request"],"prereq_concepts":[],"illustration":{"prompt":"Спокойная плоская иллюстрация на тёплом бумажном фоне: старый компьютер начала 1990-х отправляет к серверу одну короткую строку текста «GET /адрес», сервер возвращает лист с HTML-разметкой, после чего линия между ними обрывается","alt":"Компьютер посылает серверу одну строку GET и получает HTML, затем связь закрывается","license":"own"},"type":"fact","claim":"В HTTP 1991 года запрос был одной строкой из слова GET, пробела и адреса документа."},{"id":"it.how-internet-works.http-versions.milestones","status":"active","version":1,"tags":[],"title":"Когда вышли HTTP/1.0, HTTP/1.1 и HTTP/2","body":"Версии HTTP описаны в RFC, пронумерованных документах о протоколах интернета. RFC 2068 говорит, что веб пользуется HTTP с 1990 года, а первую версию называет HTTP/0.9. Дальше даты стоят в самих документах: RFC 1945 с HTTP/1.0 вышел в мае 1996 года, RFC 2068 с HTTP/1.1 в январе 1997 года, RFC 7540 с HTTP/2 в мае 2015 года.","sources":[{"title":"RFC 2068: Hypertext Transfer Protocol, HTTP/1.1","url":"https://www.rfc-editor.org/rfc/rfc2068","accessed":"2026-10-02","kind":"standard","quote":"HTTP has been in use by the World-Wide Web global information initiative since 1990. The first version of HTTP, referred to as HTTP/0.9, was a simple protocol for raw data transfer across the Internet."},{"title":"RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)","url":"https://www.rfc-editor.org/rfc/rfc7540","accessed":"2026-10-02","kind":"standard","quote":"This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2)."}],"concepts":["http_versions","rfc"],"prereq_concepts":["http"],"type":"timeline","events":[{"year":1990,"label":"Веб начинает пользоваться HTTP"},{"year":1996,"label":"RFC 1945 описывает HTTP/1.0"},{"year":1997,"label":"RFC 2068 описывает HTTP/1.1"},{"year":2015,"label":"RFC 7540 описывает HTTP/2"}],"takeaway":"Между HTTP/1.1 и HTTP/2 прошло больше времени, чем между всеми ранними версиями."},{"id":"it.how-internet-works.http-versions.persistent-connections","status":"active","version":1,"tags":[],"title":"Почему HTTP/1.1 держит соединение открытым","body":"В HTTP/1.0 большинство реализаций открывали новое TCP-соединение на каждый обмен «запрос-ответ». Страница с картинками требует много запросов к одному серверу, и каждое новое соединение нагружало сервер и создавало заторы в сети. В HTTP/1.1 постоянные соединения стали поведением по умолчанию: по одному соединению идут несколько запросов и ответов.","sources":[{"title":"RFC 2068: Hypertext Transfer Protocol, HTTP/1.1","url":"https://www.rfc-editor.org/rfc/rfc2068","accessed":"2026-10-02","kind":"standard","quote":"Prior to persistent connections, a separate TCP connection was established to fetch each URL, increasing the load on HTTP servers and causing congestion on the Internet."},{"title":"RFC 9112: HTTP/1.1","url":"https://www.rfc-editor.org/rfc/rfc9112","accessed":"2026-10-02","kind":"standard","quote":"HTTP/1.1 defaults to the use of \"persistent connections\", allowing multiple requests and responses to be carried over a single connection."}],"concepts":["persistent_connection"],"prereq_concepts":["http","tcp"],"type":"why","deeper":"Действующая редакция HTTP/1.1, RFC 9112 от июня 2022 года, по-прежнему делает постоянные соединения поведением по умолчанию."},{"id":"it.how-internet-works.http-versions.milestones-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.http-versions.milestones","explanation":"HTTP/0.9 была первой версией, HTTP/1.0 описан в мае 1996 года, HTTP/1.1 в январе 1997-го, HTTP/2 в мае 2015-го. Между двумя последними прошло больше 18 лет.","type":"quiz_ordering","prompt":"Расставьте версии HTTP по порядку, от ранней к поздней","items":["HTTP/2","HTTP/0.9","HTTP/1.1","HTTP/1.0"],"correct_order":[1,3,2,0]},{"id":"it.how-internet-works.http-versions.http2-binary","status":"active","version":1,"tags":[],"title":"Как HTTP/2 гонит много запросов по одному соединению","body":"HTTP/2 по RFC 7540 не меняет смысл HTTP, он меняет упаковку. Сообщения передаются двоичными кадрами (frames), а не строками текста. Заголовки сжимаются: в HTTP/1.1 они часто повторяются и раздувают трафик. Кадры разных запросов и ответов чередуются в одном соединении, поэтому браузеру нужно меньше TCP-соединений к серверу.","sources":[{"title":"RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)","url":"https://www.rfc-editor.org/rfc/rfc7540","accessed":"2026-10-02","kind":"standard","quote":"HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection."}],"concepts":["http2","multiplexing","header_compression"],"prereq_concepts":["http","tcp"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: одна толстая труба соединения между браузером и сервером, внутри неё вперемешку идут небольшие прямоугольные кадры трёх цветов, каждый цвет означает свой запрос; рядом для сравнения три тонкие трубы старого подхода","alt":"Кадры трёх запросов чередуются внутри одного соединения HTTP/2","license":"own"},"type":"how_it_works","steps":["Разбивает каждое сообщение на двоичные кадры вместо строк текста.","Сжимает заголовки, которые от запроса к запросу часто повторяются.","Чередует кадры разных запросов и ответов в одном соединении."],"analogy":"Как одна лента конвейера, на которой вперемешку едут пронумерованные части разных заказов."},{"id":"it.how-internet-works.http-versions.http3-quic","status":"active","version":1,"tags":[],"title":"HTTP/3 ездит поверх UDP, а не TCP","body":"В HTTP/2 все запросы идут через одно TCP-соединение, а TCP не видит, что внутри несколько независимых обменов. Поэтому один потерянный или перепутанный пакет задерживает все активные запросы сразу. RFC 9114 от июня 2022 года переносит HTTP на транспорт QUIC, который следит за доставкой каждого потока отдельно. Пакеты QUIC идут в датаграммах UDP.","sources":[{"title":"RFC 9114: HTTP/3","url":"https://www.rfc-editor.org/rfc/rfc9114","accessed":"2026-10-02","kind":"standard","quote":"because the parallel nature of HTTP/2's multiplexing is not visible to TCP's loss recovery mechanisms, a lost or reordered packet causes all active transactions to experience a stall regardless of whether that transaction was directly impacted by the lost packet."},{"title":"RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport","url":"https://www.rfc-editor.org/rfc/rfc9000","accessed":"2026-10-02","kind":"standard","quote":"QUIC packets are carried in UDP datagrams [UDP] to better facilitate deployment in existing systems and networks."}],"concepts":["http3","quic"],"prereq_concepts":["udp","tcp"],"type":"fact","claim":"HTTP/3 передаёт HTTP поверх QUIC, а пакеты QUIC идут в датаграммах UDP."},{"id":"it.how-internet-works.http-versions.http3-quic-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.http-versions.http3-quic","explanation":"HTTP/3 переносит HTTP на QUIC, а пакеты QUIC идут в датаграммах UDP. Шифрование при этом встроено в сам транспорт: QUIC включает в себя TLS 1.3.","type":"quiz_single","question":"На каком транспорте работает HTTP/3?","options":["На TCP, как и HTTP/2","На QUIC, который идёт в UDP","На нескольких TCP-соединениях","Прямо на IP, без транспорта"],"correct":1}]},{"id":"it.how-internet-works.tls-handshake","domain":"it","topic_id":"it.how-internet-works","order":12,"title":"Что такое буква S в HTTPS","hook":"TLS 1.3 договаривается о ключах за один круг, а SSLv3 запрещён ещё в 2015 году","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["tls","https","шифрование"],"prerequisites":["it.how-internet-works.tcp-handshake","it.how-internet-works.http-basics"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.tls-handshake.three-promises","status":"active","version":1,"tags":[],"title":"От чего защищает TLS, сказано в первом абзаце стандарта","body":"TLS (Transport Layer Security, защита транспортного уровня) это протокол защищённого обмена данными в интернете. TLS 1.3 впервые описан в RFC 8446 от августа 2018 года, с июля 2026 года его описывает RFC 9846. В первом абзаце стандарта сказано, против чего он спроектирован: против подслушивания, вмешательства в данные и подделки сообщений.","sources":[{"title":"RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3","url":"https://www.rfc-editor.org/rfc/rfc8446","accessed":"2026-10-02","kind":"standard","quote":"TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery."},{"title":"RFC 9846: The Transport Layer Security (TLS) Protocol Version 1.3","url":"https://www.rfc-editor.org/rfc/rfc9846","accessed":"2026-10-02","kind":"standard","quote":"TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery. This document obsoletes RFC 8446, which specified TLS 1.3."}],"concepts":["tls"],"prereq_concepts":[],"type":"fact","claim":"TLS 1.3 спроектирован против подслушивания, вмешательства в данные и подделки сообщений."},{"id":"it.how-internet-works.tls-handshake.port-443","status":"active","version":1,"tags":[],"title":"Как браузер понимает, что нужен TLS","body":"HTTPS это HTTP поверх TLS, так его впервые описал RFC 2818. Схема https:// вместо http:// говорит, что нужно защищённое соединение. Если порт в адресе не указан, используется 443. Имя сервера клиент знает из адреса и обязан сверить его с именем в сертификате, электронном удостоверении сайта. Это защита от атаки посредника (man-in-the-middle).","sources":[{"title":"RFC 2818: HTTP Over TLS","url":"https://www.rfc-editor.org/rfc/rfc2818","accessed":"2026-10-02","kind":"standard","quote":"If the hostname is available, the client MUST check it against the server's identity as presented in the server's Certificate message, in order to prevent man-in-the-middle attacks."}],"concepts":["https","port_443","server_identity"],"prereq_concepts":["tls","tcp"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне в три шага слева направо: адресная строка с выделенной схемой https, стрелка к серверу с табличкой «порт 443», затем лупа, которая сравнивает имя сайта в адресе с именем на карточке-сертификате","alt":"Три шага HTTPS, схема https, порт 443 и сверка имени сайта с сертификатом","license":"own"},"type":"how_it_works","steps":["Видит в адресе схему https вместо http и понимает, что нужен TLS.","Подключается по TCP к порту 443, если в адресе не указан другой.","Сверяет имя сервера из адреса с именем в его сертификате."]},{"id":"it.how-internet-works.tls-handshake.one-round-trip","status":"active","version":1,"tags":[],"title":"Почему TLS 1.3 соединяется быстрее TLS 1.2","body":"Прежде чем слать зашифрованные данные, браузер и сервер договариваются о ключе, это рукопожатие (handshake). В TLS 1.2 оно стоило двух лишних кругов «туда и обратно», при возобновлении прошлого соединения одного. В TLS 1.3 вариантов обмена ключами мало, поэтому клиент может сразу положить свою долю ключа в первое сообщение. Остаётся один круг.","sources":[{"title":"Cloudflare Blog: A Detailed Look at RFC 8446 (a.k.a. TLS 1.3), Nick Sullivan, 10 August 2018","url":"https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/","accessed":"2026-10-02","kind":"primary","quote":"This possibility enables the TLS 1.3 handshake latency to drop from two round-trips to only one round-trip"},{"title":"RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3","url":"https://www.rfc-editor.org/rfc/rfc8446","accessed":"2026-10-02","kind":"standard","quote":"As shown in Figure 4, the 0-RTT data is just added to the 1-RTT handshake in the first flight."}],"concepts":["tls_handshake","round_trip"],"prereq_concepts":["tls"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: две вертикальные линии, браузер и сервер. Слева для TLS 1.2 между ними две пары стрелок туда и обратно до первого зашифрованного сообщения, справа для TLS 1.3 одна пара стрелок, и первая стрелка клиента несёт маленький ключ","alt":"Рукопожатие TLS 1.2 занимает два круга, TLS 1.3 один","license":"own"},"type":"why","deeper":"Если у сторон уже есть общий ключ, например с прошлого соединения, клиент может добавить данные 0-RTT прямо в первое сообщение рукопожатия."},{"id":"it.how-internet-works.tls-handshake.port-443-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tls-handshake.port-443","explanation":"RFC 2818 назвал 443 портом по умолчанию для HTTP поверх TLS. Отдельный порт нужен, чтобы сервер сразу понимал, какой протокол к нему пришёл: обычный HTTP или TLS.","type":"quiz_single","question":"Какой порт использует HTTPS, если в адресе порт не указан?","options":["80","443","8080","53"],"correct":1},{"id":"it.how-internet-works.tls-handshake.encrypted-handshake","status":"active","version":1,"tags":[],"title":"В TLS 1.3 рукопожатие после ServerHello зашифровано","body":"Рукопожатие начинается с приветствий: клиент шлёт ClientHello, сервер отвечает ServerHello. Среди отличий от TLS 1.2 стандарт TLS 1.3 (RFC 9846, ранее RFC 8446) называет: все сообщения рукопожатия после ServerHello теперь зашифрованы. Часть настроек, которые раньше шли открыто в ServerHello, переехала в новое сообщение EncryptedExtensions.","sources":[{"title":"RFC 9846: The Transport Layer Security (TLS) Protocol Version 1.3","url":"https://www.rfc-editor.org/rfc/rfc9846","accessed":"2026-10-02","kind":"standard","quote":"All handshake messages after the ServerHello are now encrypted. The newly introduced EncryptedExtensions message allows various extensions previously sent in the clear in the ServerHello to also enjoy confidentiality protection."}],"concepts":["tls_handshake","handshake_encryption"],"prereq_concepts":["tls"],"type":"fact","claim":"В TLS 1.3 все сообщения рукопожатия после ServerHello зашифрованы."},{"id":"it.how-internet-works.tls-handshake.ssl-is-dead","status":"active","version":1,"tags":[],"title":"SSLv3 запрещён с 2015 года, а TLS 1.0 с 2021-го","body":"SSLv3 вышел в 1996 году, а в 1999 году его заменил TLS 1.0. В июне 2015 года RFC 7568 признал SSLv3 недостаточно безопасным и потребовал его не использовать. В марте 2021 года RFC 8996 так же запретил TLS 1.0 и TLS 1.1. Говорить «SSL» о защищённом сайте неточно: последнюю версию SSL, SSLv3, стандарты запрещают с 2015 года.","sources":[{"title":"RFC 7568: Deprecating Secure Sockets Layer Version 3.0","url":"https://www.rfc-editor.org/rfc/rfc7568","accessed":"2026-10-02","kind":"standard","quote":"The Secure Sockets Layer version 3.0 (SSLv3), as specified in RFC 6101, is not sufficiently secure. This document requires that SSLv3 not be used."},{"title":"RFC 8996: Deprecating TLS 1.0 and TLS 1.1","url":"https://www.rfc-editor.org/rfc/rfc8996","accessed":"2026-10-02","kind":"standard","quote":"This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346)."}],"concepts":["ssl","tls_versions"],"prereq_concepts":["tls"],"type":"myth_vs_fact","myth":"Защищённые сайты работают на SSL-шифровании","fact":"SSLv3 запрещён RFC 7568 в 2015 году, а TLS 1.0 и TLS 1.1 запрещены RFC 8996 в 2021 году."},{"id":"it.how-internet-works.tls-handshake.ssl-is-dead-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.tls-handshake.ssl-is-dead","explanation":"RFC 7568 в июне 2015 года потребовал не использовать SSLv3 и запретил откат на него с более новых версий. В 2021 году RFC 8996 добавил к запрету TLS 1.0 и TLS 1.1.","type":"quiz_true_false","statement":"Стандарты RFC по-прежнему разрешают использовать SSLv3","correct":false}]},{"id":"it.how-internet-works.certificates","domain":"it","topic_id":"it.how-internet-works","order":13,"title":"Кто выдаёт сайту сертификат","hook":"Точный смысл замка в адресной строке понимали 11% участников исследования, и Chrome решил его заменить","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["сертификаты","https","tls"],"prerequisites":["it.how-internet-works.tls-handshake"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.certificates.ca-signs","status":"active","version":1,"tags":[],"title":"Как удостоверяющий центр ручается за сертификат","body":"Сертификат X.509 связывает открытый ключ, публичную половину пары ключей, с владельцем, например с сайтом. Связь заверяет удостоверяющий центр (certificate authority, CA) своей цифровой подписью. Может понадобиться цепочка: сертификат сайта подписан одним центром, сертификат центра другим, и так до центра, которому проверяющий уже доверяет.","sources":[{"title":"RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile","url":"https://www.rfc-editor.org/rfc/rfc5280","accessed":"2026-10-02","kind":"standard","quote":"This confidence is obtained through the use of public key certificates, which are data structures that bind public key values to subjects. The binding is asserted by having a trusted CA digitally sign each certificate."}],"concepts":["x509_certificate","certificate_authority","certificate_chain"],"prereq_concepts":["tls"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: три карточки-сертификата одна над другой, нижняя подписана «сайт», средняя «промежуточный центр», верхняя «корневой центр»; от каждой карточки вверх идёт стрелка с печатью подписи к той, что её подписала","alt":"Цепочка сертификатов, сертификат сайта подписан промежуточным центром, тот корневым","license":"own"},"type":"how_it_works","steps":["Удостоверяющий центр подписывает сертификат и так заверяет связь ключа с владельцем.","Браузер получает цепочку из сертификата сайта и сертификатов центров, подписанных другими центрами.","Браузер проверяет подписи по цепочке до ключа центра, которому уже доверяет."]},{"id":"it.how-internet-works.certificates.root-store","status":"active","version":1,"tags":[],"title":"Почему Firefox доверяет одним центрам и не доверяет другим","body":"Firefox доверяет центрам, чьи корневые сертификаты, то есть сертификаты центров, которым доверяют без цепочки, лежат в хранилище NSS. NSS (Network Security Services) это набор открытых библиотек для защищённых клиентских и серверных программ. Что попадёт в хранилище, решает Mozilla CA Certificate Program по политике Mozilla Root Store Policy.","sources":[{"title":"Mozilla Wiki: CA (Mozilla's CA Certificate Program)","url":"https://wiki.mozilla.org/CA","accessed":"2026-10-02","kind":"primary","quote":"Mozilla’s CA Certificate Program governs inclusion of root certificates in Network Security Services (NSS), a set of open source libraries designed to support cross-platform development of security-enabled client and server applications."}],"concepts":["root_store"],"prereq_concepts":["certificate_authority","certificate_chain"],"type":"why","deeper":"Хранилище корневых сертификатов NSS используют не только продукты Mozilla, но и продукты других компаний."},{"id":"it.how-internet-works.certificates.lock-icon","status":"active","version":1,"tags":[],"title":"Замок в адресной строке не значит, что сайт честный","body":"Замок показывает, что соединение с сайтом идёт по HTTPS и посторонние не могут его подслушать или подменить данные. О надёжности самого сайта он не говорит. Почти все фишинговые сайты, подделки под настоящие, тоже работают по HTTPS и показывают замок. По исследованию Chrome 2021 года, точный смысл значка понимали лишь 11% участников.","sources":[{"title":"Chromium Blog: An Update on the Lock Icon, 2 May 2023","url":"https://blog.chromium.org/2023/05/an-update-on-lock-icon.html","accessed":"2026-10-02","kind":"primary","quote":"our research in 2021 showed that only 11% of study participants correctly understood the precise meaning of the lock icon"}],"concepts":["lock_icon","phishing"],"prereq_concepts":["https"],"type":"myth_vs_fact","myth":"Раз в адресной строке замок, сайту можно доверять","fact":"Замок говорит о защищённом соединении, а не о честности сайта, фишинговые сайты тоже работают по HTTPS.","why_myth_exists":"Когда HTTPS был редкостью, замок действительно выделял сайты с дополнительной защитой."},{"id":"it.how-internet-works.certificates.lock-icon-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.certificates.lock-icon","explanation":"Замок говорит только о защищённом соединении, а фишинговые сайты тоже работают по HTTPS. В мае 2023 года команда Chrome объявила, что заменит замок нейтральным значком настроек.","type":"quiz_true_false","statement":"Замок в адресной строке подтверждает, что сайту можно доверять","correct":false},{"id":"it.how-internet-works.certificates.free-certs","status":"active","version":1,"tags":[],"title":"Почему Let's Encrypt выбрал срок в 90 дней","body":"Let's Encrypt это бесплатный автоматический удостоверяющий центр некоммерческой организации ISRG. В 2015 году он выдавал сертификаты не дольше чем на 90 дней и называл две причины. Украденный ключ или ошибочно выданный сертификат действуют меньше. А короткий срок подталкивает к автоматическому продлению, без чего весь веб на HTTPS не перевести.","sources":[{"title":"Let's Encrypt: Why ninety-day lifetimes for certificates?","url":"https://letsencrypt.org/2015/11/09/why-90-days/","accessed":"2026-10-02","kind":"primary","quote":"They encourage automation, which is absolutely essential for ease-of-use. If we’re going to move the entire Web to HTTPS, we can’t continue to expect system administrators to manually handle renewals."},{"title":"Let's Encrypt: About","url":"https://letsencrypt.org/about/","accessed":"2026-10-02","kind":"primary","quote":"Let’s Encrypt is a free, automated, and open Certificate Authority (CA), run for the public’s benefit. It is a service provided by the Internet Security Research Group (ISRG)."}],"concepts":["certificate_lifetime","lets_encrypt"],"prereq_concepts":["certificate_authority"],"type":"quote","text":"If we’re going to move the entire Web to HTTPS, we can’t continue to expect system administrators to manually handle renewals.","translation":"Если мы собираемся перевести весь веб на HTTPS, нельзя и дальше ждать, что системные администраторы будут продлевать сертификаты вручную.","author":"Джош Аас, исполнительный директор ISRG","year":2015,"context":"Пост в блоге Let's Encrypt от 9 ноября 2015 года о том, почему сертификаты живут 90 дней."},{"id":"it.how-internet-works.certificates.shorter-lifetimes","status":"active","version":1,"tags":[],"title":"Срок сертификата сжимают с 398 до 47 дней","body":"CA/Browser Forum, объединение удостоверяющих центров и разработчиков браузеров, в апреле 2025 года проголосовал за бюллетень SC-081v3. Он сокращает максимальный срок сертификата для сайтов с 398 до 47 дней шагами: с 15 марта 2026 года не больше 200 дней, с 15 марта 2027 года не больше 100, с 15 марта 2029 года не больше 47.","sources":[{"title":"CA/Browser Forum: Ballot SC-081v3, Introduce Schedule of Reducing Validity and Data Reuse Periods","url":"https://cabforum.org/2025/04/11/ballot-sc081v3-introduce-schedule-of-reducing-validity-and-data-reuse-periods/","accessed":"2026-10-02","kind":"primary","quote":"Eventual reduction of maximum validity period from 398 days to 47 days"},{"title":"CA/Browser Forum: Ballot SC-081v3, redlined TLS Baseline Requirements, section 6.3.2","url":"https://cabforum.org/2025/04/11/ballot-sc081v3-introduce-schedule-of-reducing-validity-and-data-reuse-periods/BR-SC081v3-redlined.pdf","accessed":"2026-10-02","kind":"primary","quote":"Subscriber Certificates issued on or after 15 March 2026 and before 15 March 2027 SHOULD NOT have a Validity Period greater than 199 days and MUST NOT have a Validity Period greater than 200 days."}],"concepts":["certificate_lifetime"],"prereq_concepts":["certificate_authority"],"illustration":{"prompt":"Спокойная плоская диаграмма на светлом фоне: четыре горизонтальных полосы, каждая короче предыдущей, подписаны годами 2020, 2026, 2027 и 2029 и сроками 398, 200, 100 и 47 дней; полосы похожи на ленту календаря, которая постепенно укорачивается","alt":"Полосы срока сертификата укорачиваются с 398 до 47 дней к 2029 году","license":"own"},"type":"timeline","events":[{"year":2020,"label":"С 1 сентября срок сертификата сайта не больше 398 дней"},{"year":2025,"label":"CA/Browser Forum голосует за бюллетень SC-081v3"},{"year":2026,"label":"С 15 марта не больше 200 дней"},{"year":2027,"label":"С 15 марта не больше 100 дней"},{"year":2029,"label":"С 15 марта не больше 47 дней"}],"takeaway":"К 2029 году предельный срок станет примерно в 8,5 раза короче, 398 / 47 ≈ 8,5."},{"id":"it.how-internet-works.certificates.free-certs-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.certificates.free-certs","explanation":"Не дольше 90 дней: так украденный ключ действует меньше, а короткий срок подталкивает автоматизировать продление. Тогда же Let's Encrypt советовал продлевать сертификат каждые 60 дней.","type":"quiz_single","question":"На какой предельный срок Let's Encrypt выдавал сертификаты в 2015 году?","options":["30 дней","90 дней","398 дней","47 дней"],"correct":1}]},{"id":"it.how-internet-works.wifi-vs-cable","domain":"it","topic_id":"it.how-internet-works","order":14,"title":"Почему Wi-Fi медленнее провода","hook":"Wi-Fi это общий радиоэфир, где передают по очереди, а в 2,4 ГГц непересекающихся каналов всего три","difficulty":1,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["wi-fi","ethernet","домашняя сеть"],"prerequisites":["it.how-internet-works.packets-and-layers"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.wifi-vs-cable.listen-before-talk","status":"active","version":1,"tags":[],"title":"Как устройства Wi-Fi делят один эфир","body":"В классическом Ethernet на общем кабеле и в Wi-Fi нет диспетчера: каждое устройство само слушает общую среду, провод или радиоканал. Такой Ethernet замечает столкновение передач (коллизию) и сразу замолкает. Радио Wi-Fi во время передачи столкновений не слышит, поэтому Wi-Fi старается их избежать: этот способ называется CSMA/CA.","sources":[{"title":"High Performance Browser Networking, Chapter 6: WiFi","url":"https://hpbn.co/wifi/","accessed":"2026-10-02","kind":"textbook","quote":"WiFi follows a very similar but slightly different model: due to hardware limitations of the radio, it cannot detect collisions while sending data. Hence, WiFi relies on collision avoidance (CSMA/CA)"}],"concepts":["csma_ca","shared_medium"],"prereq_concepts":["packet"],"illustration":{"prompt":"Спокойная плоская иллюстрация на светлом фоне: ноутбук, телефон и планшет вокруг роутера, над каждым маленькое облачко с ухом, только у одного устройства волны передачи, остальные ждут с паузой на значке","alt":"Несколько устройств слушают эфир, передаёт только одно","license":"own"},"type":"how_it_works","steps":["Устройство слушает канал и ждёт, пока в нём станет тихо.","Передаёт кадр, порцию данных, целиком, когда канал распознан как свободный.","Ждёт от получателя явного подтверждения и только потом шлёт следующий кадр."],"analogy":"Как разговор по рации, где говорят по очереди и каждую фразу ждут ответа «принял»."},{"id":"it.how-internet-works.wifi-vs-cable.three-channels","status":"active","version":1,"tags":[],"title":"В диапазоне 2,4 ГГц всего три непересекающихся канала","body":"Самый распространённый диапазон Wi-Fi, 2,4 ГГц, даёт три непересекающихся радиоканала шириной 20 МГц: 1, 6 и 11. Если рядом больше двух-трёх сетей, часть из них делит одни частоты. Ваш роутер и ноутбук стандарта 802.11g могут выдавать 54 Мбит/с, но когда сосед на том же канале смотрит HD-видео, ваша полоса падает вдвое или сильнее.","sources":[{"title":"High Performance Browser Networking, Chapter 6: WiFi","url":"https://hpbn.co/wifi/","accessed":"2026-10-02","kind":"textbook","quote":"The most widely used 2.4 GHz band provides three non-overlapping 20 MHz radio channels: 1, 6, and 11"}],"concepts":["wifi_channels"],"prereq_concepts":["shared_medium"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: шкала частот диапазона 2,4 ГГц с номерами каналов от 1 до 11, над ней пересекающиеся дуги каналов; три дуги над каналами 1, 6 и 11 выделены цветом и не касаются друг друга","alt":"Каналы 1, 6 и 11 в диапазоне 2,4 ГГц не пересекаются, остальные накладываются","license":"own"},"type":"fact","claim":"Диапазон 2,4 ГГц даёт три непересекающихся канала по 20 МГц, это каналы 1, 6 и 11.","number":{"value":3,"unit":"канала"}},{"id":"it.how-internet-works.wifi-vs-cable.first-hop-latency","status":"active","version":1,"tags":[],"title":"Роутер рядом, а задержка 35 мс","body":"Пинг, время ответа на пробный пакет, показывает задержку первого беспроводного прыжка (hop), участка от ноутбука до роутера. Илья Григорик, автор учебника High Performance Browser Networking, измерил её на роутере 802.11n. В 2,4 ГГц, где пересекалось больше десятка сетей, 95% пингов укладывались примерно в 35 мс, в почти свободном 5 ГГц в 1,58 мс.","sources":[{"title":"High Performance Browser Networking, Chapter 6: WiFi","url":"https://hpbn.co/wifi/","accessed":"2026-10-02","kind":"textbook","quote":"over a dozen overlapping networks in the 2.4 GHz band is resulting in a 35 ms latency delay (for 95th percentile) for the first hop from my laptop to my wireless router, which is less than 20 feet away!"}],"concepts":["first_hop_latency"],"prereq_concepts":["wifi_channels","latency"],"type":"mini_case","situation":"Ноутбук стоит меньше чем в 20 футах от роутера, но в диапазоне 2,4 ГГц вокруг больше десятка соседских сетей.","question":"Откуда задержка 35 мс, если роутер совсем рядом?","solution":"В примере автора 95% пингов в 2,4 ГГц укладывались в 35 мс, остальные шли дольше. В почти свободном 5 ГГц тот же роутер давал 1,58 мс. Задержку создают больше десятка пересекающихся сетей в 2,4 ГГц.","lesson":"Пинг до беспроводного шлюза быстро показывает, сколько стоит первый прыжок Wi-Fi."},{"id":"it.how-internet-works.wifi-vs-cable.three-channels-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.wifi-vs-cable.three-channels","explanation":"Непересекающихся каналов три: 1, 6 и 11. Набор каналов при этом зависит от страны: где-то разрешены и каналы 13 и 14, а где-то доступно меньше.","type":"quiz_single","question":"Сколько непересекающихся каналов по 20 МГц даёт диапазон 2,4 ГГц?","options":["Два","Три","Одиннадцать","Шесть"],"correct":1},{"id":"it.how-internet-works.wifi-vs-cable.wifi-generations","status":"active","version":1,"tags":[],"title":"Цифра в Wi-Fi 6 обозначает поколение 802.11ax","body":"3 октября 2018 года Wi-Fi Alliance, объединение компаний, которому принадлежат товарные знаки Wi-Fi и Wi-Fi CERTIFIED, ввело номера поколений. Wi-Fi 6 обозначает устройства с поддержкой 802.11ax, Wi-Fi 5 с 802.11ac, Wi-Fi 4 с 802.11n. Цифра задумана как понятное покупателю обозначение вместо технических названий стандартов IEEE 802.11.","sources":[{"title":"Wi-Fi Alliance: Wi-Fi Alliance introduces Wi-Fi 6","url":"https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-wi-fi-6","accessed":"2026-10-02","kind":"primary","quote":"October 3, 2018 – Wi-Fi Alliance® introduces Wi-Fi 6 as the industry designation for products and networks that support the next generation of Wi-Fi®, based on 802.11ax technology."}],"concepts":["wifi_generations"],"prereq_concepts":[],"type":"fact","claim":"Wi-Fi 6, Wi-Fi 5 и Wi-Fi 4 обозначают устройства с поддержкой 802.11ax, 802.11ac и 802.11n."},{"id":"it.how-internet-works.wifi-vs-cable.cable-full-duplex","status":"active","version":1,"tags":[],"title":"Провод и радио, кто с кем делит канал","body":"Стандарт IEEE 802.3-2022 описывает Ethernet на скоростях от 1 Мбит/с до 400 Гбит/с. Он предусматривает и общую среду, где передают по очереди (полудуплекс), и полный дуплекс, когда данные идут в обе стороны одновременно. У Wi-Fi канал общий: точки доступа и клиенты соревнуются за доступ к одному радиоканалу.","sources":[{"title":"IEEE 802.3-2022: IEEE Standard for Ethernet","url":"https://standards.ieee.org/ieee/802.3/10422/","accessed":"2026-10-02","kind":"standard","quote":"Ethernet local area network operation is specified for selected speeds of operation from 1 Mb/s to 400 Gb/s using a common media access control (MAC) specification and management information base (MIB)."},{"title":"High Performance Browser Networking, Chapter 6: WiFi","url":"https://hpbn.co/wifi/","accessed":"2026-10-02","kind":"textbook","quote":"WiFi access points and peers compete for access to the same radio channel."}],"concepts":["full_duplex","ethernet"],"prereq_concepts":["shared_medium","csma_ca"],"type":"comparison","a":"Ethernet по IEEE 802.3-2022","b":"Wi-Fi","criteria":[{"name":"Среда","a":"Коаксиальный кабель, витая пара или оптоволокно","b":"Общий радиоканал, например в 2,4 или 5 ГГц"},{"name":"Режим доступа","a":"Общая среда с полудуплексом или полный дуплекс","b":"Точки доступа и клиенты конкурируют за один канал"},{"name":"Скорости","a":"От 1 Мбит/с до 400 Гбит/с по стандарту","b":"До 54 Мбит/с у 802.11g, до 866,7 Мбит/с на поток у 802.11ac"}],"verdict":"У Wi-Fi нет центрального диспетчера, поэтому нет и гарантий полосы и задержки."},{"id":"it.how-internet-works.wifi-vs-cable.wifi-generations-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.wifi-vs-cable.wifi-generations","explanation":"Так решил Wi-Fi Alliance 3 октября 2018 года. Тогда же объединение пообещало запустить сертификацию Wi-Fi CERTIFIED 6 в 2019 году.","type":"quiz_true_false","statement":"Название Wi-Fi 6 обозначает устройства с поддержкой стандарта 802.11ax","correct":true}]},{"id":"it.how-internet-works.latency","domain":"it","topic_id":"it.how-internet-works","order":15,"title":"Почему пинг нельзя «ускорить»","hook":"Свет в оптоволокне идёт примерно на треть медленнее, чем в вакууме, и это нижний предел задержки","difficulty":2,"est_minutes":4,"status":"draft","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["задержка","пинг","оптоволокно"],"prerequisites":["it.how-internet-works.packets-and-layers"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.latency.latency-definition","status":"active","version":1,"tags":[],"title":"Задержка и пропускная способность это разные величины","body":"Задержка (latency) это время, за которое пакет данных доходит от источника до получателя. Пропускная способность (bandwidth) это максимальная производительность логического или физического канала связи, сколько бит он пропускает за секунду. Учебник High Performance Browser Networking называет эти две величины главными для скорости сети.","sources":[{"title":"MDN: Understanding latency","url":"https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/Understanding_latency","accessed":"2026-10-02","kind":"documentation","quote":"Latency is the time it takes for a packet of data to travel from source to a destination."},{"title":"High Performance Browser Networking: Primer on Latency and Bandwidth","url":"https://hpbn.co/primer-on-latency-and-bandwidth/","accessed":"2026-10-02","kind":"textbook","quote":"we will focus on the two critical components that dictate the performance of all network traffic: latency and bandwidth"}],"concepts":["latency","bandwidth"],"prereq_concepts":[],"type":"fact","claim":"Задержка это время пути пакета от источника до получателя, а пропускная способность это предельная производительность канала."},{"id":"it.how-internet-works.latency.light-in-fiber","status":"active","version":1,"tags":[],"title":"От Нью-Йорка до Лондона свет в волокне идёт 28 мс","body":"Свет в вакууме проходит 299 792 458 м/с, а в оптоволокне, по правилу учебника High Performance Browser Networking, около 200 000 000 м/с. Отношение этих скоростей называют показателем преломления, у волокна он около 1,5. Путь от Нью-Йорка до Лондона, 5 585 км, свет в вакууме прошёл бы за 19 мс, в волокне за 28 мс, туда и обратно за 56 мс.","sources":[{"title":"High Performance Browser Networking: Primer on Latency and Bandwidth","url":"https://hpbn.co/primer-on-latency-and-bandwidth/","accessed":"2026-10-02","kind":"textbook","quote":"the rule of thumb is to assume that the speed of light in fiber is around 200,000,000 meters per second, which corresponds to a refractive index of ~1.5."}],"concepts":["propagation_delay","refractive_index"],"prereq_concepts":["latency"],"illustration":{"prompt":"Спокойная плоская карта Атлантики на светлом фоне: тонкая дуга оптоволокна от Нью-Йорка до Лондона, над ней две подписи, «вакуум 19 мс» и «волокно 28 мс», и маленький световой импульс на дуге","alt":"Дуга кабеля от Нью-Йорка до Лондона, 19 мс в вакууме и 28 мс в волокне","license":"own"},"type":"fact","claim":"По оптоволокну сигнал проходит путь Нью-Йорк, Лондон длиной 5 585 км примерно за 28 мс.","number":{"value":28,"unit":"мс"}},{"id":"it.how-internet-works.latency.light-in-fiber-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.latency.light-in-fiber","explanation":"В одну сторону 28 мс, туда и обратно вдвое больше, 56 мс. Это расчёт для кабеля по кратчайшему пути, реальные маршруты длиннее, поэтому настоящая задержка выше.","type":"quiz_single","question":"За сколько сигнал по волокну проходит Нью-Йорк, Лондон и обратно?","options":["19 мс","28 мс","56 мс","38 мс"],"correct":2},{"id":"it.how-internet-works.latency.speed-of-light-truth","status":"active","version":1,"tags":[],"title":"Скорость света не увеличить, даже первого апреля","body":"RFC 1925 «The Twelve Networking Truths» опубликован 1 апреля 1996 года, это первоапрельский документ. Его редактор R. Callon собрал двенадцать «фундаментальных истин» сетей. Вторая говорит о пределе, который не обойти ни усилием, ни приоритетом. У неё есть следствие (2a): как ни старайся, ребёнка не выносить сильно быстрее 9 месяцев.","sources":[{"title":"RFC 1925: The Twelve Networking Truths","url":"https://www.rfc-editor.org/rfc/rfc1925","accessed":"2026-10-02","kind":"standard","quote":"(2) No matter how hard you push and no matter what the priority, you can't increase the speed of light."}],"concepts":["speed_of_light_limit"],"prereq_concepts":["propagation_delay"],"type":"quote","text":"No matter how hard you push and no matter what the priority, you can't increase the speed of light.","translation":"Как ни дави и какой приоритет ни ставь, скорость света не увеличить.","author":"R. Callon, редактор RFC 1925","year":1996,"context":"Вторая из двенадцати «сетевых истин» первоапрельского RFC 1925 от 1 апреля 1996 года."},{"id":"it.how-internet-works.latency.traceroute","status":"active","version":1,"tags":[],"title":"Как traceroute узнаёт маршрут, не спрашивая провайдера","body":"У IP-пакета есть поле TTL (time to live, время жизни), и каждый узел на пути уменьшает его. Шлюз, то есть маршрутизатор, который увидел TTL, равный нулю, обязан выбросить пакет и может сообщить отправителю ICMP-сообщением «time exceeded». Traceroute шлёт пробные UDP-пакеты с TTL 1, 2, 3 и так далее и по этим ответам узнаёт шлюз за шлюзом.","sources":[{"title":"FreeBSD Manual Pages: traceroute(8)","url":"https://man.freebsd.org/cgi/man.cgi?traceroute(8)","accessed":"2026-10-02","kind":"documentation","quote":"launching UDP probe packets with a small TTL (time to live) then listening for an ICMP \"time exceeded\" reply from a gateway. We start our probes with a TTL of one and increase by one"},{"title":"RFC 792: Internet Control Message Protocol","url":"https://www.rfc-editor.org/rfc/rfc792","accessed":"2026-10-02","kind":"standard","quote":"Time to live in seconds; as this field is decremented at each machine in which the datagram is processed, the value in this field should be at least as great as the number of gateways which this datagram will traverse."}],"concepts":["traceroute","ttl"],"prereq_concepts":["packet"],"illustration":{"prompt":"Спокойная плоская схема на светлом фоне: ноутбук слева, сервер справа, между ними цепочка из трёх маршрутизаторов; от ноутбука уходят три конверта с цифрами TTL 1, 2 и 3, каждый доходит до своего маршрутизатора, и от него назад возвращается карточка «time exceeded»","alt":"Пакеты с TTL 1, 2 и 3 доходят до разных маршрутизаторов и возвращают time exceeded","license":"own"},"type":"how_it_works","steps":["Отправляет три пробных UDP-пакета с TTL, равным единице.","Получает от шлюза ICMP «time exceeded» и печатает его адрес и время ответа.","Увеличивает TTL на единицу и повторяет, пока не ответит получатель или не кончится лимит."]},{"id":"it.how-internet-works.latency.traceroute-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.latency.traceroute","explanation":"Карту traceroute не запрашивает: он шлёт пакеты с растущим TTL и собирает ответы «time exceeded» от каждого шлюза. По умолчанию на каждое значение TTL уходит три пробы.","type":"quiz_true_false","statement":"Traceroute узнаёт маршрут, запрашивая карту сети у провайдера","correct":false}]},{"id":"it.how-internet-works.physical-internet","domain":"it","topic_id":"it.how-internet-works","order":16,"title":"Интернет лежит на дне океана","hook":"Полтора миллиона километров кабеля толщиной с садовый шланг и около 200 обрывов в год","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["подводные кабели","оптоволокно","точки обмена трафиком"],"prerequisites":["it.how-internet-works.latency"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.physical-internet.garden-hose","status":"active","version":1,"tags":[],"title":"Между континентами интернет идёт не через спутники","body":"Кажется, что данные между континентами летят через космос. На 2 октября 2026 года TeleGeography отслеживает более 600 действующих и планируемых подводных кабелей. На большей части пути через океан кабель обычно толщиной с садовый шланг. По данным комиссии связи США (FCC), на спутники приходится 0,37% международной пропускной способности США.","sources":[{"title":"TeleGeography: Submarine Cable Frequently Asked Questions","url":"https://www2.telegeography.com/submarine-cable-faqs-frequently-asked-questions","accessed":"2026-10-02","kind":"primary","quote":"Statistics released by U.S. Federal Communications Commission indicate that satellites account for just 0.37% of all U.S. international capacity."}],"concepts":["submarine_cable"],"prereq_concepts":[],"illustration":{"prompt":"Спокойная плоская иллюстрация на тёплом бумажном фоне: срез подводного кабеля рядом с садовым шлангом того же диаметра, в центре кабеля тонкие светящиеся волокна толщиной с волос, вокруг слои защитной оболочки","alt":"Срез подводного кабеля рядом с садовым шлангом того же диаметра","license":"own"},"type":"myth_vs_fact","myth":"Между континентами интернет передают спутники","fact":"Международные данные несут подводные оптические кабели, а спутники дают лишь 0,37% международной пропускной способности США"},{"id":"it.how-internet-works.physical-internet.anchors-and-trawlers","status":"active","version":1,"tags":[],"title":"Почему подводные кабели рвутся, и при чём тут якоря","body":"Обрывы подводных кабелей случаются часто: по данным International Cable Protection Committee, в среднем около 200 повреждений в год. Две трети из них дают аварии вроде рыболовных судов и кораблей, которые волочат якорь по дну. Землетрясения тоже повреждают кабели, а укусы акул и намеренные диверсии TeleGeography называет крайне редкими.","sources":[{"title":"TeleGeography: Submarine Cable Frequently Asked Questions","url":"https://www2.telegeography.com/submarine-cable-faqs-frequently-asked-questions","accessed":"2026-10-02","kind":"primary","quote":"On average, there are roughly 200 faults each year, according to data from the International Cable Protection Committee."}],"concepts":["cable_fault"],"prereq_concepts":["submarine_cable"],"illustration":{"prompt":"Спокойная плоская иллюстрация на тёплом бумажном фоне: рыболовное судно на поверхности моря, от него тянется якорная цепь, якорь цепляет кабель на дне, вдалеке маленькая акула проплывает мимо, не обращая внимания на кабель","alt":"Якорь судна цепляет подводный кабель на дне моря","license":"own"},"type":"why","deeper":"Кабели проектируют с минимальным сроком службы 25 лет, но часто выводят раньше: новые кабели дают больше пропускной способности за сопоставимые деньги."},{"id":"it.how-internet-works.physical-internet.fiber-speed","status":"active","version":1,"tags":[],"title":"В оптоволокне свет идёт в 1,5 раза медленнее, чем в вакууме","body":"В вакууме свет проходит 299 792 458 м/с. В стекле волокна он медленнее, и отношение двух скоростей называют показателем преломления. По практическому правилу из книги High Performance Browser Networking, показатель около 1,5, а скорость около 200 000 000 м/с, то есть 200 000 км/с. Вдоль экватора, 40 075 км, сигнал шёл бы 200 мс.","sources":[{"title":"High Performance Browser Networking: Primer on Latency and Bandwidth","url":"https://hpbn.co/primer-on-latency-and-bandwidth/","accessed":"2026-10-02","kind":"textbook","quote":"the rule of thumb is to assume that the speed of light in fiber is around 200,000,000 meters per second, which corresponds to a refractive index of ~1.5."}],"concepts":["fiber_propagation"],"prereq_concepts":["latency"],"type":"fact","claim":"Сигнал в оптоволокне идёт со скоростью около 200 000 км/с.","number":{"value":200000,"unit":"км/с"}},{"id":"it.how-internet-works.physical-internet.anchors-and-trawlers-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.physical-internet.anchors-and-trawlers","explanation":"Аварии с рыболовными судами и кораблями, волочащими якорь, дают две трети всех повреждений. Землетрясения тоже рвут кабели, но это меньшая доля, а акулы почти не опасны.","type":"quiz_single","question":"Что даёт две трети повреждений подводных кабелей?","options":["Укусы акул и других рыб","Рыболовные суда и якоря","Землетрясения на дне","Старение кабелей после 25 лет"],"correct":1},{"id":"it.how-internet-works.physical-internet.exchange-points","status":"active","version":1,"tags":[],"title":"Как сети встречаются в точке обмена трафиком","body":"Точка обмена трафиком (Internet Exchange Point, IXP) даёт участникам средства обмена IP-данными, обычно через общую среду второго уровня, то есть канального, например Ethernet. Какие адреса через кого достижимы, участники сообщают друг другу по BGP, протоколу маршрутизации между сетями. Раньше чаще всего каждая пара заводила для этого свою сессию.","sources":[{"title":"RFC 7947: Internet Exchange BGP Route Server","url":"https://www.rfc-editor.org/rfc/rfc7947","accessed":"2026-10-02","kind":"standard","quote":"Internet Exchange Points (IXPs) provide IP data interconnection facilities for their participants, typically using shared Layer 2 networking media such as Ethernet."}],"concepts":["internet_exchange_point"],"prereq_concepts":["bgp"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: в центре один общий коммутатор точки обмена, к нему лучами подключены пять маршрутизаторов разных цветов, подписанных как разные сети, между ними тонкие линии переговоров","alt":"Маршрутизаторы пяти сетей подключены к одному общему коммутатору точки обмена","license":"own"},"type":"how_it_works","steps":["Сети-участники подключают свои маршрутизаторы к общей среде точки обмена, обычно это Ethernet.","Маршрутизаторы участников сообщают друг другу по BGP, какие адреса через них достижимы.","Раньше чаще всего каждая пара заводила свою сессию, но на крупных точках обмена это плохо масштабируется."],"analogy":"Как общая парковка у торгового центра, куда съезжаются машины разных компаний, чтобы обменяться грузом."},{"id":"it.how-internet-works.physical-internet.msk-ix","status":"active","version":1,"tags":[],"title":"Сколько участников у точки обмена MSK-IX","body":"MSK-IX — российская точка обмена трафиком, где сети соединяются через общую среду. В новости от 8 сентября 2026 года компания сообщила: пиковая нагрузка на её распределённую сеть достигла 8,7 Тбит/с, или 8,7 триллиона бит в секунду, а участников точки обмена 624. На 2 октября 2026 года на главной странице указано 627 уникальных участников.","sources":[{"title":"MSK-IX: главная страница","url":"https://www.msk-ix.ru/","accessed":"2026-10-02","kind":"primary","quote":"Пиковая нагрузка на распределенную сеть платформы цифровой устойчивости MSK-IX достигла отметки 8,7 Тбит/с, а общее число клиентов компании превысило 1200, включая 624 участника точки обмена трафиком."},{"title":"RFC 7947: Internet Exchange BGP Route Server","url":"https://www.rfc-editor.org/rfc/rfc7947","accessed":"2026-10-02","kind":"standard","quote":"Internet Exchange Points (IXPs) provide IP data interconnection facilities for their participants, typically using shared Layer 2 networking media such as Ethernet."}],"concepts":["msk_ix"],"prereq_concepts":["internet_exchange_point"],"type":"fact","claim":"Пиковая нагрузка на распределённую сеть MSK-IX достигла 8,7 Тбит/с, по новости от 8 сентября 2026 года.","number":{"value":8.7,"unit":"Тбит/с"}},{"id":"it.how-internet-works.physical-internet.exchange-points-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.physical-internet.exchange-points","explanation":"Верно, так точку обмена описывает RFC 7947. Сама среда только соединяет участников, а о маршрутах они договариваются по BGP.","type":"quiz_true_false","statement":"Точка обмена трафиком соединяет сети-участники через общую среду, обычно Ethernet","correct":true}]},{"id":"it.how-internet-works.routing-bgp","domain":"it","topic_id":"it.how-internet-works","order":17,"title":"Как пакет находит дорогу через десятки тысяч сетей","hook":"У интернета нет центральной карты, сети просто рассказывают соседям, куда они умеют доставлять","difficulty":3,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["маршрутизация","bgp","автономные системы"],"prerequisites":["it.how-internet-works.ip-addresses","it.how-internet-works.physical-internet"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.routing-bgp.autonomous-systems","status":"active","version":1,"tags":[],"title":"Интернет складывается из десятков тысяч автономных систем","body":"По RFC 1930 автономная система (autonomous system, AS) — связная группа из одного или нескольких IP-префиксов, то есть блоков адресов, которой управляют один или несколько операторов с единой и чётко определённой политикой маршрутизации. По отчёту CIDR Report за 2 октября 2026 года в системе маршрутизации интернета 79 514 таких систем.","sources":[{"title":"RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System (AS)","url":"https://www.rfc-editor.org/rfc/rfc1930","accessed":"2026-10-02","kind":"standard","quote":"An AS is a connected group of one or more IP prefixes run by one or more network operators which has a SINGLE and CLEARLY DEFINED routing policy."},{"title":"CIDR Report: AS summary","url":"https://www.cidr-report.org/as2.0/","accessed":"2026-10-02","kind":"primary","quote":"79514 Number of ASes in routing system"}],"concepts":["autonomous_system"],"prereq_concepts":["ip_prefix"],"type":"fact","claim":"На 2 октября 2026 года в системе маршрутизации интернета 79 514 автономных систем.","number":{"value":79514,"unit":"автономных систем"}},{"id":"it.how-internet-works.routing-bgp.bgp-gossip","status":"active","version":1,"tags":[],"title":"Как сети рассказывают соседям, куда умеют доставлять","body":"BGP (Border Gateway Protocol) — протокол маршрутизации между автономными системами. Соседи сообщают друг другу, какие адреса через них достижимы, и прикладывают список систем, через которые прошли эти сведения. По RFC 4271 такого списка хватает, чтобы построить граф связности и отсечь петли. BGP работает поверх TCP и слушает порт 179.","sources":[{"title":"RFC 4271: A Border Gateway Protocol 4 (BGP-4)","url":"https://www.rfc-editor.org/rfc/rfc4271","accessed":"2026-10-02","kind":"standard","quote":"This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity, from which routing loops may be pruned"}],"concepts":["bgp","as_path"],"prereq_concepts":["autonomous_system"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: три облака-сети с номерами AS 100, AS 200 и AS 300 стоят в ряд, от первого к третьему передаётся карточка с адресом, и на каждом шаге в её список дописывается номер очередной сети","alt":"Сведения о маршруте идут от сети к сети, и каждая дописывает в путь свой номер","license":"own"},"type":"how_it_works","steps":["Маршрутизаторы двух соседних систем устанавливают TCP-соединение, BGP слушает порт 179.","Каждый сообщает соседу, какие префиксы через него достижимы, и прикладывает путь из номеров систем.","Маршрут, в пути которого уже есть номер своей системы, маршрутизатор считает петлёй и исключает из выбора."],"analogy":"Как слухи по цепочке соседей, только каждый пересказчик дописывает в конец своё имя."},{"id":"it.how-internet-works.routing-bgp.longest-prefix","status":"active","version":1,"tags":[],"title":"Почему широкий маршрут не пропадает рядом с точным","body":"Маршруты в BGP задают префиксами, и они могут перекрываться. RFC 4271 называет маршрут с более длинным префиксом, то есть с меньшим набором адресов, более конкретным. Если приняты оба маршрута, общая часть широкого остаётся рабочей, но не используется: туда ведёт конкретный. Когда конкретный маршрут отзывают, эти адреса снова достижимы по широкому.","sources":[{"title":"RFC 4271: A Border Gateway Protocol 4 (BGP-4)","url":"https://www.rfc-editor.org/rfc/rfc4271","accessed":"2026-10-02","kind":"standard","quote":"The set of destinations described by the overlap represents a portion of the less specific route that is feasible, but is not currently in use. If a more specific route is later withdrawn, the set of destinations described by the overlap will still be reachable using the less specific route."}],"concepts":["longest_prefix_match"],"prereq_concepts":["bgp","ip_prefix"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: большой прямоугольник блока адресов с подписью /22, внутри выделена четверть с подписью /24, стрелка трафика к адресу внутри этой четверти идёт по узкому маршруту, а не по широкому","alt":"Широкий блок адресов /22 и вложенный в него более конкретный /24","license":"own"},"type":"why"},{"id":"it.how-internet-works.routing-bgp.bgp-gossip-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.routing-bgp.bgp-gossip","explanation":"Каждая сеть сообщает соседям, какие префиксы через неё достижимы, и прикладывает путь из номеров автономных систем. Центральной карты нет, граф связности каждый строит сам из этих путей.","type":"quiz_single","question":"Что соседние сети сообщают друг другу по BGP?","options":["Только номера своих автономных систем","Достижимые адреса и путь из номеров систем","Готовую карту всего интернета целиком","Пропускную способность и загрузку своих каналов"],"correct":1},{"id":"it.how-internet-works.routing-bgp.trust-problem","status":"active","version":1,"tags":[],"title":"BGP верит тому, кто объявил маршрут","body":"RFC 6480 пишет прямо: BGP основан на предположении, что автономная система, объявляющая маршруты к префиксу, уполномочена на это его владельцем. Для повышения безопасности маршрутизации этот RFC в феврале 2012 года описал архитектуру RPKI (Resource Public Key Infrastructure): владелец адресов может проверяемо разрешить системам их объявлять.","sources":[{"title":"RFC 6480: An Infrastructure to Support Secure Internet Routing","url":"https://www.rfc-editor.org/rfc/rfc6480","accessed":"2026-10-02","kind":"standard","quote":"BGP is based on the assumption that the AS that originates routes for a particular prefix is authorized to do so by the holder of that prefix (or an address block encompassing the prefix); the PKI contains no information about these authorizations."}],"concepts":["bgp_origin_trust","rpki"],"prereq_concepts":["bgp"],"type":"fact","claim":"BGP основан на предположении, что система, объявляющая маршрут к префиксу, уполномочена на это его владельцем."},{"id":"it.how-internet-works.routing-bgp.routing-table-size","status":"active","version":1,"tags":[],"title":"В таблице маршрутов интернета больше миллиона префиксов","body":"По отчёту CIDR Report за 2 октября 2026 года в таблице BGP 1 081 512 префиксов, то есть блоков адресов, к которым объявлены маршруты. Неделей раньше, 25 сентября 2026 года, их было 1 078 699. Значит, за семь дней таблица выросла на 1 081 512 − 1 078 699 = 2 813 префиксов.","sources":[{"title":"CIDR Report: AS summary","url":"https://www.cidr-report.org/as2.0/","accessed":"2026-10-02","kind":"primary","quote":"25-09-26 1078699 603494 26-09-26 1079078 603603 27-09-26 1079290 603853 28-09-26 1079014 604485 29-09-26 1079040 605855 30-09-26 1079736 606611 01-10-26 1080293 608511 02-10-26 1081512 608931"}],"concepts":["routing_table"],"prereq_concepts":["autonomous_system","ip_prefix"],"type":"fact","claim":"На 2 октября 2026 года в таблице BGP 1 081 512 префиксов.","number":{"value":1081512,"unit":"префиксов"}},{"id":"it.how-internet-works.routing-bgp.trust-problem-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.routing-bgp.trust-problem","explanation":"Неверно: BGP исходит из предположения, что право есть. Проверять его помогает отдельная инфраструктура RPKI, в которой владелец адресов подписывает разрешение для конкретных автономных систем.","type":"quiz_true_false","statement":"BGP сам по себе проверяет, что сеть имеет право объявлять префикс","correct":false}]},{"id":"it.how-internet-works.cdn","domain":"it","topic_id":"it.how-internet-works","order":18,"title":"Почему видео едет из соседней стойки","hook":"Netflix бесплатно ставит провайдерам свои серверы, а кэш у вас в браузере работает по тому же принципу","difficulty":2,"est_minutes":4,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["cdn","кэширование","anycast"],"prerequisites":["it.how-internet-works.dns-basics","it.how-internet-works.latency"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.cdn.cache-rules","status":"active","version":1,"tags":[],"title":"Как кэш решает, можно ли отдать сохранённый ответ","body":"Кэш (cache) хранит ответы серверов, чтобы на повторный запрос ответить быстрее. По RFC 9111 общий кэш хранит ответы для повторного использования более чем одним пользователем, а частный предназначен одному и часто встроен в браузер. Срок задаёт сервер: директива max-age=5 значит, что ответ станет устаревшим, когда его возраст превысит 5 секунд.","sources":[{"title":"RFC 9111: HTTP Caching","url":"https://www.rfc-editor.org/rfc/rfc9111","accessed":"2026-10-02","kind":"standard","quote":"The max-age response directive indicates that the response is to be considered stale after its age is greater than the specified number of seconds. This directive uses the token form of the argument syntax: e.g., 'max-age=5' not 'max-age=\"5\"'."}],"concepts":["http_cache","max_age"],"prereq_concepts":[],"illustration":{"prompt":"Спокойная плоская иллюстрация на тёплом бумажном фоне: полка с коробками-ответами, на каждой бирка с таймером, на одной таймер ещё идёт, на другой истёк, и рядом стрелка-вопрос к серверу","alt":"Сохранённые ответы с таймерами свежести, у одного срок уже истёк","license":"own"},"type":"how_it_works","steps":["Сервер прикладывает к ответу директиву max-age с числом секунд, например max-age=5.","Пока возраст копии не больше этого срока, кэш может отдать её без обращения к серверу.","Когда срок вышел, ответ считается устаревшим, и обычно кэш сначала проверяет у сервера, не изменился ли он."]},{"id":"it.how-internet-works.cdn.edge-near-you","status":"active","version":1,"tags":[],"title":"95% пользователей интернета в 50 мс от узла Cloudflare","body":"Cloudflare среди прочего работает как сеть доставки контента (CDN), и её дата-центры стоят во многих городах. На 2 октября 2026 года в списке дата-центров на странице сети Cloudflare 348 городов. Там же сказано, что 95% подключённого к интернету населения мира находится в пределах 50 мс от дата-центра Cloudflare, а большинство в пределах 20 мс.","sources":[{"title":"Cloudflare: Our Global Network","url":"https://www.cloudflare.com/network/","accessed":"2026-10-02","kind":"primary","quote":"95% of the world's Internet-connected population is within 50 milliseconds of a Cloudflare data center — most are within 20ms."}],"concepts":["cdn"],"prereq_concepts":["latency"],"type":"fact","claim":"По данным Cloudflare, 95% подключённого к интернету населения мира находится в пределах 50 мс от её дата-центра.","number":{"value":50,"unit":"мс"}},{"id":"it.how-internet-works.cdn.anycast","status":"active","version":1,"tags":[],"title":"Почему один IP-адрес отвечает из разных мест","body":"Так работает anycast: адрес сервиса делают доступным в нескольких отдельных независимых местах, и маршрутизация доставляет отправленный на него пакет в одно из них. По RFC 4786 от декабря 2006 года, anycast стал популярен, чтобы добавить избыточности DNS-серверам: несколько операторов корневых серверов DNS широко разнесли их по интернету.","sources":[{"title":"RFC 4786: Operation of Anycast Services","url":"https://www.rfc-editor.org/rfc/rfc4786","accessed":"2026-10-02","kind":"standard","quote":"Anycast has in recent years become increasingly popular for adding redundancy to DNS servers to complement the redundancy that the DNS architecture itself already provides. Several root DNS server operators have distributed their servers widely around the Internet"}],"concepts":["anycast"],"prereq_concepts":["bgp","dns"],"illustration":{"prompt":"Спокойная плоская карта на тёплом бумажном фоне: три сервера в разных частях света подписаны одним и тем же адресом, пользователи вокруг соединены линиями каждый со своим сервером, области вокруг серверов мягко закрашены, как бассейны рек","alt":"Три сервера с одним и тем же адресом, каждый обслуживает свою область сети","license":"own"},"type":"why","deeper":"Область сети, из которой пакеты попадают к одному узлу, RFC 4786 называет бассейном (catchment), как бассейн реки."},{"id":"it.how-internet-works.cdn.cache-rules-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.cdn.cache-rules","explanation":"max-age задаёт срок свежести ответа в секундах. Устаревший ответ кэш не обязан выбрасывать: его можно отдать снова, если сервер подтвердит, что ответ не изменился.","type":"quiz_single","question":"Что означает директива max-age=5 в ответе сервера?","options":["Кэш хранит не больше пяти ответов","Ответ устареет, когда ему станет больше 5 секунд","Ответ можно показать пяти пользователям","Сервер ответит на любой запрос не позже чем за 5 секунд"],"correct":1},{"id":"it.how-internet-works.cdn.open-connect","status":"active","version":1,"tags":[],"title":"Почему сервер Netflix стоит в стойке у провайдера","body":"В программе Open Connect Netflix сотрудничает с провайдерами, чтобы доставлять контент эффективнее. Встроенные серверы Open Connect Appliance (OCA) квалифицированные партнёры получают бесплатно и выделяют им немного места в стойке, питание и подключение. Пиринг, прямое соединение с сетью Netflix, нужен для ночных заливок контента и обновлений.","sources":[{"title":"Netflix Open Connect","url":"https://openconnect.netflix.com/en/","accessed":"2026-10-02","kind":"primary","quote":"Embedded OCAs have the same capabilities as the OCAs that we use in our 60+ global data centers, and they are provided to qualifying ISP partners at no charge."}],"concepts":["open_connect"],"prereq_concepts":["cdn"],"type":"mini_case","situation":"Абоненты провайдера смотрят много Netflix, и весь этот трафик приходит к нему через пиринговые и транспортные каналы.","question":"Как провайдеру разгрузить эти каналы?","solution":"Поставить у себя встроенный сервер Open Connect. Netflix заранее заполняет его контентом для региона провайдера, и каждое такое развёртывание снимает существенную часть трафика Netflix с пиринговых и транспортных каналов.","lesson":"Встроенные серверы ставят не всегда, это зависит от объёма трафика, ограничений дата-центра и других факторов."},{"id":"it.how-internet-works.cdn.akamai-1998","status":"active","version":1,"tags":[],"title":"Как начиналась Akamai, по версии самой компании","body":"На странице истории Akamai ранние вехи такие. 20 августа 1998 года Том Лейтон и Дэнни Левин зарегистрировали компанию. В феврале 1999 года Akamai отдала первый живой трафик: пиксель, спрятанный глубоко на сайте Disney. В апреле 1999 года начался коммерческий сервис, и одним из первых, чартерных, клиентов объявили Yahoo.","sources":[{"title":"Akamai: Company History","url":"https://www.akamai.com/company/company-history","accessed":"2026-10-02","kind":"primary","quote":"Akamai launched commercial service in April 1999 and announced that one of the world's most-trafficked web properties, Yahoo!, was a charter customer."}],"concepts":["cdn_history"],"prereq_concepts":["cdn"],"type":"timeline","events":[{"year":1998,"label":"20 августа Лейтон и Левин регистрируют Akamai"},{"year":1999,"label":"Февраль, первый живой трафик, пиксель на сайте Disney"},{"year":1999,"label":"Апрель, коммерческий запуск, Yahoo среди чартерных клиентов"}],"takeaway":"От регистрации компании до коммерческого запуска прошло меньше года."},{"id":"it.how-internet-works.cdn.open-connect-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.cdn.open-connect","explanation":"Неверно: квалифицированные партнёры получают серверы бесплатно, а от провайдера нужны место в стойке, питание и подключение. Наблюдение за работой серверов Netflix берёт на себя.","type":"quiz_true_false","statement":"Провайдеры платят Netflix за встроенные серверы Open Connect","correct":false}]},{"id":"it.how-internet-works.email-delivery","domain":"it","topic_id":"it.how-internet-works","order":19,"title":"Как письмо находит почтовый сервер","hook":"Поле «От кого» заполняет сам отправитель, а сервер получателя находят по записи MX в DNS","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["электронная почта","smtp","dns"],"prerequisites":["it.how-internet-works.dns-basics"],"related":["it.internet-history.how-it-began"],"cover":null,"cards":[{"id":"it.how-internet-works.email-delivery.mx-lookup","status":"active","version":1,"tags":[],"title":"Как сервер узнаёт, куда везти ваше письмо","body":"Письма между серверами передаёт протокол SMTP (Simple Mail Transfer Protocol). Сервер отправителя ищет в DNS запись MX (mail exchanger) домена получателя, где указан хост для приёма почты. По RFC 5321 серверу следует постоянно слушать порт 25, закреплённый IANA. Письмо может дойти за одно соединение или через цепочку промежуточных серверов.","sources":[{"title":"RFC 5321: Simple Mail Transfer Protocol","url":"https://www.rfc-editor.org/rfc/rfc5321","accessed":"2026-10-02","kind":"standard","quote":"The lookup first attempts to locate an MX record associated with the name."}],"concepts":["mx_record","smtp"],"prereq_concepts":["dns"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: конверт выходит из сервера отправителя, сначала заглядывает в справочник DNS с карточкой MX, затем по стрелке идёт к серверу получателя, по пути проходя через один промежуточный сервер","alt":"Письмо идёт от сервера отправителя через запрос MX в DNS к серверу получателя","license":"own"},"type":"how_it_works","steps":["Сервер отправителя ищет в DNS MX-запись домена из адреса получателя.","По имени хоста из MX-записи он узнаёт IP-адрес и подключается к SMTP-серверу.","Принявший сервер доставляет письмо сам или передаёт дальше, как ретранслятор (relay)."]},{"id":"it.how-internet-works.email-delivery.retry-days","status":"active","version":1,"tags":[],"title":"Стандарт советует пытаться доставить письмо хотя бы 4-5 дней","body":"Если сервер получателя не отвечает, письмо не пропадает: по RFC 5321 его обязаны поставить в очередь и периодически повторять попытки. Интервал между ними в общем случае следует делать не меньше 30 минут, а срок, после которого отправитель сдаётся, обычно должен быть не меньше 4-5 дней. По опыту, пишет стандарт, сбои обычно временные.","sources":[{"title":"RFC 5321: Simple Mail Transfer Protocol","url":"https://www.rfc-editor.org/rfc/rfc5321","accessed":"2026-10-02","kind":"standard","quote":"Retries continue until the message is transmitted or the sender gives up; the give-up time generally needs to be at least 4-5 days."}],"concepts":["smtp_retry"],"prereq_concepts":["smtp"],"type":"fact","claim":"По RFC 5321 срок, после которого отправитель перестаёт повторять доставку, обычно должен быть не меньше 4-5 дней."},{"id":"it.how-internet-works.email-delivery.from-is-free-text","status":"active","version":1,"tags":[],"title":"Поле «От кого» заполняет сам отправитель","body":"По RFC 5322 поле From указывает авторов письма, то есть ящики людей или систем, ответственных за его написание. Это не адрес конверта (envelope): его сервер называет отдельно, в команде SMTP MAIL FROM. По RFC 7208 протоколы не ограничивают, что хост укажет в MAIL FROM. SPF позволяет домену явно перечислить хосты, которым можно использовать его имя.","sources":[{"title":"RFC 5322: Internet Message Format","url":"https://www.rfc-editor.org/rfc/rfc5322","accessed":"2026-10-02","kind":"standard","quote":"The \"From:\" field specifies the author(s) of the message, that is, the mailbox(es) of the person(s) or system(s) responsible for the writing of the message."},{"title":"RFC 7208: Sender Policy Framework (SPF)","url":"https://www.rfc-editor.org/rfc/rfc7208","accessed":"2026-10-02","kind":"standard","quote":"Email on the Internet can be forged in a number of ways. In particular, existing protocols place no restriction on what a sending host can use as the \"MAIL FROM\" of a message or the domain given on the SMTP HELO/EHLO commands."}],"concepts":["email_from_header","spf"],"prereq_concepts":["smtp"],"type":"myth_vs_fact","myth":"Если в поле «От кого» стоит адрес банка, значит, письмо прислал банк","fact":"Поле From заполняет автор письма, а SPF помогает проверить другое: разрешено ли хосту использовать домен из адреса конверта MAIL FROM"},{"id":"it.how-internet-works.email-delivery.mx-lookup-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.email-delivery.mx-lookup","explanation":"Поиск начинается с MX-записи домена получателя. Если MX-записей нет совсем, по RFC 5321 адрес самого домена считается неявной MX-записью.","type":"quiz_single","question":"Какую запись в DNS ищет сервер, чтобы узнать, куда доставить письмо?","options":["Запись A домена отправителя","Запись MX домена получателя","Запись TXT домена получателя","Запись PTR сервера получателя"],"correct":1},{"id":"it.how-internet-works.email-delivery.spf-dkim-dmarc","status":"active","version":1,"tags":[],"title":"DKIM подписывает письмо, DMARC объявляет политику","body":"DKIM позволяет владельцу домена-подписанта взять на себя часть ответственности за письмо. Её подтверждает криптографическая подпись, а открытый ключ для проверки запрашивают у домена подписанта. DMARC позволяет владельцу домена автора письма указать, как он предпочитает обращаться с письмами, не прошедшими проверку, и запросить отчёты.","sources":[{"title":"RFC 6376: DomainKeys Identified Mail (DKIM) Signatures","url":"https://www.rfc-editor.org/rfc/rfc6376","accessed":"2026-10-02","kind":"standard","quote":"DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message."},{"title":"RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC)","url":"https://www.rfc-editor.org/rfc/rfc9989","accessed":"2026-10-02","kind":"standard","quote":"DMARC permits the owner of an email's Author Domain to enable validation of the domain's use to indicate the Domain Owner's or Public Suffix Operator's message handling preference regarding failed validation and to request reports about the use of the domain name."}],"concepts":["dkim","dmarc"],"prereq_concepts":["spf"],"type":"comparison","a":"DKIM","b":"DMARC","criteria":[{"name":"Что делает","a":"Связывает письмо с доменом, который берёт на себя часть ответственности","b":"Сообщает, как владелец домена предпочитает обращаться с письмами, не прошедшими проверку"},{"name":"На чём держится","a":"Криптографическая подпись и открытый ключ, полученный у домена подписанта","b":"Проверка того, как используется домен автора письма"},{"name":"Что получает получатель","a":"Возможность проверить подпись письма","b":"Сведения, которые можно учесть, выбирая, что делать с входящим письмом"}],"verdict":"DKIM отвечает, кто подписал письмо, а DMARC сообщает, как владелец домена предпочитает поступать с письмами, не прошедшими проверку."},{"id":"it.how-internet-works.email-delivery.ports-465-587","status":"active","version":1,"tags":[],"title":"Почему почтовая программа отправляет письма на 465 или 587","body":"Почтовая программа сдаёт письмо серверу отправки (submission), а передача между серверами — отдельная задача, её RFC 8314 не рассматривает. На переходный период он рекомендует поддерживать и STARTTLS на порту 587, где шифрование включают командой после подключения, и неявный TLS на порту 465, где оно начинается сразу после TCP-подключения.","sources":[{"title":"RFC 8314: Cleartext Considered Obsolete: Use of TLS for Email Submission and Access","url":"https://www.rfc-editor.org/rfc/rfc8314","accessed":"2026-10-02","kind":"standard","quote":"As a result, clients and servers SHOULD implement both STARTTLS on port 587 and Implicit TLS on port 465 for this transition period."}],"concepts":["mail_submission","implicit_tls"],"prereq_concepts":["smtp"],"type":"why","deeper":"С чтением почты так же: для IMAP на порту 993 и POP на порту 995 рукопожатие TLS начинается сразу после установки TCP-соединения."},{"id":"it.how-internet-works.email-delivery.from-is-free-text-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.email-delivery.from-is-free-text","explanation":"Неверно: RFC 7208 отмечает, что протоколы не ограничивают адрес в MAIL FROM, а поле From заполняет автор. Право хоста слать почту от имени домена проверяют отдельные механизмы, например SPF.","type":"quiz_true_false","statement":"Протокол SMTP сам проверяет, что адрес в поле «От кого» правдив","correct":false}]},{"id":"it.how-internet-works.internet-breaks","domain":"it","topic_id":"it.how-internet-works","order":20,"title":"Когда интернет ломается","hook":"Четыре настоящих аварии, одна команда, одна регулярка, один неверный анонс, одна настройка клиента","difficulty":3,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["аварии","bgp","dns","cdn"],"prerequisites":["it.how-internet-works.routing-bgp","it.how-internet-works.dns-basics","it.how-internet-works.cdn"],"related":[],"cover":null,"cards":[{"id":"it.how-internet-works.internet-breaks.facebook-2021","status":"active","version":1,"tags":[],"title":"Как одна команда отрезала Facebook от интернета","body":"4 октября 2021 года при плановом обслуживании команда для оценки ёмкости магистрали, сети между дата-центрами Facebook, непреднамеренно отключила все соединения магистрали. DNS-серверы компании снимают свои анонсы BGP, если не могут связаться с дата-центрами. Анонсы исчезли, и серверы стали недостижимы, хотя продолжали работать.","sources":[{"title":"Meta Engineering: More details about the October 4 outage","url":"https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/","accessed":"2026-10-02","kind":"primary","quote":"In the recent outage the entire backbone was removed from operation, making these locations declare themselves unhealthy and withdraw those BGP advertisements. The end result was that our DNS servers became unreachable even though they were still operational."}],"concepts":["backbone_outage","bgp_withdrawal"],"prereq_concepts":["bgp","dns"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: несколько дата-центров соединены линиями магистрали, все линии погасли, рядом с ними маленькие DNS-серверы продолжают светиться, но их таблички-анонсы для остального интернета убраны","alt":"Погасшая магистраль между дата-центрами и работающие, но невидимые DNS-серверы","license":"own"},"type":"mini_case","situation":"Магистраль Facebook отключена, DNS-серверы недостижимы, и остальной интернет не может найти серверы компании.","question":"Как инженерам добраться до сломанной сети?","solution":"Обычный и резервный удалённый доступ не работал, поэтому инженеров отправили прямо в дата-центры. Это заняло время: на площадки трудно попасть, а оборудование трудно менять даже при физическом доступе.","lesson":"Защита от посторонних замедлила и своих, и автор разбора считает такой компромисс оправданным."},{"id":"it.how-internet-works.internet-breaks.seen-from-outside","status":"active","version":1,"tags":[],"title":"Как авария Facebook выглядела снаружи, из Cloudflare","body":"1.1.1.1 — публичный DNS-резолвер Cloudflare: он находит IP-адрес по имени сайта. Около 15:40 UTC Cloudflare увидела пик изменений маршрутов от Facebook. Facebook перестал анонсировать по BGP префиксы своих DNS-серверов, и резолверы не могли до них достучаться. Имя facebook.com пропало на 1.1.1.1 около 15:50 UTC и вернулось в 21:20 UTC.","sources":[{"title":"Cloudflare Blog: Understanding How Facebook Disappeared from the Internet","url":"https://blog.cloudflare.com/october-2021-facebook-outage/","accessed":"2026-10-02","kind":"primary","quote":"This chart shows the availability of the DNS name 'facebook.com' on Cloudflare's DNS resolver 1.1.1.1. It stopped being available at around 15:50 UTC and returned at 21:20 UTC."}],"concepts":["dns_resolver","bgp_withdrawal"],"prereq_concepts":["dns","bgp"],"type":"quote","text":"… Facebook’s DNS servers went offline, and one minute after the problem occurred, Cloudflare engineers were in a room wondering why 1.1.1.1 couldn’t resolve facebook.com and worrying that it was somehow a fault with our systems.","translation":"… DNS-серверы Facebook ушли в офлайн, и через минуту после начала проблемы инженеры Cloudflare сидели в комнате, гадая, почему 1.1.1.1 не может разрешить имя facebook.com, и боясь, что сбой каким-то образом в их собственных системах.","author":"Селсу Мартинью и Том Стрикс, блог Cloudflare","year":2021,"context":"Пост в блоге Cloudflare от 4 октября 2021 года, опубликованный в день аварии Facebook."},{"id":"it.how-internet-works.internet-breaks.youtube-2008","status":"active","version":1,"tags":[],"title":"Как один анонс увёл трафик YouTube в Пакистан","body":"В воскресенье 24 февраля 2008 года в 18:47 UTC Pakistan Telecom (AS17557) начала несанкционированный анонс префикса 208.65.153.0/24, части блока 208.65.152.0/22, который анонсировал YouTube. Один из её вышестоящих провайдеров, PCCW Global (AS3491), передал анонс остальному интернету, и трафик YouTube в глобальном масштабе стал уходить в Пакистан.","sources":[{"title":"RIPE NCC: YouTube Hijacking, A RIPE NCC RIS case study","url":"https://www.ripe.net/about-us/news/youtube-hijacking-a-ripe-ncc-ris-case-study/","accessed":"2026-10-02","kind":"primary","quote":"On Sunday, 24 February 2008, Pakistan Telecom (AS17557) started an unauthorised announcement of the prefix 208.65.153.0/24. One of Pakistan Telecom's upstream providers, PCCW Global (AS3491) forwarded this announcement to the rest of the Internet"}],"concepts":["bgp_hijack"],"prereq_concepts":["longest_prefix_match","autonomous_system"],"illustration":{"prompt":"Спокойная плоская схема на тёплом бумажном фоне: широкий блок адресов YouTube, внутри него выделен более узкий кусок, от которого стрелки трафика со всего мира уходят к сети Pakistan Telecom, а позже две ещё более узкие половинки возвращают стрелки к YouTube","alt":"Узкий анонс внутри блока YouTube уводит трафик, ещё более узкие возвращают его","license":"own"},"type":"mini_case","situation":"Маршрутизаторы по всему миру получают анонс 208.65.153.0/24 от Pakistan Telecom и отправляют трафик YouTube туда.","question":"Как YouTube вернул свой трафик?","solution":"В 20:07 UTC YouTube стал анонсировать тот же /24, в 20:18 UTC ещё два /25. По правилу самого длинного совпадения префикса получившие их маршрутизаторы слали трафик в YouTube. В 21:01 UTC PCCW Global отозвала префиксы Pakistan Telecom.","lesson":"От начала несанкционированного анонса до его отзыва прошло 2 часа 14 минут, с 18:47 до 21:01 UTC."},{"id":"it.how-internet-works.internet-breaks.facebook-2021-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.internet-breaks.facebook-2021","explanation":"Без магистрали DNS-серверы сочли себя нездоровыми и отозвали анонсы BGP. Работающие серверы стало невозможно найти, а без DNS сломались и многие внутренние инструменты инженеров.","type":"quiz_single","question":"Почему 4 октября 2021 года DNS-серверы Facebook стали недостижимы, хотя работали?","options":["Их перегрузила внешняя атака","Они сами отозвали свои анонсы BGP","На них сломалось программное обеспечение","Провайдеры заблокировали их адреса"],"correct":1},{"id":"it.how-internet-works.internet-breaks.cloudflare-2019","status":"active","version":1,"tags":[],"title":"Как одно регулярное выражение вывело из строя Cloudflare","body":"2 июля 2019 года Cloudflare добавила новое правило в набор WAF Managed Rules фильтра веб-запросов (Web Application Firewall). В нём было плохо написанное регулярное выражение (шаблон поиска в тексте) с избыточным возвратом (backtracking): движок снова и снова перебирал варианты. Оно исчерпало процессоры, обслуживающие HTTP и HTTPS.","sources":[{"title":"Cloudflare Blog: Details of the Cloudflare outage on July 2, 2019","url":"https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/","accessed":"2026-10-02","kind":"primary","quote":"The CPU exhaustion was caused by a single WAF rule that contained a poorly written regular expression that ended up creating excessive backtracking."}],"concepts":["regex_backtracking","waf"],"prereq_concepts":["cdn"],"type":"mini_case","situation":"В 13:42 UTC автоматический процесс развернул небольшое изменение правил WAF. Вскоре пошли оповещения о сбоях, ошибки 502 и сообщения о нехватке процессора из городов по всему миру.","question":"Как команда нашла причину и остановила сбой?","solution":"В 14:00 UTC виновником назвали WAF, а версию об атаке отбросили. В 14:07 команда выполнила глобальное отключение WAF, и к 14:09 трафик и загрузка процессоров вернулись к норме. От 13:42 до 14:09 прошло 27 минут.","lesson":"Защиту от чрезмерного расхода процессора регулярными выражениями за несколько недель до сбоя по ошибке удалили."},{"id":"it.how-internet-works.internet-breaks.fastly-2021","status":"active","version":1,"tags":[],"title":"Как корректная настройка клиента уронила сеть Fastly","body":"8 июня 2021 года один клиент Fastly внёс корректное изменение настроек, и 85% сети Fastly начало возвращать ошибки. Ошибку в ПО внесло развёртывание, начатое 12 мая: она могла сработать при определённой конфигурации клиента в особых условиях. В изменении этого клиента были ровно такие условия.","sources":[{"title":"Fastly Blog: Summary of June 8 outage","url":"https://www.fastly.com/blog/summary-of-june-8-outage","accessed":"2026-10-02","kind":"primary","quote":"Early June 8, a customer pushed a valid configuration change that included the specific circumstances that triggered the bug, which caused 85% of our network to return errors."}],"concepts":["software_bug_outage"],"prereq_concepts":["cdn"],"type":"mini_case","situation":"8 июня 2021 года в 09:47 UTC началось глобальное нарушение работы сети Fastly, от которого пострадали её клиенты и все, кто от них зависит.","question":"Как быстро Fastly справилась со сбоем?","solution":"Нарушение обнаружили в течение минуты, нашли и изолировали причину и отключили конфигурацию. Через 49 минут 95% сети работало нормально. Постоянное исправление ошибки начали развёртывать в 17:25 UTC.","lesson":"Настройка клиента была корректной, сбой вызвала ошибка в ПО, которую не поймали при тестировании."},{"id":"it.how-internet-works.internet-breaks.youtube-2008-quiz","status":"active","version":1,"tags":[],"card_ref":"it.how-internet-works.internet-breaks.youtube-2008","explanation":"Неверно: трафик увёл маршрут. Pakistan Telecom несанкционированно анонсировала префикс из блока YouTube, а PCCW Global передала этот анонс остальному интернету.","type":"quiz_true_false","statement":"В 2008 году трафик YouTube ушёл в Пакистан из-за взлома серверов YouTube","correct":false}]},{"id":"it.numbers-in-computer.bits-and-bytes","domain":"it","topic_id":"it.numbers-in-computer","order":1,"title":"Бит и байт","hook":"Всё, что хранит компьютер, сводится к нулям и единицам, а смысл им придаёт программа","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["бит","байт","двоичная система"],"prerequisites":[],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.bits-and-bytes.bit-word","status":"active","version":1,"tags":[],"title":"Откуда взялось слово «бит»","body":"В 1948 году Клод Шеннон опубликовал статью «Математическая теория связи» (A Mathematical Theory of Communication). Информацию он измерял логарифмом и писал, что при основании 2 единицы можно называть двоичными цифрами (binary digits), или короче битами (bits). Само слово, по словам Шеннона, предложил Дж. У. Тьюки (J. W. Tukey).","sources":[{"title":"C. E. Shannon: A Mathematical Theory of Communication (Bell System Technical Journal, 1948)","url":"https://people.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf","accessed":"2026-10-03","kind":"paper","quote":"If the base 2 is used the resulting units may be called binary digits, or more briefly bits, a word suggested by J. W. Tukey."}],"concepts":["bit"],"prereq_concepts":[],"type":"fact","claim":"Слово «бит», сокращение от binary digit, по словам Шеннона в статье 1948 года, предложил Дж. У. Тьюки.","number":{"value":1948,"unit":"год"}},{"id":"it.numbers-in-computer.bits-and-bytes.two-states","status":"active","version":1,"tags":[],"title":"Почему сигналу в компьютере хватает двух состояний","body":"Данные с DVD или магнитного диска в итоге приходят как электрические сигналы. Чтобы упростить схемы, каждый сигнал двоичный: у него только два состояния, нет напряжения (0) или есть напряжение (1). Шеннон в 1948 году писал, что устройство с двумя устойчивыми положениями, например реле или схема-триггер, может хранить один бит.","sources":[{"title":"Dive into Systems, Chapter 4: Binary and Data Representation","url":"https://diveintosystems.org/book/C4-Binary/index.html","accessed":"2026-10-03","kind":"textbook","quote":"To simplify the circuitry, each signal is binary, meaning it can take only one of two states: the absence of a voltage (interpreted as zero) and the presence of a voltage (one)."},{"title":"C. E. Shannon: A Mathematical Theory of Communication (Bell System Technical Journal, 1948)","url":"https://people.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf","accessed":"2026-10-03","kind":"paper","quote":"A device with two stable positions, such as a relay or a flip-flop circuit, can store one bit of information."}],"concepts":["binary_signal"],"prereq_concepts":["bit"],"type":"why"},{"id":"it.numbers-in-computer.bits-and-bytes.doubling","status":"active","version":1,"tags":[],"title":"Как каждый новый бит удваивает число значений","body":"Один бит представляет два значения: 0 и 1. Два бита дают четыре: 00, 01, 10 и 11. Новый бит бывает 0 или 1, а остальные биты в обоих случаях дают прежний набор значений, поэтому вариантов становится вдвое больше. Так с каждым добавленным битом число значений удваивается, и последовательность из N бит может представить 2^N разных значений.","sources":[{"title":"Dive into Systems, Chapter 4: Binary and Data Representation","url":"https://diveintosystems.org/book/C4-Binary/index.html","accessed":"2026-10-03","kind":"textbook","quote":"Luckily, the number of unique values doubles for each additional bit in a bit sequence … A single bit can represent two values: 0 and 1. Two bits can represent four values"}],"concepts":["bit_combinations"],"prereq_concepts":["bit"],"type":"how_it_works","steps":["Возьмите один бит, он даёт два значения, 0 и 1.","Добавьте второй бит, припишите впереди 0 или 1 к каждому значению и получите четыре, 00, 01, 10 и 11.","Добавляйте следующие биты, каждый снова удваивает число значений, и N бит дают 2^N вариантов."]},{"id":"it.numbers-in-computer.bits-and-bytes.doubling-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.bits-and-bytes.doubling","explanation":"По правилу 2^N три бита дают 2^3 = 8 значений, от 000 до 111. Четвёртый бит снова удвоил бы их число, до 16.","type":"quiz_fill_in","template":"Тремя битами можно записать ___ разных значений","answers":[["8","восемь"]]},{"id":"it.numbers-in-computer.bits-and-bytes.byte-eight","status":"active","version":1,"tags":[],"title":"Байт: восемь бит и 256 значений","body":"Байт это группа из восьми бит. По правилу удвоения 8 бит дают 2^8 = 256 значений, от 0 до 255. Байт это наименьшая адресуемая единица памяти: программа не может попросить под переменную меньше восьми бит. Восьмибитный байт, который используется до сих пор, по словам IBM, первой ввела System/360, представленная 7 апреля 1964 года.","sources":[{"title":"Dive into Systems, Chapter 4: Binary and Data Representation","url":"https://diveintosystems.org/book/C4-Binary/index.html","accessed":"2026-10-03","kind":"textbook","quote":"The most ubiquitous grouping is a byte, which is a collection of eight bits. … Bytes are the smallest unit of addressable memory in a computer system"},{"title":"IBM History: System/360","url":"https://www.ibm.com/history/system-360","accessed":"2026-10-03","kind":"primary","quote":"Launched on April 7, 1964, the System/360 … using a new architecture that pioneered the 8-bit byte still in use on computers today."}],"concepts":["byte"],"prereq_concepts":["bit_combinations"],"type":"fact","claim":"Байт это восемь бит, и восьмибитный байт, по словам IBM, первой ввела System/360 в 1964 году.","number":{"value":8,"unit":"бит"}},{"id":"it.numbers-in-computer.bits-and-bytes.bits-meaning","status":"active","version":1,"tags":[],"title":"В памяти нет букв и картинок, только биты","body":"Кажется, что в памяти компьютера лежат буквы и картинки. Но все данные в памяти хранятся как биты, а у самих битов нет собственного смысла. Его задают программы, которые их читают. Одна и та же последовательность 01011010 для текстового редактора может быть буквой «Z», а графическая программа может прочитать её как часть рисунка.","sources":[{"title":"Dive into Systems, Chapter 4: Binary and Data Representation","url":"https://diveintosystems.org/book/C4-Binary/index.html","accessed":"2026-10-03","kind":"textbook","quote":"All data in a computer’s memory is stored as bits, but bits have no inherent meaning. … 01011010, might mean the character 'Z' to a text editor, whereas a graphics program might interpret it as part of a fish’s tail fin."}],"concepts":["data_interpretation"],"prereq_concepts":["bit","byte"],"type":"myth_vs_fact","myth":"В памяти компьютера хранятся буквы и картинки","fact":"В памяти хранятся только биты, а что они значат, решает программа, которая их читает."},{"id":"it.numbers-in-computer.bits-and-bytes.byte-eight-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.bits-and-bytes.byte-eight","explanation":"Восьмибитный байт, по словам IBM, первой ввела System/360, представленная 7 апреля 1964 года. Название, как пишет IBM, выбрали потому, что одна совместимая архитектура должна была подойти всем типам пользователей.","type":"quiz_single","question":"В каком году представили машину, которая, по словам IBM, первой ввела восьмибитный байт?","options":["1948","1952","1964","1981"],"correct":2}]},{"id":"it.numbers-in-computer.binary-and-hex","domain":"it","topic_id":"it.numbers-in-computer","order":2,"title":"Двоичная и шестнадцатеричная запись","hook":"Считать нулями и единицами можно по тем же правилам, что и в школе, а буквы в числах нужны для краткости","difficulty":1,"est_minutes":5,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["двоичная система","шестнадцатеричная система","порядок байтов"],"prerequisites":["it.numbers-in-computer.bits-and-bytes"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.binary-and-hex.place-value","status":"active","version":1,"tags":[],"title":"Как 0b10110100 превращается в 180","body":"Двоичная запись (приставка 0b) устроена как десятичная, только основание у неё 2, а не 10. Разряды идут справа налево, и каждый следующий весит вдвое больше предыдущего: 1, 2, 4, 8, 16, 32, 64, 128, то есть 2^0, 2^1 и так до 2^7. Вклад разряда равен цифре, умноженной на его вес. Байт 0b10110100 равен 128 + 32 + 16 + 4 = 180.","sources":[{"title":"Dive into Systems, 4.1 Number Bases and Unsigned Integers","url":"https://diveintosystems.org/book/C4-Binary/bases.html","accessed":"2026-10-03","kind":"textbook","quote":"each successive bit contributes a factor of two more than the next. … Here’s a longer one-byte example, 0b10110100: … = 128 + 0 + 32 + 16 + 0 + 4 + 0 + 0 = 180"}],"concepts":["binary_place_value"],"prereq_concepts":["bit","byte"],"type":"how_it_works","steps":["Пронумеруйте разряды справа налево, начиная с нуля","Умножьте цифру каждого разряда на 2 в степени его номера","Сложите вклады, для 0b10110100 получится 128 + 32 + 16 + 4 = 180"]},{"id":"it.numbers-in-computer.binary-and-hex.three-bases","status":"active","version":1,"tags":[],"title":"Двоичная и шестнадцатеричная: правила общие, цифры разные","body":"В десятичной системе 10 цифр, от 0 до 9, и сумма 9 + 1 = 10 уже требует второго разряда. Двоичная и шестнадцатеричная (с основанием 16) системы устроены так же, отличаются основанием, набором цифр и моментом переноса. Для значений больше 9 шестнадцатеричная запись по соглашению берёт буквы: A значит 10, B значит 11, и так до F, то есть 15.","sources":[{"title":"Dive into Systems, 4.1 Number Bases and Unsigned Integers","url":"https://diveintosystems.org/book/C4-Binary/bases.html","accessed":"2026-10-03","kind":"textbook","quote":"By convention, hexadecimal uses letters to represent values larger than 9, with A for 10, B for 11, up to F for 15. … the result requires two digits (0xF + 0x1 = 0x10; note that we use 0x to indicate hexadecimal numbers)."}],"concepts":["number_base","hexadecimal"],"prereq_concepts":["binary_place_value"],"type":"comparison","a":"Двоичная","b":"Шестнадцатеричная","criteria":[{"name":"Основание","a":"2","b":"16"},{"name":"Цифры","a":"0 и 1","b":"от 0 до 9 и от A до F"},{"name":"Перенос в новый разряд","a":"1 + 1 = 0b10","b":"0xF + 0x1 = 0x10"},{"name":"Приставка перед числом","a":"0b","b":"0x"}]},{"id":"it.numbers-in-computer.binary-and-hex.why-hex","status":"active","version":1,"tags":[],"title":"Почему двоичные числа записывают в шестнадцатеричном виде","body":"Длинные цепочки из нулей и единиц людям трудно читать. Десятичная запись короче, но плохо показывает диапазон заданного числа бит: 16-битные адреса в ней идут от 0 до 65 535, и без заученных переводов о них трудно рассуждать. Основание 16 является степенью двойки (2^4 = 16), поэтому шестнадцатеричную запись легко переводить в двоичную и обратно.","sources":[{"title":"Dive into Systems, 4.1 Number Bases and Unsigned Integers","url":"https://diveintosystems.org/book/C4-Binary/bases.html","accessed":"2026-10-03","kind":"textbook","quote":"Humans tend to have a tough time making sense of long sequences containing only 0’s and 1’s. … Decimal doesn’t easily capture the range that can be expressed using a fixed number of bits. … because the base is itself a power of two"}],"concepts":["hex_notation_purpose"],"prereq_concepts":["hexadecimal","number_base"],"type":"why"},{"id":"it.numbers-in-computer.binary-and-hex.place-value-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.binary-and-hex.place-value","explanation":"Единица стоит в четвёртом разряде справа, его вес 2^3 = 8, остальные цифры нули. Чтобы не путать такое число с десятичной тысячей, перед ним и пишут приставку 0b.","type":"quiz_fill_in","template":"Двоичное число 0b1000 в десятичной записи равно ___","answers":[["8"]]},{"id":"it.numbers-in-computer.binary-and-hex.css-colors","status":"active","version":1,"tags":[],"title":"Что значат шесть знаков в цвете #00ff00","body":"В CSS, языке оформления веб-страниц, цвет можно записать как #RRGGBB. Каждая пара знаков это шестнадцатеричное число от 0 до ff, то есть до 255: RR задаёт красную составляющую, GG зелёную, BB синюю. Регистр букв не важен, #00ff00 и #00FF00 означают один цвет. Есть и восьмизначная запись #RRGGBBAA, где последняя пара задаёт прозрачность.","sources":[{"title":"MDN: <hex-color>","url":"https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/hex-color","accessed":"2026-10-03","kind":"documentation","quote":"#RRGGBB // The six-value syntax … The red component of the color, as a case-insensitive hexadecimal number between 0 and ff (255)."}],"concepts":["css_hex_color"],"prereq_concepts":["hexadecimal"],"type":"mini_case","situation":"В стилях сайта у кнопки указан цвет #00ff00, и вы хотите понять, какой это цвет, не открывая графический редактор.","question":"Сколько красного, зелёного и синего задаёт запись #00ff00?","solution":"Разбейте запись на пары: 00, ff и 00. Красная составляющая равна 0, зелёная ff, то есть наибольшие 255, синяя 0. В цвете есть только зелёная составляющая, и она на максимуме.","lesson":"Каждая пара в #RRGGBB читается как отдельное шестнадцатеричное число от 0 до 255."},{"id":"it.numbers-in-computer.binary-and-hex.byte-order","status":"active","version":1,"tags":[],"title":"Big-endian и little-endian: названия из «Гулливера»","body":"Процессоры Intel кладут 0x12345678 в память с младшего, правого байта: 0x78 0x56 0x34 0x12, это little-endian. Обратный, big-endian, часто зовут сетевым (network byte order): интернет-стандарты обычно требуют его. Названия из «Путешествий Гулливера» Свифта, к порядку битов и байтов их применил Дэнни Коэн в заметке IEN 137 от 1 апреля 1980 года.","sources":[{"title":"MDN Glossary: Endianness","url":"https://developer.mozilla.org/en-US/docs/Glossary/Endianness","accessed":"2026-10-03","kind":"documentation","quote":"little-endian, which is used on all Intel processors. … Big-endian is also often called \"network byte order\", because Internet standards usually require data to be stored big-endian"},{"title":"IEN 137: On Holy Wars and a Plea for Peace (Danny Cohen, 1980)","url":"https://history.rfc-editor.org/ien/ien137.txt","accessed":"2026-10-03","kind":"primary","quote":"Some notes on Swift's Gulliver's Travels: … Civil war broke out between the Little-Endians and the Big-Endians"}],"concepts":["endianness"],"prereq_concepts":["byte","hexadecimal"],"type":"fact","claim":"Процессоры Intel хранят число 0x12345678 в памяти младшим байтом вперёд, как 0x78 0x56 0x34 0x12."},{"id":"it.numbers-in-computer.binary-and-hex.css-colors-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.binary-and-hex.css-colors","explanation":"Наибольшая пара ff, а это 255. Всего значений от 0 до 255 ровно 256, поэтому 256 это их количество, а не наибольшее значение.","type":"quiz_single","question":"Какое наибольшее десятичное значение может иметь одна составляющая цвета в записи #RRGGBB?","options":["16","99","255","256"],"correct":2}]},{"id":"it.numbers-in-computer.kilo-and-kibi","domain":"it","topic_id":"it.numbers-in-computer","order":3,"title":"Килобайт это 1000 или 1024 байта","hook":"Диск на 1 ТБ в некоторых программах выглядит меньше, и одна из причин в том, что байты считают двумя способами","difficulty":1,"est_minutes":4,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["байт","приставки","кибибайт","единицы измерения"],"prerequisites":["it.numbers-in-computer.bits-and-bytes"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.kilo-and-kibi.si-strict","status":"active","version":1,"tags":[],"title":"По правилам СИ килобит равен 1000 бит, а не 1024","body":"Приставки «кило», «мега» и «гига» задаёт Международная система единиц (СИ). Брошюра СИ, которую выпускает Международное бюро мер и весов (BIPM), говорит: приставки СИ относятся строго к степеням десяти, и для степеней двойки их использовать не следует. Пример оттуда же: один килобит это 1000 бит, а не 1024 бита.","sources":[{"title":"BIPM: The International System of Units (SI Brochure), 9th edition","url":"https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf","accessed":"2026-10-03","kind":"standard","quote":"The SI prefixes refer strictly to powers of 10. They should not be used to indicate powers of 2 (for example, one kilobit represents 1000 bits and not 1024 bits)."}],"concepts":["si_prefix"],"prereq_concepts":["bit"],"type":"fact","claim":"По брошюре СИ один килобит равен 1000 бит, а не 1024 битам.","number":{"value":1000,"unit":"бит"}},{"id":"it.numbers-in-computer.kilo-and-kibi.gb-vs-gib","status":"active","version":1,"tags":[],"title":"Мегабайт и мебибайт, гигабайт и гибибайт","body":"Мегабайт (МБ) и гигабайт (ГБ) построены на степенях десяти, а мебибайт (МиБ) и гибибайт (ГиБ) на степенях двойки. По таблице NIST, Национального института стандартов и технологий США, 1 МБ = 10^6 = 1 000 000 байт, а 1 МиБ = 2^20 = 1 048 576 байт. 1 ГБ = 10^9 байт, а 1 ГиБ = 2^30 = 1 073 741 824 байта.","sources":[{"title":"NIST: Prefixes for binary multiples","url":"https://physics.nist.gov/cuu/Units/binary.html","accessed":"2026-10-03","kind":"agency","quote":"one mebibyte 1 MiB = 2²⁰ B = 1 048 576 B one megabyte 1 MB = 10⁶ B = 1 000 000 B one gibibyte 1 GiB = 2³⁰ B = 1 073 741 824 B one gigabyte 1 GB = 10⁹ B = 1 000 000 000 B"}],"concepts":["binary_prefix","decimal_prefix"],"prereq_concepts":["si_prefix","byte"],"type":"comparison","a":"МБ и ГБ","b":"МиБ и ГиБ","criteria":[{"name":"Основа","a":"степени десяти, 10^6 и 10^9","b":"степени двойки, 2^20 и 2^30"},{"name":"Мега и меби","a":"1 МБ = 1 000 000 байт","b":"1 МиБ = 1 048 576 байт"},{"name":"Гига и гиби","a":"1 ГБ = 1 000 000 000 байт","b":"1 ГиБ = 1 073 741 824 байта"}],"verdict":"Гибибайт больше гигабайта: 1 073 741 824 − 1 000 000 000 = 73 741 824 байта."},{"id":"it.numbers-in-computer.kilo-and-kibi.bi-names","status":"active","version":1,"tags":[],"title":"Как из «кило» получается «киби»","body":"Имена двоичных приставок NIST объясняет так: от приставки СИ берут первые две буквы и добавляют «bi», напоминание о слове binary, «двоичный». Так kilo превращается в kibi, mega в mebi, giga в gibi. К обозначению добавляют букву «i»: Mi, Gi, а для 2^10 пишут Ki с заглавной буквой. Двоичные приставки при этом не входят в СИ.","sources":[{"title":"NIST: Prefixes for binary multiples","url":"https://physics.nist.gov/cuu/Units/binary.html","accessed":"2026-10-03","kind":"agency","quote":"the name of each new prefix is derived from the name of the corresponding SI prefix by retaining the first two letters of the name of the SI prefix and adding the letters \"bi,\" which recalls the word \"binary.\""}],"concepts":["binary_prefix_naming"],"prereq_concepts":["binary_prefix","si_prefix"],"type":"how_it_works","steps":["Взять первые две буквы приставки СИ: ki из kilo, me из mega, gi из giga","Добавить «bi» от слова binary, «двоичный»: получаются kibi, mebi, gibi","Добавить букву «i» к обозначению приставки СИ: Mi, Gi, а для 2^10 Ki"]},{"id":"it.numbers-in-computer.kilo-and-kibi.si-strict-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.kilo-and-kibi.si-strict","explanation":"Брошюра СИ приводит именно этот пример: один килобит это 1000 бит, а не 1024. Приставки СИ относятся только к степеням десяти, а 1024 это 2^10.","type":"quiz_true_false","statement":"По правилам СИ один килобит равен 1024 битам","correct":false},{"id":"it.numbers-in-computer.kilo-and-kibi.prefix-history","status":"active","version":1,"tags":[],"title":"От «кило = 1024» до кибибайта: история приставок","body":"Компьютерные специалисты когда-то заметили, что 2^10 почти равно 1000, и стали называть «кило» число 1024. В декабре 1998 года Международная электротехническая комиссия (IEC) утвердила отдельные имена и обозначения двоичных приставок. Сначала они вошли в стандарт IEC 60027-2, сейчас действует второе издание IEC 80000-13 2025 года.","sources":[{"title":"NIST: Prefixes for binary multiples","url":"https://physics.nist.gov/cuu/Units/binary.html","accessed":"2026-10-03","kind":"agency","quote":"In December 1998 the International Electrotechnical Commission (IEC), the leading international organization for worldwide standardization in electrotechnology, approved as an IEC International Standard names and symbols"},{"title":"IEC 80000-13:2025 Quantities and units, Part 13: Information science and technology","url":"https://webstore.iec.ch/en/publication/87379","accessed":"2026-10-03","kind":"standard","quote":"This second edition cancels and replaces the first edition published in 2008. This edition constitutes a technical revision."}],"concepts":["binary_prefix_history"],"prereq_concepts":["binary_prefix"],"type":"timeline","events":[{"year":1998,"label":"В декабре IEC утверждает имена и обозначения двоичных приставок"},{"year":1999,"label":"В январе выходит поправка 2 к стандарту IEC 60027-2"},{"year":2000,"label":"В ноябре выходит второе издание IEC 60027-2 с этими приставками"},{"year":2008,"label":"Выходит первое издание стандарта IEC 80000-13"},{"year":2025,"label":"Второе издание IEC 80000-13 заменяет первое"}],"takeaway":"Первым стандартом с двоичными приставками был IEC 60027-2, сейчас действует IEC 80000-13:2025."},{"id":"it.numbers-in-computer.kilo-and-kibi.disk-capacity","status":"active","version":1,"tags":[],"title":"Диск на 1 ТБ, а программа показывает меньше","body":"По Apple, производители накопителей считают ёмкость десятично: 1 ТБ = 1 триллион байт. В двоичной системе 1 ТБ = 1 099 511 627 776 байт, так ёмкость показывали, например, iOS 10 и более ранние версии, OS X Leopard и более ранние версии. Ещё часть заявленного места уходит на форматирование накопителя.","sources":[{"title":"Apple Support: How storage capacity is measured on Apple devices","url":"https://support.apple.com/en-us/102119","accessed":"2026-10-03","kind":"documentation","quote":"1TB = 1,099,511,627,776 bytes. Some apps and operating systems, such as iOS 10 and earlier and OS X Leopard and earlier, report storage capacity using the binary system."}],"concepts":["storage_capacity"],"prereq_concepts":["binary_prefix","decimal_prefix"],"type":"mini_case","situation":"Вы купили накопитель на 1 ТБ, а программа, которая считает в двоичной системе, показывает меньше 1 ТБ.","question":"Куда делась часть терабайта?","solution":"Производитель считает 1 ТБ как 1 триллион байт, а двоичный терабайт больше: 1 099 511 627 776 байт. Тот же объём в более крупных единицах даёт меньшее число. Ещё часть заявленного места уходит на форматирование накопителя.","lesson":"Число на коробке и число в программе могут быть посчитаны разными способами."},{"id":"it.numbers-in-computer.kilo-and-kibi.disk-capacity-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.kilo-and-kibi.disk-capacity","explanation":"Производитель считает 1 ТБ как 1 триллион байт, а в двоичном счёте 1 ТБ равен 1 099 511 627 776 байтам. Поэтому триллион байт в двоичных терабайтах меньше единицы.","type":"quiz_single","question":"Почему диск на 1 ТБ в программе с двоичным счётом выглядит меньше 1 ТБ?","options":["Производитель округляет ёмкость вверх до целого терабайта","Двоичный счёт хранит каждый байт сразу в двух ячейках","Двоичный терабайт больше, и байтов на него не хватает","Программа не учитывает байты в последнем гигабайте диска"],"correct":2}]},{"id":"it.numbers-in-computer.negative-numbers","domain":"it","topic_id":"it.numbers-in-computer","order":4,"title":"Как компьютер пишет минус","hook":"В памяти нет знака минус, и отрицательное число получается хитрой договорённостью о старшем бите","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["отрицательные числа","дополнительный код","двоичная система"],"prerequisites":["it.numbers-in-computer.binary-and-hex"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.negative-numbers.sign-bit-myth","status":"active","version":1,"tags":[],"title":"Минус у целых чисел это не перевёрнутый первый бит","body":"В коде «знак и модуль» (signed magnitude) старший, самый левый бит хранит только знак, и знак меняют, переворачивая его. Так кодировали числа некоторые машины прошлого, например IBM 7090 в 1960-х. Но, по учебнику Dive into Systems, современные системы не используют этот способ для целых чисел. И у него два нуля: на четырёх битах 0b0000 и 0b1000.","sources":[{"title":"Dive into Systems, 4.3 Signed Binary Integers","url":"https://diveintosystems.org/book/C4-Binary/signed.html","accessed":"2026-10-03","kind":"textbook","quote":"Although it was used by some machines in the past (e.g., IBM’s 7090 in the 1960s), no modern systems use signed magnitude to represent integers (although a similar mechanism is part of the standard for storing floating-point values)."}],"concepts":["signed_magnitude","sign_bit"],"prereq_concepts":[],"type":"myth_vs_fact","myth":"Чтобы сделать целое число отрицательным, компьютер переворачивает его первый бит.","fact":"Так работал «знак и модуль» на некоторых машинах прошлого. Современные системы не используют его для целых чисел, а похожий механизм входит в стандарт хранения дробных чисел с плавающей точкой.","why_myth_exists":"По соглашению старший бит и правда показывает, отрицательно ли число: 1 значит минус, 0 значит не минус."},{"id":"it.numbers-in-computer.negative-numbers.twos-complement","status":"active","version":1,"tags":[],"title":"Дополнительный код: старший бит идёт с минусом","body":"Учебник Dive into Systems разбирает два способа кодировать знак целого числа, и на практике до сих пор используется только один: дополнительный код (two’s complement). В нём старший бит N-битного числа, если он равен 1, даёт вклад -2^(N-1). Ноль один, поэтому отрицательных значений на одно больше: на четырёх битах от 0b1000 (-8) до 0b0111 (7).","sources":[{"title":"Dive into Systems, 4.3 Signed Binary Integers","url":"https://diveintosystems.org/book/C4-Binary/signed.html","accessed":"2026-10-03","kind":"textbook","quote":"With only a single zero sequence, two’s complement represents one more negative value than positive. Using four-bit sequences as an example, two’s complement represents a minimum value of 0b1000 (-8), but a maximum value of only 0b0111 (7)."}],"concepts":["twos_complement"],"prereq_concepts":["sign_bit"],"type":"how_it_works","steps":["Сложите веса всех битов, кроме старшего, как в обычном двоичном числе.","Если старший бит равен 1, вычтите 2^(N-1), для четырёх бит это 2^3 = 8.","Проверьте края: 0b1000 даёт -8, а 0b0111 даёт 4 + 2 + 1 = 7."]},{"id":"it.numbers-in-computer.negative-numbers.minus-one","status":"active","version":1,"tags":[],"title":"Одни единицы в дополнительном коде равны -1","body":"В дополнительном коде последовательность из одних единиц равна -1 при любом числе бит: и 1111 на четырёх битах, и 11111111 на восьми. Если прибавить к ней 1, она «перекатывается» в ноль, и это совпадает с обычной арифметикой: -1 + 1 = 0. Учебник Dive into Systems отмечает, что так дополнительный код упрощает переход от отрицательных чисел к нулю.","sources":[{"title":"Dive into Systems, 4.3 Signed Binary Integers","url":"https://diveintosystems.org/book/C4-Binary/signed.html","accessed":"2026-10-03","kind":"textbook","quote":"Regardless of the number of bits used to store it, a two’s complement number consisting of all ones will always hold the value -1."}],"concepts":["twos_complement_minus_one"],"prereq_concepts":["twos_complement"],"type":"fact","claim":"В дополнительном коде число из одних единиц равно -1 при любом числе бит.","number":{"value":-1,"unit":"десятичное значение"}},{"id":"it.numbers-in-computer.negative-numbers.twos-complement-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.negative-numbers.twos-complement","explanation":"Ноль в дополнительном коде один, поэтому отрицательных значений на одно больше: минимум 0b1000 это -8, максимум 0b0111 это 7. Учебник замечает, что эта особенность редко мешает программам.","type":"quiz_single","question":"Какой диапазон у четырёхбитного числа в дополнительном коде?","options":["от -7 до 7","от 0 до 15","от -8 до 7","от -7 до 8"],"correct":2},{"id":"it.numbers-in-computer.negative-numbers.negate-trick","status":"active","version":1,"tags":[],"title":"Сменить знак: перевернуть все биты и прибавить 1","body":"В дополнительном коде есть быстрый способ сменить знак числа: инвертировать все биты, то есть заменить нули на единицы и единицы на нули, а потом прибавить единицу. Учебник Dive into Systems показывает это на восьмибитном числе 13. Проверка по правилу старшего бита: 11110011 = -128 + 64 + 32 + 16 + 2 + 1 = -13.","sources":[{"title":"Dive into Systems, 4.3 Signed Binary Integers","url":"https://diveintosystems.org/book/C4-Binary/signed.html","accessed":"2026-10-03","kind":"textbook","quote":"Fortunately, there’s a quick shortcut for negating a two’s complement number in practice: flip all the bits and add one. For example, to negate the eight-bit value 13, first determine the binary value of 13."}],"concepts":["twos_complement_negation"],"prereq_concepts":["twos_complement"],"type":"how_it_works","steps":["Запишите 13 в восьми битах: 00001101.","Инвертируйте все биты: 11110010.","Прибавьте единицу: 11110011, это и есть -13."]},{"id":"it.numbers-in-computer.negative-numbers.java-ranges","status":"active","version":1,"tags":[],"title":"Сколько помещается в целые типы Java","body":"В Java целые типы различаются шириной, а значит и диапазоном. byte это 8-битное целое в дополнительном коде, от -128 до 127, short 16-битное, от -32 768 до 32 767. int по умолчанию 32-битное целое со знаком, от -2^31 до 2^31-1, а long 64-битное, со знаком от -2^63 до 2^63-1. Так описывает типы учебник Oracle по Java.","sources":[{"title":"The Java Tutorials: Primitive Data Types","url":"https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html","accessed":"2026-10-03","kind":"documentation","quote":"The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive)."}],"concepts":["java_integer_types"],"prereq_concepts":["twos_complement"],"type":"comparison","a":"byte и short","b":"int и long","criteria":[{"name":"Ширина","a":"8 и 16 бит","b":"32 и 64 бита"},{"name":"Минимум","a":"-128 и -32 768","b":"-2^31 и -2^63"},{"name":"Максимум","a":"127 и 32 767","b":"2^31-1 и 2^63-1"}]},{"id":"it.numbers-in-computer.negative-numbers.java-ranges-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.negative-numbers.java-ranges","explanation":"byte в Java хранит 8-битное целое в дополнительном коде, от -128 до 127. Учебник Oracle пишет, что такой тип может пригодиться для экономии памяти в больших массивах.","type":"quiz_fill_in","template":"Наибольшее значение типа byte в Java равно ___","answers":[["127"]]}]},{"id":"it.numbers-in-computer.integer-overflow","domain":"it","topic_id":"it.numbers-in-computer","order":5,"title":"Переполнение целых чисел","hook":"Целое с фиксированным числом бит перекатывается, как одометр, и из-за переполнений сбоили игра и ракета","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["переполнение","целые числа","двоичная система"],"prerequisites":["it.numbers-in-computer.negative-numbers"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.integer-overflow.odometer","status":"active","version":1,"tags":[],"title":"Как одометр объясняет переполнение","body":"Вычисление, результату которого не хватает места в памяти, называют переполнением (overflow). Похоже на шестизначный одометр, счётчик пробега: после 999999 ещё одна миля должна дать 1000000, но единица переноса выходит за шесть разрядов, и остаётся 000000. Такой счётчик считает по модулю, то есть по остатку от деления, как часы по модулю 12.","sources":[{"title":"Dive into Systems, 4.5 Integer Overflow","url":"https://diveintosystems.org/book/C4-Binary/overflow.html","accessed":"2026-10-03","kind":"textbook","quote":"A computation that lacks the storage to represent its result has overflowed. … the 1 carries out from the six available digits, leaving only 000000. … Any device that behaves like an odometer performs modular arithmetic."}],"concepts":["integer_overflow","modular_arithmetic"],"prereq_concepts":[],"type":"how_it_works","steps":["Одометр доходит до максимума, 999999.","Ещё одна миля даёт перенос единицы в седьмой разряд, которого у одометра нет.","На табло остаётся 000000, и счёт идёт по кругу, как у часов."]},{"id":"it.numbers-in-computer.integer-overflow.signed-vs-unsigned","status":"active","version":1,"tags":[],"title":"Где разрыв у чисел без знака и со знаком","body":"У N бит без знака (unsigned) диапазон от 0 до 2^N - 1, и разрыв лежит между максимумом и нулём. У N бит со знаком (signed) диапазон от -2^(N-1) до 2^(N-1) - 1, и разрыв там, где встречаются самое большое и самое маленькое значения. Переполнение это переход через разрыв: на четырёх битах со знаком 4 + 5 даёт -7.","sources":[{"title":"Dive into Systems, 4.5 Integer Overflow","url":"https://diveintosystems.org/book/C4-Binary/overflow.html","accessed":"2026-10-03","kind":"textbook","quote":"the discontinuity again sits between the maximum value and zero. … where the largest positive value and smallest negative value meet. … 4 + 5 (both positive) yields -7 (negative)."}],"concepts":["overflow_discontinuity"],"prereq_concepts":["integer_overflow","twos_complement"],"type":"comparison","a":"Без знака","b":"Со знаком","criteria":[{"name":"Наименьшее значение","a":"0","b":"-2^(N-1)"},{"name":"Наибольшее значение","a":"2^N - 1","b":"2^(N-1) - 1"},{"name":"Где разрыв","a":"между 2^N - 1 и 0","b":"между 2^(N-1) - 1 и -2^(N-1)"}],"verdict":"Переполнение это переход через разрыв, а где он лежит, зависит от того, есть ли у числа знак."},{"id":"it.numbers-in-computer.integer-overflow.pac-man","status":"active","version":1,"tags":[],"title":"Pac-Man сбоит после 255-го уровня","body":"Разработчики аркадной игры Pac-Man 1980 года хранили продвижение игрока по уровням в восьмибитном значении без знака, то есть только неотрицательном. Самое большое такое значение 255. Если опытный игрок проходит дальше 255-го уровня, половина игрового поля отображается с сильными сбоями.","sources":[{"title":"Dive into Systems, 4.5 Integer Overflow","url":"https://diveintosystems.org/book/C4-Binary/overflow.html","accessed":"2026-10-03","kind":"textbook","quote":"an unsigned eight-bit value to track the player’s progress through the game’s levels. … if an expert player makes it beyond level 255 (the maximum value of an eight-bit unsigned integer), half of the board ends up glitching significantly"}],"concepts":["overflow_example_pac_man"],"prereq_concepts":["integer_overflow"],"type":"fact","claim":"В Pac-Man 1980 года уровень хранился в восьми битах без знака, и после 255-го уровня половина поля отображается со сбоями.","number":{"value":255,"unit":"уровень"}},{"id":"it.numbers-in-computer.integer-overflow.signed-vs-unsigned-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.integer-overflow.signed-vs-unsigned","explanation":"Оба слагаемых положительные, а сумма вышла отрицательной. Так переполнение со знаком и замечают: при сложении чисел одного знака знак результата не совпал со знаком слагаемых.","type":"quiz_single","question":"Сколько получится, если сложить 4 + 5 в четырёхбитных числах со знаком?","options":["9","-7","-1","7"],"correct":1},{"id":"it.numbers-in-computer.integer-overflow.boeing-787","status":"active","version":1,"tags":[],"title":"Самолёт, который нужно периодически обесточивать","body":"1 мая 2015 года вступила в силу директива FAA, авиационного ведомства США, для всех Boeing 787. На лабораторных испытаниях выяснилось: программный счётчик в блоках управления генераторами (GCU) переполняется после 248 дней непрерывного питания, и блок уходит в аварийный режим. Четыре основных блока, включённые одновременно, уйдут в него вместе.","sources":[{"title":"Federal Register: Airworthiness Directives; The Boeing Company Airplanes (2015-10066)","url":"https://www.federalregister.gov/documents/2015/05/01/2015-10066/airworthiness-directives-the-boeing-company-airplanes","accessed":"2026-10-03","kind":"agency","quote":"This AD requires a repetitive maintenance task for electrical power deactivation … a software counter internal to the GCUs that will overflow after 248 days of continuous power."}],"concepts":["overflow_example_boeing_787"],"prereq_concepts":["integer_overflow"],"type":"mini_case","situation":"Если четыре основных блока GCU включили одновременно, через 248 дней непрерывного питания они вместе уйдут в аварийный режим.","question":"Чем это грозит самолёту и что потребовало FAA?","solution":"Самолёт потеряет всё питание переменного тока. Директива требует регулярно выполнять обслуживание с отключением электропитания самолёта."},{"id":"it.numbers-in-computer.integer-overflow.ariane-501","status":"active","version":1,"tags":[],"title":"Почему первая Ariane 5 стала примером переполнения","body":"4 июня 1996 года, в первом полёте Ariane 5, примерно через 40 секунд после начала полётной последовательности, на высоте около 3700 м, ракета отклонилась от траектории, разрушилась и взорвалась. Ракета взяла значительную часть кода у Ariane 4 и, по учебнику Dive into Systems, вызвала переполнение при переводе числа с плавающей точкой в целое.","sources":[{"title":"ESA: Ariane 501, Presentation of Inquiry Board report","url":"https://www.esa.int/Newsroom/Press_Releases/Ariane_501_-_Presentation_of_Inquiry_Board_report","accessed":"2026-10-03","kind":"agency","quote":"On 4 June 1996 the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded."},{"title":"Dive into Systems, 4.8 Real Numbers in Binary","url":"https://diveintosystems.org/book/C4-Binary/floating_point.html","accessed":"2026-10-03","kind":"textbook","quote":"The rocket, which borrowed much of its code from the Ariane 4, triggered an overflow when attempting to convert a floating-point value into an integer value."}],"concepts":["overflow_example_ariane_501"],"prereq_concepts":["integer_overflow"],"type":"why"},{"id":"it.numbers-in-computer.integer-overflow.boeing-787-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.integer-overflow.boeing-787","explanation":"Через 248 дней блоки уходили в аварийный режим. FAA назвало директиву временной мерой: производитель тогда разрабатывал обновление программы GCU.","type":"quiz_fill_in","template":"Счётчик в блоках GCU Boeing 787 переполнялся через ___ дней непрерывного питания","answers":[["248"]]}]},{"id":"it.numbers-in-computer.time-overflow","domain":"it","topic_id":"it.numbers-in-computer","order":6,"title":"Проблема 2000 и 2038 годов","hook":"Даты в компьютере тоже числа, и когда им не хватает разрядов, наступает своя «проблема года»","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["проблема 2000 года","проблема 2038 года","unix-время"],"prerequisites":["it.numbers-in-computer.integer-overflow"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.time-overflow.y2k-why","status":"active","version":1,"tags":[],"title":"Почему год 00 превращался в 1900","body":"Отчёт Сената США 1999 года объясняет: чтобы экономить память, в ранние годы программисты хранили год двумя цифрами, например 68 вместо 1968, а «19» подразумевалось. Программы продолжали так считать, поэтому 00 или 01 читались как 1900 или 1901, и разница двух дат через рубеж веков считалась неверно.","sources":[{"title":"U.S. Senate Special Committee on the Year 2000 Technology Problem: Investigating the Impact of the Year 2000 Problem (S. Prt. 106-10, 24 February 1999)","url":"https://www.govinfo.gov/content/pkg/GPO-CPRT-106sprt10/pdf/GPO-CPRT-106sprt10.pdf","accessed":"2026-10-03","kind":"agency","quote":"To save memory in the early days of computing, programmers represented four-digit years with only two digits. … Computers continued to assume that the prefix 19 was implied, so dates such as 00 or 01 were treated as 1900 or 1901."}],"concepts":["y2k_two_digit_year"],"prereq_concepts":[],"type":"why","deeper":"Пример из отчёта: между 1 июля 1998 года и 1 июля 2005 года ровно 7 лет, а программа с проблемой 2000 года могла получить 93 года или -7 лет."},{"id":"it.numbers-in-computer.time-overflow.credit-cards","status":"active","version":1,"tags":[],"title":"Карта, которая истекла почти век назад","body":"В отчёте Сената США от 24 февраля 1999 года сказано, что компьютеры уже испытывали трудности с кредитными картами со сроком действия после декабря 1999 года. Из-за двузначной записи года компьютеры считали, что карты, срок которых истекает в 2000 году или позже, истекли почти век назад.","sources":[{"title":"U.S. Senate Special Committee on the Year 2000 Technology Problem: Investigating the Impact of the Year 2000 Problem (S. Prt. 106-10, 24 February 1999)","url":"https://www.govinfo.gov/content/pkg/GPO-CPRT-106sprt10/pdf/GPO-CPRT-106sprt10.pdf","accessed":"2026-10-03","kind":"agency","quote":"Computers have had problems processing credit cards that have expiration dates after December 1999. Due to two-digit dating, computers have thought that cards expiring in 2000 or later had expired almost a century ago."}],"concepts":["y2k_credit_cards"],"prereq_concepts":["y2k_two_digit_year"],"type":"mini_case","situation":"Срок действия кредитной карты заканчивается в 2000 году, а компьютер, который её обрабатывает, хранит год двумя цифрами: 00.","question":"Что такой компьютер решит о сроке карты?","solution":"Он подразумевает префикс 19 и читает 00 как 1900 год. Поэтому, как пишет отчёт Сената, компьютеры считали, что карты со сроком в 2000 году или позже истекли почти век назад.","lesson":"Проблема 2000 года касалась и хранения данных, упорядоченных по дате, например счетов кредитных карт."},{"id":"it.numbers-in-computer.time-overflow.unix-epoch","status":"active","version":1,"tags":[],"title":"Время в Unix это счётчик секунд с 1970 года","body":"В Linux функция time() возвращает время как число секунд с начала эпохи (Epoch), то есть с 1 января 1970 года, 00:00:00 по UTC, всемирному координированному времени. Документация Python уточняет: в этот счёт обычно не входят високосные секунды, а на платформах, совместимых со стандартом POSIX, они исключены.","sources":[{"title":"Linux manual page: time(2)","url":"https://man7.org/linux/man-pages/man2/time.2.html","accessed":"2026-10-03","kind":"documentation","quote":"time() returns the time as the number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."},{"title":"Python documentation: time — Time access and conversions","url":"https://docs.python.org/3/library/time.html","accessed":"2026-10-03","kind":"documentation","quote":"The term seconds since the epoch refers to the total number of elapsed seconds since the epoch, typically excluding leap seconds. Leap seconds are excluded from this total on all POSIX-compliant platforms."}],"concepts":["unix_epoch"],"prereq_concepts":[],"type":"how_it_works","steps":["Возьмите точку отсчёта, эпоху: 1 января 1970 года, 00:00:00 UTC.","Посчитайте секунды, прошедшие с эпохи, без високосных секунд, как на POSIX-совместимых платформах.","Верните результат одним числом, так time() сообщает текущее время."]},{"id":"it.numbers-in-computer.time-overflow.y2k-why-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.time-overflow.y2k-why","explanation":"Верно: программы подразумевали префикс 19, поэтому 00 и 01 становились 1900 и 1901. Отчёт Сената сравнивает это с личными чеками, на которых число 19 когда-то заранее печатали в строке даты.","type":"quiz_true_false","statement":"При двузначной записи года программы читали 00 как 1900 год","correct":true},{"id":"it.numbers-in-computer.time-overflow.y2038","status":"active","version":1,"tags":[],"title":"Где кончается 32-битное время","body":"Число секунд из time() хранится в типе time_t. Руководство Linux пишет, что время может не поместиться в time_t: так бывает, если программа с 32-битным time_t работает на 64-битном ядре 19 января 2038 года в 03:14:08 UTC или позже. По документации Python, на 32-битных системах предел дат в будущем обычно приходится на 2038 год.","sources":[{"title":"Linux manual page: time(2)","url":"https://man7.org/linux/man-pages/man2/time.2.html","accessed":"2026-10-03","kind":"documentation","quote":"The time cannot be represented as a time_t value. This can happen if an executable with 32-bit time_t is run on a 64-bit kernel when the time is 2038-01-19 03:14:08 UTC or later."},{"title":"Python documentation: time — Time access and conversions","url":"https://docs.python.org/3/library/time.html","accessed":"2026-10-03","kind":"documentation","quote":"The cut-off point in the future is determined by the C library; for 32-bit systems, it is typically in 2038."}],"concepts":["year_2038_problem"],"prereq_concepts":["unix_epoch"],"type":"fact","claim":"Программа с 32-битным time_t на 64-битном ядре Linux может не суметь представить время начиная с 19 января 2038 года 03:14:08 UTC.","number":{"value":2038,"unit":"год"}},{"id":"it.numbers-in-computer.time-overflow.time-64","status":"active","version":1,"tags":[],"title":"Лекарство от проблемы 2038 года: 64-битный time_t","body":"Руководство Linux советует программам, которые должны работать после 2038 года, ABI (двоичный интерфейс) с time_t шире 32 бит. POSIX.1-2024 добавил требование: time_t не меньше 64 бит. В руководстве GNU C Library на 3 октября 2026 года time_t 64-битный на всех её платформах, кроме нескольких старых, где без _TIME_BITS=64 он 32-битный.","sources":[{"title":"The GNU C Library Reference Manual: Time Types","url":"https://sourceware.org/glibc/manual/latest/html_node/Time-Types.html","accessed":"2026-10-03","kind":"documentation","quote":"POSIX.1-2024 added the requirement that time_t be at least 64 bits wide. … Currently the time_t type is 64 bits wide on all platforms supported by the GNU C Library, except that it is 32 bits wide on a few older platforms…"},{"title":"Linux manual page: time(2)","url":"https://man7.org/linux/man-pages/man2/time.2.html","accessed":"2026-10-03","kind":"documentation","quote":"Applications intended to run after 2038 should use ABIs with time_t wider than 32 bits"}],"concepts":["time_t_64_bit"],"prereq_concepts":["year_2038_problem"],"type":"fact","claim":"Стандарт POSIX.1-2024 добавил требование, чтобы тип time_t был шириной не меньше 64 бит.","number":{"value":64,"unit":"бита"}},{"id":"it.numbers-in-computer.time-overflow.y2038-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.time-overflow.y2038","explanation":"Руководство Linux пишет, что с 19 января 2038 года 03:14:08 UTC время может не поместиться в 32-битный time_t. Если системное время выходит за диапазон time_t в других ситуациях, поведение не определено.","type":"quiz_single","question":"С какого момента программа с 32-битным time_t на 64-битном ядре может не суметь представить время?","options":["1 января 2038 года, 00:00:00 UTC","19 января 2028 года, 03:14:08 UTC","19 января 2038 года, 03:14:08 UTC","31 декабря 2099 года, 23:59:59 UTC"],"correct":2}]},{"id":"it.numbers-in-computer.floating-point","domain":"it","topic_id":"it.numbers-in-computer","order":7,"title":"Как устроено число с плавающей точкой","hook":"Дробное число в памяти делится на знак, порядок и мантиссу, и не каждую дробь так можно записать точно","difficulty":2,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["числа с плавающей точкой","ieee 754","двоичная система"],"prerequisites":["it.numbers-in-computer.binary-and-hex","it.numbers-in-computer.negative-numbers"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.floating-point.no-exact-reals","status":"active","version":1,"tags":[],"title":"Почему дробь в памяти часто лишь приближение","body":"По учебнику Dive into Systems, никакая двоичная запись не хранит идеально точно все вещественные числа (точки числовой прямой). Число пи так не записать, его запись не кончается. А при фиксированном числе бит нельзя точно записать и некоторые рациональные числа (дроби) из диапазона. Поэтому обычно хранят приближения, обрезанные до заданной длины.","sources":[{"title":"Dive into Systems, 4.8 Real Numbers in Binary","url":"https://diveintosystems.org/book/C4-Binary/floating_point.html","accessed":"2026-10-03","kind":"textbook","quote":"no binary encoding represents real values with perfect precision. … Given a fixed number of bits, binary encodings still can’t represent some rational values within their range."}],"concepts":["real_number_approximation"],"prereq_concepts":["bit"],"type":"why"},{"id":"it.numbers-in-computer.floating-point.fixed-vs-floating","status":"active","version":1,"tags":[],"title":"Фиксированная точка против плавающей","body":"Двоичная точка, как десятичная запятая, отделяет дробную часть числа. В фиксированной точке (fixed-point) её место задано заранее и не меняется: N бит после точки дают точность 2^-N, два бита дают шаг 0,25. В плавающей точке (floating-point) место точки не закреплено. Это даёт большой диапазон значений ценой дополнительной сложности.","sources":[{"title":"Dive into Systems, 4.8 Real Numbers in Binary","url":"https://diveintosystems.org/book/C4-Binary/floating_point.html","accessed":"2026-10-03","kind":"textbook","quote":"fixed-point, which extends the binary integer format, and floating-point, which represents a large range of values at the cost of some extra complexity. … fractional values that are precise to 0.25"}],"concepts":["fixed_point","floating_point"],"prereq_concepts":["binary_place_value"],"type":"comparison","a":"Фиксированная точка","b":"Плавающая точка","criteria":[{"name":"Место двоичной точки","a":"задано заранее и не меняется","b":"не закреплено заранее"},{"name":"Точность и диапазон","a":"N бит после точки дают шаг 2^-N, два бита дают 0,25","b":"большой диапазон значений"},{"name":"Устройство","a":"расширяет формат двоичного целого числа","b":"дополнительная сложность"}]},{"id":"it.numbers-in-computer.floating-point.float32-layout","status":"active","version":1,"tags":[],"title":"32-битное число: знак, порядок и мантисса","body":"Стандарт IEEE 754 делит 32-битное число с плавающей точкой на три части. Младшие 23 бита это мантисса (significand), перед её значением неявно стоят единица и двоичная точка. Следующие 8 бит это порядок (exponent): мантисса умножается на 2 в степени (порядок - 127), где 127 это смещение. Старший бит знаковый: 0 значит плюс, 1 минус.","sources":[{"title":"Dive into Systems, 4.8 Real Numbers in Binary","url":"https://diveintosystems.org/book/C4-Binary/floating_point.html","accessed":"2026-10-03","kind":"textbook","quote":"The low-order 23 bits … represent the significand (sometimes called the mantissa). … its value implicitly follows a 1 and binary point. … The next eight bits … represent the exponent"}],"concepts":["float32_layout","exponent_bias"],"prereq_concepts":["floating_point","sign_bit"],"type":"how_it_works","steps":["Прочитайте младшие 23 бита мантиссы и поставьте перед ними единицу и двоичную точку.","Умножьте результат на 2 в степени (порядок - 127), порядок записан в следующих 8 битах.","Посмотрите на старший бит, 0 даёт положительное число, 1 отрицательное."]},{"id":"it.numbers-in-computer.floating-point.float32-layout-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.floating-point.float32-layout","explanation":"Порядок занимает 8 бит между знаковым битом и 23 битами мантиссы. Из него вычитают смещение 127, и оно позволяет хранить как очень большие, так и очень маленькие значения.","type":"quiz_single","question":"Сколько бит отведено под порядок в 32-битном числе по IEEE 754?","options":["1 бит","8 бит","16 бит","23 бита"],"correct":1},{"id":"it.numbers-in-computer.floating-point.js-double","status":"active","version":1,"tags":[],"title":"Число в JavaScript занимает 64 бита","body":"По справочнику MDN, тип Number в JavaScript это 64-битное число двойной точности по IEEE 754, как double в Java или C#. Из 64 бит 1 отведён на знак, 11 на порядок и 52 на мантиссу. Это даёт около 15-17 значащих десятичных цифр. Значения больше Number.MAX_VALUE заменяются особым значением Infinity, то есть бесконечностью.","sources":[{"title":"MDN: Number","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number","accessed":"2026-10-03","kind":"documentation","quote":"The JavaScript Number type is a double-precision 64-bit binary format IEEE 754 value, like double in Java or C#. … 11 bits for the exponent (-1022 to 1023) 52 bits for the mantissa … or about 15 to 17 significant decimal digits"}],"concepts":["js_number_double"],"prereq_concepts":["float32_layout"],"type":"fact","claim":"Тип Number в JavaScript это 64-битное число двойной точности по IEEE 754.","number":{"value":64,"unit":"бита"}},{"id":"it.numbers-in-computer.floating-point.ieee754-history","status":"active","version":1,"tags":[],"title":"Три редакции стандарта IEEE 754","body":"Редакция IEEE 754-1985 называлась «IEEE Standard for Binary Floating-Point Arithmetic» и теперь заменена. На 3 октября 2026 года действует IEEE 754-2019, утверждённая 13 июня 2019 года вместо IEEE 754-2008. Она описывает двоичную и десятичную арифметику. По Dive into Systems, IEEE 754 следует почти всё современное оборудование.","sources":[{"title":"IEEE SA: IEEE 754-2019 Standard for Floating-Point Arithmetic","url":"https://standards.ieee.org/ieee/754/6210/","accessed":"2026-10-03","kind":"standard","quote":"Status Active Standard PAR Approval 2015-09-03 Superseding 754-2008 Board Approval 2019-06-13 History Published: 2019-07-22 … 754-1985 IEEE Standard for Binary Floating-Point Arithmetic"},{"title":"Dive into Systems, 4.8 Real Numbers in Binary","url":"https://diveintosystems.org/book/C4-Binary/floating_point.html","accessed":"2026-10-03","kind":"textbook","quote":"Almost all modern hardware follows the IEEE 754 standard to represent floating-point values."}],"concepts":["ieee754_editions"],"prereq_concepts":["floating_point"],"type":"timeline","events":[{"year":1985,"label":"IEEE 754-1985, стандарт двоичной арифметики с плавающей точкой"},{"year":2008,"label":"IEEE 754-2008, позже заменённая новой редакцией"},{"year":2019,"label":"Утверждена действующая редакция IEEE 754-2019"}],"takeaway":"На 3 октября 2026 года действует IEEE 754-2019, а редакции 1985 и 2008 годов заменены."},{"id":"it.numbers-in-computer.floating-point.ieee754-history-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.floating-point.ieee754-history","explanation":"Первой была IEEE 754-1985 с названием «Binary Floating-Point Arithmetic», затем IEEE 754-2008. Действующую IEEE 754-2019 утвердили 13 июня 2019 года, а опубликовали 22 июля 2019 года.","type":"quiz_ordering","prompt":"Расставьте редакции IEEE 754 по времени, от ранней к поздней","items":["Действующая редакция стандарта","Редакция «Binary Floating-Point Arithmetic»","Редакция, которую заменила действующая"],"correct_order":[1,2,0]}]},{"id":"it.numbers-in-computer.float-precision","domain":"it","topic_id":"it.numbers-in-computer","order":8,"title":"Почему 0,1 + 0,2 не равно 0,3","hook":"Компьютер не ошибается в сложении, он просто не может записать 0,1 точно, и это бывает важно","difficulty":3,"est_minutes":5,"status":"checked","is_free":false,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["плавающая точка","точность вычислений","javascript","python"],"prerequisites":["it.numbers-in-computer.floating-point"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.float-precision.point-one","status":"active","version":1,"tags":[],"title":"Почему 0,1 нельзя точно записать двоичной дробью","body":"Дробь 1/3 нельзя точно записать десятичной: 0,3, 0,33, 0,333 лишь приближаются к ней. С 0,1 в двоичной системе так же: 1/10 там бесконечная периодическая дробь 0,000110011… Документация Python поясняет: большинство десятичных дробей нельзя точно представить двоичными, поэтому введённые числа, как правило, хранятся приближённо.","sources":[{"title":"Python Tutorial: 15. Floating-Point Arithmetic: Issues and Limitations","url":"https://docs.python.org/3/tutorial/floatingpoint.html","accessed":"2026-10-03","kind":"documentation","quote":"In the same way, no matter how many base 2 digits you’re willing to use, the decimal value 0.1 cannot be represented exactly as a base 2 fraction. In base 2, 1/10 is the infinitely repeating fraction"}],"concepts":["binary_fraction_approximation"],"prereq_concepts":["floating_point"],"type":"why","deeper":"Если остановиться на любом конечном числе двоичных знаков, получится только приближение к 0,1, как и с 0,333 для 1/3."},{"id":"it.numbers-in-computer.float-precision.sum-not-equal","status":"active","version":1,"tags":[],"title":"В JavaScript 0.1 + 0.2 даёт 0.30000000000000004","body":"Если вывести в консоли JavaScript сумму 0.1 + 0.2, получится 0.30000000000000004, а сравнение 0.1 + 0.2 === 0.3 даст false. Это не причуда одного языка: в Python 0.1 + 0.1 + 0.1 == 0.3 тоже даёт False. Документация Python называет это свойством самой двоичной плавающей точки, а не ошибкой Python или вашего кода.","sources":[{"title":"MDN: Number.EPSILON","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON","accessed":"2026-10-03","kind":"documentation","quote":"console.log(0.1 + 0.2); // 0.30000000000000004 console.log(0.1 + 0.2 === 0.3); // false"},{"title":"Python Tutorial: 15. Floating-Point Arithmetic: Issues and Limitations","url":"https://docs.python.org/3/tutorial/floatingpoint.html","accessed":"2026-10-03","kind":"documentation","quote":"Note that this is in the very nature of binary floating point: this is not a bug in Python, and it is not a bug in your code either."}],"concepts":["float_sum_error"],"prereq_concepts":["binary_fraction_approximation"],"type":"fact","claim":"В JavaScript 0.1 + 0.2 даёт 0.30000000000000004, а сравнение 0.1 + 0.2 === 0.3 даёт false.","number":{"value":0.30000000000000004,"unit":"результат 0.1 + 0.2"}},{"id":"it.numbers-in-computer.float-precision.compare-close","status":"active","version":1,"tags":[],"title":"Как сравнивать дробные числа: через допуск","body":"Дробные числа часто советуют не сравнивать через ===, а считать равными, если они достаточно близки. В JavaScript разумным допуском обычно служит Number.EPSILON, если числа порядка 1. Это очень маленькое число: по MDN, оно показывает, насколько точно записано число 1. Для больших чисел такой допуск не подходит.","sources":[{"title":"MDN: Number.EPSILON","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON","accessed":"2026-10-03","kind":"documentation","quote":"often advised that floating point numbers should never be compared with ===. … Number.EPSILON constant is usually a reasonable threshold … around the magnitude of 1, because EPSILON, in essence, specifies how accurate the number \"1\" is"}],"concepts":["float_tolerance_compare"],"prereq_concepts":["float_sum_error"],"type":"how_it_works","steps":["Вычислите разницу двух чисел по модулю: Math.abs(x - y).","Сравните эту разницу с допуском, для чисел порядка 1 обычно с Number.EPSILON.","Если разница меньше допуска, считайте числа равными."]},{"id":"it.numbers-in-computer.float-precision.sum-not-equal-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.float-precision.sum-not-equal","explanation":"Неверно: сумма 0.1 + 0.2 в JavaScript равна 0.30000000000000004, и сравнение даёт false. Документация Python добавляет, что 0.1 на экране это округлённый показ, а в памяти лежит ближайшая двоичная дробь.","type":"quiz_true_false","statement":"В JavaScript сравнение 0.1 + 0.2 === 0.3 даёт true","correct":false},{"id":"it.numbers-in-computer.float-precision.safe-integer","status":"active","version":1,"tags":[],"title":"В JavaScript не всякое целое число хранится точно","body":"В JavaScript у целых чисел есть безопасная граница: Number.MAX_SAFE_INTEGER = 2^53 - 1 = 9 007 199 254 740 991. «Безопасная» значит, что до неё целые представляются точно и сравниваются правильно. Дальше разные целые могут совпасть: MDN показывает, что MAX_SAFE_INTEGER + 1 === MAX_SAFE_INTEGER + 2 даёт true, хотя математически это неверно.","sources":[{"title":"MDN: Number.MAX_SAFE_INTEGER","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER","accessed":"2026-10-03","kind":"documentation","quote":"9007199254740991 … \"Safe\" in this context refers to the ability to represent integers exactly and to compare them correctly. For example, Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 will evaluate to true"}],"concepts":["max_safe_integer"],"prereq_concepts":["floating_point"],"type":"myth_vs_fact","myth":"В JavaScript любое целое число хранится и сравнивается точно.","fact":"Среди положительных целых гарантированно точно хранятся и правильно сравниваются только числа до Number.MAX_SAFE_INTEGER, то есть до 2^53 - 1 = 9 007 199 254 740 991."},{"id":"it.numbers-in-computer.float-precision.patriot","status":"active","version":1,"tags":[],"title":"Как ошибка округления времени подвела Patriot в 1991 году","body":"25 февраля 1991 года батарея Patriot в Дахране (Саудовская Аравия) не смогла отследить и перехватить ракету Scud. Ракета попала в армейскую казарму и убила 28 американцев. По отчёту GAO, Счётной палаты США, 1992 года, виновата программная ошибка: расчёт слежения становился тем неточнее, чем дольше работала система.","sources":[{"title":"GAO: Patriot Missile Defense, Software Problem Led to System Failure at Dhahran, Saudi Arabia (IMTEC-92-26, 1992)","url":"https://www.gao.gov/assets/imtec-92-26.pdf","accessed":"2026-10-03","kind":"agency","quote":"On February 25, 1991, a Patriot missile defense system operating at Dhahran, Saudi Arabia, … failed to track and intercept an incoming Scud. … killing 28 Americans. … operating continuously for over 100 hours."}],"concepts":["rounding_error_accumulation"],"prereq_concepts":["binary_fraction_approximation"],"type":"mini_case","situation":"Батарея работает без перерыва больше 100 часов. Время система ведёт в десятых долях секунды, а регистры у неё 24-битные.","question":"Почему система искала ракету не в том месте?","solution":"Для прогноза время переводили из целого числа в вещественное, и из-за 24-битных регистров точность терялась. Ошибка росла с временем работы, и через 100 с лишним часов область поиска цели сместилась."},{"id":"it.numbers-in-computer.float-precision.patriot-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.float-precision.patriot","explanation":"Ошибка перевода времени росла с временем работы, и после 100 с лишним часов система искала Scud не там. По GAO, Patriot не рассчитывали на долгую непрерывную работу.","type":"quiz_single","question":"Что сделало ошибку округления времени в Patriot в Дахране опасной?","options":["Ракета Scud летела ниже зоны обзора радара","Батарея много часов работала без перерыва","Система отсчитывала время в целых минутах","Батарею перезапустили прямо перед атакой"],"correct":1}]},{"id":"it.numbers-in-computer.text-encodings","domain":"it","topic_id":"it.numbers-in-computer","order":9,"title":"ASCII, КОИ-8 и кракозябры","hook":"Буква в компьютере это число из таблицы, а таблиц было сотни, отсюда и нечитаемый текст при чужой кодировке","difficulty":2,"est_minutes":5,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["кодировки","ascii","koi8-r"],"prerequisites":["it.numbers-in-computer.bits-and-bytes","it.numbers-in-computer.binary-and-hex"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.text-encodings.letters-are-numbers","status":"active","version":1,"tags":[],"title":"Как буква становится байтами","body":"По сути компьютер имеет дело только с числами: буквы и другие символы он хранит, назначая каждому число. Кодировка символов это набор соответствий между байтами в компьютере и символами. При наборе текста кодировка превращает символы в байты в памяти, а при показе читает байты обратно в символы. Без верной кодировки данные выглядят как мусор.","sources":[{"title":"Unicode: What is Unicode?","url":"https://www.unicode.org/standard/WhatIsUnicode.html","accessed":"2026-10-03","kind":"primary","quote":"Fundamentally, computers just deal with numbers. They store letters and other characters by assigning a number for each one."},{"title":"W3C Internationalization: Character encodings for beginners","url":"https://www.w3.org/International/questions/qa-what-is-encoding","accessed":"2026-10-03","kind":"documentation","quote":"a set of mappings between the bytes in the computer and the characters … the data looks like garbage. … maps characters you choose to specific bytes in computer memory, and then to display the text it reads the bytes back into characters"}],"concepts":["character_encoding"],"prereq_concepts":["byte"],"type":"how_it_works","steps":["Наберите символ, и кодировка сопоставит ему определённые байты","Байты сохраняются в памяти компьютера","При показе текста программа читает байты обратно в символы"]},{"id":"it.numbers-in-computer.text-encodings.ascii-7bit","status":"active","version":1,"tags":[],"title":"ASCII в сети: семь бит в восьмибитном байте","body":"16 октября 1969 года Винт Серф в RFC 20 предложил для обмена по сети стандартный семибитный ASCII (американский стандартный код для обмена информацией). Каждый символ кладётся в восьмибитный байт, старший бит которого всегда 0. Таблицу кодов RFC взял из стандарта USAS X3.4-1968. N бит дают 2^N значений, значит семь бит дают 2^7 = 128 разных кодов.","sources":[{"title":"RFC 20: ASCII format for Network Interchange (STD 80)","url":"https://www.rfc-editor.org/info/rfc20/","accessed":"2026-10-03","kind":"standard","quote":"October 16, 1969 … For concreteness, we suggest the use of standard 7-bit ASCII embedded in an 8 bit byte whose high order bit is always 0. This leads to the standard code given on the attached page, copies from USAS X3, 4- 1968."},{"title":"Dive into Systems, Chapter 4: Binary and Data Representation","url":"https://diveintosystems.org/book/C4-Binary/index.html","accessed":"2026-10-03","kind":"textbook","quote":"the number of unique values doubles for each additional bit in a bit sequence, so a sequence of N bits can represent 2N unique values"}],"concepts":["ascii"],"prereq_concepts":["character_encoding","bit","byte"],"type":"fact","claim":"В RFC 20 от 16 октября 1969 года предложено передавать по сети семибитный ASCII в восьмибитном байте со старшим битом 0.","number":{"value":7,"unit":"бит"}},{"id":"it.numbers-in-computer.text-encodings.koi8-r","status":"active","version":1,"tags":[],"title":"KOI8-R: стандарт де-факто, но не международный","body":"В июле 1993 года вышел RFC 1489 А. Чернова о регистрации кириллической кодировки koi8-r. Он пишет, что международным стандартом она тогда не была, но фактически была стандартом для Unix и глобальных сетевых приложений в бывшем СССР. Основа кодировки ГОСТ 19768-74 и другие стандарты, нижняя половина её таблицы полностью совпадает с ASCII.","sources":[{"title":"RFC 1489: Registration of a Cyrillic Character Set","url":"https://www.rfc-editor.org/info/rfc1489/","accessed":"2026-10-03","kind":"standard","quote":"July 1993 … \"koi8-r\" is not currently an international standard, … \"koi8-r\" is de-facto standard for Unix and global network applications in the former Soviet Union. … GOST 19768-74 (old-koi8)"}],"concepts":["koi8_r"],"prereq_concepts":["character_encoding","ascii"],"type":"fact","claim":"RFC 1489 в июле 1993 года называет koi8-r фактическим стандартом для Unix и глобальных сетевых приложений в бывшем Советском Союзе.","number":{"value":1993,"unit":"год"}},{"id":"it.numbers-in-computer.text-encodings.ascii-7bit-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.text-encodings.ascii-7bit","explanation":"RFC 20 предлагает стандартный семибитный ASCII: сам код занимает семь бит, а это 128 разных кодов. В сети код кладётся в восьмибитный байт, старший бит которого всегда равен 0.","type":"quiz_fill_in","template":"По RFC 20 сам код символа в стандартном ASCII, без старшего бита байта, состоит из ___ бит","answers":[["7","семь"]]},{"id":"it.numbers-in-computer.text-encodings.one-byte-two-letters","status":"active","version":1,"tags":[],"title":"Один байт 233: «é» или «щ»","body":"В кодировке ISO 8859-1, она же Latin1, код 233 означает букву «é», а в ISO 8859-5 тот же код это кириллическая «щ». В обеих меньше 256 символов, и код записывается одним байтом со значением 233. Только контекст определяет, «é» это или «щ». Если сведения о кодировке неверны, программа ищет в шрифте, наборе форм знаков, знаки не для тех символов.","sources":[{"title":"W3C Internationalization: Character encodings for beginners","url":"https://www.w3.org/International/questions/qa-what-is-encoding","accessed":"2026-10-03","kind":"documentation","quote":"In the coded character set called ISO 8859-1 (also known as Latin1) the decimal code point value for the letter é is 233. However, in ISO 8859-5, the same code point represents the Cyrillic character щ."}],"concepts":["single_byte_encoding_ambiguity"],"prereq_concepts":["character_encoding","byte"],"type":"mini_case","situation":"Программа открыла текст в кодировке ISO 8859-5 как текст в ISO 8859-1, и на месте каждой «щ» вы видите «é», хотя файл никто не менял.","question":"Почему одна буква превратилась в другую?","solution":"В файле записан байт 233. В ISO 8859-5 он означает «щ», в ISO 8859-1 означает «é». Программа приняла не ту кодировку и стала искать в шрифте знак не для того символа.","lesson":"Байт хранит только число, а какая это буква, определяет кодировка, которой его читают."},{"id":"it.numbers-in-computer.text-encodings.hundreds-encodings","status":"active","version":1,"tags":[],"title":"Почему понадобился Unicode","body":"До Unicode существовали сотни разных кодировок, и ни одной не хватало даже для английского: все буквы, знаки препинания и технические символы в одну не помещались. Кодировки ещё и конфликтовали: две могли дать одно число разным символам или разные числа одному символу. При передаче между компьютерами или кодировками данные рисковали испортиться.","sources":[{"title":"Unicode: What is Unicode?","url":"https://www.unicode.org/standard/WhatIsUnicode.html","accessed":"2026-10-03","kind":"primary","quote":"there were hundreds of different systems, called character encodings … two encodings could use the same number for two different characters, or use different numbers for the same character."}],"concepts":["encoding_conflicts"],"prereq_concepts":["character_encoding"],"type":"why"},{"id":"it.numbers-in-computer.text-encodings.one-byte-two-letters-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.text-encodings.one-byte-two-letters","explanation":"Число в байте одно и то же, 233, в шестнадцатеричной записи E9. Букву выбирает кодировка: в ISO 8859-1 это «é», в ISO 8859-5 «щ».","type":"quiz_single","question":"Почему байт 233 может оказаться и буквой «é», и буквой «щ»?","options":["Файл повредился при передаче по сети","Байт прочитали в другой кодировке","Буквы «é» и «щ» в шрифте нарисованы одинаково","При открытии файла байт 233 заменился другим числом"],"correct":1}]},{"id":"it.numbers-in-computer.unicode-utf8","domain":"it","topic_id":"it.numbers-in-computer","order":10,"title":"Unicode и UTF-8","hook":"Одна таблица на все языки и эмодзи, и кодировка, где буква занимает от одного до четырёх байт","difficulty":3,"est_minutes":5,"status":"checked","is_free":true,"disclaimers":["Факты подготовлены с помощью ИИ и могут содержать ошибки"],"tags":["unicode","utf-8","кодировки","эмодзи"],"prerequisites":["it.numbers-in-computer.text-encodings"],"related":[],"cover":null,"cards":[{"id":"it.numbers-in-computer.unicode-utf8.code-points","status":"active","version":1,"tags":[],"title":"У каждого символа в Unicode есть свой номер","body":"Unicode (Юникод) это стандарт, который даёт каждому символу уникальный номер независимо от платформы, программы и языка. Символы в нём добавляются с новыми версиями. Версия Unicode 18.0, объявленная 16 сентября 2026 года, добавила 13 007 символов, и всего их стало 172 808. На 3 октября 2026 года это последняя версия.","sources":[{"title":"Unicode: What is Unicode?","url":"https://www.unicode.org/standard/WhatIsUnicode.html","accessed":"2026-10-03","kind":"primary","quote":"Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language."},{"title":"Unicode 18.0.0","url":"https://www.unicode.org/versions/Unicode18.0.0/","accessed":"2026-10-03","kind":"primary","quote":"Unicode 18.0 adds 13,007 characters, for a total of 172,808 characters."}],"concepts":["unicode","code_point"],"prereq_concepts":["character_encoding"],"type":"fact","claim":"В версии Unicode 18.0, объявленной 16 сентября 2026 года, 172 808 символов, и на 3 октября 2026 года это последняя версия.","number":{"value":172808,"unit":"символов"}},{"id":"it.numbers-in-computer.unicode-utf8.utf8-variable","status":"active","version":1,"tags":[],"title":"В UTF-8 символ занимает от одного до четырёх байт","body":"UTF-8 это кодировка, то есть способ записать номера Unicode байтами. По RFC 3629 символ занимает от 1 до 4 байт (октетов, групп по 8 бит). Символы US-ASCII занимают один байт с тем же значением, что в ASCII. По W3C, одним байтом в UTF-8 кодируются только символы ASCII, а буква «щ» с номером 1097 и буква «é» занимают по два байта.","sources":[{"title":"RFC 3629: UTF-8, a transformation format of ISO 10646 (STD 63)","url":"https://www.rfc-editor.org/info/rfc3629/","accessed":"2026-10-03","kind":"standard","quote":"… are encoded using sequences of 1 to 4 octets. The only octet of a \"sequence\" of one has the higher-order bit set to 0, … In a sequence of n octets, n>1, the initial octet has the n higher-order bits set to 1, followed by a bit set to 0."},{"title":"W3C Internationalization: Character encodings for beginners","url":"https://www.w3.org/International/questions/qa-what-is-encoding","accessed":"2026-10-03","kind":"documentation","quote":"the Cyrillic character щ now has a code point value of 1097. … щ will be represented by two bytes. … the letter é is also represented by two bytes in UTF-8, … (Only ASCII characters are encoded with a single byte in UTF-8.)"}],"concepts":["utf8","variable_length_encoding"],"prereq_concepts":["byte","ascii","unicode"],"type":"how_it_works","steps":["Выбрать длину: символу US-ASCII хватает 1 байта, остальным нужно от 2 до 4","Для n от 2 до 4 байтов начать первый байт с n единиц и одного нуля","Начать каждый следующий байт с битов 10"]},{"id":"it.numbers-in-computer.unicode-utf8.utf8-history","status":"active","version":1,"tags":[],"title":"UTF-8: от системы Plan9 до интернет-стандарта","body":"По RFC 3629, UTF-8 придумал Кен Томпсон в сентябре 1992 года по критериям, которые задал Роб Пайк, чтобы использовать его в операционной системе Plan9. В январе 1998 года UTF-8 описал RFC 2279, сейчас он отменён. В ноябре 2003 года его заменил RFC 3629, это интернет-стандарт STD 63.","sources":[{"title":"RFC 3629: UTF-8, a transformation format of ISO 10646 (STD 63)","url":"https://www.rfc-editor.org/info/rfc3629/","accessed":"2026-10-03","kind":"standard","quote":"UTF-8 was devised in September 1992 by Ken Thompson, guided by design criteria specified by Rob Pike, with the objective of defining a UCS transformation format usable in the Plan9 operating system"},{"title":"RFC 2279: UTF-8, a transformation format of ISO 10646","url":"https://www.rfc-editor.org/info/rfc2279/","accessed":"2026-10-03","kind":"standard","quote":"This RFC is now obsolete, see RFC 3629"}],"concepts":["utf8_history"],"prereq_concepts":["utf8"],"type":"timeline","events":[{"year":1992,"label":"В сентябре Кен Томпсон придумывает UTF-8 для системы Plan9"},{"year":1998,"label":"В январе выходит RFC 2279 с описанием UTF-8, сейчас он отменён"},{"year":2003,"label":"В ноябре RFC 3629 заменяет RFC 2279 и становится стандартом STD 63"}],"takeaway":"Действующее описание UTF-8 это RFC 3629 (STD 63), а RFC 2279 отменён."},{"id":"it.numbers-in-computer.unicode-utf8.utf8-variable-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.unicode-utf8.utf8-variable","explanation":"В UTF-8 «щ» занимает два байта, это прямо сказано у W3C. Там же объяснено, почему одного байта мало: 8 бит дают всего 256 комбинаций, а номер у «щ» 1097.","type":"quiz_single","question":"Сколько байт занимает буква «щ» в кодировке UTF-8?","options":["Один байт","Два байта","Три байта","Четыре байта"],"correct":1},{"id":"it.numbers-in-computer.unicode-utf8.emoji-length","status":"active","version":1,"tags":[],"title":"Почему у строки из одного смайлика длина 2","body":"JavaScript хранит строки в кодировке UTF-16. По MDN, свойство length возвращает не число символов, а число единиц кода (code units) UTF-16, и символ Unicode может занимать одну или две такие единицы. Поэтому в примере MDN у строки из одного эмодзи-смайлика length равно 2. Для латиницы и кириллицы, по MDN, это обычно не проблема.","sources":[{"title":"MDN: String: length","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length","accessed":"2026-10-03","kind":"documentation","quote":"This property returns the number of code units in the string. JavaScript uses UTF-16 encoding, where each Unicode character may be encoded as one or two code units … const emoji = \"😄\"; console.log(emoji.length); // 2"}],"concepts":["utf16_code_unit","string_length"],"prereq_concepts":["unicode"],"type":"mini_case","situation":"Вы проверяете длину строки в JavaScript, и строка из одного эмодзи-смайлика даёт length, равное 2.","question":"Почему один символ дал длину 2?","solution":"length считает единицы кода UTF-16, а этот смайлик занимает две. Видимые знаки (графемы) MDN предлагает считать через Intl.Segmenter: в его примере семья из нескольких эмодзи считается одной графемой.","lesson":"Свойство length в JavaScript считает единицы кода UTF-16, а не видимые знаки."},{"id":"it.numbers-in-computer.unicode-utf8.flag-pairs","status":"active","version":1,"tags":[],"title":"Флаг Германии в Unicode это пара символов D и E","body":"В Unicode есть набор из 26 символов-индикаторов региона (regional indicator symbols). Их можно ставить парами, чтобы обозначить территорию, например «DE» для Германии. Такие пары обычно показываются как национальные флаги. Поэтому немецкий флаг на экране обычно получается из двух символов подряд, а не из одного.","sources":[{"title":"Unicode FAQ: Emoji and Dingbats","url":"https://www.unicode.org/faq/emoji_dingbats.html","accessed":"2026-10-03","kind":"primary","quote":"The Unicode Standard encodes a set of 26 regional indicator symbols … These can be used in pairs to represent any territory … such as “DE” for Germany … The pairs are typically displayed as national flags"}],"concepts":["regional_indicator","emoji_flag"],"prereq_concepts":["unicode"],"type":"myth_vs_fact","myth":"Флаг страны в эмодзи это один отдельный символ.","fact":"В Unicode есть 26 символов-индикаторов региона, и их пары, например «DE» для Германии, обычно показываются как национальные флаги."},{"id":"it.numbers-in-computer.unicode-utf8.emoji-length-quiz","status":"active","version":1,"tags":[],"card_ref":"it.numbers-in-computer.unicode-utf8.emoji-length","explanation":"length считает единицы кода UTF-16, а этот смайлик занимает две такие единицы, поэтому length равно 2. В том же примере MDN перебор строки по символам, [...emoji].length, даёт 1.","type":"quiz_true_false","statement":"В JavaScript length строки из одного эмодзи-смайлика равно 1","correct":false}]}]