TCP.pptx
- Количество слайдов: 43
Протоколы TCP/IP
Общая информация Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol) — набор сетевых протоколов разных уровней модели сетевого взаимодействия DOD, используемых в сетях. Протоколы работают друг с другом в стеке (англ. stack, стопка) — это означает, что протокол, располагающийся на уровне выше, работает «поверх» нижнего, используя механизмы инкапсуляции. Например, протокол TCP работает поверх протокола IP. Стек протоколов TCP/IP основан на модели сетевого взаимодействия DOD и включает в себя протоколы четырёх уровней: 1. прикладного (application), 2. транспортного (transport), 3. сетевого (internet), 4. уровня доступа к среде (network access). Протоколы этих уровней полностью реализуют функциональные возможности модели OSI. На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных.
История создания TCP/IP В конце 60 -х гг. Агентство перспективных исследовательских проектов Министерства Обороны США ( DARPA) совместно с другими университетами и исследовательскими организациями разработали Сеть агентства перспективных исследовательских проектов (APPARNET), первую сеть с коммутацией проектов. 1969 г. Экспериментальный вариант APPARNET из четырех узлов был запущен в эксплуатацию. 1970 г. Узлы сети ARPANET начали использовать протокол NCP (Network Control Protocol). 1972 г. Первая спецификация Telnet оформлена как RFC 318. 1973 г. Введен протокол File Transfer Protocol, RFC 454. 1974 г. Представлена программа Transmission Control Program (TCP).
История создания TCP/IP 1981 г. В RFC 791 опубликован стандарт протокола IP. 1982 г. Агентство DCA (Defense Communications Agency) и агентство ARPA объединили протокол TCP (Transmission Control Protocol) и протокол IP (Internet Protocol) в набор TCP/IP. 1983 г. Сеть ARPANET переключилась с протокола NCP на протокол TCP/IP. 1984 г. Введена доменная система имен (Domain Name System, DNS). В 90 -х гг. TCP/IP начали использовать в коммерческих программных продуктах и стал наиболее универсальным протоколом из всех доступных на рынке.
Уровни стека TCP/IP
Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур § ARP (Address Resolution Protocol, протокол определения адресов): протокол для отображения адресов уровня Internet в адреса уровня сетевого интерфейса. § FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов - Trivial File Transfer Protocol (TFTP) - для пересылки файлов применяется UDP, а не TCP. § ICMP (Internet Control Message Protocol, протокол управляющих сообщений Internet): протокол обработки ошибок и обмена управляющей информацией между узлами сети. § IGMP (Internet Group Management Protocol, протокол управления группами Internet): протокол управления групповой (multicast) передачей данных в сетях, основанных на протоколе IP. IGMP используется маршрутизаторами и IP-узлами для организации сетевых устройств в группы. § IP (Internet Protocol, протокол Internet): протокол, который обеспечивает доставку пакетов информации для протокола ICMP и протоколовтранспортного уровня TCP и UDP.
Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур • RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса. • SMTP (Simple Mail Transfer Protocol, простой протокол обмена электронной почтой): определяет формат сообщений, которые SMTP-клиент, работающий на одном компьютере, может использовать для пересылки электронной почты на SMTPсервер, запущенный на другом компьютере. • TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами - TCP-сегментами, - которые состоят из заголовков TCP и данных. TCP - "надежный" протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные приняты без искажений. • UDP (User Datagram Protocol): протокол, не зависящий от подключений, который передает данные пакетами, называемыми UDP-дейтаграммами. UDP - "ненадежный" протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.
Распределение протоколов по уровням модели OSI 7 Прикладной напр. , HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP. 6 Представительский 5 Сеансовый напр. , ISO 8327 / CCITT X. 225, RPC, Net. BIOS, ASP. 4 Транспортный напр. , TCP, UDP, SCTP, SPX, RTP, ATP, DCCP, GR E 3 Сетевой напр. , IP, PPP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP, RARP, BGP. 2 Канальный напр. , Ethernet, Token ring, HDLC, X. 25, Frame relay, ISDN, ATM, MPLS. 1 Физический напр. , электрические провода, радиосвязь, волоконно-оптические провода, Wi-Fi. напр. , XDR, AFP, TLS, SSL.
Сетевые уровни TCP/IP, сопоставленные с OSI
Распределение протоколов по уровням модели TCP/IP Прикладной Транспортный Сетевой Уровень сетевого интерфейса напр. , HTTP, RTP, FTP, DNS (RIP, работающий поверх UDP, и BGP, работающий поверх TCP, являются частью сетевого уровня) напр. , TCP, UDP, SCTP, DCCP (протоколы маршрутизации, подобные OSPF, что работают поверх IP, являются частью сетевого уровня) Для TCP/IP это IP (IP) (вспомогательные протоколы, вроде ICMP и IGMP, работают поверх IP, но тоже относятся к сетевому уровню; протокол ARP является самостоятельным вспомогательным протоколом, работающим поверх физического уровня) Ethernet, IEEE 802. 11 Wireless Ethernet, SLIP, Token Ring, ATM, SLIP, PPP, MPLS, витая пара, коаксиальный кабель, оптоволоконный кабель и т. д.
Уровень сетевого интерфейса составляют протоколы, которые обеспечивают передачу данных между узлами связи, физически напрямую соединенными друг с другом, или, иначе говоря, подключенными к одному сегменту сети, и соответствующие физические средства передачи данных. Формально протоколы уровня сетевого интерфейса не являются частью семейства TCP/IP, но существующие стандарты определяют, каким образом должна осуществляться передача данных семейства TCP/IP с использованием этих протоколов. На уровне сетевого интерфейса в операционной системе UNIX обычно функционируют драйверы различных сетевых плат. Передача информации на уровне сетевого интерфейса производится на основании физических адресов, соответствующих точкам входа сети в узлы связи (например, физических адресов сетевых карт). Каждая точка входа имеет свой уникальный адрес – MAC-адрес (Media Access Control), физически зашитый в нее на этапе изготовления.
Сетевой уровень (Internet) Уровень Internet обеспечивает доставку информации от сетевого узла отправителя к сетевому узлу получателя без установления виртуального соединения с помощью датаграмм и не является надежным. Центральным протоколом уровня является протокол IP. Вся информация, поступающая к нему от других протоколов, оформляется в виде IP-пакетов данных (IP datagrams). Каждый IP-пакет содержит адреса компьютера отправителя и компьютера получателя, поэтому он может передаваться по сети независимо от других пакетов и, возможно, по своему собственному маршруту. IP-уровень семейства TCP/IP не является уровнем, обеспечивающим надежную связь, так как он не гарантирует ни доставку отправленного пакета информации, ни то, что пакет будет доставлен без ошибок. IP протокол, при необходимости, осуществляет фрагментацию и дефрагментацию данных, передаваемых по сети. Если размер IP-пакета слишком велик для дальнейшей передачи по сети, то полученный пакет разбивается на несколько фрагментов, и каждый фрагмент оформляется в виде нового IP-пакета с теми же адресами отправителя и получателя. Фрагменты собираются в единое целое только в конечной точке. Если при дефрагментации пакета обнаруживается, что хотя бы один из фрагментов был потерян или отброшен, то отбрасывается и весь пакет целиком.
Сетевой уровень (Internet) Уровень Internet отвечает за маршрутизацию пакетов. Для обмена информацией между узлами сети в случае возникновения проблем с маршрутизацией пакетов используется протокол ICMP. С помощью сообщений этого же протокола уровень Internet умеет частично управлять скоростью передачи данных – он может попросить отправителя уменьшить скорость передачи. Поскольку на уровне Internet информация передается от компьютера-отправителя к компьютеру-получателю, ему требуются специальные IP-адреса компьютеров. Наиболее распространена IP версии 4 (IPv 4), которая предполагает наличие у каждого сетевого интерфейса уникального 32 -битового адреса. Существует и версия 6 для IP (IPv 6), которая в последнее время активно развивается, предполагающая наличие 128 -битовых адресов. С точки зрения сетевого программиста IPv 6 мало отличается от IPv 4, но имеет более сложный интерфейс передачи параметров.
Транспортный уровень модели TCP/IP, представляет этап осуществления коммуникаций, на котором определяются термы отправки и получения данных. Уровень также используется для создания тегов данных, как, например, электронной почты или веб-приложений. Рассмотрим два протокола транспортного уровня — TCP и UDP.
Протокол TCP Принимает данные с прикладного уровня и обрабатывает их как поток байтов. Эти байты группируются TCP в пронумерованные сегменты последовательности для доставки на сетевой хост. Протокол TCP подтверждает получение данных и готовит данные к повторной отправке, если такое подтверждение не получено. При получении потока данных с сетевого хоста протокол TCP пересылает эти данные приложению в соответствии с указанным номером ТСР-порта. Через TCP-порты различные приложения и программы используют ТСР- службы на одном хосте, как показано на рисунке. Каждая программа, использующая TCP-порты, прослушивает доставку сообщений на соответствующем номере порта. Данные, пересылаемые на конкретный TCPпорт, таким образом, принимаются приложением, прослушивающим этот порт.
Протокол UDP Многие сетевые службы (как, например, DNS) используют вместо TCP транспортный протокол UDP. Протокол UDP позволяет быстро транспортировать датаграммы, поскольку в нем не предусмотрены такие компоненты надежности TCP, как гарантии доставки и подтверждение последовательности передачи. В отличие от TCP, протокол UDP представляет службу бессвязной передачи данных (connectionless) и позволяет гораздо быстрее и эффективнее доставлять данные для приложений, которым требуется большая пропускная способность линий связи, или нужно малое время доставки данных. Исходный хост, которому необходимы надежные коммуникации, должен использовать TCP или программу с собственными службами создания последовательностей и подтверждения.
Транспортный уровень Полный адрес удаленного процесса или промежуточного объекта для конкретного способа связи с точки зрения операционных систем определяется парой адресов: <числовой адрес компьютера в сети, локальный адрес>. Такая пара получила название socket (гнездо, панель), так как по сути дела является виртуальным коммуникационным узлом, ведущим от объекта во внешний мир и наоборот. При непрямой адресации сами промежуточные объекты для организации взаимодействия процессов также именуются сокетами. Поскольку уровень Internet семейства протоколов TCP/IP умеет доставлять информацию только от компьютера к компьютеру, данные, полученные с его помощью, должны содержать тип использованного протокола транспортного уровня и локальные адреса отправителя и получателя. И протокол TCP, и протокол UDP используют непрямую адресацию. Для каждого транспортного протокола в стеке TCP/IP существуют собственные сокеты: UDP сокеты и TCP сокеты, имеющие различные адресные пространства своих локальных адресов – портов. В семействе протоколов TCP/IP адресные пространства портов представляют собой положительные значения целого 16 -битового числа. Поэтому, говоря о локальном адресе сокета, часто используется термин "номер порта".
Инкапсуляция Итак, мы описали иерархическую систему адресации, используемую в семействе протоколов TCP/IP, которая включает в себя несколько уровней: § Физический пакет данных, передаваемый по сети, содержит физические адреса узлов сети (MAC-адреса) с указанием на то, какой протокол уровня Internet должен использоваться для обработки передаваемых данных (поскольку пользователя интересуют только данные, доставляемые затем на уровень приложений/процессов, то для него это всегда IP). § IP-пакет данных содержит 32 -битовые IP-адреса компьютера-отправителя и компьютераполучателя, и указание на то, какой вышележащий протокол (TCP, UDP или еще чтонибудь) должен использоваться для их дальнейшей обработки. § Служебная информация транспортных протоколов (UDP-заголовок к данным и TCPзаголовок к данным) должна содержать 16 -битовые номера портов для сокета отправителя и сокета получателя. § Добавление необходимой информации к данным при переходе от верхних уровней семейства протоколов к нижним принято называть английским словом encapsulation (дословно: герметизация)
Инкапсуляция
Уровень приложений/процессов Прикладной уровень модели TCP/IP, представляет этап осуществления коммуникаций, на котором выполняется оперирование и передача данных через порты транспортного уровня. Протоколы прикладного уровня часто описывают дружественный для пользователя метод представления, именования, отправки и получения данных через TCP/IP. Примеры распространенных протоколов прикладного уровня сетевого стека TCP/IP — HTTP, Telnet, FTP, Trivial File Transfer Protocol (TFTP), Simple Network Management Protocol (SNMP), DNS, Post Office Protocol 3 (POP 3), Simple Mail Transfer Protocol (SMTP) и Network News Transfer Protocol (NNTP).
Схемы взаимодействия уровней протокола Уровни OSI 5, 6 и 7 объединены в уровень приложений TCP. Взаимодействие уровня приложений происходит с 4 -м уровнем модели.
Взаимодействие уровней TCP и IP
Взаимодействие уровня IP и канального уровня
Взаимодействие канального и физического уровня
TCP
TCP Протокол управления передачей TCP (Transmission Control Protocol) является протоколом транспортного уровня и базируется на возможностях, предоставляемых межсетевым протоколом IP. Основная задача TCP - обеспечение надежной передачи данных в сети. Его основные характеристики : • реализует взаимодействие в режиме с установлением логического (виртуального) соединения; • обеспечивает двунаправленную дуплексную связь; • организует потоковый (с точки зрения пользователя) тип передачи данных; • дает возможность пересылки части данных, как "экстренных"; • для идентификации партнеров по взаимодействию на транспортном уровне использует 16 -битовые "номера портов"; • реализует принцип "скользящего окна" (sliding window) для повышения скорости передачи; • поддерживает ряд механизмов для обеспечения надежной передачи данных.
Заголовок TCP-пакета Бит 0 — 3 4 — 9 10 — 15 Порт источника 0 16 — 31 Порт приемника 32 Номер в последовательности 64 Номер подтверждения 96 Смещение Зарезерви ровано Флаги Размер окна 128 Контрольная сумма Указатель 160 Опции (необязательное, но используется практически всегда) 160/192+ Данные
Заголовок TCP-пакета Порт источника и порт приемника 16 -битовые поля, содержащие номера портов, соответственно, источника и адресата TCPпакета. Номер в последовательности (sequence number) 32 -битовое поле, содержимое которого определяет (косвенно) положение данных TCPпакета внутри исходящего потока данных, существующего в рамках текущего логического соединения. В момент установления логического соединения каждый из двух партнеров генерирует свой начальный "номер в последовательности", основное требование к которому - не повторяться в промежутке времени, в течение которого TCP-пакет может находиться в сети (по сути, это время жизни IP-сегмента). Партнеры обмениваются этими начальными номерами и подтверждают их получение. Во время отправления TCP-пакетов с данными поле "номер в последовательности" содержит сумму начального номера и количества байт ранее переданных.
Заголовок TCP-пакета Номер подтверждения (acknowledgement number) 32 -битовое поле, содержимое которого определяет (косвенно) количество принятых данных из входящего потока к TCP-модулю, формирующему TCP-пакет. Смещение данных Четырехбитовое поле, содержащее длину заголовка TCP-пакета в 32 -битовых словах и используемое для определения начала расположения данных в TCP-пакете. Зарезервировано (6 бит) для будущего использования и должно устанавливаться в ноль. Из них два (5 -й и 6 -й) уже определены: CWR (Congestion Window Reduced) — Поле «Окно перегрузки уменьшено» — флаг установлен отправителем, чтобы указать, что получен пакет с установленным флагом ECE (ECN-Echo) — Поле «Эхо ECN» — указывает, что данный узел способен на ECN (явное уведомление перегрузки) и для указания отправителю о перегрузках в сети.
Заголовок TCP-пакета Флаги (управляющие биты) Флаг URG бит, установленное в 1 значение которого означает, что TCP-пакет содержит важные данные. Флаг ACK бит, установленное в 1 значение которого означает, что TCP-пакет содержит в поле "номер подтверждения" верные данные. Флаг PSH бит, установленное в 1 значение которого означает, что данные содержащиеся в TCP-пакете должны быть немедленно переданы прикладной программе, для которой они адресованы. Подтверждение для TCP-пакета, содержащего единичное значение во флаге PSH, означает, что и все предыдущие TCP-пакеты достигли адресата. Флаг RST бит, устанавливаемый в 1 в TCP-пакете, отправляемом в ответ на получение неверного TCP-пакета. Также может означать запрос на переустановление логического соединения. Флаг SYN бит, установленное в 1 значение которого означает, что TCP-пакет представляет собой запрос на установление логического соединения. Получение пакета с установленым флагом SYN должно быть подтверждено принимающей стороной. Флаг FIN бит, установленное в 1 значение которого означает, что TCP-пакет представляет собой запрос на закрытие логического соединения и является признаком конца потока данных, передаваемых в этом направлении. Получение пакета с установленым флагом FIN должно быть подтверждено принимающей стороной.
Заголовок TCP-пакета Размер окна 16 -битовое поле, содержащее количество байт информации, которое может принять в свой внутренний буфер TCP-модуль, отправляющий партнеру данный TCP-пакет. Контрольная сумма 16 -битовое поле, содержащее Internet-контрольную сумму, подсчитанную для TCP-заголовка, данных пакета и псевдозаголовка. Псевдозаголовок TCP-заголовок не содержит информации об адресе отправителя и получателя, поэтому даже при совпадении порта получателя нельзя с точностью сказать, что сообщение пришло в нужное место. Поскольку назначением протокола TCP является надёжная доставка сообщений, то этот момент имеет принципиальное значение. Эту задачу можно было решить разными способами. Самый очевидный добавить информацию о адресе назначения в заголовок TCP, однако это во-первых приводит к дублированию информации, что снижает долю полезной информации переносимой TCP-сегментом, а во-вторых нарушает принцип инкапсуляции модели OSI. Поэтому разработчики протокола пошли другим путём и использовали дополнительный псевдозаголовок:
Заголовок TCP-пакета • Протокол/Протокол верхнего уровня - содержит в себе значение 6 (000000110 в двоичном виде, 0 x 6 — в шестнадцатеричном) — идентификатор TCP-протокола. • Длина TCP-сегмента (TCP length) - содержит в себе длину TCP-сегмента (TCP-заголовок + данные; длина псевдозаголовка не учитывается) в октетах, то есть совпадает с одноименным полем в TCP-заголовке. Псевдозаголовок не включается в TCP-сегмент. Он используется для расчета контрольной суммы перед отправлением сообщения и при его получении (получатель составляет свой псевдозаголовок, используя адрес хоста, с которого пришло сообщение, и собственный адрес, а затем считает контрольную сумму).
Заголовок TCP-пакета Указатель 16 -битовое поле, содержащее указатель (в виде смещения) на первый байт в теле TCP-пакета, начинающий последовательность важных (urgent) данных. Опции Могут применяться в некоторых случаях для расширения протокола. Иногда используются для тестирования. На данный момент в опции практически всегда включают 2 байта NOP (в данном случае 0 x 01) и 10 байт, задающих timestamps. Вычислить длину поля опции можно через значение поля смещения. Дополнительные данные заголовка последовательность полей произвольной длины, описывающих необязательные данные заголовка. Протокол TCP определяет только три типа дополнительных данных заголовка: • конец списка полей дополнительных данных; • пусто (No Operation); • максимальный размер пакета. Дополнительные данные последнего типа посылаются в TCP-заголовке в момент установления логического соединения для выражения готовности TCP-модулем принимать пакеты длиннее 536 байтов. В UNIX-реализациях длина пакета обычно определяется максимальной длиной IPсегмента для сети.
Номер порта Номера портов играют роль адресов транспортного уровня, идентифицируя на конкретных узлах сети, по сути дела, потребителей транспортных услуг, предоставляемых как протоколом TCP, так и протоколом UDP. При этом протоколы TCP и UDP имеют свои собственные адресные пространства: например, порт номер 513 для TCP не идентичен порту номер 513 для UDP. Взаимодействие прикладных программ, использующих транспортные услуги протокола TCP (или UDP), строится согласно модели "клиент-сервер", которая подразумевает, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Связь программы-клиента и сервера идентифицируется пятеркой: 1. 2. 3. 4. 5. используемый транспортный протокол (TCP или UDP); IP-адрес сервера; номер порта сервера; IP-адрес клиента; номер порта клиента.
Номер порта Для того, чтобы клиент мог обращаться к необходимому ему серверу, он должен знать номер порта, по которому сервер ожидает обращения к нему ("слушает сеть"). Для прикладных программ, получивших наибольшее распространение в сетях на основе TCP/IP, номера портов фиксированы и носят название "хорошо известных номеров портов" (well-known port numbers). На следующем слайде приводятся примеры хорошо известных номеров портов для некоторых серверов (служб). Программы-клиенты, являющиеся активной стороной во взаимодействии "клиент-сервер", могут использовать, как правило, произвольные номера портов, назначаемые динамически непосредственно перед обращением к серверу (как любые свободные на данном узле).
Номер порта
Номер порта
Принцип "скользящего окна" Протоколы транспортного уровня, обеспечивающие надежную передачу данных, предполагают обязательное подтверждение принимающей стороной правильности полученных данных. В "простых" протоколах сторона, отправляющая данные, отсылает пакет с данными принимающей стороне и переходит в состояние ожидания подтверждения получения правильных данных. Только после приема подтверждения становится возможной следующая посылка. Очевидно, что такой подход использует пропускную способность сети неэффективно. В протоколе TCP используется более совершенный принцип "скользящего окна" (sliding window), который заключается в том, что каждая сторона может отправлять партнеру максимум столько байт, сколько партнер указал в поле "размер окна" заголовка TCP-пакета, подтверждающего получение предыдущих данных. Принцип "скользящего окна" обеспечивает "опережающую" посылку данных с "отложенным" их подтверждением. Следует отметить недостаток этого механизма: если в течение некоторого времени не будет получено "отсроченное" подтверждение ранее отправленного пакета, то отправляющий TCP-модуль будет вынужден повторить посылку всех TCP-пакетов, начиная с неподтвержденного. Размер окна, как правило, определяется объемом свободного места в буфере принимающего TCP-модуля.
Важные данные Протокол TCP предусматривает возможность информирования принимающей стороны взаимодействия отправляющей стороной о наличии в TCP-пакете важных данных (urgent data), требующих особого внимания согласно логике прикладной задачи. Для индикации наличия в TCP-пакете важных данных используется флаг URG TCPзаголовка, местоположение важных данных в теле TCP-пакета определяется полем "Указатель" TCP-заголовка - оно задает смещение (в стиле языка программирования C) первого байта важных данных в теле TCP-пакета. Следующий рисунок иллюстрирует расположение важных данных в теле TCP-пакета.
Этапы TCP-взаимодействия Взаимодействие партнеров с использованием протокола TCP строится в три этапа: 1. установление логического соединения; 2. обмен данными; 3. закрытие соединения. Ниже с помощью трех рисунков дается описание каждого из этапов. Рисунки иллюстрируют последовательность обмена TCP-пакетами двумя TCP-модулями: A и B. TCP-пакеты представлены тремя полями TCP-заголовка ("Номер в последовательности", "Номер подтверждения", "Флаги") и числом, характеризующим длину данных, составляющих тело TCP-пакета (заметим, что реально поля длины данных в TCP-заголовке нет). Стрелками показаны направления пересылки пакетов.
Этапы TCP-взаимодействия Рисунок иллюстрирует этап двустороннего обмена данными между TCP-модулями A и B. TCP-модуль, принимающий адресованные ему данные, всегда подтверждает их прием, вычисляя значение поля "Номер подтверждения" в заголовке ответного TCP-пакета как сумму пришедшего "Номера в последовательности" и длины правильно принятых данных. Отметим, что посылка данных к партнеру и подтверждение принятых от него данных реализуются в рамках одного TCP-пакета.
Этапы TCP-взаимодействия Рисунок иллюстрирует закрытие соединения по инициативе TCP-модуля A, посылающего партнеру TCP-пакет с установленным флагом FIN. Прием запроса на закрытие соединения TCP-модуль B подтверждает пакетом, содержащем в своем заголовке поле "Номер подтверждения", значение которого (1052) на 1 больше значения принятого "Номера в последовательности" (1051). После этого посылка каких-либо данных TCPмодулем A становится невозможной, однако модуль B имеет данные для передачи, которые он отправляет TCP-модулю A и получает подтверждение на их прием. Затем TCP -модуль B формирует пакет с флагом FIN, после подтверждения его приема соединение считается закрытым.
Этапы TCP-взаимодействия
TCP.pptx