Протоколы транспортного уровня (tcp, udp, sctp)

Функции

Возможности SCTP включают:

  • Надежная передача как упорядоченных, так и неупорядоченных потоков данных.
  • Множественная адресация поддержка, при которой одна или обе конечные точки соединения могут состоять из более чем одного IP-адреса, что обеспечивает прозрачное переключение между избыточными сетевыми путями.
  • Доставка фрагментов в независимых потоках устраняет ненужные блокировка передней линии, в отличие от доставки потока байтов TCP.
  • Явная частичная надежность.
  • Выбор и мониторинг пути для выбора основного пути передачи данных и проверки возможности соединения на пути передачи.
  • Механизмы проверки и подтверждения защищают от атак лавинной рассылки и обеспечивают уведомление о дублированных или отсутствующих блоках данных.
  • Улучшенное обнаружение ошибок подходит для Jumbo-кадры Ethernet.

Разработчики SCTP изначально предназначали его для передачи телефонии (Система сигнализации 7 ) по Интернет-протоколу с целью дублирования некоторых атрибутов надежности сигнальной сети SS7 в IP. Эта работа IETF известна как СИГТРАН. Тем временем были предложены другие варианты использования, например, Диаметр протокол и Надежный пул серверов (RSerPool).

3、UDP

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

Каждая дейтаграмма UDP имеет длину. Если дейтаграмма прибыла в пункт назначения правильно, тоДлина дейтаграммы будет передана вместе с данными в процесс принимающего приложения.. Мы уже упоминали, что TCP — это протокол потока байтов без каких-либо границ записи (см. Раздел 1.2), который отличается от UDP.

Introduction

We are guided through security scans at the airport, and then whisked away in a speeding caravan of vehicles. As we reach the semi-secret world of the Internet Engineering Task Force (IETF) working groups, we enter the glass doors that mark the point of no return. Ducking into a maze of hallways we come to a plain door. Lurking in the backroom, between the dark navy suits the Stream Control Transmission Protocol (SCTP) exists. Maneuvering for a closer view, we find AIX from IBM, BSD with three different variants, Cisco IOS, Linux, third-parties for the Microsoft operating system, and Sun Solaris. Each has implemented their interpretation of this standards-based protocol. We stare at what could be the Holy Grail for IP-based multimedia and telecommunications. Passing between the cubicles, we enter a door curiously labeled «Test/Laboratory area.»

Within the confines of the laboratory, badges on the clean-room suits indicate that SCTP is the result of the IETF Signal Transmission (SIGTRAN) working groups’ efforts. Their intent was to produce something akin to the telephone Signaling System 7 (SS7) switching network that was capable of traversing IP networks. Simply put, SCTP was built to carry call control signals using IP networks. SCTP is not new; it was created in 2000, and is taking some time to outgrow its confinement within the large telecommunications companies’ interconnects.

Quietly, we are informed that the secrecy was created to prevent a mass rush to implement SCTP when everyone finds out about SCTP’s capabilities. With more than twenty years of work under their belts, the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) were not singularly up to the task, but each provided parts and ideas to make SCTP possible. Neither TCP nor UDP can handle multi-homing, or the ability to send information to an alternate address if the primary becomes unreachable. SCTP’s closest competition, TCP, will need to improve or become a relic.

Within the IP Multimedia Subsystem (IMS) specifications, SCTP provides connections between various Session Initiated Protocol (SIP) servers and proxy servers, collectively called Call Session Control Function (CSCF). The secrecy seems to reside around the fact that the SCTP communications that flow between or through the Proxy-CSCF, Interrogating-CSCF, Serving-CSCF, and other selected pieces of the IMS infrastructure are handled in the control-plane versus the data-plane. (The data-plane contains the actual telecommunications data being delivered to a subscriber/user, and the support-plane provides the control and connectivity for the data-plane.) Since the SCTP is hidden behind the curtains of the support-plane networks, it has not received the publicity or the focus of some of the other IMS specifications. SIP and RTSP have broken through the curtain by being able to process Voice over IP (VoIP) telecommunications within the enterprise space. But, SIP and RTSP’s notoriety may be short lived when SCTP enters the enterprise space.

