Последовательность закрытия ип: Как закрыть ИП в 2021 году пошаговая инструкция

Содержание

Закрытие ИП под ключ, удаленно, по всей России

Наше предложение — особенное.

Мы решим задачи по закрытию ИП за одно посещение офиса.

Не важно, сдана ли у вас отчетность. Не важно, в каком вы регионе. Мы сделаем индивидуальное предложение, подпишем с вами необходимое на получение цифровой подписи (ЭЦП) и документооборот пойдет через интернет. Дальнейшее присутствие не потребуется.

Закрытие индивидуального предпринимателя (Закрытие ИП) — как раз тот случай, когда за простотой используемых бумаг кроется ряд подводных камней. И правда, в интернете можно без труда найти нужные формы, а заполнить сможет каждый. Первое впечатление обманчиво. Всесторонний подход состоит из ряда действий и здесь важен порядок и время каждого из них.

Важно! Оформить заявку на услуги и внести предоплату вы можете удаленно.
Телефон: 8 (495) 660–39–42. Почта: [email protected]

Как правильно закрыть ИП?

Выбирайте вариант:

«Электронный» — новый вариант, сделаем мы, без участия нотариуса.

4500 ₽ – расходы,
из них: 3000 ₽ – услуги, 1500 ₽ – получение электронной подписи.
Пошлина в таком случае не взымается.

  • 15 минут у нас в офисе – потребуется от вас.
  • Паспорт и СНИЛС – возьмите с собой.
  • Через интернет – без нотариуса.
  • Готовые документы – на электронную почту, бумажные экземпляры – почтой на прописку.
  • Регион – по всей России.

5-6 раб. дней – срок исполнения (из них 5 рабочих дней обработка в налоговой).

«Классический» — частая форма работы, с участием нотариуса.

6160 ₽ – расходы,
из них: 3000 ₽ – услуги, 3160 ₽ – нотариус и государственная пошлина.

  • От вас – личный визит к нам (1-2 раза), посещение нотариуса (1 раз).
  • Паспорт, свидетельства ИНН и ОГРНИП – для нас и нотариуса.
  • Запишем к нотариусу без очереди, а наш курьер подаст на закрытие и получит готовые документы в налоговой.
  • Регион услуги – Москва и Химки.

5-6 раб. дней – срок исполнения (из них 5 рабочих дней обработка в налоговой).

«Эконом» — подготовка и консультация.

1000 ₽ – расходы,
из них: 840 ₽ – услуги, 160 ₽ – государственная пошлина.

  • Заявление c оплаченной пошлиной – за один визит к нам, или удаленно, на электронную почту.
  • Паспорт и номер ИНН – всё, что нужно.
  • Проконсультируем по порядку закрытия и адресам предоставления бумаг.

7 минут – делаем при вас.

Что входит в закрытие ИП?

Посмотрите таблицу ниже:

Таблица прокручивается

Как быть, если долги?

Это не проблема – мы умеем работать с такими ситуациями:

  • Проведем сверки с бюджетом.
  • На пальцах объясним, что и как делать.
  • Заполним и подадим отчётность.
  • Стоимость и сроки вас приятно удивят – позвоните и юрист за пару минут сделает точную оценку.

Вы обязательно получите:

  • Индивидуальный анализ ситуации.
  • Грамотную пошаговую последовательность – сжатые сроки исполнения с поправкой на выявленные риски, долги и опасения.
  • Персональное коммерческое предложение – только необходимые вам работы, с нужной долей участия компании. Выгодно.
  • Гарантию соблюдения сроков – по развозу документов, по уведомлениям и напоминаниям.
  • Независимость от привязки к региону – закроем, даже если вы другого конца РФ. Владение современными электронными технологиями и их возможности нам в этом помогут.

Закрытие ИП с задолженностью

Ликвидация организации возможна в любой момент, как только вы решите это сделать. Более того, закрыть ИП можно и с долгами. Даже если вы, как индивидуальный предприниматель не уплатили требуемую сумму в пенсионный фонд, налоговую службу и так далее, это не является препятствием для официального прекращения вашей деятельности.

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

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

Сколько хранить бухгалтерские документы?

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

Свяжитесь с нами – выберите надежное решение комплексного вопроса.

Закрытие расчетного счета при закрытии ИП: порядок и документы

В статье узнаем, когда нужно закрывать расчетный счет при прекращении деятельности ИП. Разберемся, можно ли закрыть счет после ликвидации ИП и к чему это может привести. Мы подготовили для вас порядок действий при закрытии счета и собрали перечень необходимых документов.


Когда ИП нужно закрыть расчетный счет

При закрытии ИП ведение р/с можно прекратить после оплаты всех обязательных платежей (налогов, штрафов), окончательного расчета с контрагентами и т. д. Как только вы будете уверены, что больше по счету не будет никаких движений, можно его закрывать. Сначала нужно закрыть счет, а потом приступать к ликвидации ИП.

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

Можно ли закрыть ИП не закрывая расчетный счет?

Закон не устанавливает сроки прекращения ведения р/с, следовательно, закрыть счет можно в любой момент. Но есть одно «но».

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

Как ИП закрыть расчетный счет

Алгоритм закрытия р/с включает в себя:

  • Подготовку требуемых бумаг.
  • Погашение задолженности перед клиентами, поставщиками и т. д.
  • Снятие средств с р/с.
  • Написание заявления о закрытии.
  • Получение уведомления о прекращении действия договора с банком.

Также прочитайте: Виды расчетных счетов в банке: ссудный, текущий, специальный и другие

Список необходимых документов

Для закрытия счета понадобятся:

  • Паспорт РФ.
  • Заявление о прекращении ведения р/с.
  • Выписка из ЕГРИП.
  • Бумаги, свидетельствующие о закрытии долгов перед клиентами.

В индивидуальном порядке банк может потребовать и другие бумаги.

Как вывести остаток со счета

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

Декларации при закрытии ИП: какие декларации и куда подаем? | Статьи компании «РосКо»

Какую отчетность и в какие сроки необходимо представить ИП при закрытии?

Для закрытия ИП в налоговый орган представляется соответствующее заявления и платежное поручение об уплату госпошлины (п.1 ст.22.3 Закона №129-ФЗ).

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

ПОШАГОВОЕ ЗАКРЫТИЕ ИП

Перечень деклараций при закрытии ИП

Перечень представляемых деклараций зависит от применяемой ИП системы налогообложения.

Система налогообложения

Форма декларации

Срок подачи декларации, оплата налога

УСН

Декларация по единому налогу при УСН представляется по форме, приведенной в Приложении №1 к приказу ФНС РФ от 26.02.2016 г. №ММВ-7-3/[email protected]

О решении прекращения деятельности ИП обязан уведомить налоговый орган не позднее 15 рабочих дней со дня прекращения такой деятельности (п.8 ст.346.13 НК РФ).

