Найти в Дзене

О гонцах, о военных планах и о том, как вы это читаете

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

У вас есть гонцы. Гонец – боевая единица в любой приличной армии незаменимая и присутствует во множестве, вот только скакать ему придется как минимум в окрестностях вражеского лагеря, а значит, случайная стрела – и нет вашего гонца, как и сообщения, которое он везёт. Радует, что вы хотя бы можете заставить гонца сообщение выучить, а не везти бумагой, так что с трупа его не снимут. Так было бы совсем сложно.

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

Начнем с того, что отправим гонца, чтобы выяснить – а может ли вообще наш товарищ принять ваш план? Может случиться так, что он попал в тяжёлую ситуацию – например, его армия подверглась контратаке и сейчас отбивается, либо все его гонцы валяются с больными животами? Вам нужно отправить пробного гонца, которым можно выбрать, скажем, человека с плохой памятью – повезет он только просьбу о том, чтобы гонцами обмениваться, так что план ему запоминать не надо. В ответ, кстати, вам могут отправить такого же – все равно от него потребуется донести только что-то совсем срочное о состоянии армии на той стороне. Главное, чтобы знал, от кого и к кому он направляется.

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

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

Дальше в общем-то дело техники – вы туда шлете гонца с посланием, обратно – с подтверждением и возможными поправками. На всякий случай нумеруйте части плана – вдруг гонец заблудится и придет уже после того, как вы отправили ещё одного с тем же сообщением. Повторение какого-нибудь указания дважды вам совершенно ни к чему. Как только ценные указания кончатся – пошлите гонца, чтобы от этом сообщить, получите ответ – кончились ли правки на той стороне – и отправьте последнего гонца с подтверждением этого. Итак, теперь победа гарантирована – ведь ваш блестящий план дошёл до второй части вашей армии.

А до вас лично, кстати, дошёл тот текст, который вы прямо сейчас читаете. Замените гонцов на информационные пакеты (их ещё называют сегментами), военные планы на любые другие данные, ваш шатер и шатер вашего товарища – на номера сетевых портов в сервере и вашем компьютере, всяческие словесные подтверждения – на однобитовые флаги в заголовках сегментов, странные числа, получающиеся из подсчёта слов – на многим вспоминающийся термин «контрольная сумма», и, наконец, долину с вражеским лагерем на весь Интернет между сервером и вами. Вы получите Transmission Control Protocol или просто TCP – ключевой протокол передачи чувствительных к целостности данных в современном Интернете.

.
.

А за этим поздравляю вас, генерал, с победой. Ave Felis Catus.

Автор - Дмитрий Михайлов.

Статья написана для паблика Кэтсаенс. А ещё у нас есть телега для тех, кому удобнее там.

Подписывайтесь, чтобы не пропустить новые посты!

Пост автора CatScience.

Читать комментарии на Пикабу.