Now here is the crucial part: without SCTP’s capabilities the IMS would not have the capability to reliably pass call control signaling to the various systems and it would not be possible to use TCP or UDP. You could use these if you only allow twenty simultaneous sessions, which is inconsequential as most Service Providers count their subscribers in millions. Prying open the specifications for SCTP reveals many features or services similar to TCP.

Структура пакета

Биты 0–7 8–15 16–23 24–31
+0 Исходный порт Порт назначения
32 Тег подтверждения
64 Контрольная сумма
96 Тип чанка 1 Флаги блока 1 Длина чанка 1
128 Данные блока 1
Тип чанка N Флаги блока N Длина блока N
Данные блока N

Пакет SCTP состоит из двух основных разделов:

  1. В общий заголовок, который занимает первые 12 байтов и выделен синим цветом, и
  2. В блоки данных, которые занимают оставшуюся часть пакета. Первый фрагмент выделен зеленым, а последний из N фрагменты (Chunk N) выделены красным.

Каждый блок начинается с однобайтового идентификатора типа, с 15 типами блоков, определенными RFC   и еще как минимум 5, определенных дополнительными RFC. Восемь битов флага, поле длиной два байта и данные составляют оставшуюся часть блока. Если блок не кратен 4 байтам (т.е. длина не кратна 4), то он дополняется нулями, которые не включаются в длину блока. Поле длины в два байта ограничивает длину каждого блока до 65 535 байт (включая поля типа, флагов и длины).

Безопасность

Хотя шифрование не входило в первоначальную структуру SCTP, SCTP был разработан с функциями для повышения безопасности, такими как 4-сторонняя рукопожатие (в сравнении с ) для защиты от SYN флуд атаки и большие «куки» для проверки ассоциации и подлинности.

Надежность также была ключевой частью системы безопасности SCTP. Множественная адресация позволяет ассоциации оставаться открытой, даже когда некоторые маршруты и интерфейсы не работают

Это особенно важно для СИГТРАН как он несет SS7 по IP-сети с использованием SCTP и требует сильной устойчивости во время сбоев связи для поддержания телекоммуникационных услуг даже при устойчивых сетевых аномалиях

SCTP иногда является хорошим снятие отпечатков пальцев кандидат. Некоторые операционные системы поставляются с включенной поддержкой SCTP, и, поскольку он не так хорошо известен как TCP или UDP, его иногда упускают из виду в конфигурациях межсетевого экрана и обнаружения вторжений, что часто позволяет зондировать трафик.

SCTP vs TCP, a detailed comparison:

Both protocols operate at the transport layer and make use of the underlying IP protocol. Before you begin, it’s good to familiarise yourself with the SCTP protocol and its purpose. It is necessary to comprehend the fundamental distinctions between these two protocols.

Functionality  TCP  SCTP
Age TCP is a much older protocol, that has existed for decades. SCTP is a newer protocol.
Connection or PATH Monitoring Do not have protocol messages for connection health monitoring. A user of TCP needs to implement a mechanism for failure detection. E.g HTTP timeout. The protocol defines messages for link or path health checks. These messages are heartbeat messages. SCTP users immediately get a connection failure indication.
Stream-Based (sequence of bytes) Messages flow over a TCP connection in a stream of bytes. This requires functionality in the user of TCP to put start and end patterns for messages. Message-based. The sender and receiver need to send and receive a full message. It is like a UDP message flow.
 Number of Streams All communication is on one stream. It blocks all bytes in a flow until a corrupted byte is not retransmitted. Not suitable for real-time applications, where time is essential.  Have multiple streams. If one stream blocks, other streams keep carrying bytes. Important for telecom. If a call blocks from one telephone exchange to another. The remaining calls will not block.