В части декларации по УСН — до 25 числа следующего за месяцем прекращения деятельности месяца (п.2 ст.346.23 НК РФ, Письма ФНС РФ от 08.04.2016 г. №СД-3-3/1530, от 13.08.2010 г. №ШC-37-3/[email protected]). В этот же срок нужно оплатить УСН (при его наличии).

Например, запись о прекращении деятельности ИП внесена в ЕГРИП 28 апреля 2016 г. , а поэтому представить декларацию и заплатить единый налог по УСН необходимо в срок до 25 мая 2016 г.

Патент

Декларации в связи с применением ПСН, у ИП нет.

О своем решении прекратить деятельность ИП обязан заявить в налоговый орган в течение 10 календарных дней со дня прекращения такой деятельности (п.8 ст.346.45 НК РФ).

При снятии с учета в налоговом органе до истечения срока действия патента, уплачиваемый «патентный» налог подлежит перерасчету, исходя из фактического периода времени осуществления указанного вида предпринимательской деятельности в календарных днях (Письмо Минфина РФ от 15.10.2013 г. №03-11-12/42971).

Налоговым периодом при ликвидации ИП (до окончания срока действия патента) является время от начала действия патентной налоговой системы до момента ликвидации ИП.

В связи с пересчетом суммы патента у ИП может возникнуть сумма налога к доплате либо переплата по налогу.

В первом случае – «патентный» налог подлежит уплате в сроки, указанные в патенте.

Во втором случае – налоговая инспекция может провести зачет суммы для уплаты других налогов либо вернуть переплату (на практике налоговые инспекции осуществляют возврат переплаты, несмотря на то, что Минфин РФ в Письме от 24.02.2016 г. №03-11-12/9623 привел разъяснения, что стоимость патента пересчету не подлежит). Причина запрета – ст.346.51 НК РФ не предусматривает порядок пересчета стоимости патента при прекращении деятельности ИП ранее срока на который выдан патент.

ОСН

Декларация 3-НДФЛ представляется по форме, приведенной в Приложении №1 к приказу ФНС РФ от 25. 11.2015 г. №ММВ-7-11/[email protected]

Кроме того, у ИП может возникнуть обязанность подачи декларации по НДС (по форме, приведенной в Приложении №1 к приказу ФНС РФ от 29.10.2014 г. №ММВ-7-3/[email protected]).

В части декларации по НДФЛ — не позднее 5 рабочих дней после прекращения деятельности ИП (п.3 ст.227 НК РФ). НДФЛ (при его наличии) необходимо оплатить не позднее 15 календарных дней с момента подачи декларации по НДФЛ (п.3 ст.229 НК РФ).

В части декларации по НДС – не позднее 25 числа месяца, следующего за кварталом, в котором прекращена деятельность ИП.

НДС (при его наличии) необходимо оплатить равными долями по 1/3 части не позднее 25 числа каждого из трех месяцев квартала, следующего за кварталом прекращения деятельности (п.5 ст.174 НК РФ).

ЕНВД

Декларация по ЕНВД представляется по форме, приведенной в Приложении №1 к приказу ФНС РФ от 22.12.2015 г. №ММВ-7-3/[email protected]

В том случае, если снятие с учета ИП в налоговом произведено не с первого дня календарного месяца, то размер вмененного дохода за данный месяц рассчитывается исходя из фактического количества дней осуществления предпринимательской деятельности.

Например, ИП снят с учета в качестве налогоплательщика ЕНВД 25 декабря 2015 года, то — налоговую декларацию по ЕНВД за IV квартал 2015 года необходимо представить не позднее 20 января 2016 года, исчислив в ней единый налог за фактически отработанный период времени (Письмо ФНС РФ от 08.04.2016 г. №СД-3-3/1530).

В части декларации по ЕНВД – не позднее 20 числа месяца, следующего за кварталом, в котором внесена запись в ЕГРИП о прекращении деятельности (п. 3 ст.346.32 НК РФ).

ЕНВД (при его наличии) необходимо оплатить не позднее 25 числа первого месяца, следующего за кварталом внесения записи в ЕГРИП.

Важно!

ИП сдает декларации в налоговую инспекцию, где состоит на учете по адресу регистрации.  

«Страховая» отчетность при закрытии ИП

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

Однако при наличии информации о несданной отчетности ИП, налоговым органом будет принято решение об отказе в исключении из ЕГРИП.

ИП БУХГАЛТЕРСКИЕ УСЛУГИ

Напомним, что ИП обязаны уплачивать страховые взносы с выплат и вознаграждений, начисляемых в пользу физических лиц в рамках трудовых отношений и гражданско-правовых договоров на выполнение работ, оказание услуг (п.1 ст.7 Закона №212-ФЗ). В случае прекращения деятельности до конца расчетного периода ИП обязаны до дня подачи в налоговый орган заявления о прекращения деятельности представить расчет по начисленным и уплаченным страховым взносам за период с начала расчетного периода по день представления указанного расчета включительно. 


При этом разница между суммой страховых взносов, подлежащей уплате согласно расчету и суммами страховых взносов, фактически уплаченными ИП с начала расчетного периода, подлежит уплате в течение 15 календарных дней со дня подачи такого расчета или возврату (ст.5 Закона №212-ФЗ). Также должна быть представлена отчетность в ФСС по форме 4-ФСС за аналогичный расчетный период. 

НУЛЕВАЯ ОТЧЕТНОСТЬ ИП НА УСН

Кроме того, если ИП зарегистрирован во внебюджетных фондах как работодатель, то у него возникает обязанность снятия с учета как работодателя в этих фондах (ФСС и ПФР).

Важно!

Следует отметить, что имеющаяся задолженность по уплате страховых взносов не будет являться препятствием для закрытия ИП, поскольку после закрытия ИП долги «перейдут» на физическое лицо.

ЗАКРЫТИЕ И ЛИКВИДАЦИЯ ИП


ТОмИΨ: TCP / IP — последовательность закрытия сокета, CLOSE_WAIT и TIME_WAIT

Допустим, между клиентом и сервером установлено соединение через сокет. Ниже приводится завершающая последовательность после завершения передачи данных:

1. Сокет на клиенте отправляет сегмент TCP с битом FIN (в заголовке TCP), и сокет переходит в состояние FIN_WAIT_1 на клиенте.

2. Сокет на сервере получает FIN и отвечает ACK, чтобы подтвердить FIN, и сокет переходит в состояние CLOSE_WAIT.Теперь, пока приложение не вызовет close () для этого сокета, он будет в состоянии CLOSE_WAIT.

3. Сокет на клиенте получает ACK и переходит в состояние FIN_WAIT_2.

4. Сокет на сервере закрывает соединение (как только приложение вызывает close ()) и отправляет обратно FIN своему партнеру, чтобы закрыть соединение и изменяет свое состояние на последний ACK.

