Что такое 3-х этапное рукопожатие TCP?
Процесс начала сеанса TCP, также называемый «рукопожатие» (англ. handshake), состоящий из трёх шагов:
1. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN.
Дальнейший алгоритм:
-
Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента;
-
В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED;
- В случае неудачи сервер посылает клиенту сегмент с флагом RST.
2. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK.
Дальнейший алгоритм:
-
Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED;
-
Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться;
-
Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.
3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED.
Процесс называется «трёхэтапным рукопожатием» (англ. three way handshake), так как несмотря на то что возможен процесс установления соединения с использованием четырёх сегментов (SYN в сторону сервера, ACK в сторону клиента, SYN в сторону клиента, ACK в сторону сервера), на практике для экономии времени используется три сегмента.
Во «ВКонтакте» теперь можно проверить, через сколько «рукопожатий» вы знакомы с Навальным или Оксимироном Статьи редакции
{«id»:699,»title»:»\u041b\u044e\u0431\u0430\u044f \u043f\u0435\u0441\u043d\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u044c\u0431\u043e\u043c\u0430 \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u043b\u0430 \u0431\u044b \u0432 \u0447\u0430\u0440\u0442\u0435 70-\u0445″,»url»:»\/redirect?component=advertising&id=699&url=https:\/\/tjournal.ru\/umg\/383862-poslushat-novoe-st-vincent-primeryaet-semidesyatye&hash=1b6e6d04b037fc65661f0b38eb15bf3f3b76e28c4a22f9b1822dd6f46d11c35c»,»isPaidAndBannersEnabled»:false} Или другими известными личностями.Проверка «теории рукопожатий» во «ВКонтакте»
«ВКонтакте» запустила приложение «Теория рукопожатий», с помощью которого можно узнать, какое количество друзей отделяет пользователя соцсети от знакомства с известной персоной.
В приложении на выбор появились 200 знаменитостей, распределённые по профессиям — от музыкантов и актёров до блогеров, спортсменов и бизнесменов.
К примеру, можно узнать, кто из друзей связывает пользователя с Дмитрием Медведевым, Михаилом Ходорковским, Алексеем Навальным, Ксенией Собчак, Олегом Тиньковым, Юрием Дудём, Данилой Поперечным, Хабибом Нурмагомедовым, Монеточкой или Оксимироном.«ВКонтакте» взяла за основу недоказанную теорию шести рукопожатий сторонники которой верят, что любые два человека на земле разделены не более чем пятью знакомыми.
Обновлено 14 октября: «ВКонтакте» закрыла приложение, пообещав снова запустить его через год.
{«id»:2216,»url»:»https:\/\/tjournal.ru\/u\/2216-sergey-zvezda»,»name»:»\u0421\u0435\u0440\u0433\u0435\u0439 \u0417\u0432\u0435\u0437\u0434\u0430″,»avatar»:»86595cb9-03f9-5c57-312d-73092a0f612b»,»karma»:263738,»description»:»\u0413\u043b\u0430\u0432\u0440\u0435\u0434 TJ»,»isMe»:false,»isPlus»:true,»isVerified»:false,»isSubscribed»:false,»isNotificationsEnabled»:false,»isShowMessengerButton»:false}
{«url»:»https:\/\/booster.osnova.io\/a\/relevant?site=tj»,»place»:»entry»,»site»:»tj»,»settings»:{«modes»:{«externalLink»:{«buttonLabels»:[«\u0423\u0437\u043d\u0430\u0442\u044c»,»\u0427\u0438\u0442\u0430\u0442\u044c»,»\u041d\u0430\u0447\u0430\u0442\u044c»,»\u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c»,»\u041a\u0443\u043f\u0438\u0442\u044c»,»\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c»,»\u0421\u043a\u0430\u0447\u0430\u0442\u044c»,»\u041f\u0435\u0440\u0435\u0439\u0442\u0438″]}},»deviceList»:{«desktop»:»\u0414\u0435\u0441\u043a\u0442\u043e\u043f»,»smartphone»:»\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b»,»tablet»:»\u041f\u043b\u0430\u043d\u0448\u0435\u0442\u044b»}},»isModerator»:false}
Еженедельная рассылка
Одно письмо с лучшим за неделю
Проверьте почту
Отправили письмо для подтверждения
Санпросвет и борьба с рукопожатием
В рубрике «Что это такое?» «Электронекрасовка» рассказывает про интересные артефакты из оцифрованных фондов.
Что это такое?
Привет всей сидящей шатии,
Но без рукопожатия.
Рук не жму энергично,
Так как это негигиенично.
Фрагмент агитпостановки «Анкета», написанной в 1926 году Борисом Южаниным для эстрадного коллектива «Синяя блуза», где обозначен один из тезисов санитарного просвещения — «долой рукопожатия».
Почему в 1920-х боролись с рукопожатием?
Рекомендация не использовать рукопожатия в качестве приветствия возникла в 1918 году как один из методов борьбы с эпидемией испанского гриппа, или «испанки», в результате которой в РСФСР погибло около 3 миллионов человек. В дальнейшем отмена рукопожатия рекомендовалась в 1920-е годы как мера борьбы с тифом, чесоткой и холерой.
Объявление в газете «Советская Сибирь» № 174 за 1921 годЧто об этом говорили власти и пресса?
Одним из главных инициаторов борьбы с рукопожатием стал нарком здравоохранения Николай Семашко, который в нормализующих рекомендациях выступал против тактильного приветствия в рамках санитарного просвещения.
Фрагмент агитинсценировки «Марксистская любовь». 1927 год
Руководствуясь рекомендациями Семашко, агитаторы и партийные организации на местах составляют памятки и инструкции для разных слоёв населения. ЦК РКСМ составляет памятку пионера, где указывает, что «пионер не подаёт руки: для приветствия у него есть салют пионеров, а через руки можно передавать заболевания».
Пионер отказывается подавать руку председателю Совета народных комиссаров СССР Алексею Рыкову. «Пионерская правда» № 38 за 1926 год
В брошюре «Как жить, чтобы здоровым быть?» 1925 года школьникам первым делом напоминают про правила гигиены в учебных заведениях: «Ты в школе — вот твои обязанности в области здоровья. Помогай санкому поддерживать чистоту. Объясняй ребятам о вредности углекислоты, пыли и заразных болезней. Здоровайся по-пионерски, без рукопожатий. Не соси карандаш или ручку. Никогда не плюй на пол, не позволяй этого и другим. В переменах проветривай лучше помещение».
Журнал «Чудак» № 42 за 1929 год
Для эффективности кампании выпускаются значки, на которых написано «Долой рукопожатия» и «Свободен от рукопожатий», а в официальном дискурсе рукопожатия позиционируются не только как антигигиеническое явление, но и как примета дореволюционного и буржуазного быта. В брошюре «Комсомольский быт» 1927 года отмена рукопожатия обозначена как важное продолжение Октябрьской революции: «Необходимость борьбы с этим позорным явлением прошлого ясна для каждого молодого сознательного ленинца. Мы ставим этот вопрос в плоскости: а) антисанитарии данного акта как источника заразы. На руках могут находиться зародыши заразных болезней, как-то: туберкулёза, ангины, крупозного воспаления легких, венерических болезней и т.д.; б) строительства нового быта. Постольку, поскольку рукопожатие является преступной выдумкой попов и буржуев, которым было выгодно заражать забитых рабочих и крестьян, мы с презрением должны откинуть этот метод».
Журнал «Чудак» № 2 за 1930 год
Журнал «Чудак» № 23 за 1929 годКак воспринималась отмена рукопожатий современниками?
Лозунг «Долой рукопожатия» стал настоящей приметой времени, которую неоднократно фиксировали в своих произведениях литераторы 1920-х годов.
***
Смычкин. Ну да [Ка]. У нас это уже почти отменено. Но я вас очень рад видеть. Знакомьтесь, мои товарищи.
Краскупер Спеценко. Не можем — рукопожатия отменяются. Ну, ладно уж для первого раза.
Владимир Маяковский. «Комедия с убийством», 1926
***
Присыпкин. (Обжимает окружающим руки, бросается в дверь.)
За ним беспокоящаяся Берёзкина. Доктора́ окружают профессора.
Хором. Это что он такое руками делал? Совал и тряс, тряс и совал…
Профессор. В древности был такой антисанитарный обычай.
Шесть врачей и профессор вдумчиво моют руки.
Владимир Маяковский. «Клоп», 1928
***
Долой рукопожатия!
Без рукопожатий
встречайте друг друга
и провожайте.
Владимир Маяковский. Лозунг для санплаката, 1929
***
— Товарищ! Без истерики. Конкретно и абстрактно изложите письменно и устно, срочно и секретно — Полтава или Иркутск? Не отнимайте время у занятого человека! По коридорам не ходить! Не плевать! Не курить! Разменом денег не затруднять! — выйдя из себя, загремел блондин.
— Рукопожатия отменяются! — кукарекнул секретарь.
— Да здравствуют объятия! — страстно шепнула брюнетка и, как дуновение, пронеслась по комнате, обдав ландышем шею Короткова.
Михаил Булгаков. «Дьяволиада», 1923
***
— Покорнейше благодарим. Позвольте руку пожать.
— Нет уж, рукопожатия отменяются.
Михаил Булгаков. «Приключения покойника», 1924
***
— Вы! — воскликнул Подлинник, тыча указательным пальцем в юбиляра. — Вы — жрец науки, мученик идеи, великой идеи отмены рукопожатий в нашем городе! Вот я плачу перед вами!
Подлинник сделал попытку заплакать, но это ему не удалось.
— Я глухо рыдаю! — закричал он.
И сделал знак рукой.
Илья Ильф и Евгений Петров. «Необыкновенные истории из жизни города Колоколамска», 1929
***
Праздный черноморец, заглянув в магазин, мог бы заметить, что прилавки и полки исчезли, пол был чисто вымыт, стояли яичные конторские столы, а на стенах висели обыкновенные учрежденские плакаты насчёт часов приёма и вредности рукопожатий».
Илья Ильф и Евгений Петров. «Золотой телёнок», 1931
***
Если ты красной гигиене друг, руки прочь от пожатия рук.
Виктор Ардов. «Лозунгофикация»
***
— Нет у нас никаких анкет. Не надо ничего заполнять. Садитесь просто на стул и говорите!
— А рукопожатия отменяются? — с дрожью в голосе спросил тусклый посетитель.
— Отменяются, отменяются! — успокоил я его.
— То-то! — слегка просиял он.
Валентин Катаев. «Тусклая личность», 1926
Почитать и послушать на «Электронекрасовке»
Почитать. Отдельные номера альманаха «Синяя блуза» и больше узнать о театральных агитпредставлениях 1920-х годов.
Послушать. «Пролеткульт» — подкаст о людях, событиях и явлениях повседневности 1920–1930-х годов.
Больше про книги и интересные находки вы найдёте в telegram-канале «Электронекрасовка» (@electronekrasovka) и в наших пабликах в фейсбук и «ВКонтакте». Подписывайтесь!
|
|
Первая встреча лидеров Азербайджана и Армении после войны в Карабахе: без рукопожатий, но с мирными планами
- Илья Барабанов
- Би-би-си
Автор фото, Getty Images
В Москве прошли переговоры президентов России, Азербайджана и премьер-министра Армении. Владимир Путин, Ильхам Алиев и Никол Пашинян обсудили ситуацию в Нагорном Карабахе и выполнение мирных соглашений, подписанных 9 ноября 2020 года по итогам 44-дневной войны.
Переговоры в Кремле длились около четырех часов, по итогам которых было подписано совместное заявление о развитии Нагорного Карабаха. Ильхам Алиев и Никол Пашинян не стали пожимать друг другу руки перед началом переговоров, а когда они завершились, разошлись в оценках итогов войны.
Если президент Азербайджана уверен, что карабахский конфликт теперь в прошлом и никаких попыток ревизий достигнутых договоренностей не будет, то Пашинян заявил, что конфликт еще только предстоит урегулировать через определение статуса Нагорного Карабаха.
По словам Владимира Путина, лидеры трех стран договорились сформировать рабочую группу из вице-премьеров трех правительств, которые должны будут разработать пошаговую программу развития Карабаха. Основными же на переговорах стали вопросы определения новых границ, разблокировки транспортных узлов, а также обмена пленными. Судя по выступлению Никола Пашиняна, в этом вопросе никаких новых договоренностей заключить не удалось.
По итогам переговоров, рассказал Ильхам Алиев, Азербайджан должен получить через территорию Армении транспортный коридор на Нахичевань и через нее — на Турцию. Армения же через территорию Азербайджана получит прямое железнодорожное сообщение с Россией. Рабочая группа из трех вице-премьеров до 31 января должна собраться на первое заседание, а к 1 марта представить лидерам трех стран пошаговый график того, как будет выстраиваться новая транспортная инфраструктура в регионе.
Проблемы Пашиняна
К московским трехсторонним переговорам лидеры Армении и Азербайджана подошли с разным настроением. Для Никола Пашиняна главной проблемой остается напряженная внутриполитическая обстановка в стране. Хотя премьер-министр согласился на проведение в 2021 году досрочных парламентских выборов, уличные акции протеста в Ереване не прекращаются. 11 ноября митингующие пытались помешать Пашиняну вылететь в Москву на переговоры, перекрыв дорогу в аэропорт, но кортеж главы правительства успел проехать туда за несколько минут до того, как трасса была заблокирована.
Крайне болезненной в Армении остается тема возврата пленных и тел погибших в ходе войны. Процесс этот до сих пор не завершен, хотя это было одним из пунктов подписанных в ноябре мирных соглашений.
Много вопросов остается к новой армянско-азербайджанской границе, работа над определением которой продолжалась на протяжении всех новогодних и рождественских праздников.
Административная граница советских времен после почти 30 лет контроля Арменией в некоторых местах сейчас проходит по населенным армянами селам. До конца неясной остается судьба крупного золотого рудника Сотк, который также разделила пополам новая граница. Туманным остается и будущее трассы между армянскими городами Горис и Капан, которая на некоторых участках заходит теперь на азербайджанскую территорию.
Наконец, множество вопросов остается по поводу всей Сюникской области Армении, через которую, по подписанным в ноябре мирным соглашениям, должен пройти новый транспортный коридор, соединяющий Нахичеванский регион с основной территорией Азербайджана.
Армянская оппозиция, обвиняющая Пашиняна в поражении в войне и предательстве национальных интересов страны, опасалась, что на московских переговорах премьер-министр согласится на какие-то новые невыгодные для страны условия, касающиеся будущего именно этого региона. Чтобы не допустить этого, визит Пашиняна в Москву и пытались сорвать оппозиционеры, а в российской столице премьера встретили акциями протеста у армянского посольства.
И угрозы Алиева
У президента Азербайджана подобных внутриполитических проблем нет в силу особенностей политического режима, установленного в стране. Так что к новым переговорам он мог подходить с позиций силы, выдвигая новые требования и условия.
На состоявшемся 6 января видеосовещании азербайджанский лидер возмутился поездкой в Степанакерт министра иностранных дел Армении. Алиев напомнил, что Карабах хоть и не перешел полностью под контроль Баку, но остается международно признанной территорией Азербайджана, а значит, поездки туда армянских политиков, журналистов или представителей международных организаций недопустимы без согласования с азербайджанскими властями.
«Предупреждаем, что если будут предприниматься подобные провокационные шаги, то Армения пожалеет еще больше», — заявил Алиев, напомнив, что «железный кулак» остается на месте (так называлась военная операция азербайджанской армии по возвращению контроля над Нагорным Карабахом и окружающими районами).
Таким образом в Баку недвусмысленно дали понять, что дальнейшее сообщение между Арменией и Карабахом невозможно в том формате, как это было до войны. И хотя Лачинский коридор, соединяющий Степанакерт с Арменией, ближайшие пять лет будет находиться под контролем российских миротворцев, двум странам предстоит выработать какой-то устраивающий обе стороны протокол перемещения по этой трассе.
Пригрозив Армении новой войной, азербайджанские власти активно занимаются восстановлением территорий, которые уже перешли под их контроль. Так, сообщалось о том, что строительные материалы активно завозятся в перешедшие под контроль Баку Зангелан и Шушу. Ильхам Алиев отдельно заявил, что Шушу власти страны планируют превратить в новую культурную столицу Азербайджана.
Параллельно азербайджанские власти проводят анкетирование людей, которые по итогам войны 1993 года были вынуждены покинуть свои дома, опрашивая их о готовности вернуться теперь на территории, перешедшие под контроль Азербайджана. Жилье в Баку, которое беженцы занимали на протяжении четверти века, президент Алиев планирует передать семьям погибших в 44-дневной войне военнослужащих.
Три рукопожатия сегодня отделяли кадета 6А класса от кадета и автора легендарной «Калинки». На международную выставку «Интермузей-2019» пришла послушать выступление о своем знаменитом прапрадеде Иване Ларионове, авторе «Калинки» и выпускнике Первого Московского кадетского корпуса 1848 года, Екатерина Евгеньевна Штукатурова. Надеемся, что видеозапись выступления «По следам «Калинки» сегодня сможет посмотреть и правнучка Ивана Ларионова Ольга Фёдоровна Дровенкова. #1МКК #ПервыйМосковскийКадетскийКорпус #кадеты #ИванЛарионов #Калинка #Интермузей2019 #Манеж #ЦВЗМанеж #выставка #ПоСледамКалинки #кадетскоеобразованиемосквы #средняяшкола #кадетскийкласс #КадетыРоссии… — Первый Московский кадетский корпус / The First Moscow Cadet Corps
#КадетскаяШколаГосударственныхВоспитанниц #Выпускники1МКК
✨ И снова говорят выпускники!
👩🏻🦱 Приветствую! Меня зовут Иванова Вероника. Я выпускница 2020 года. Сейчас учусь на 1-ом курсе Дипломатической академии МИД России на факультете «Международные отношения». Изучаю два языка, английский и французский, профильные предметы и историю, которую я так любила в школе. Постоянно участвую в международных мероприятиях и просто наслаждаюсь обучением! В течение шести лет я планирую стать профессионалом в своей области и работать в МИД.
Сколько усилий приложили учителя, воспитатели, администрация Корпуса и, конечно же, мои одноклассницы для того, чтобы сделать из меня того человека, кем я являюсь сейчас. Эти люди изменили мою жизнь, и я им благодарна!
За 5 лет обучения я получила не только знания по предметам, но и научилась намного большему: отношению к людям, достижению своих целей и упорству, стремлению только к лучшему, самосовершенствованию, ответственности и умению принимать важные решения. Это лишь малая часть всего, но, пожалуй, самая важная.
Корпус подарил мне друзей, прекрасные воспоминания, особенно, участие в парадах, которые я никогда не забуду, а также участие в различных интересных мероприятиях расширили мой кругозор.
расширили мой встречи, мероприятияразвил меня во многих сферах деятельности.
Благодаря Корпусу у меня есть большой багаж знаний, который пригодится мне в дальнейшем!
И в заключение я хочу сказать, что Корпус — это люди, и они здесь замечательные. Искренне благодарю, люблю и скучаю❤️❤️❤️
🌞 Спасибо, Вероника, за тёплые слова! Мы Вам желаем успехов и счастья!
⚡ Хотите первыми узнать истории наших выпускников? Ставьте 👍 и подписывайтесь на наши новости в социальных сетях. Будьте первыми вместе с Первым Московским кадетским корпусом!
#1мккВолжскийбульвар52_29
#1МКК #ПервыйМосковскийКадетскийКорпус
Трехначерное рукопожатие через TCP/IP — Windows Server
- Чтение занимает 10 мин
В этой статье
В этой статье обсуждается трехшаговый процесс рукопожатия между клиентом и сервером при запуске или завершении подключения TCP.
Оригинальная версия продукта: Windows Server 2012 R2
Исходный номер КБ: 172983
Аннотация
Эта статья предназначена для аудиторий, знакомых с протоколом управления передачей и протоколом Интернета (TCP/IP). В нем обсуждается процесс трехшагового рукопожатия TCP между клиентом и сервером при запуске или завершении подключения к TCP.
Дополнительные сведения
Уровень TCP транспортного протокола TCP/IP ориентирован на подключение. Подключение означает, что перед передачей любых данных необходимо получить надежное подключение и получить подтверждение. Передачи данных уровня TCP, создание подключения и прекращение подключения поддерживают определенные параметры управления, которые управляют всем процессом. Биты управления перечислены следующим образом:
URG. Важное поле срочных указателей
ACK: важное поле подтверждения
PSH: Push Function
RST: сброс подключения
SYN: Синхронизация номеров последовательности
FIN. Больше данных от отправитель не будет
Существует два сценария, в которых будет происходить трехшаговое рукопожатие:
Следующая примерная информация была получена из захвата сетевого монитора. Network Monitor — это анализатор протокола, который можно получить на сервере управления Microsoft Systems.
Создание подключения
В следующей последовательности показан процесс создания соединения TCP:
Кадр 1:
Как вы видите в первом кадре, клиент NTW3 отправляет сегмент SYN TCP ....S.
(). Это запрос на сервер для синхронизации номеров последовательности. Он указывает начальный номер последовательности (ISN). Is incremented by 1 (8221821+1=82218222) и отправляется на сервер. Чтобы запустить подключение, клиент и сервер должны синхронизировать номера последовательности друг друга. Существует также параметр максимального размера сегмента (MSS), который определяется длиной (len: 4). Этот параметр передает MSS, который отправителю необходимо получить. Поле подтверждения (ack: 0) настроено на ноль, так как это первая часть трех способов рукопожатия.
1 2.0785 NTW3 --> BDC3 TCP ....S., len: 4, seq: 8221822-8221825, ack: 0,
win: 8192, src: 1037 dst: 139 (NBT Session) NTW3 --> BDC3 IP
TCP: ....S., len: 4, seq: 8221822-8221825, ack: 0, win: 8192, src: 1037
dst: 139 (NBT Session)
TCP: Source Port = 0x040D
TCP: Destination Port = NETBIOS Session Service
TCP: Sequence Number = 8221822 (0x7D747E)
TCP: Acknowledgement Number = 0 (0x0)
TCP: Data Offset = 24 (0x18)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x02 : ....S.
TCP: ..0..... = No urgent data
TCP: ...0.... = Acknowledgement field not significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......1. = Synchronize sequence numbers
TCP: .......0 = No Fin
TCP: Window = 8192 (0x2000)
TCP: Checksum = 0xF213
TCP: Urgent Pointer = 0 (0x0)
TCP: Options
TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
TCP: Option Length = 4 (0x4)
TCP: Option Value = 1460 (0x5B4)
TCP: Frame Padding
00000: 02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00 .`.....`.;....E.
00010: 00 2C 0D 01 40 00 80 06 E1 4B 83 6B 02 D6 83 6B .,[email protected]
00020: 02 D3 04 0D 00 8B 00 7D 74 7E 00 00 00 00 60 02 .......}t~....`.
00030: 20 00 F2 13 00 00 02 04 05 B4 20 20 .........
Frame 2:
Как вы видите во втором кадре, сервер BDC3 отправляет сегмент ACK и SYN TCP .A..S.
(). В этом сегменте сервер признает запрос клиента на синхронизацию. Между тем сервер также отправляет клиенту запрос на синхронизацию номеров последовательности. В этом сегменте есть одно серьезное отличие. Сервер передает клиенту номер подтверждения (8221823). Подтверждение является просто доказательством для клиента, что ACK является спецификой для syn, инициированного клиентом. Процесс подтверждения запроса клиента позволяет серверу приумношать номер последовательности клиента по одному и использовать его в качестве номера подтверждения.
2 2.0786 BDC3 --> NTW3 TCP .A..S., len: 4, seq: 1109645-1109648, ack:
8221823, win: 8760, src: 139 (NBT Session) dst: 1037 BDC3 --> NTW3 IP
TCP: .A..S., len: 4, seq: 1109645-1109648, ack: 8221823, win: 8760,
src: 139 (NBT Session) dst: 1037
TCP: Source Port = NETBIOS Session Service
TCP: Destination Port = 0x040D
TCP: Sequence Number = 1109645 (0x10EE8D)
TCP: Acknowledgement Number = 8221823 (0x7D747F)
TCP: Data Offset = 24 (0x18)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x12 : .A..S.
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......1. = Synchronize sequence numbers
TCP: .......0 = No Fin
TCP: Window = 8760 (0x2238)
TCP: Checksum = 0x012D
TCP: Urgent Pointer = 0 (0x0)
TCP: Options
TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
TCP: Option Length = 4 (0x4)
TCP: Option Value = 1460 (0x5B4)
TCP: Frame Padding
00000: 02 60 8C 3B 85 C1 02 60 8C 9E 18 8B 08 00 45 00 .`.;...`......E.
00010: 00 2C 5B 00 40 00 80 06 93 4C 83 6B 02 D3 83 6B .,[[email protected]
00020: 02 D6 00 8B 04 0D 00 10 EE 8D 00 7D 74 7F 60 12 ...........}t`.
00030: 22 38 01 2D 00 00 02 04 05 B4 20 20 "8.-......
Frame 3:
Как вы видите в третьем кадре, клиент отправляет сегмент ACK TCP .A....
(). В этом сегменте клиент признает запрос сервера на синхронизацию. Клиент использует тот же алгоритм, что и сервер, при предоставлении номера подтверждения. Подтверждение клиентом запроса сервера на синхронизацию завершает процесс установления надежного подключения и трехстороннее рукопожатие.
3 2.787 NTW3 --> BDC3 TCP .A...., len: 0, seq: 8221823-8221823, ack:
1109646, win: 8760, src: 1037 dst: 139 (NBT Session) NTW3 --> BDC3 IP
TCP: .A...., len: 0, seq: 8221823-8221823, ack: 1109646, win: 8760,
src: 1037 dst: 139 (NBT Session)
TCP: Source Port = 0x040D
TCP: Destination Port = NETBIOS Session Service
TCP: Sequence Number = 8221823 (0x7D747F)
TCP: Acknowledgement Number = 1109646 (0x10EE8E)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x10 : .A....
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......0. = No Synchronize
TCP: .......0 = No Fin
TCP: Window = 8760 (0x2238)
TCP: Checksum = 0x18EA
TCP: Urgent Pointer = 0 (0x0)
TCP: Frame Padding
00000: 02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00 .`.....`.;....E.
00010: 00 28 0E 01 40 00 80 06 E0 4F 83 6B 02 D6 83 6B .([email protected]
00020: 02 D3 04 0D 00 8B 00 7D 74 7F 00 10 EE 8E 50 10 .......}t....P.
00030: 22 38 18 EA 00 00 20 20 20 20 20 20 "8....
Прекращение подключения
Несмотря на то, что для трехстолетнего рукопожатия требуется только передача трех пакетов через сетевые носитли, для прекращения этого надежного подключения необходимо передать четыре пакета. Поскольку подключение TCP является полным дуплексом (данные могут поступать в каждом направлении независимо от другого), каждое направление должно быть прекращено независимо.
Frame 4:
В этом сеансе кадров вы увидите, как клиент отправляет FIN, сопровождаемую ACK TCP .A...F
(). Этот сегмент имеет две основные функции. Во-первых, когда параметр FIN задан, он сообщит серверу, что у него больше нет данных для отправки. Во-вторых, ACK имеет важное значение для определения установленного подключения.
4 16.0279 NTW3 --> BDC3 TCP .A...F, len: 0, seq: 8221823-8221823,
ack:3462835714, win: 8760, src: 2337 dst: 139 (NBT Session) NTW3 --> BDC3
IP
TCP: .A...F, len: 0, seq: 8221823-8221823, ack: 1109646, win: 8760, src:
1037 dst: 139 (NBT Session)
TCP: Source Port = 0x040D
TCP: Destination Port = NETBIOS Session Service
TCP: Sequence Number = 8221823 (0x7D747F)
TCP: Acknowledgement Number = 1109646 (0x10EE8E)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x11 : .A...F
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......0. = No Synchronize
TCP: .......1 = No more data from sender
TCP: Window = 8760 (0x2238)
TCP: Checksum = 0x236C
TCP: Urgent Pointer = 0 (0x0)
00000: 00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00 .
00020: DE 57 09 21 05 48 0B 20 96 AC CE 66 AE 02 50 11 .W.!.H. ...f..P.
00030: 22 38 23 6C 00 00 "8#l..
Frame 5:
В этом кадре вы не видите ничего особенного, за исключением сервера, признаваемого FIN, который был передан от клиента.
5 16.0281 BDC3 --> NTW3 TCP .A...., len: 0, seq: 1109646-1109646,
ack: 8221824, win:28672, src: 139 dst: 2337 (NBT Session) BDC3 --> NTW3
IP
TCP: .A...., len: 0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139 dst: 2337 (NBT Session)
TCP: Source Port = 0x040D
TCP: Destination Port = NETBIOS Session Service
TCP: Sequence Number = 1109646 (0x10EE8E)
TCP: Acknowledgement Number = 8221824 (0x7D7480)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x10 : .A....
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......0. = No Synchronize
TCP: .......0 = No Fin
TCP: Window = 28672 (0x7000)
TCP: Checksum = 0xD5A3
TCP: Urgent Pointer = 0 (0x0)
TCP: Frame Padding
00000: 00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00 .
00020: DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 10 .{.H.!.f... ..P.
00030: 70 00 D5 A3 00 00 90 00 01 00 86 00 p...........
Frame 6:
После получения FIN с клиентского компьютера сервер будет ACK. Несмотря на то, что TCP установила связи между двумя компьютерами, эти подключения по-прежнему не зависят друг от друга. Таким образом, сервер должен также передавать fin TCP .A...F
() клиенту.
6 17.0085 BDC3 --> NTW3 TCP .A...F, len: 0, seq: 1109646-1109646, ack:
8221824, win:28672, src: 139 dst: 2337 (NBT Session) BDC3 --> NTW3 IP
TCP: .A...F, len: 0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139 dst: 2337 (NBT Session)
TCP: Source Port = 0x0548
TCP: Destination Port = 0x0921
TCP: Sequence Number = 1109646 (0x10EE8E)
TCP: Acknowledgement Number = 8221824 (0x7D7480)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x11 : .A...F
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: .
00020: DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 11 .{.H.!.f... ..P.
00030: 70 00 D5 A2 00 00 02 04 05 B4 86 00 p...........
Frame 7:
Клиент отвечает в том же формате, что и сервер, путем acKing fin сервера и приумножения номера последовательности на 1.
7 17.0085 NTW3 --> BDC3 TCP .A...., len: 0, seq: 8221824-8221824, ack:
1109647, win: 8760, src: 2337 dst: 139 (NBT Session) NTW3 --> BDC3 IP
TCP: .A...., len: 0, seq: 8221824-8221824, ack: 1109647, win: 8760, src:
2337 dst: 139 (NBT Session)
TCP: Source Port = 0x0921
TCP: Destination Port = 0x0548
TCP: Sequence Number = 8221824 (0x7D7480)
TCP: Acknowledgement Number = 1109647 (0x10EE8F)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x10 : .A....
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......0. = No Synchronize
TCP: .......0 = No Fin
TCP: Window = 8760 (0x2238)
TCP: Checksum = 0x236B
TCP: Urgent Pointer = 0 (0x0)
00000: 00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00 .
00020: DE 57 09 21 05 48 0B 20 96 AD CE 66 AE 03 50 10 .W.!.H. ...f..P.
00030: 22 38 23 6B 00 00 "8#k..
Клиент acKing уведомление FIN с сервера определяет изящное закрыть подключение TCP.
Ссылки
Получение RFC 793.
RFCs можно получить через Интернет следующим образом:
Бумажные копии всех RFCs доступны в NIC либо по отдельности, либо по подписке (дополнительные сведения см. в [email protected] статье). Он-лайн копии доступны через FTP или Kermit из NIC. DDN.MIL rfc/rfc######txt или rfc/rfc####PS (#### — это номер RFC без ведущих нулей).
TCP 3-стороннее рукопожатие (SYN, SYN-ACK, ACK)
- Подробности
Что такое трехстороннее рукопожатие TCP?
ТРЕХСТОРОННЕЕ РУЧЕНИЕ или трехстороннее подтверждение TCP — это процесс, который используется в сети TCP / IP для установления соединения между сервером и клиентом. Это трехэтапный процесс, который требует, чтобы и клиент, и сервер обменивались пакетами синхронизации и подтверждения до того, как начнется реальный процесс передачи данных.
Трехсторонний процесс установления связи разработан таким образом, что оба конца помогают вам одновременно инициировать, согласовывать и разделять соединения сокетов TCP. Он позволяет одновременно передавать несколько сокетов TCP в обоих направлениях.
В этом руководстве по сети мы объясним:
Типы сообщений TCP
Сообщение | Описание |
Syn | Используется для инициирования и установления соединения.Это также помогает синхронизировать порядковые номера между устройствами. |
ACK | Помогает подтвердить другой стороне, что она получила SYN. |
SYN-ACK | Сообщение SYN от локального устройства и ACK более раннего пакета. |
FIN | Используется для завершения соединения. |
Процесс трехстороннего установления связи TCP
Трафик TCP начинается с трехстороннего установления связи. В этом процессе установления связи TCP клиенту необходимо инициировать диалог, запрашивая сеанс связи с сервером:
Схема трехстороннего установления связи- Шаг 1: На первом этапе клиент устанавливает соединение с сервером.Он отправляет сегмент с SYN и информирует сервер о том, что клиент должен начать связь, и с каким должен быть его порядковый номер.
- Шаг 2: На этом шаге s erver отвечает на запрос клиента с установленным сигналом SYN-ACK. ACK помогает вам обозначить ответ полученного сегмента, а SYN указывает, какой порядковый номер должен начинаться с сегментов.
- Шаг 3: На этом последнем шаге клиент подтверждает ответ сервера, и они оба создают стабильное соединение, и начинается фактический процесс передачи данных.
Реальный пример
Вот простой пример трехэтапного процесса установления связи, который состоит из трех шагов:
- Хост X начинает соединение, отправляя TCP SYN-пакет своему адресату хоста. Пакеты содержат случайный порядковый номер (например, 4321), который указывает начало порядковых номеров для данных, которые Хост X должен передать.
- После этого Сервер получит пакет и ответит его порядковым номером.Этот ответ также включает номер подтверждения, то есть порядковый номер хоста X, увеличенный на 1 (здесь это 4322).
- Хост X отвечает серверу, отправляя номер подтверждения, который в основном является порядковым номером сервера, увеличивающимся на 1.
После завершения процесса передачи данных TCP автоматически завершает соединение между двумя отдельными конечными точками.
Сводка
- Трехстороннее подтверждение TCP, или трехстороннее рукопожатие, или трехстороннее рукопожатие TCP — это процесс, который используется в сети TCP / IP для установления соединения между сервером и клиентом.
- Использование Syn для инициирования и установления соединения
- ACK помогает подтвердить другой стороне, что она получила SYN.
- SYN-ACK — это сообщение SYN от локального устройства и ACK более раннего пакета.
- FIN используется для завершения соединения.
- Процесс установления связи TCP, клиент должен инициировать диалог, запросив сеанс связи с сервером
- На первом этапе клиент устанавливает соединение с сервером
- На этом втором этапе сервер отвечает на запрос клиента с набором сигналов SYN-ACK
- На этом последнем шаге клиент подтверждает ответ сервера
- TCP автоматически завершает соединение между двумя отдельными конечными точками.
Процесс трехстороннего установления связи TCP — GeeksforGeeks
Процесс трехстороннего установления связи TCP
Это также можно рассматривать как способ установления TCP-соединения. Прежде чем вдаваться в подробности, давайте рассмотрим некоторые основы. TCP означает Протокол управления передачей , что указывает на то, что он что-то делает для надежного управления передачей данных.
Процесс обмена данными между устройствами через Интернет происходит в соответствии с текущей моделью пакета TCP / IP (удаленная версия эталонной модели OSI).Уровень приложения — это верхний слой стека модели TCP / IP, откуда сетевое приложение, такое как веб-браузер, на стороне клиента устанавливает соединение с сервером. С прикладного уровня информация передается на транспортный уровень, где наша тема проявляется. Двумя важными протоколами этого уровня являются TCP, UDP (протокол дейтаграмм пользователя) , из которых TCP является преобладающим (поскольку он обеспечивает надежность установленного соединения). Однако вы можете найти применение UDP при запросе DNS-сервера, чтобы получить двоичный эквивалент доменного имени, используемого для веб-сайта.
TCP обеспечивает надежную связь с так называемым положительным подтверждением с повторной передачей (PAR) . Блок данных протокола (PDU) транспортного уровня называется сегментом. Теперь устройство, использующее PAR, повторно отправляет блок данных, пока не получит подтверждение. Если блок данных, полученный на стороне получателя, поврежден (он проверяет данные с помощью функции контрольной суммы транспортного уровня, который используется для обнаружения ошибок), то получатель отбрасывает сегмент.Таким образом, отправитель должен повторно отправить блок данных, для которого не получено положительное подтверждение. Из приведенного выше механизма вы можете понять, что между отправителем (клиентом) и получателем (сервером) происходит обмен тремя сегментами для установления надежного TCP-соединения. Давайте посмотрим, как работает этот механизм:
- Шаг 1 (SYN): На первом этапе клиент хочет установить соединение с сервером, поэтому он отправляет сегмент с SYN (синхронизировать порядковый номер), который сообщает серверу, что клиент, вероятно, начнет связь, и с каким порядковым номером он начинает сегменты с
- Шаг 2 (SYN + ACK): Сервер отвечает на запрос клиента с установленными битами сигнала SYN-ACK.Подтверждение (ACK) означает ответ сегмента, который он получил, а SYN означает, с каким порядковым номером он, вероятно, начнет сегменты с
- Шаг 3 (ACK): В заключительной части клиент подтверждает ответ сервера, и они оба устанавливают надежное соединение, с которого они начнут фактическую передачу данных.
На этапах 1, 2 устанавливается параметр соединения (порядковый номер) для одного направления, и это подтверждается. Шаги 2, 3 устанавливают параметр соединения (порядковый номер) для другого направления, и это подтверждается.С ними устанавливается полнодуплексная связь.
Примечание — Начальные порядковые номера выбираются случайным образом при установлении соединений между клиентом и сервером.
Ссылки-
Установление соединения — Википедия
Трехстороннее установление связи TCP
Трехстороннее установление связи TCP — TCPIPguideЭта статья предоставлена Вивек Редди . Если вам нравится GeeksforGeeks, и вы хотите внести свой вклад, вы также можете написать статью, используя свой вклад.geeksforgeeks.org или отправьте свою статью по адресу [email protected]. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Трехстороннее рукопожатие — обзор
Установление соединения
Давайте подробнее рассмотрим трехстороннее установление соединения TCP. Эти три сообщения содержат три важных элемента информации, которые необходимо знать обеим сторонам соединения.
- 1.
Номера ISN, используемые для исходящих данных (чтобы отпугнуть хакеров, они не должны быть предсказуемыми).
- 2.
Буферное пространство (окно), доступное локально для данных, в байтах.
- 3.
Максимальный размер сегмента (MSS) — это параметр TCP, который устанавливает самый большой сегмент, который будет принимать локальный хост. MSS обычно представляет собой размер MTU канала за вычетом 40 байтов заголовков TCP и IP, но во многих реализациях используются сегменты размером 512 или 536 байтов (это максимум , , а не требование).
Сервер выдает пассивное открытие и ждет активного открытого SYN клиента, который в данном случае имеет ISN 2000, окно 5840 байт и MSS 1460 (часто, потому что большинство хостов находятся в локальных сетях Ethernet). Окно почти всегда кратно MSS (1460 × 4 = 5840 байт). Сервер отвечает SYN и объявляет соединение открытым, устанавливая свой собственный ISN на 4000 и «подтверждая» порядковый номер 2001 (на самом деле это означает, что «следующий байт, который я получаю от вас в сегменте, должен иметь номер 2001»).Сервер также установил окно размером 8760 байт и MSS 1460 (1460 × 6 = 8760 байт).
Наконец, клиент объявляет соединение открытым и возвращает ACK (сегмент с битом ACK, установленным в заголовке) с ожидаемым порядковым номером (2001) и полем подтверждения, установленным на 4001 (которое ожидает сервер). Порядковые номера TCP подсчитывают каждый байт в потоке данных, а 32-битное поле последовательности позволяет выделить более 4 миллиардов байтов (тем не менее, высокоскоростные транспортные средства, такие как Gigabit Ethernet, перемещают это поле слишком быстро для удобства, так что особенное « масштабирование »доступны для этих скоростей канала).
Трехстороннее квитирование TCP выполняет две важные функции. Это гарантирует, что обе стороны знают, что они готовы передавать данные, а также позволяет обеим сторонам согласовать начальные порядковые номера, которые отправляются и подтверждаются (чтобы не было ошибки) во время рукопожатия. Почему так важны исходные порядковые номера? Если порядковые номера не рандомизированы и не установлены должным образом, злоумышленники могут захватить сеанс TCP (который может быть надежным подключением к банку, магазину или другому коммерческому объекту).Каждое устройство выбирает случайный начальный порядковый номер, чтобы начать подсчет каждого байта в отправленном потоке. Как два устройства могут согласовать оба значения порядкового номера всего в трех сообщениях? Каждый сегмент содержит отдельное поле порядкового номера и поле подтверждения. На рисунке 12.3 клиент выбирает начальный порядковый номер (ISN) в первом SYN, отправленном на сервер. Сервер подтверждает ISN, добавляя его к предложенному ISN (ACK всегда информирует отправителя о следующем ожидаемом байте ) и отправляет его в SYN, отправленном клиенту, чтобы предложить свой собственный ISN.ISN клиента может быть отклонен, если, например, номер совпадает с номером, использованным для предыдущего соединения, но здесь это не учитывается. Обычно ACK от клиента подтверждает ISN от сервера (с ISN сервера + 1 в поле подтверждения), и соединение устанавливается, при этом обе стороны соглашаются на ISN. Обратите внимание, что при трехстороннем рукопожатии информация не отправляется; его следует удерживать до тех пор, пока не будет установлено соединение.
Это трехстороннее рукопожатие — универсальный механизм для открытия TCP-соединения.Как ни странно, RFC не настаивает на том, чтобы соединения начинались таким образом, особенно в отношении установки других управляющих битов в заголовке TCP (есть еще три других в дополнение к SYN, ACK и FIN). Поскольку TCP действительно ожидает, что одни управляющие биты будут использоваться во время установления и освобождения соединения, а другие — только во время передачи данных, хакеры могут нанести большой ущерб, просто возясь с дикими комбинациями шести управляющих битов, особенно SYN / ACK / FIN, который запрашивает, использует и освобождает соединение одновременно.Например, подделка SYN в окне существующего SYN вызовет сброс. По этой причине разработчики стали более строго интерпретировать RFC 793.
Что такое трехстороннее рукопожатие?
Что означает трехстороннее рукопожатие?
Трехстороннее рукопожатие — это метод, используемый в сети TCP / IP для создания соединения между локальным хостом / клиентом и сервером.
Это трехэтапный метод, предназначенный для того, чтобы оба взаимодействующих конца могли одновременно инициировать и согласовывать параметры сетевого соединения TCP-сокета перед передачей таких данных, как HTTP и SSH.
Несколько сокетов TCP могут передаваться в обоих направлениях одновременно. Трехстороннее рукопожатие также известно как рукопожатие TCP или SYN-SYN-ACK, и требует, чтобы и клиент, и сервер обменивались пакетами SYN (синхронизация) и ACK (подтверждение) до начала фактического обмена данными.
Фактически, его имя происходит от трех сообщений, переданных TCP до того, как будет инициирован сеанс между двумя сторонами.
Techopedia объясняет трехстороннее рукопожатие
Трехстороннее рукопожатие в основном используется для создания соединения через сокет TCP для надежной передачи данных между устройствами.Например, он поддерживает связь между веб-браузером на стороне клиента и сервером каждый раз, когда пользователь выходит в Интернет.
Как только клиент запрашивает сеанс связи с сервером, трехсторонний процесс установления связи инициирует TCP-трафик, выполнив три шага.
Три этапа трехстороннего рукопожатия
Шаг 1. Установлено соединение между сервером и клиентом
Сначала устанавливается соединение между сервером и клиентом, поэтому целевой сервер должен иметь открытые порты, которые могут принимать и инициировать новые связи.Клиентский узел отправляет пакет данных SYN (синхронизировать порядковый номер) по IP-сети на сервер в той же или во внешней сети.
Этот SYN-пакет представляет собой случайный порядковый номер, который клиент хочет использовать для связи (например, X). Цель этого пакета — спросить / сделать вывод, открыт ли сервер для новых подключений.
Шаг 2: Сервер получает пакет SYN от клиентского узла
Когда сервер получает пакет SYN от клиентского узла, он отвечает и возвращает квитанцию подтверждения — пакет ACK (Acknowledgment Sequence Number) или пакет SYN / ACK .Этот пакет включает два порядковых номера.
Первый — это ACK, который устанавливается сервером на единицу больше, чем порядковый номер, полученный от клиента (например, X + 1).
Второй — это SYN, отправленный сервером, который представляет собой другой случайный порядковый номер (например, Y).
Эта последовательность указывает, что сервер правильно подтвердил пакет клиента, и что он также отправляет свой собственный для подтверждения.
Шаг 3. Клиентский узел получает SYN / ACK от сервера и отвечает пакетом ACK
Клиентский узел принимает SYN / ACK от сервера и отвечает пакетом ACK.Еще раз, каждая сторона должна подтвердить полученный порядковый номер, увеличив его на единицу.
Итак, теперь очередь клиента подтвердить пакет сервера, добавив единицу к порядковому номеру (в данном случае Y + 1), и повторно отправить его на сервер.
По завершении этого процесса соединение создается, и хост и сервер могут обмениваться данными.
Все эти шаги необходимы для проверки серийных номеров, выданных обеими сторонами, что гарантирует стабильность соединения.
Поскольку оба хоста должны подтверждать параметры соединения другой стороны, отсутствующий или вышедший из строя сегмент может быть быстро обнаружен до начала фактического процесса передачи данных.
Что такое трехэтапный процесс установления связи TCP?
Что такое трехэтапный процесс установления связи TCP?
В настоящее время мы в основном используем TCP (протокол управления передачей) для передачи данных в сети с установлением соединения. Но вы когда-нибудь задумывались, почему для этой цели мы предпочитаем TCP любому другому протоколу?
На самом деле TCP обеспечивает нам безопасное и надежное соединение между двумя устройствами.И это возможно только благодаря трехстороннему процессу установления связи, который происходит в TCP во время установления и закрытия соединений между двумя устройствами. Как следует из названия, есть три шага для установления и закрытия соединения. Итак, в этом блоге мы узнаем о трехстороннем процессе установления связи TCP и различных этапах его выполнения.
Процесс трехстороннего установления связи TCP
Процесс трехстороннего установления связи — это определенный набор шагов, выполняемых в TCP для создания безопасного и надежного канала связи, а также его закрытия. На самом деле TCP использует процесс трехстороннего подтверждения для установления соединения между двумя устройствами перед передачей данных. После установления соединения между устройствами происходит передача данных. После этого соединение необходимо прервать, что также можно сделать с помощью процесса трехстороннего рукопожатия. Устанавливается безопасное и надежное соединение, чтобы зарезервировать ЦП, буфер и пропускную способность устройств для правильной связи. Таким образом, необходимо освободить эти ресурсы, разорвав соединение после передачи данных.32 -1)) номер, который присваивается первому биту данных. Обычно порядковый номер используется только один раз в одном соединении. Для передачи других данных в том же соединении можно использовать другой случайный порядковый номер.
Ниже приведено графическое изображение установления соединения с использованием 3-стороннего процесса установления связи.
Ниже приведены три шага, необходимые для установления соединения с использованием процесса трехстороннего подтверждения в TCP:
- Клиент отправляет SYN на сервер: Когда клиент хочет подключиться к серверу.Он устанавливает флаг «SYN» равным 1 и отправляет сообщение на сервер. Сообщение также содержит некоторую дополнительную информацию, такую как порядковый номер (любое случайное 32-битное число), ACK здесь установлен на 0, размер окна и максимальный размер сегмента. Например, если размер окна составляет 2000 бит, а максимальный размер сегмента — 200 бит, то в соединении может быть передано максимум 10 сегментов данных (2000/200 = 10).
- Сервер отвечает клиенту с помощью SYN и ACK: После получения клиентского запроса на синхронизацию сервер отправляет подтверждение клиенту, устанавливая флаг ACK в «1».Номер подтверждения ACK на единицу больше, чем полученный порядковый номер. Например, если клиент отправил SYN с порядковым номером = 1000, то сервер отправит ACK с номером подтверждения = 10001. Кроме того, сервер устанавливает флаг SYN в ‘1’ и отправляет его клиенту, если сервер также хочет установить соединение. Порядковый номер, используемый здесь для SYN, будет отличаться от SYN клиента. Сервер также объявляет клиенту размер своего окна и максимальный размер сегмента.После завершения этого шага устанавливается соединение от клиента к стороне сервера.
- Клиент отправляет ACK серверу: После получения SYN от сервера клиент устанавливает флаг ACK в «1» и отправляет его клиенту с номером подтверждения на 1, превышающим порядковый номер SYN сервера. Здесь флаг SYN имеет значение «0». После завершения этого шага соединение также устанавливается от сервера к клиентской стороне. После установления соединения минимальный из максимального размера сегмента отправителя и получателя принимается во внимание для передачи данных.
Ниже приведено наглядное изображение завершения соединения с использованием 3-стороннего процесса установления связи.
Ниже приведены три шага, необходимые для завершения соединения с использованием процесса трехстороннего подтверждения в TCP:
- Клиент отправляет FIN на сервер: Когда клиент хочет разорвать соединение. Он устанавливает флаг FIN как «1» и отправляет сообщение на сервер со случайным порядковым номером.Здесь ACK установлен на 0.
- Сервер отвечает FIN и ACK клиенту: После получения клиентского запроса на завершение сервер отправляет подтверждение клиенту, устанавливая флаг ACK на «1». . Номер подтверждения ACK на единицу больше, чем полученный порядковый номер. Например, если клиент отправил FIN с порядковым номером = 1000, то сервер отправит ACK с номером подтверждения = 10001. Кроме того, сервер устанавливает флаг FIN в ‘1’ и отправляет его клиенту, если сервер также хочет разорвать соединение.Порядковый номер, используемый здесь для FIN, будет отличаться от FIN клиента. После завершения этого шага соединение от клиента к стороне сервера разрывается.
- Клиент отправляет ACK серверу: После получения FIN от сервера клиент устанавливает флаг ACK в «1» и отправляет его клиенту с номером подтверждения на 1, превышающим порядковый номер FIN сервера. Здесь флаг FIN имеет значение «0». После завершения этого шага соединение с сервера также разрывается на стороне клиента.
Это все о трехстороннем процессе установления связи и его этапах, которые используются в протоколе TCP. Надеюсь, вы узнали что-то новое сегодня. Вот и все для этого блога.
Поделитесь этим блогом со своими друзьями, чтобы распространять знания. Посетите наш канал YouTube для получения дополнительной информации. Вы можете прочитать больше блогов здесь.
Продолжайте учиться 🙂
Команда AfterAcademy!
Трехстороннее рукопожатие через TCP / IP — Windows Server
- 11 минут на чтение
В этой статье
В этой статье обсуждается трехсторонний процесс установления связи между клиентом и сервером по протоколу управления передачей (TCP) при запуске или завершении TCP-соединения.
Применимо к: Windows Server 2012 R2
Исходный номер базы знаний: 172983
Сводка
Эта статья предназначена для аудитории, знакомой с протоколом управления передачей / Интернет-протоколом (TCP / IP). В нем обсуждается процесс трехстороннего установления связи TCP между клиентом и сервером при запуске или завершении TCP-соединения.
Дополнительная информация
Уровень TCP транспортного протокола TCP / IP ориентирован на соединение.Ориентированный на соединение означает, что перед передачей каких-либо данных необходимо получить и подтвердить надежное соединение. Передача данных на уровне TCP, установление и завершение соединения поддерживают определенные параметры управления, которые управляют всем процессом. Биты управления перечислены ниже:
URG: значение поля срочного указателя
ACK: значение поля подтверждения
PSH: функция push
RST: сброс соединения
SYN: синхронизация порядковых номеров
FIN: больше нет данных от отправителя
Существует два сценария трехстороннего рукопожатия:
Следующий пример информации был получен из записи сетевого монитора.Сетевой монитор — это анализатор протокола, который можно получить с сервера Microsoft Systems Management Server.
Установление соединения
Следующая последовательность показывает процесс установления TCP-соединения:
Рамка 1:
Как вы видите в первом кадре, клиент NTW3 отправляет сегмент SYN ( TCP .... S.
). Это запрос к серверу на синхронизацию порядковых номеров. Он указывает его начальный порядковый номер (ISN). ISN увеличивается на 1 (8221821 + 1 = 8221822) и отправляется на сервер.Чтобы начать соединение, клиент и сервер должны синхронизировать порядковые номера друг друга. Также есть возможность установить максимальный размер сегмента (MSS), который определяется длиной (len: 4). Эта опция сообщает MSS, который отправитель хочет получить. Поле подтверждения (ack: 0) установлено в ноль, потому что это первая часть трехстороннего рукопожатия.
1 2.0785 NTW3 -> BDC3 TCP .... S., Len: 4, seq: 8221822-8221825, ack: 0,
win: 8192, src: 1037 dst: 139 (сеанс NBT) NTW3 -> BDC3 IP
TCP:.... S., Длина: 4, seq: 8221822-8221825, ack: 0, win: 8192, src: 1037
dst: 139 (сеанс NBT)
TCP: порт источника = 0x040D
TCP: порт назначения = служба сеанса NETBIOS
TCP: порядковый номер = 8221822 (0x7D747E)
TCP: номер подтверждения = 0 (0x0)
TCP: смещение данных = 24 (0x18)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x02: .... S.
TCP: ..0 ..... = Нет срочных данных
TCP: ... 0 .... = поле подтверждения не имеет значения
TCP: .... 0 ... = Нет функции push
TCP: ..... 0 .. = без сброса
TCP: ...... 1. = Синхронизировать порядковые номера
TCP:....... 0 = Нет плавника
TCP: Окно = 8192 (0x2000)
TCP: контрольная сумма = 0xF213
TCP: срочный указатель = 0 (0x0)
TCP: параметры
TCP: Тип параметра (максимальный размер сегмента) = 2 (0x2)
TCP: длина параметра = 4 (0x4)
TCP: значение параметра = 1460 (0x5B4)
TCP: заполнение кадра
00000: 02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00 .` ..... `.; .... E.
00010: 00 2C 0D 01 40 00 80 06 E1 4B 83 6B 02 D6 83 6B., .. @ .... K.k ... k
00020: 02 D3 04 0D 00 8B 00 7D 74 7E 00 00 00 00 60 02 .......} t ~ .... `.
00030: 20 00 F2 13 00 00 02 04 05 B4 20 20.........
Кадр 2:
Как вы видите во втором кадре, сервер BDC3 отправляет сегменты ACK и SYN ( TCP .A..S.
). В этом сегменте сервер подтверждает запрос клиента на синхронизацию. Между тем, сервер также отправляет клиенту запрос на синхронизацию своих порядковых номеров. В этом сегменте есть одно важное отличие. Сервер передает клиенту номер подтверждения (8221823). Подтверждение является просто доказательством для клиента того, что ACK специфичен для SYN, инициированного клиентом.Процесс подтверждения запроса клиента позволяет серверу увеличивать порядковый номер клиента на единицу и использовать его в качестве номера подтверждения.
2 2.0786 BDC3 -> NTW3 TCP .A..S., Длина: 4, последовательность: 1109645-1109648, подтверждение:
8221823, win: 8760, src: 139 (сеанс NBT) dst: 1037 BDC3 -> NTW3 IP
TCP: .A..S., Длина: 4, последовательность: 1109645-1109648, подтверждение: 8221823, победа: 8760,
src: 139 (сеанс NBT) dst: 1037
TCP: порт источника = служба сеанса NETBIOS
TCP: порт назначения = 0x040D
TCP: порядковый номер = 1109645 (0x10EE8D)
TCP: номер подтверждения = 8221823 (0x7D747F)
TCP: смещение данных = 24 (0x18)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x12:.В ВИДЕ.
TCP: ..0 ..... = Нет срочных данных
TCP: ... 1 .... = поле подтверждения важно
TCP: .... 0 ... = Нет функции push
TCP: ..... 0 .. = без сброса
TCP: ...... 1. = Синхронизировать порядковые номера
TCP: ....... 0 = нет плавника
TCP: Окно = 8760 (0x2238)
TCP: Контрольная сумма = 0x012D
TCP: срочный указатель = 0 (0x0)
TCP: параметры
TCP: Тип параметра (максимальный размер сегмента) = 2 (0x2)
TCP: длина параметра = 4 (0x4)
TCP: значение параметра = 1460 (0x5B4)
TCP: заполнение кадра
00000: 02 60 8C 3B 85 C1 02 60 8C 9E 18 8B 08 00 45 00.`.; ...` ...... Э.
00010: 00 2C 5B 00 40 00 80 06 93 4C 83 6B 02 D3 83 6B., [. @ .... L.k ... k
00020: 02 D6 00 8B 04 0D 00 10 EE 8D 00 7D 74 7F 60 12 ...........} t`.
00030: 22 38 01 2D 00 00 02 04 05 B4 20 20 "8.-......
Рамка 3:
Как вы видите в третьем кадре, клиент отправляет сегмент ACK ( TCP .A ....
). В этом сегменте клиент подтверждает запрос от сервера на синхронизацию. Клиент использует тот же алгоритм, который реализовал сервер для предоставления номера подтверждения.Подтверждение клиентом запроса сервера на синхронизацию завершает процесс установления надежного соединения и трехстороннего рукопожатия.
3 2.787 NTW3 -> BDC3 TCP .A ...., len: 0, seq: 8221823-8221823, ack:
1109646, win: 8760, src: 1037 dst: 139 (сеанс NBT) NTW3 -> BDC3 IP
TCP: .A ...., длина: 0, последовательность: 8221823-8221823, подтверждение: 1109646, выигрыш: 8760,
src: 1037 dst: 139 (сеанс NBT)
TCP: порт источника = 0x040D
TCP: порт назначения = служба сеанса NETBIOS
TCP: порядковый номер = 8221823 (0x7D747F)
TCP: номер подтверждения = 1109646 (0x10EE8E)
TCP: смещение данных = 20 (0x14)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x10:.А ....
TCP: ..0 ..... = Нет срочных данных
TCP: ... 1 .... = поле подтверждения важно
TCP: .... 0 ... = Нет функции push
TCP: ..... 0 .. = без сброса
TCP: ...... 0. = Нет синхронизации
TCP: ....... 0 = нет плавника
TCP: Окно = 8760 (0x2238)
TCP: контрольная сумма = 0x18EA
TCP: срочный указатель = 0 (0x0)
TCP: заполнение кадра
00000: 02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00 .` ..... `.; .... E.
00010: 00 28 0E 01 40 00 80 06 E0 4F 83 6B 02 D6 83 6B. (.. @ .... O.k ... k
00020: 02 D3 04 0D 00 8B 00 7D 74 7F 00 10 EE 8E 50 10.......} т .... П.
00030: 22 38 18 EA 00 00 20 20 20 20 20 20 "8 ....
Завершение соединения
Хотя трехстороннее рукопожатие требует передачи только трех пакетов по нашей сетевой среде, для завершения этого надежного соединения необходимо передать четыре пакета. Поскольку TCP-соединение является полнодуплексным (данные могут передаваться в каждом направлении независимо от другого), каждое направление должно завершаться независимо.
Рамка 4:
В этом сеансе кадров вы видите, что клиент отправляет FIN, который сопровождается ACK ( TCP.А ... Ф
). Этот сегмент выполняет две основные функции. Во-первых, когда установлен параметр FIN, он сообщит серверу, что у него больше нет данных для отправки. Во-вторых, ACK важен для идентификации конкретного установленного соединения.
4 16.0279 NTW3 -> BDC3 TCP .A ... F, длина: 0, последовательность: 8221823-8221823,
ack: 3462835714, win: 8760, src: 2337 dst: 139 (сеанс NBT) NTW3 -> BDC3
IP
TCP: .A ... F, длина: 0, последовательность: 8221823-8221823, подтверждение: 1109646, победа: 8760, src:
1037 dst: 139 (сеанс NBT)
TCP: порт источника = 0x040D
TCP: порт назначения = служба сеанса NETBIOS
TCP: порядковый номер = 8221823 (0x7D747F)
TCP: номер подтверждения = 1109646 (0x10EE8E)
TCP: смещение данных = 20 (0x14)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x11:.00020: DE 57 09 21 05 48 0B 20 96 AC CE 66 AE 02 50 11 .W.!. H. ... ф..П.
00030: 22 38 23 6C 00 00 "8 # l ..
Рамка 5:
В этом кадре вы не видите ничего особенного, кроме подтверждения сервером FIN, переданного от клиента.
5 16.0281 BDC3 -> NTW3 TCP .A ...., длина: 0, последовательность: 1109646-1109646,
ack: 8221824, win: 28672, src: 139 dst: 2337 (сеанс NBT) BDC3 -> NTW3
IP
TCP: .A ...., длина: 0, последовательность: 1109646-1109646, подтверждение: 8221824, выигрыш: 28672, src:
139 dst: 2337 (сеанс NBT)
TCP: порт источника = 0x040D
TCP: порт назначения = служба сеанса NETBIOS
TCP: порядковый номер = 1109646 (0x10EE8E)
TCP: Номер подтверждения = 8221824 (0x7D7480)
TCP: смещение данных = 20 (0x14)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x10:.00020: DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 10. {. H.!. F ... ..P.
00030: 70 00 D5 A3 00 00 90 00 01 00 86 00 п ...........
Рамка 6:
После получения FIN от клиентского компьютера сервер будет ACK. Несмотря на то, что TCP установил соединения между двумя компьютерами, соединения по-прежнему независимы друг от друга. Таким образом, сервер также должен передать клиенту FIN ( TCP .A ... F
).
6 17.0085 BDC3 -> NTW3 TCP.A ... F, длина: 0, последовательность: 1109646-1109646, подтверждение:
8221824, win: 28672, src: 139 dst: 2337 (сеанс NBT) BDC3 -> NTW3 IP
TCP: .A ... F, длина: 0, последовательность: 1109646-1109646, подтверждение: 8221824, победа: 28672, src:
139 dst: 2337 (сеанс NBT)
TCP: порт источника = 0x0548
TCP: порт назначения = 0x0921
TCP: порядковый номер = 1109646 (0x10EE8E)
TCP: Номер подтверждения = 8221824 (0x7D7480)
TCP: смещение данных = 20 (0x14)
TCP: зарезервировано = 0 (0x0000)
TCP: флаги = 0x11: .A ... F
TCP: ..0 ..... = Нет срочных данных
TCP: ... 1 ....00020: DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 11. {. H.!. F ... ..P.
00030: 70 00 D5 A2 00 00 02 04 05 B4 86 00 p ...........
Рамка 7:
Клиент отвечает в том же формате, что и сервер, подтверждая FIN сервера и увеличивая порядковый номер на 1.
7 17.0085 NTW3 -> BDC3 TCP .A ...., len: 0, seq: 8221824-8221824, ack:
1109647, win: 8760, src: 2337 dst: 139 (сеанс NBT) NTW3 -> BDC3 IP
TCP: .A ...., len: 0, seq: 8221824-8221824, ack: 1109647, win: 8760, src:
2337 dst: 139 (сессия NBT)
TCP: порт источника = 0x0921
TCP: порт назначения = 0x0548
TCP: порядковый номер = 8221824 (0x7D7480)
TCP: номер подтверждения = 1109647 (0x10EE8F)
TCP: смещение данных = 20 (0x14)
TCP: зарезервировано = 0 (0x0000)
TCP: Flags = 0x10:.00020: DE 57 09 21 05 48 0B 20 96 AD CE 66 AE 03 50 10 .W.!. H. ... ф..П.
00030: 22 38 23 6B 00 00 "8 # k ..
Клиент, подтверждающий уведомление FIN от сервера, идентифицирует корректное закрытие TCP-соединения.
Список литературы
Получить RFC 793.
RFCможно получить через Интернет следующим образом:
Бумажные копии всех RFC доступны в сетевом адаптере по отдельности или по подписке (для получения дополнительной информации свяжитесь с NIC @ NIC.ДДН.МИЛ). Онлайн-копии доступны через FTP или Kermit с NIC.DDN.MIL как rfc / rfc ####. Txt или rfc / rfc ####. PS (#### — это номер RFC без начальных нулей).
Как работает трехстороннее подтверждение TCP?
TCP означает Протокол управления передачей , протокол, ориентированный на соединение. Это означает, что перед отправкой данных необходимо установить соединение. TCP обеспечивает безопасное и надежное соединение между двумя устройствами.Эта надежность обеспечивается за счет трехстороннего установления связи TCP , которое происходит, когда устанавливается и закрывается соединение между двумя устройствами.
Трехстороннее рукопожатие TCP
TCP использует трехстороннее рукопожатие , чтобы установить надежное соединение . Соединение дуплексное , и две стороны синхронизируют (SYN) и подтверждают (ACK) друг с другом. Этот обмен четырьмя флагами происходит в трех этапах — SYN , SYN-ACK, и ACK .
Как только соединение установлено, данные передаются между устройствами. Как только передача данных завершена и соединение должно быть разорвано, это также делается с помощью трехстороннего процесса установления связи.
В качестве альтернативы, это трехэтапный процесс, в котором клиент и сервер обмениваются пакетами синхронизации и подтверждения до начала фактического процесса передачи данных.
Трехсторонний процесс установления связи разработан таким образом, что обе стороны инициируют, согласовывают и разрывают TCP-соединение одновременно.Это позволяет нам одновременно отправлять несколько сокетов TCP в обоих направлениях.
Как работает трехстороннее квитирование TCP!
Клиент выбирает случайный начальный порядковый номер (ISN), указанный в первом пакете SYN. Сервер также выбирает случайный начальный порядковый номер (ISN), указанный в пакете SYN / ACK. Каждая сторона узнает порядковый номер другой, добавляя единицу; Это номер подтверждения (ACK).
1) Сначала , клиент (активный) отправляет сегмент на сервер (пассивный), указывая начальный порядковый номер, который он будет использовать (Flags = SYN, SequenceNum = X ).
2) Во-вторых, сервер затем отвечает сегментом, который распознает порядковый номер клиента (Flags = ACK, Ack = X + 1 ) и объявляет свой собственный начальный порядковый номер (Flags = SYN, SequenceNum = Y ). Это означает, что биты SYN и ACK установлены в столбце Flags этого второго сообщения.
3) Наконец, клиент отвечает третьим сегментом, который распознает порядковый номер сервера (flag = ACK, Ack = Y + 1 ).
Каждая сторона видит, что порядковый номер больше отправленного, потому что поле подтверждения идентифицирует « следующий ожидаемый порядковый номер » и, таким образом, неявно подтверждает все предыдущие порядковые номера. Используя порядковые номера и номера подтверждения, обе стороны могут идентифицировать отсутствующие или неупорядоченные сегменты .
Таймер планируется для каждого из первых двух сегментов, и если ожидаемый ответ не получен, сегменты передаются повторно.Наконец, соединение завершается с помощью RST (сброс или отключение) или FIN (постепенное отключение).
Фактически, спецификация TCP требует, чтобы каждая сторона выбирала случайный начальный порядковый номер (ISN). Причина в том, чтобы защититься от двух типов одного и того же соединения слишком быстро, используя один и тот же порядковый номер.
Заголовок IP-пакета:
- Порядковый номер: Порядковый номер, 32-битное число , назначенное первому биту данных.Он используется для инициирования и установления соединений. Обычно порядковые номера используются в соединении только один раз.
- Номер подтверждения: Обычно на больше, чем порядковый номер, полученный от отправителя. Это помогает подтвердить другой стороне, что они приняли SYN.
- Флаг SYN : SYN означает Синхронизация . Это можно описать как запрос на установление соединения. Если SYN равен 1 (единица), это означает, что устройство хочет установить безопасное соединение.
- Флаг ACK : ACK означает Подтверждение . Это можно объяснить как ответ на SYN. Если ACK равен 1 (единица), это означает, что устройство получило сообщение SYN.
- Флаг FIN : FIN означает Завершено . Используется для завершения соединения. Если FIN равен 1 (один), устройство хочет разорвать соединение или завершить соединение.
Простой пример, показывающий трехэтапные шаги TCP:
- Клиент подключается к серверу.Он отправляет сегмент с SYN (1) и информирует сервер об инициировании связи.
- Сервер отвечает на запрос клиента указанным сигналом SYN-ACK. ACK (1 + 1) показывает полученный ответ сегмента, а SYN (50) показывает порядковый номер, начинающийся с этого сегмента.
- На этом последнем шаге клиент подтверждает ответ сервера с помощью ACK (50 + 1) , и оба устанавливают стабильное соединение. Затем фактические данные начинают передаваться между ними.
Пример трехэтапного подтверждения TCP, захваченного в Wireshark:
Шаг 1: Клиент отправляет SYN на сервер: когда клиент хочет установить соединение с сервером, он устанавливает флаг «SYN» на 1 и отправляет сообщение на сервер. Сообщение содержит такую информацию, как порядковый номер (2605483508) , значение ACK, равное 0, размер окна и максимальный размер сегмента.
Шаг 2 : Сервер отвечает клиенту с помощью SYN и ACK: После получения запроса синхронизации от клиента сервер отправляет подтверждение клиенту, устанавливая флаг ACK на «1» .Номер подтверждения (2605483509) — это на один номер больше, чем полученный порядковый номер.
Сервер также устанавливает флаг SYN в «1» и отправляет его клиенту. Порядковый номер (877776654) , используемый здесь для SYN, отличается от номера SYN клиента. Сервер также объявляет размер окна и максимальный размер сегмента клиента. После завершения этого шага устанавливается соединение от клиента к стороне сервера.
Шаг 3: Клиент отправляет ACK серверу: после получения SYN от сервера клиент устанавливает флаг ACK на «1» и отправляет его с номером подтверждения (877776655) , который больше, чем последовательность SYN сервера номер на единицу.Флаг SYN «0» установлен. После завершения этого шага устанавливается соединение от сервера к клиенту.
Как только соединение установлено, для передачи данных учитывается минимум из максимального размера сегмента передатчика и приемника.
Скачать образец файла дампа TCP
Когда процесс трехстороннего установления связи завершен, соединение готово для передачи данных. Трафик данных, исходящий от клиентов, отображается красным цветом, а серверы — синим.
В следующей таблице подробно описано, как работает трехстороннее рукопожатие.
- Показывает, что происходит с сервером и клиентом с течением времени.
- Каждая строка показывает состояние, в котором устройство было запущено, какие действия были выполнены в этом состоянии и где состояние было изменено.
- Отправляющая и принимающая части каждого из трех этапов процесса подтверждения также показаны в таблице.
Полный процесс связи TCP:
- Фаза установления соединения
- Фаза передачи данных
- Фаза завершения соединения
Шаг 1 .Сервер отправляет FIN клиенту: когда сервер хочет отключиться, устанавливает флаг FIN в «1» и отправляет клиенту сообщение с порядковым номером (X) .
Шаг 2. Клиент отвечает серверу с помощью FIN и ACK: после получения запроса на завершение работы сервера клиент отправляет серверу номер подтверждения (X + 1) и устанавливает флаг ACK на «1» .
Клиент также устанавливает флаг FIN в «1» и отправляет его на сервер.Порядковый номер (Y) , используемый здесь для FIN, отличается от FIN сервера. После завершения этого шага соединение от сервера к клиенту разрывается.
Шаг 3. Сервер отправляет ACK клиенту: после получения FIN от клиента сервер устанавливает флаг ACK на «1» и отправляет его с номером подтверждения (Y + 1) , который больше, чем у клиента Порядковый номер FIN на единицу. Здесь устанавливается флаг FIN «0». Когда этот шаг будет завершен, соединение между клиентом и сервером завершится.
Какие приложения используют TCP:
Обратите внимание, что FTP, Telnet, HTTP, HTTPS, SMTP, POP3, IMAP, SSH и другие протоколы, работающие под TCP, также будут выполнять трехстороннее рукопожатие после открытия соединения. TCP обрабатывает передачу веб-запросов HTTP, электронных писем SMTP и передачу файлов FTP.
Несколько замечаний об UDP:
Обратите внимание, что UDP — это соединение с. Это означает, что UDP не устанавливает соединение, подобное TCP, поэтому UDP не выполняет это трехстороннее рукопожатие и, следовательно, известен как ненадежный протокол и без установления соединения. Это не означает, что UDP не может передавать данные, он не может согласовывать, как работает соединение. UDP просто отправляет данные и надеется на лучшее.
Несколько ключевых точек:
- Трехстороннее рукопожатие TCP — это процесс, используемый в сети TCP / IP для установления соединения между сервером и клиентом.