Network Failure Having a single network path between source and destination. Because TCP/IP has a single IP address in an endpoint. It can have multiple network paths from source to destination. Because SCTP/IP has multiple IP addresses in an endpoint.
User Base Due to the older protocol. TCP is used in many places. All HTTP-based communication is based on TCP. The user base is less in number. Mainly peer or peer applications for telecom or others.
 Availability  Available on most of the platforms.  Available on lesser platforms, mainly on Linux and Solaris.

Сколько всего портов TCP?

Для протокола TCP порт с номером 0 зарезервирован и не может использоваться. Для протокола UDP указание порта процесса-отправителя («обратного» порта) не является обязательным, и порт с номером 0 означает отсутствие порта. Таким образом, номер порта — число в диапазоне от 1 до 216-1=65 535.

Соединение TCP

Чтобы установить соединение между двумя процессами на разных компьютерах сети, необходимо знать не только интернет-адреса компьютеров, но и номера тех ТСР-портов (sockets), которые процессы используют на этих компьютерах. Любое TCP-соединение в сети Интернет однозначно идентифицируется двумя IP-адресами и двумя номерами ТСР-портов.

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

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

Сокеты TCP

Активные TCP соединения с интернетом (w/o servers)

# netstat -nt
Proto Recv-Q Send-Q Local Address Foreign Address State      
tcp        0      0 192.26.95.251:56981     10.161.85.55:22        ESTABLISHED
tcp        0      0 10.26.95.251:44596      10.26.95.226:2193       ESTABLISHED

Для сокетов TCP допустимы следующие значения состояния:

CLOSED 	        Закрыт. Сокет не используется.
LISTEN 	        Сокет ожидает входящих соединений.
SYN_SENT 	Активно пытается установить соединение. Cокет в процессе установки соединения.
SYN_RECEIVED (SYN_RCVD)	Идет начальная синхронизация соединения. Был принят запрос установки соединения из сети.
ESTABLISHED 	Соединение установлено.
CLOSE_WAIT 	Удаленная сторона отключилась; ожидание закрытия сокета.
FIN_WAIT_1 	Сокет закрыт; соединение закрывается.
CLOSING 	Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения.
LAST_ACK 	Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения.
FIN_WAIT_2 	Сокет закрыт; ожидание отключения удаленной стороны.
TIME_WAIT 	Сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки
UNKNOWN         Статус сокета неизвестен.

Что такое TCP RST?

TCP RST – это сегмент TCP (обратите внимание, что TCP посылает сообщения сегментами, а НЕ пакетами, что часто неправильно употребляется в среде сетевых администраторов), который показывает, что с соединением что-то не так. RST посылается в следующих случаях:

  • Посылается SYN для несуществующего сервера.
  • TCP хочет прервать соединение.
  • Получен сегмент, для которого не существует соединения.

Реализации

Эталонная реализация SCTP работает во FreeBSD, Mac OS X, Microsoft Windows и Linux.

Следующее операционные системы реализовать SCTP:

  • AIX Версия 5 и новее
  • Универсальный BSD с внешним патчем на КАМЕ проект[нужна цитата ]
  • NetBSD с 8.0
  • Cisco IOS 12
  • DragonFly BSD начиная с версии 1.4, однако поддержка в версии 4.2 устарела
  • FreeBSD версии 7 и выше, содержит эталонную реализацию SCTP.
  • HP-UX, 11i v2 и выше
  • Linux на базе ядра 2.4 и новее
  • QNX ОС Neutrino Realtime, 6.3.0–6.3.2, не рекомендуется с 6.4.0
  • солнце Солярис 10 и выше
  • VxWorks версии от 6.2.x до 6.4.x и 6.7 и новее
  • иллюзия

Сторонние драйверы:

  • Майкрософт Виндоус

    Драйвер ядра SctpDrv — это порт из стека BSD SCTP для Windows.

    :

  • MacOS

    Расширение сетевого ядра SCTP для Mac OS X

    :

Пространство пользователя библиотека:

  • Портативный стек пользовательского пространства SCTP
  • Библиотека SCTP

    Windows XP порт

  • Erlang / OTP