5. Сокет на клиенте получает FIN и отправляет обратно ACK. На этом этапе реализация сокета на клиенте запустит таймер (TIME_WAIT) для обработки сценария, когда последний ACK был потерян, а сервер повторно отправляет FIN.
Теперь сокет будет ждать 2 * MSL (максимальное время жизни сегмента — по умолчанию 4 минуты для Solaris и Windows), для Linux tcp_fin_timeout равно 60.

6) Сокет на сервере получает ACK и переводит соединение в закрытое состояние .

7) По истечении TIME_WAIT сокет / соединение будет закрыто на клиенте.

Все эти многоуровневые подтверждения и повторные передачи необходимы, поскольку TCP / IP является надежным протоколом в отличие от UDP.

CLOSE_WAIT:
Это состояние, при котором сокет ожидает выполнения приложением close ().Это означает, что локальный конец соединения получил FIN с другого конца, но ОС ожидает, пока программа на локальном конце действительно закроет свое соединение. Обычно это происходит, когда клиент закрывает соединение, но приложение еще не закрыло его. Проблема в том, что ваша программа, запущенная на локальном компьютере, не закрывает сокет. Это не проблема настройки TCP. Соединение может (и вполне правильно) оставаться в состоянии CLOSE_WAIT навсегда, пока программа держит соединение открытым.

CLOSE_WAIT не может быть настроен там, где TIME_WAIT может быть установлен через tcp_time_wait_interval (атрибут tcp_close_wait_interval не имеет ничего общего с состоянием close_wait)
Сокет может находиться в состоянии CLOSE_WAIT бесконечно, пока приложение не закроет его.
Неправильные сценарии могут быть подобны утечке файлового дескриптора, когда сервер не выполняет close () на сокете, что приводит к накоплению сокетов close_wait.

Чтобы увидеть все соединения в состоянии «CLOSE_WAIT», используйте:

 netstat -tonp 2> & 1 | grep ЗАКРЫТЬ

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

Если в списке нет программ, значит, услуга предоставляется ядром. Скорее всего, это службы RPC, такие как nfs или rpc.Lockd. Прослушивающие службы ядра могут быть перечислены с помощью

 netstat -lntp 2> & 1 | grep - -

# netstat -atnp | grep "CLOSE_WAIT"
 

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

TIME_WAIT:
Это просто время ожидания сокета перед окончательным закрытием соединения.В большинстве случаев о сокетах в TIME_WAIT беспокоиться не о чем.

TCP Connection Termination — GeeksforGeeks

В процессе трехстороннего установления связи TCP мы изучили, как устанавливается соединение между клиентом и сервером в протоколе управления передачей (TCP) с использованием SYN -битных сегментов. В этой статье мы изучим, как TCP закрывает соединение между клиентом и сервером. Здесь нам также нужно будет отправить битовые сегменты на сервер, для которого FIN бит установлен в 1.

TCP поддерживает два типа освобождения соединения, как и большинство транспортных протоколов, ориентированных на соединение:

  1. Изящное освобождение соединения —
    В Изящном выпуске соединения соединение открыто до тех пор, пока обе стороны не закроют свои стороны соединения.
  2. Внезапное освобождение соединения —
    При внезапном освобождении соединения либо один объект TCP принудительно закрывает соединение, либо один пользователь закрывает оба направления передачи данных.

Внезапное разъединение соединения:
Внезапное разъединение соединения выполняется при отправке сегмента RST.Сегмент RST может быть отправлен по следующим причинам:

  1. Когда был получен сегмент, не являющийся SYN, для несуществующего TCP-соединения.
  2. В открытом соединении некоторые реализации TCP отправляют сегмент RST, когда получен сегмент с недопустимым заголовком. Это предотвратит атаки, закрыв соответствующее соединение.
  3. Когда некоторым реализациям необходимо закрыть существующее TCP-соединение, они отправляют сегмент RST. Они закроют существующее TCP-соединение по следующим причинам:
    • Отсутствие ресурсов для поддержки соединения
    • Удаленный хост теперь недоступен и перестал отвечать.

Когда объект TCP отправляет сегмент RST, он должен содержать 00, если он не принадлежит какому-либо существующему соединению, в противном случае он должен содержать текущее значение порядкового номера для соединения, а номер подтверждения должен быть установлен на следующий ожидаемый порядковый номер в этом соединении.


Graceful Connection Release:
Обычным способом завершения TCP-соединения является использование флага FIN в заголовке TCP. Этот механизм позволяет каждому хосту по отдельности освобождать свою сторону соединения.

Как работает механизм в TCP:

  1. Шаг 1 (FIN от клиента) —
    Предположим, что клиентское приложение решает закрыть соединение. (Обратите внимание, что сервер также может закрыть соединение). Это приводит к тому, что клиент отправляет сегмент TCP с битом FIN , установленным на 1 , на сервер и входит в состояние FIN_WAIT_1 . Находясь в состоянии FIN_WAIT_1 , клиент ждет сегмента TCP от сервера с подтверждением (ACK).
  2. Шаг 2 (ACK от сервера) —
    Когда сервер получил битовый сегмент FIN от отправителя (клиента), сервер немедленно отправит сегмент подтверждения (ACK) отправителю (клиенту).
  3. Шаг 3 (ожидание клиента) —
    Находясь в состоянии FIN_WAIT_1 , клиент ждет сегмента TCP от сервера с подтверждением. Когда он получает этот сегмент, клиент переходит в состояние FIN_WAIT_2 . Находясь в состоянии FIN_WAIT_2 , клиент ожидает другого сегмента от сервера с битом FIN, установленным в 1.
  4. Шаг 4 (FIN от сервера) —
    Сервер отправляет битовый сегмент FIN отправителю (клиенту) через некоторое время, когда сервер отправляет сегмент ACK (из-за некоторого процесса закрытия на сервере).
  5. Шаг 5 (ACK от клиента) —
    Когда клиент получает сегмент битов FIN от сервера, клиент подтверждает сегмент сервера и переходит в состояние TIME_WAIT . Состояние TIME_WAIT позволяет клиенту повторно отправить окончательное подтверждение в случае потери ACK .Время, проведенное клиентом в состоянии TIME_WAIT , зависит от их реализации, но их типичные значения составляют 30 секунд, 1 минуту и ​​2 минуты. После ожидания соединение формально закрывается, и все ресурсы на стороне клиента (включая номера портов и данные буфера) освобождаются.

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

состояний TCP, посещаемых ClientSide —

состояний TCP, посещаемых ServerSide —

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

GATE Вопрос —
Рассмотрим TCP-клиент и TCP-сервер, работающие на двух разных машинах.После завершения передачи данных TCP-клиент вызывает close , чтобы разорвать соединение, и сегмент FIN отправляется на TCP-сервер. Серверный TCP отвечает, отправляя ACK, который получает клиентский TCP. Согласно диаграмме состояний TCP-соединения (RFC 793), в каком состоянии TCP-соединение на стороне клиента ожидает FIN от TCP на стороне сервера?
(A) LAST-ACK
(B) TIME-WAIT
(C) FIN-WAIT-1
(D) FIN-WAIT-2

Пояснение: (D)
GATE CS 2017 (Set 1), Вопрос 12

Ссылки —
Завершение TCP-соединения — Википедия
http: // www.bau.edu.jo/UserPortal/UserProfile/PostsAttach/10617_1870_1.pdf

Автор статьи: Kadam Patel . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на [email protected] Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с помощью курса CS Theory Course по приемлемой для студентов цене и станьте готовым к работе в отрасли.

Трехстороннее рукопожатие — обзор

Установление соединения

Давайте более подробно рассмотрим трехстороннее установление соединения 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)

Протокол управления передачей / Интернет-протокол, набор протоколов связи, используемых для подключения узлов в Интернете. TCP / IP использует несколько протоколов, два основных из которых — TCP и IP. TCP / IP встроен в операционную систему UNIX и используется Интернетом, что делает его стандартом для передачи данных по сети.Даже сетевые операционные системы, которые имеют свои собственные протоколы, такие как Netware, также поддерживают TCP / IP. Протокол IP имеет дело только с пакетами, а TCP позволяет двум хостам устанавливать соединение и обмениваться потоками данных. TCP гарантирует доставку данных, а также гарантирует, что пакеты будут доставлены в том же порядке, в котором они были отправлены.

TCP компенсирует недостатки IP, обеспечивая надежные потоковые соединения, которые скрывают большинство недостатков IP. Набор протоколов получил свое название, потому что большинство протоколов TCP / IP основаны на TCP, который, в свою очередь, основан на IP.TCP и IP — две опоры TCP / IP. TCP добавляет большую функциональность к IP-службе, на которую он накладывается:

  • Потоки. Данные TCP организованы как поток байтов, как файл. Дейтаграмная природа сети скрыта.
  • Надежная доставка. Порядковые номера используются для координации того, какие данные были переданы и получены. TCP организует повторную передачу, если определит, что данные были потеряны.
  • Сетевая адаптация. TCP будет динамически изучать характеристики задержки сети и корректировать свою работу для максимального увеличения пропускной способности без перегрузки сети.
  • Контроль потока. TCP управляет буферами данных и координирует трафик, чтобы его буферы никогда не переполнялись. Быстрые отправители будут периодически останавливаться, чтобы не отставать от более медленных получателей.
Основной метод операции предполагает:
  • упаковка данных приложения более высокого уровня в сегменты
  • обертывание сегментов в дейтаграммы IP
  • связывание номеров портов с конкретными приложениями
  • Связывание порядкового номера с каждым байтом в потоке данных
  • обмениваются специальными сегментами для запуска и закрытия потока данных между двумя хостами
  • с использованием подтверждений и тайм-аутов для обеспечения целостности потока данных

Формат сегмента

Сегменты TCP состоят из 32-битных слов и включают 20-байтовый (5-словный) заголовок.Информация, содержащаяся внутри, выглядит следующим образом:
  • Номер порта источника. Номера портов источника (и назначения) используются для отправки потока данных в приложения. Вполне возможно, что между двумя хостами будет несколько одновременных потоков данных TCP. Поток данных TCP однозначно идентифицируется группой из четырех чисел. Это два адреса хоста и два номера порта.
  • Номер порта назначения. Это номер «целевого» порта в удаленной системе.
  • Порядковый номер. Это 32-битное число определяет первый байт данных в сегменте.
  • Номер подтверждения. Это 32-битное число является номером следующего байта, который отправитель ожидает получить от удаленного хоста. Удаленный хост может сделать вывод, что все байты до этого числа минус один были благополучно получены, и локальные копии удаленного хоста могут быть отброшены.
  • Длина заголовка. Это 4-битное поле определяет длину заголовка в 32-битных словах. Очевидно, что максимальное значение составляет 15 слов (60 байтов), что позволяет использовать 10 (40 байтов) вариантов.
  • Флаговые биты. Эта группа из 6 битов идентифицирует различные особые состояния в протоколе. Одновременно можно установить несколько битов.
  • Чексум. Это касается как заголовка, так и данных. Он рассчитывается путем добавления псевдозаголовка к сегменту TCP, он состоит из 3 32-битных слов, содержащих IP-адреса источника и назначения, байта, установленного на 0, байта, установленного на 6 (номер протокола для TCP в IP-адресе). заголовок дейтаграммы) и длину сегмента (прописью). Поле контрольной суммы сегмента TCP устанавливается в ноль, и алгоритм, применяемый к добавленному сегменту, обрабатывается как последовательность 16-битных (беззнаковых) слов.
  • Управление потоком. Управление потоком связано с текущими порядковыми номерами байтов на каждом конце потока данных. Всякий раз, когда сегмент отправляется, он включает порядковый номер последнего отправленного байта. Сегмент также будет включать порядковый номер следующего байта, который отправляющий хост ожидает получить, это называется номером подтверждения (ACK). Хост, получающий сегмент, может предположить, что удаленный хост безопасно получил все байты до байта ACK-1 включительно, теперь локальные копии могут быть отброшены.

Порядковые номера

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

TCP использует несколько контрольных флагов для управления соединением. Некоторые из этих флагов относятся к одному пакету, но два флага (SYN и FIN) требуют надежной доставки, поскольку они отмечают начало и конец потока данных.Чтобы обеспечить надежную доставку этих двух флагов, им назначаются места в пространстве порядковых номеров. Каждый флаг занимает один байт.

Открытие TCP-соединения

TCP-соединение открывается с помощью трехстороннего рукопожатия для установления общего представления порядковых номеров. Соединение будет инициировано активным клиентом, другой конец соединения описывается как пассивный клиент, хотя с точки зрения модели программного обеспечения клиент / сервер, скорее всего, это сервер.Пассивный клиент должен находиться в состоянии, известном как LISTEN, что просто означает, что он ожидает входящего запроса на соединение. При трехстороннем обмене активный клиент отправляет сегмент SYN с произвольным порядковым номером (J). Пассивный клиент отвечает сегментом SYN с номером подтверждения, установленным на J + 1, и порядковым номером, установленным на дополнительное произвольное значение (K). Активный клиент отвечает на сегмент SYN, отправляя сегмент ACK с номером подтверждения, установленным на K + 1.

«Произвольный» начальный порядковый номер должен увеличиваться приблизительно каждые 4 с, это позволяет избежать путаницы отложенных сегментов предыдущего соединения с новым соединением. Начальный порядковый номер сохранится примерно за 4 часа. Как только соединение установлено, порядковые номера могут переноситься гораздо быстрее в зависимости от трафика и скорости линии.

Закрытие TCP-соединения

Для упорядоченного закрытия TCP-соединения требуется четырехсторонний обмен. На активном конце приложение инициирует последовательность закрытия, возможно, с помощью системного вызова close () для сокета.При пассивном конце получение сегмента FIN заставляет программное обеспечение передавать серверному программному обеспечению индикацию «конца файла».

Следует отметить, что на самом деле биржа представляет собой две независимые биржи, и можно закрыть соединение в одном направлении, но не в другом. Это называется половинным закрытием. RFC 793 определяет MSL (максимальное время жизни сегмента) как 120 секунд, но в некоторых реализациях используется 30 или 60 секунд. Это, по сути, максимальное время, в течение которого разумно ждать сегмента, т.е.е. если сегмент не достигает места назначения в MSL, он, вероятно, вообще не доберется до него, можно предположить, что он был потерян.

Оценка времени туда и обратно

Когда хост передает TCP-пакет своему партнеру, он должен некоторое время ждать подтверждения. Если ответ не приходит в течение ожидаемого периода, считается, что пакет потерян, и данные передаются повторно. Очевидный вопрос — сколько нам ждать? — не хватает простого ответа. По Ethernet для ответа должно быть не более нескольких микросекунд.Если трафик должен проходить через глобальную сеть Интернет, секунда или две могут быть разумными во время пикового использования. Если мы говорим с приборным комплексом на спутнике, несущемся к Марсу, на ответ могут потребоваться минуты. Нет однозначного ответа на вопрос — как долго?

Все современные реализации TCP стремятся ответить на этот вопрос, отслеживая нормальный обмен пакетами данных и вычисляя, насколько долго это «слишком долго». Этот процесс называется оценкой времени приема-передачи (RTT).Оценки RTT — один из наиболее важных параметров производительности при TCP-обмене, особенно если учесть, что при неограниченно большой передаче все реализации TCP в конечном итоге отбрасывают пакеты и повторно передают их, независимо от того, насколько хорошее качество связи. Если оценка RTT слишком низкая, пакеты повторно передаются без необходимости; если он слишком высокий, соединение может бездействовать, пока хост ожидает тайм-аута.

Трехстороннее рукопожатие через 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., Длина: 4, последовательность: 8221822-8221825, подтверждение: 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 @ NIC.ДДН.МИЛ). Онлайн-копии доступны через FTP или Kermit с NIC.DDN.MIL как rfc / rfc ####. Txt или rfc / rfc ####. PS (#### — это номер RFC без начальных нулей).

java — какова правильная последовательность отключения сокета tcp / ip на android?

У меня есть код, который отправляет сообщение с использованием TCP / IP.

клиентская последовательность: соединение, запись, сброс, вывод выключения, ввод выключения, закрытие сокета.

последовательность сервера: принятие, чтение строки, ввод выключения, вывод выключения, закрытие сокета.

, это отлично работает в Windows, используя ту же работу Wi-Fi, что и Android. на nexus 7 android 6.0.1 2013 года socket.shutdownInput () иногда выдает ENOTCONN (см. ниже). программа по-прежнему работает, но хотелось бы понять, что происходит, и по возможности избавиться от исключения.

спасибо

edit: закрытие потока вывода (а не выполнение вывода выключения) работает лучше.

  01-29 23: 24: 29.394 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: java.net.SocketException: завершение работы не выполнено: ENOTCONN (конечная точка транспорта не подключена)
01-29 23: 24: 29.394 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.net.PlainSocketImpl.shutdownInput (PlainSocketImpl.java:361)
01-29 23: 24: 29.394 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.net.Socket.shutdownInput (Socket.java:635)
01-29 23: 24: 29.394 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: на com.tayek.tablet.io.Client.отправить (Client.java:49)
01-29 23: 24: 29.394 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: на com.tayek.tablet.Tablet.send (Tablet.java:66)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: на com.tayek.tablet.Tablet.access $ 200 (Tablet.java:11)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: на com.tayek.tablet.Tablet $ SendCallable.call (Tablet.java:82)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в com.tayek.tablet.Tablet $ SendCallable.call (Tablet.java:72)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.util.concurrent.FutureTask.run (FutureTask.java:237)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java: 588)
01-29 23: 24: 29.395 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.lang.Thread.run (Thread.java:818)
01-29 23: 24: 29.397 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: вызвано: android.system.ErrnoException: завершение работы не выполнено: ENOTCONN (конечная точка транспорта не подключена)
01-29 23: 24: 29.397 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: at libcore.io.Posix.shutdown (собственный метод)
01-29 23: 24: 29.397 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.ошибка: в libcore.io.ForwardingOs.shutdown (ForwardingOs.java:159)
01-29 23: 24: 29.397 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: в java.net.PlainSocketImpl.shutdownInput (PlainSocketImpl.java:359)
01-29 23: 24: 29.397 7164-9300 / com.tayek.tablet.gui.android.cb7 W / System.err: ... еще 10
  

Стек Интернет-протокола

Стек Интернет-протокола
Хенрик Фрыстык, июль 1994 г.

Как упоминалось в Интернет-разделе, Интернет — это абстракция от лежащих в основе сетевых технологий. и разрешение физического адреса.В этом разделе представлены основные компоненты стека Интернет-протокола и связывает стек с Модель стека эталонных протоколов ISO OSI. Модель Интернета стек протоколов показан на рисунке ниже.

В этом документе описаны различные части, представленные на этой диаграмме. Описываются протоколы верхнего уровня, например FTP, Telnet, TFTP и т. Д. в протоколе уровня представления раздел. Следующие темы останутся разделами в этом документ:

  1. Интернет-протокол (IP)
  2. Протокол дейтаграмм пользователя (UDP)
  3. Протокол управления передачей (TCP)
  4. Протокол управления транзакционной передачей (T / TCP)
  5. TCP / IP и OSI / RM

Интернет-протокол (IP)

Как видно на рисунке выше, стек Интернет-протокола обеспечивает ориентированная на соединение надежная ветвь (TCP) и без установления соединения ненадежная ветвь (UDP) построена поверх Интернет-протокола.

Интернет-протокол уровень в стеке протоколов TCP / IP — это первый уровень, который вводит абстракция виртуальной сети, которая является основным принципом Интернет-модель. Все детали физической реализации (в идеале даже хотя это не совсем так) скрыты ниже уровня IP. IP Layer обеспечивает ненадежную систему доставки без установления соединения. В Причина, по которой он ненадежен, проистекает из того факта, что протокол не предоставляет никаких функций для исправления ошибок для дейтаграмм которые либо дублируются, либо теряются, либо поступают на удаленный хост в другой заказ, чем они отправляют.Если таких ошибок нет в физический уровень, протокол IP гарантирует, что передача завершено успешно.

Основной единицей обмена данными на уровне IP является Интернет. Датаграмма. Формат дейтаграммы IP и краткое описание наиболее важные поля включены ниже:

LEN
Количество 32-битных сегментов в IP-заголовке. Без всяких ОПЦИИ, это значение 5
ВИД УСЛУГИ
Каждой дейтаграмме IP может быть присвоено значение приоритета от 0 до 7. показывая важность дейтаграммы.Это позволяет внеполосные данные должны маршрутизироваться быстрее, чем обычные данные. Этот очень важно как контрольное сообщение в Интернете Сообщения протокола (ICMP) передаются как часть данных IP. дейтаграмма. Даже если сообщение ICMP инкапсулировано в IP дейтаграммы, протокол ICMP обычно считается неотъемлемой частью уровня IP, а не уровня UDP или TCP. Кроме того, ТИП Поле SERVICE позволяет классифицировать дейтаграмму, чтобы укажите желаемая услуга, требующая короткого времени задержки, высокая надежность или высокая производительность.Однако для того, чтобы при этом имелись какие-либо эффект, шлюзы должны знать более одного маршрута к удаленному хосту. и, как описано во введении, это не тот случай.
ИДЕНТ., ФЛАГИ и СМЕЩЕНИЕ ФРАГМЕНТА
Эти поля используются для описания фрагментации дейтаграммы. Фактическая длина дейтаграммы IP в принципе не зависит от длина физических кадров, передаваемых по сети, называется максимальным блоком передачи данных (MTU) сети .Если дейтаграмма длиннее, чем MTU, тогда она делится на набор фрагменты, имеющие почти тот же заголовок, что и исходная дейтаграмма, но только объем данных, который помещается в физический фрейм. ИДЕНТ флаг используется для идентификации сегментов, принадлежащих одной дейтаграмме, и СМЕЩЕНИЕ ФРАГМЕНТА — относительное положение фрагмента внутри исходная дейтаграмма. После фрагментации дейтаграмма остается как до тех пор, пока он не получит конечный пункт назначения. Если один или несколько сегментов потеряны или ошибочны, вся дейтаграмма отбрасывается.

Однако основная сетевая технология не полностью скрыта. ниже уровня IP, несмотря на функциональность фрагментации. В Причина в том, что MTU может варьироваться от 128 и менее до нескольких тысяч байтов зависит от физической сети (Ethernet имеет MTU 1500 байтов). Следовательно, при выборе правильного размер дейтаграммы, чтобы минимизировать фрагментацию. Рекомендуется что шлюзы способны обрабатывать дейтаграммы размером не менее 576 байт без использования фрагментации.

ВРЕМЯ
Это оставшееся время жизни (TTL) для дейтаграммы когда он путешествует по Интернету. Протокол маршрутной информации (RIP) указывает, что разрешено не более 15 переходов.
IP-АДРЕС ИСТОЧНИКА и IP-АДРЕС НАЗНАЧЕНИЯ
В поле указаны адрес отправителя и адрес назначения. заголовок дейтаграммы, чтобы получатель мог отправить ответ обратно передающий хост. Однако обратите внимание, что только адрес хоста указано — не номер порта.Это потому, что IP-протокол Протокол IMP-to-IMP — это , а не сквозной протокол. А требуется дополнительный слой, чтобы на самом деле указать, какие два процесса на передающий хост и конечный пункт назначения, который должен получить дейтаграммы.
Обратите внимание, что IP-дейтаграмма оставляет место только для исходного источника. IP-адрес и исходный IP-адрес назначения. Как упоминалось в раздел Шлюзы и маршрутизация следующий переход адрес указывается путем инкапсуляции.В Internet Layer передает IP-адреса следующего перехода адрес к сетевому уровню . Этот IP-адрес привязан к физический адрес, и с этим адресом формируется новый фрейм. Отдых исходного кадра затем инкапсулируется в новый кадр, прежде чем он будет отправить по каналу связи.

Протокол пользовательских дейтаграмм (UDP)

Протокол дейтаграмм пользователя (UDP) — это очень тонкий протокол, построенный на основе Интернет-протокола. Базовая единица данных — Пользователь. дейтаграмма и протокол UDP предоставляют такие же ненадежные, сервис без установления соединения, передающий пользовательские дейтаграммы в качестве протокола IP передает свои дейтаграммы.Основное отличие состоит в том, что UDP Протокол — сквозной протокол . То есть он содержит достаточно информации для передачи дейтаграммы пользователя от одного процесса на передающий хост другому процессу на принимающем хосте. Формат дейтаграммы пользователя показано ниже:

Поле LENGTH — это длина дейтаграммы пользователя, включая заголовок, то есть минимальное значение LENGTH составляет 8 байтов. Источник ПОРТ и ПОРТ НАЗНАЧЕНИЯ — это связь между IP-адресом и процесс, запущенный на хосте.Сетевой порт обычно обозначается целое число. Однако дейтаграмма пользователя не содержит IP-адреса. Итак, как протокол UDP знает, когда конечный пункт назначения достиг?

При вычислении заголовка CHECKSUM протокол UDP добавляет 12-байтовый псевдозаголовок, состоящий из ИСТОЧНИКА IP-АДРЕСА, IP-АДРЕС НАЗНАЧЕНИЯ и некоторые дополнительные поля. Когда хозяин получает дейтаграмму UDP, принимает заголовок UDP и создает новый псевдо-заголовок с использованием собственного IP-адреса в качестве IP-АДРЕСА НАЗНАЧЕНИЯ и ИСТОЧНИК IP-АДРЕС, извлеченный из дейтаграммы IP.Затем это вычисляет контрольную сумму, и если она равна контрольной сумме UDP, то дейтаграмма получила конечный пункт назначения.

Как указано в стеке Интернет-протокола Рисунок Протокол UDP часто используется в качестве основного протокола в протоколы клиент-серверных приложений, такие как TFTP, DNS и т. д., где накладные расходы на обеспечение надежной передачи с установлением соединения значительный. Эта проблема будет рассмотрена далее в следующих двух разделы.

Протокол управления передачей (TCP)

Управление передачей Протокол обеспечивает полнодуплексный, надежный, ориентированный на соединение сервис на прикладном уровне, как показано на рисунке стека Интернет-протокола.Эта секция описал основной принцип протокола TCP и то, как он обеспечивает надежный сервис для протоколов прикладного уровня.

Протокол TCP — это потоковый протокол. Он предназначен для предоставить программному обеспечению прикладного уровня услугу для передачи большой объем данных надежным способом. Устанавливает полный дуплекс виртуальный канал между двумя передающими хостами, так что оба хоста одновременно может размещать данные в Интернете без указания целевой хост после установления соединения.В протоколе управления транзакционной передачей (T / TCP) раздел клиент-серверное расширение протокола TCP представлена ​​как альтернатива потоковой архитектуре.

Формат сегмента TCP

Сегмент — это основная единица данных в протоколе TCP. Так много следующие разделы основаны на этой единице данных, формат представлены здесь:

ПОРТ ИСТОЧНИКА, ПОРТ НАЗНАЧЕНИЯ
Протокол TCP использует тот же трюк с использованием псевдозаголовка. вместо передачи IP-адреса источника и пункта назначения IP-адрес уже включен в IP-дейтаграмму.Поэтому только номера портов необходимы для однозначного определения взаимодействующего хосты.
КОД
Это поле используется, чтобы указать содержимое сегмента и если необходимо предпринять определенные действия, например, если отправитель достиг EOF в потоке.
ОПЦИИ
Протокол TCP использует поле OPTIONS для обмена информацией например, максимальный размер сегмента между уровнями TCP на два хозяина. В настоящее время определены следующие флаги:
  • URG Поле указателя срочности является действительным
  • ACK Поле подтверждения действительно
  • PSH Этот сегмент запрашивает push
  • RST Сбросить соединение
  • SYN Синхронизировать порядковые номера
  • FIN Отправитель достиг конца своего байтового потока
СМЕЩЕНИЕ
Это целое число указывает смещение пользовательских данных в пределах сегмент.Это поле требуется только потому, что количество битов, используемых в Поле OPTIONS может отличаться
СРОЧНЫЙ УКАЗАТЕЛЬ
Это поле может быть инициализировано, чтобы указывать на место в пользовательском данные, в которых размещена срочная информация, такая как escape-коды и т. д. Тогда принимающий хост может обработать эту часть немедленно, когда он получает сегмент.

Надежная трансмиссия

На уровне IP-протокола пакеты могут быть отброшены из-за сети. перегрузка, отказ шумового шлюза и т. д.Чтобы обеспечить надежную службы TCP должен восстанавливать данные, которые были повреждены, потеряны, продублированы или доставлены из строя через Интернет система. Это достигается путем присвоения НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ каждому байту. передано и требует положительного подтверждения (ACK) от принимающего хоста. Если ACK не получен в течение тайм-аута интервал, данные передаются повторно. В приемнике последовательность числа используются для правильного упорядочивания сегментов, которые могут быть получены порядка и устранения дубликатов.Ущерб обрабатывается добавлением контрольную сумму для каждого переданного сегмента, проверяя ее на приемнике, и отбрасывание поврежденных сегментов. Принцип показан на рисунок ниже:

Хост A передает пакет данных на Host B , но пакет теряется до того, как достигнет места назначения. Тем не мение, HostA установил таймер, когда ожидать ACK от Host B , поэтому, когда этот таймер заканчивается, пакет передается повторно. В сложная часть метода — найти значение периода тайм-аута поскольку сегмент TCP может перемещаться по разным скоростным сетям с разные нагрузки.Это означает, что Время приема-передачи (RTT) может варьироваться от сегмента к сегменту. Простой способ расчета RTT заключается в использовании рекурсивного среднего значения с экспоненциальным окном для уменьшить важность старых ценностей.

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

Однако принцип PAR очень неэффективен, поскольку передающий хост должен дождаться подтверждения, прежде чем сможет отправить следующий сегмент. Это означает, что минимальное время между двумя сегментами составляет 1 RTT. плюс время, необходимое для обслуживания сегментов с обоих концов. ПТС Протокол решает эту проблему, используя скользящие окна на обоих концах.

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

Байт номер 1 потерян, поэтому Host B никогда не отправляет положительный результат. подтверждение. Когда Хост A истекает в байте 1, он повторно передает Это. Однако, поскольку остальные байты от 2 до 5 передаются успешно следующее подтверждение может сразу перейти к 6, что следующий ожидаемый байт.Байт 2 также повторно передается как Host не знает точно, сколько байтов ошибочно. Хост B просто отбрасывает байт 2, поскольку он уже загружен.

Технику окна также можно использовать для контроля перегрузки. механизм. Как указано в сегменте TCP Форматирование Рисунок каждый сегмент имеет поле ОКНО, в котором указывается, как много данных, которые хост готов получить. Если хост сильно загружен, это может уменьшить параметр WINDOW и, следовательно, скорость передачи капли.

Однако, поскольку протокол TCP является сквозным протоколом, он не может видеть если возникла проблема перегрузки в промежуточном интерфейсе Процессор сообщений (IMP) (часто называемый пакетной коммутацией). узел ) и, следовательно, у него нет средств управлять им, регулируя размер окна. TCP решает эту проблему с помощью контрольного сообщения Интернета. Сообщения о блокировке источника протокола (ICMP).

Установление соединения

Когда необходимо открыть TCP-соединение, используется трехстороннее рукопожатие (3WHS). чтобы установить виртуальный канал, существующий до соединение закрывается по окончании передачи данных.3WHS — это описывается ниже, поскольку это важная часть TCP протокол, но также показывает некоторые недостатки в протоколе. В Принцип работы 3WHS проиллюстрирован на рисунке ниже:

Блоки посередине символизируют соответствующую часть TCP. сегмент, то есть НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ, НОМЕР ПОДТВЕРЖДЕНИЯ и код. Активный Host A отправляет сегмент, указывающий, что он НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ начинается с x. Хост B отвечает ACK и указывает, что он начинается с НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ y.На третьем сегмент: оба хоста согласны с порядковыми номерами и что они готов к передаче данных.

На рисунке только Host A делает активное открытие. На самом деле два хосты могут открывать одновременно, и в этом случае оба хоста выполняют SYN-RECEIVED, а затем синхронизируйте соответственно. Основная причина для 3WHS заключается в предотвращении инициирования старых дублирующих подключений вызывая замешательство.

Обратите внимание, что НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ сегментов 3 и 4 одинаков, потому что ACK не занимает пространство порядковых номеров (если это так, протокол закончится ACKing ACK!).

Однако установка TCP-соединения довольно долгая и трудоемкая задача. во многих приложениях, особенно в клиент-серверных приложениях например, во всемирной паутине. В следующем разделе представлена ​​альтернатива, имеющая представлено более легкое установление соединения.

Протокол управления транзакционной передачей (T / TCP)

Протокол TCP — это высокосимметричный протокол, в котором оба хоста могут передавать и получать данные одновременно. Тем не менее, не все приложения симметричны по своей природе.Типичный пример — это клиент-серверный протокол, такой как Домен Служба имен. Транзакционная передача Протокол управления (T / TCP), который является очень новым протоколом (июль 1994 г.) предлагает альтернативу TCP, когда требуется высокая производительность в клиент-серверные приложения. Некоторые из требований высокого Протоколы производительности, ориентированные на транзакции, перечислены ниже:

  • Взаимодействие между клиентом и сервером основано на запрос, за которым следует ответ, то есть подход без сохранения состояния.
  • Протокол должен гарантировать, что транзакция выполняется в один раз, и любые повторяющиеся пакеты, полученные сервером, должны быть отброшенным.
  • Нет явной процедуры открытия или закрытия соединения. Это напротив TCP и 3WHS, как описано выше.
  • Минимальная задержка транзакции для клиента должна быть Round Время отключения (RTT) + Время обработки сервера (SPT) . Это в основном такое же требование, как отсутствие явной процедуры открытия или закрытия.
  • Протокол должен поддерживать надежный минимум сделка ровно 1 сегмента в обе стороны.
В этом разделе описывается, как протокол TTCP решает эти проблемы. требований, а также которые могут повлиять на всемирную Веб-модель в отношении производительности.

Установление неявного соединения

Протокол T / TCP обозначен именем, основанным на TCP. протокол и T / TCP обратно совместим с TCP. Однако один из особенностями протокола T / TCP является то, что он может обходить 3WHS описано в предыдущем разделе, но в случае неисправность может быть устранена с помощью процедуры 3WHS.

3HWS был введен для предотвращения старых дубликатов инициирование соединения от причинения путаницы. Однако T / TCP предоставляет альтернативой этому путем введения трех новых параметров в Поле OPTION в сегменте TCP:

СЧЕТЧИК СОЕДИНЕНИЙ (CC)
Это 32-битный номер воплощения, где отдельное значение назначенный для всех сегментов, отправка от Host A к Host B и другое отличное число наоборот. Ядро на обоих хостах держит кэш всех номеров CC, которые в настоящее время используются подключениями к удаленному хосты.При каждом новом подключении номер CC клиента монотонно увеличивается на 1, чтобы сегмент, принадлежащий новому соединению, мог быть отделенными от старых дубликатов от предыдущих подключений.
СЧЕТЧИК СОЕДИНЕНИЙ НОВЫЙ (CC.NEW)
В некоторых ситуациях принцип монотонно возрастающего значение CC может быть нарушено либо из-за сбоя хоста, либо из-за того, что максимальное число, то есть 4G, достигается, и счетчик возвращается к 0. Это возможно на практике, потому что один и тот же номер CC является глобальным для все подключения.В этой ситуации отправляется CC.NEW и удаленный хост сбрасывает свой кеш и возвращается к обычному TCP-соединению 3WHS учреждение. Этот сигнал всегда будет посылаться из клиент и с по сервер.
ПОДКЛЮЧЕНИЕ СЧЕТЧИКА ECHO (CC.ECHO)
В ответе сервера поле CC.ECHO содержит значение CC. отправить клиентом, чтобы клиент мог проверить ответ как принадлежность к конкретной сделке.
Байпас 3WHS показан на следующем рисунке:

В этом примере два сегмента отправляются в обоих направлениях.Связь устанавливается, когда первый сегмент достигает сервера. Клиент остается в Состояние ВРЕМЯ-ОЖИДАНИЕ, которое объясняется в следующем разделе.

Соединение отключено

Каждое TCP- или UDP-соединение между двумя хостами однозначно идентифицируется следующей пятеркой:
  • Протокол (UDP, TCP)
  • IP-адрес хоста A
  • Номер порта хоста A
  • IP-адрес хоста B
  • Номер порта хоста B
Всякий раз, когда TCP-соединение было закрыто, ассоциация описывала кортеж из 5 переходит в состояние ожидания, чтобы гарантировать, что оба хоста имеют получил окончательное подтверждение от процедуры закрытия.В время ожидания называется TIME-WAIT и по умолчанию 2 * MSL (120 секунд), где MSL — это максимальное время жизни сегмента. Это, два хоста не могут выполнить новую транзакцию с использованием одного и того же 5-кортежа по крайней мере, через 120 секунд после предыдущего подключения прекращено. Один из способов обойти эту проблему — выбрать другой 5 кортежей, но, как упоминалось в разделе Расширение TCP для Транзакции — концепции, которые не масштабируются из-за чрезмерного объем пространства ядра, занятого завершенными TCP-соединениями, зависает вокруг.

Однако номера CC T / RCP дают уникальную идентификацию каждого транзакция, поэтому протокол T / TCP может обрезать WAIT-STATE, сравнивая номера CC. Этот принцип можно посмотреть при расширении конечного автомата одной транзакции, чтобы также включить информация о предыдущих и будущих транзакциях с использованием одного и того же 5-кортежа.

TTCP и Интернет

Как будет показано при описании всемирной паутины этой диссертации, принцип Всемирной паутины — это транзакционный обмен данными объект.Это причина, по которой протокол T / TCP очень интересен. в этой перспективе.

TCP / IP и OSI / RM

Международная организация по стандартизации (ISO) разработала второй доминирующая схема многоуровневого протокола, называемая открытой системой ISO Эталонная модель межсоединений (OSI / RM) . В этом разделе представлены эталонная модель OSI и сравнивает ее со стеком протоколов TCP / IP. как показано на рисунке.

Физический уровень
Определяет физическое соединение между хост-компьютерами и IMP и как биты передаются по каналу связи.
Уровень канала данных
Этот уровень определяет, как данные передаются между IMP, используя кадров . Его основная задача — сменить сервис из физический уровень в пакетно-ориентированную безошибочную передачу.
Сетевой уровень
Кадры с уровня канала данных организованы в пакетов и направлены по сети. Связи все еще между IMP.
Транспортный уровень
Первый уровень, обеспечивающий сквозную транспортную службу.Это гарантирует, что переданные данные правильно поступят на другой конец.
Сессионный уровень
Этот уровень определяет, как два хоста могут устанавливать сеансы, в которых данные могут передаваться в обоих направлениях по виртуальному соединению между двумя хозяевами.
Уровень презентации
Уровень представления представляет набор синтаксиса и семантики информация, передаваемая через нижние уровни протокола.
Уровень приложения
Этот уровень определяет виртуальную сеть, не зависящую от платформы. терминал, чтобы прикладные программы могли обмениваться данными независимо от используемое внутреннее представление данных.
Хотя OSI / RM и TCP / IP можно так сравнить, существует несколько существенных различий между OSI / RM и TCP / IP. стек протоколов, но наиболее фундаментальным является то, что OSI / RM — это стандартизированная модель того, как функциональность протокола стек можно организовать. В нем не указаны точные услуги и протоколы, которые будут использоваться на каждом уровне, тогда как TCP / IP является результатом экспериментальное исследование. Несмотря на это, модель OSI / RM была основа реализации нескольких стеков протоколов, таких как X.25, обсуждали в критике X.25

Еще одно отличие состоит в том, где находится интеллект. наслоение. OSR / RM представляет надежный сервис на уровне канала передачи данных тогда как TCP / IP имеет интеллект только на транспортном уровне. Оба решения имеют достоинства и недостатки. Когда достоверные данные услуга передачи размещена на нижних уровнях, клиенты, использующие сеть для связи может быть очень простой, поскольку у них нет для обработки сложных ошибочных ситуаций. Недостаток в том, что производительность снижается из-за чрезмерного количества управляющей информации передается и обрабатывается на каждом хосте.


Хенрик Фристик, [email protected], июль 1994 г.
.

Добавить комментарий

Ваш адрес email не будет опубликован.