Следующие приложения реализуют SCTP:

WebRTC

Туннелирование через UDP

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

Многопоточность на основе сообщений

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

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

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

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

What are the features of SCTP?

SCTP was standardized with many new features that were missing in legacy network protocols. These features enable SCTP, to use for critical applications, e.g telephony.  Following is a list of key features of the protocol.

Multi Streaming : 

Before this protocol, connection-oriented protocols e.g TCP was using a single stream for transferring data from source to destination. Single stream creates an issue of all communication blocking, in case of single-byte failure, until the failed byte is re-transmitted. This is not suitable for time-critical applications.

Suppose there are ten calls are going on a TCP connection, there is a problem in byte related to a single call. This turns into the blocking of packets for the remaining 9 calls. This eventually may cause the disconnect of the call at all, because of a timeout on a telephone exchange.

SCTP is overcome from a single point of blocking, by providing multiple streams in a connection with the peer. This makes communication faster as well.

Datagram Protocol Style :

Despite that it’s connection-oriented, it can work as a datagram-based protocol. In TCP, a sender and receiver have to put an identifier for the start and end of a message.  It creates an additional burden for transport protocol users and before starting communication, both sides should agree on common delimiters. The SCTP protocol provides message-based communication over a connection.

Multihoming: 

In TCP,  an endpoint has a single IP address and a port. If that IP becomes unreachable or disconnects from the network, the TCP connection break down with the peer node.  SCTP has the feature of multihoming, where the SCTP endpoint may have multiple IP addresses and a port. So if one IP is unreachable, any other IP can be used for communication with the peer node. During connection set up each side of SCTP, and advertise the IP address list to the peer node.  The IP chosen for communication is called the primary IP.

Link Monitoring:

The protocol provides the heartbeat mechanism for SCTP connection monitoring.  Once a connection is set up, each end starts sending a heartbeat to the peer and waits for its acknowledgment on each path within the connection.

Сравнение с моделью OSI

Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.

К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.

Вот как традиционно протоколы TCP/IP вписываются в модель OSI:

Распределение протоколов по уровням модели OSI
TCP/IP OSI
7 Прикладной Прикладной напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
6 Представления напр., XDR, AFP, TLS, SSL
5 Сеансовый напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
4 Транспортный Транспортный напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
3 Сетевой Сетевой напр., IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP
2 Канальный Канальный напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS
1 Физический напр., электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение

Обычно в стеке TCP/IP верхние 3 уровня модели OSI (прикладной, представительский и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.

What is SCTP Message fromat?

SCTP protocol

The message is composed of a header and several chunks. The header contains the common information for all chunks, a chuck is for a specific SCTP protocol operation.

SCTP Header :

It has a length of 12 bytes common for all chunks. Have the source and destination port numbers, verification tag, and checksum. The verification tag verifies that a packet is associated with the current association and not with any previous flow. The checksum is used to ensure that the packet has not been tempered while transmission. CRC-32 is the type. To verify tempering, the sender calculates the value and includes it in the messages, and the receiver calculates it again and compares it to the value included in the message.

What is an SCTP chunk?

Apart from the header, the rest of the message is composed of chunks. A chuck can be a layer control message or a user message.

Control chunks are used to set up or tear down the connection with the peer.  A user chunk sends user data to the peer node.

Each chunk has a header and data. The header includes flag, type, and length.

What are the SCTP Chunk types?

  • INIT  – This chunk is sent by the client to initiate an association. INIT is not permitted to be combined with any other chunk. This is the initial message exchanged to start a four-way handshake.
  • INIT-ACK – Acknowledgement message sent by the server in response to an INIT received. If the server accepts a new connection from the client, the INIT ACK should be returned to the source port and source IP of the received INIT. The server includes a list of the local machine’s IP addresses in the ACK message.
  • COOKIE ECHO – It is part of a four-way handshake. On successful receiving of INIT-ACK, the client sends a COOKIE ECHO.  The chunk has only one parameter, a cookie.
  • COOKIE ACK- Acknowledgement send by the server for COOKIE-ECHO.
  • SACK-  SCTP is a reliable protocol, if a packet is lost, the SCTP layer will correct the error by retransmitting the packet. During retransmission at the SCTP layer, the layer’s user will remain anonymous. A SACK chunk is used to acknowledge the sender of a received packet.

For reliable communication, the sender retains the transmitted packet in the sender queue until it is not acknowledged by the peer. The sender removes the packet from the queue upon receiving a SACK.

HEARTBEAT – Following the establishment of an association, each side begins monitoring the link’s health. Each end transmits heartbeat messages to a peer and waits for a response.

HEARTBEAT ACK – Acknowledgement message for the heartbeat. Upon missing an ack message for a fixed number of a count, the association is marked as inactive and a communication lost indication is sent to the user.

SCTP

SCTP (Stream Control Transmission Protocol — протокол передачи с управлением потока) — протокол транспортного уровня. Выполняет те же функции, что и протоколы TCP и UDP. Но объединяет при этом их преимущества, лишает недостатков и добавляет новые возможности.

Отличия от протоколов TCP и UDP:

Основные преимущества (пояснения к таблице):

  • Сохранение границ — в протоколе TCP данные передаются непрерывным потоком байт, читаются так же, поэтому программист должен сам следить за тем, как расставлять границы в этом потоке и разделать куски данных. SCTP позволяет ставить границы и обрабатывать данные пакетами, как в UDP. Но при этом гарантирует порядок доставки пакетов, обеспечивает надёжность и ориентирован на соединения. Упорядоченность пакетов, кстати, можно отключить для повышения скорости.
  • Multihoming (многолинейность, множественная адресация, см. иллюстрацию ниже) — SCTP позволяет устанавливать соединение к одному серверу по разным линиям связи (например, по Wi-Fi и по Ethernet). Таким образом, если одна линия связи отвалится (скорей всего Wi-Fi), то соединение не разорвётся. Это так же позволяет передавать данные сразу по нескольким линиям, что увеличивает скорость передачи. Если в TCP одна линия связи оборвётся, то соединение будет потеряно, придётся устанавливать новое.
  • Multithreading (многопоточность) — позволяет передавать несколько потоков в рамках одной ассоциации (ассоциацией в SCTP называется соединение между двумя хостами). Например в TCP данные и служебная информация передаются по одному соединению. Поэтому задержка в получении служебнной информации может быть вызвана текущей передачей данных (например, ACK может не прийти вовремя, поэтому мы пошлём дупликат). Такая проблема называется head-of-line blocking, HOL. Многопоточность позволяет передавать эти данные независимо, что приведёт к лучшему использованию доступных ресурсов.
  • 4-way handshake — протокол TCP подвержен SYN-flood атакам. Злоумышленник шлёт много пакетов в короткое время для запроса TCP соединения (запрос на соединение помечен битом SYN в заголовке, поэтому и SYN-flood). Но при этом не подтверждает установление соединения. Таким образом на сервере образуются полуоткрытые соединения. Они закрываются сами по истечению таймаута. Но цель злоумышленника состоит в том, чтобы создать как можно больше таких соединений, не давая тем самым создавать новые валидные соединения из-за ограничения в их количестве на стороне сервера (сервер не может иметь бесконечное число соединений, а если сделать таймаут на обрыв слишком маленьким, то валидные соединения могут отваливаться раньше времени, что тоже нехорошо, и это всё делает syn-атаки возможными). В SCTP используется не тройное рукопожатие, а четверное (из разряда: «я хочу установить соединение — ты точно хочешь установить соединение? — да, я точно хочу установить соединение — ну тогда ладно»). Таким образом за короткий промежуток времени нельзя создать много новых соединений.

В SCTP не бывает полузакрытых соединений, как в TCP. Если мы закрываем соединение, то сразу в обе стороны.

К сожалению, несмотря на все преимущеста, протокол SCTP не получил пока широкого распространения. Это связано с инертностью (TCP работает, зачем менять?) и сложностью поддержки на аппаратном уровне (например, вся обёртка сетевых протоколов, те же фаерволы, имеют правила в духе «пропускать только UDP, TCP» пакеты; для примера можно вспомнить, как это используется в NAT).

Описание модели TCP/IP в технической литературе

В модели TCP/IP (в отличие от модели OSI) — физический уровень никак не описывается. Тем не менее, в некоторых учебниках, для лучшего понимания, описывается «гибридная модель TCP/IP — OSI» из 5 уровней, содержащая дополнительный — физический уровень.

Следующая таблица показывает различные вариации в описании модели TCP/IP. Количество уровней варьируется от трёх до семи.

Kurose, Comer, Stallings Tanenbaum RFC 1122, Internet STD 3 (1989) Cisco Academy Mike Padlipsky’s 1982 «Arpanet Reference Model» (RFC 871) OSI model
Пять уровней Четыре + 1 уровень Пять уровней Пять уровней Четыре уровня Четыре уровня Три уровня Семь уровней
«Five-layer Internet model» or «TCP/IP protocol suite» «TCP/IP 5-layer reference model» «TCP/IP model» «TCP/IP 5-layer reference model» «Internet model» «Internet model» «Arpanet reference model» OSI model
Application Application Application Application Application (Прикладной) Application Application/Process Application
Presentation
Session
Transport Transport Host-to-host or transport Transport Transport (Транспортный) Transport Host-to-host Transport
Network Internet Internet Internet Internet (Сетевой) Internetwork Network
Data link Data link (Network interface) Network access Data link Link (Канальный) Network interface Network interface Data link
Physical (Hardware) Physical Physical Physical

Некоторые из моделей в приведённой таблицы взяты из учебников, которые являются вторичными источниками и могут расходиться с RFC 1122 и другими IETF первоисточниками.

Мотивация и принятие

TCP стал основным средством надежной передачи данных через Интернет. Однако TCP наложил ограничения на несколько приложений. Из RFC  :

  • TCP обеспечивает как надежную передачу данных, так и доставку данных в строгом порядке. Некоторым приложениям требуется надежная передача без поддержки последовательности, в то время как другие будут удовлетворены частичным упорядочением данных. В обоих этих случаях свойство блокировки заголовка строки TCP вызывает ненужную задержку.
  • Для приложений, обменивающихся отдельными записями или сообщениями, потоковая природа TCP требует добавления явных маркеров или другого кодирования для выделения отдельных записей.
  • Ограниченный объем[нечеткий ] сокетов TCP усложняет задачу обеспечения высокой доступности передачи данных с использованием многодомный хосты.
  • TCP относительно уязвим для атак типа «отказ в обслуживании», таких как SYN атаки.

Принятие было замедлено из-за недостаточной осведомленности, отсутствия реализаций (особенно в Microsoft Windows), отсутствия поддержки приложений и отсутствия поддержки сети.

4、TCP ⭐️

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

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

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

4.1, Установление и завершение TCP-соединения (подробности см. В книге)

Установление TCP-соединения: трехстороннее подтверждение TCP.

Завершение TCP-соединения: обмен пакетами при закрытии TCP-соединения.

Диаграмма перехода состояний

Множественное наведение

SCTP предоставляет резервные пути для повышения надежности.

SCTP Multihoming

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

Когда SCTP отправляет сообщение на удаленный адрес, исходный интерфейс будет определяться только таблицей маршрутизации хоста (а не SCTP).

Местное множественное возвращение — удаленное одиночное возвращение

В режимах «Локальная множественная адресация» и «Удаленная одиночная адресация», если удаленный первичный адрес недоступен, ассоциация SCTP не выполняется, даже если возможен альтернативный путь.

Асимметричное множественное начало отсчета: локальное множественное начало отсчета — удаленное одиночное возвращение

Local-single-Homing — удаленное множественное возвращение

Асимметричное множественное начало отсчета: локальное одиночное начало отсчета — удаленное множественное возвращение

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: