Протокол управления передачей (TCP) является одним из самых важных протоколов пакета Internet Protocols. Это наиболее широко используемый протокол для передачи данных в сети связи, такой как Интернет.
Длина заголовка TCP составляет минимум 20 байтов и максимум 60 байт.
Связь TCP между двумя удаленными хостами выполняется с помощью номеров портов (TSAP). Номера портов могут варьироваться от 0 до 65535, которые делятся как:
Связь TCP работает в модели Server / Client. Клиент инициирует соединение, и сервер либо принимает, либо отклоняет его. Для управления подключением используется трехстороннее связывание.
Клиент инициирует соединение и отправляет сегмент с порядковым номером. Сервер подтверждает это со своим собственным порядковым номером и ACK сегмента клиента, который является еще одним номером последовательности клиентов. Клиент после получения ACK своего сегмента отправляет подтверждение ответа сервера.
Любой из серверов и клиентов может отправлять сегмент TCP с флагом FIN, установленным в 1. Когда принимающая сторона отвечает на это посредством ACKnowlinging FIN, это направление связи TCP закрывается и соединение освобождается.
TCP использует концепцию размера окна, чтобы удовлетворить потребность в управлении пропускной способностью. Размер окна сообщает отправителю на удаленном конце, количество сегментов байтов данных, которое может получить приемник с этого конца. TCP использует медленную фазу запуска с использованием размера окна 1 и увеличивает размер окна по экспоненте после каждого успешного сообщения.
Например, клиент использует размер окна 2 и отправляет 2 байта данных. Когда подтверждение этого сегмента получено, размер окна удваивается до 4, а следующий отправленный сегмент отправляется длиной 4 байта данных. Когда получено подтверждение 4-байтового сегмента данных, клиент устанавливает размер окна 8 и т. Д.
Если упущено подтверждение, то есть данные, потерянные в транзитной сети или полученные NACK, размер окна уменьшается до половины, а медленная начальная фаза начинается снова.
TCP использует номера портов, чтобы узнать, какой процесс приложения ему нужен для передачи сегмента данных. Наряду с этим он использует порядковые номера для синхронизации с удаленным хостом. Все сегменты данных отправляются и принимаются с порядковыми номерами. Отправитель знает, какой последний сегмент данных был принят Получателем, когда он получает ACK. Получатель знает о последнем сегменте, отправленном отправителем, ссылаясь на порядковый номер недавно полученного пакета.
Если порядковый номер недавно полученного сегмента не совпадает с порядковым номером, который ожидал приемник, он отбрасывается и NACK отправляется обратно. Если два сегмента поступают с одинаковым порядковым номером, значение временной метки TCP сравнивается для принятия решения.
Способ объединения двух или более потоков данных в один сеанс называется мультиплексированием. Когда клиент TCP инициализирует соединение с сервером, он всегда ссылается на четко определенный номер порта, который указывает на процесс приложения. Сам клиент использует случайный номер порта из частных пулов номеров портов.
Используя TCP Multiplexing, клиент может взаимодействовать с несколькими различными процессами приложения за один сеанс. Например, клиент запрашивает веб-страницу, которая, в свою очередь, содержит различные типы данных (HTTP, SMTP, FTP и т. Д.), Тайм-аут сеанса TCP увеличивается, и сеанс остается открытым на более длительное время, так что накладные расходы на трехстороннюю рукопожатие могут избегать.
Это позволяет клиентской системе получать несколько соединений по одному виртуальному соединению. Эти виртуальные соединения не подходят для серверов, если тайм-аут слишком длинный.
Когда большое количество данных подается в систему, которая не способна обрабатывать ее, происходит перегрузка. TCP управляет перегрузкой с помощью механизма Window. TCP устанавливает размер окна, говорящий на другом конце, сколько сегмента данных нужно отправить. TCP может использовать три алгоритма управления перегрузкой:
TCP использует различные типы таймеров для управления и управления различными задачами:
Таймер сохранения:
Таймер повторной передачи:
Постоянный таймер:
Timed-Wait:
TCP — очень надежный протокол. Он предоставляет порядковый номер для каждого байта, отправленного в сегменте. Он обеспечивает механизм обратной связи, т.е. когда хост получает пакет, он привязан к ACK, чтобы ожидал пакет, имеющий следующий порядковый номер (если он не является последним сегментом).
Когда TCP-сервер прерывает связь в середине и перезапускает его процесс, он отправляет трансляцию TPDU всем своим хостам. Затем хосты могут отправить последний сегмент данных, который никогда не был непризнан и продолжен.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Статьи по теме:
TCP/IP (Transmission Control Protocol/Internet Protocol) – это модель передачи цифровых данных. Протокол передачи TCP/IP описывает правила передачи данных, стандарты связи между компьютерами, а также содержит соглашения о маршрутизации и межсетевом взаимодействии.
Что такое протокол и для чего он нужен? Протокол – это набор правил, благодаря которым устройства обмениваются данными через интернет. Эти правила сообщают устройствам о том:
Сетевые протоколы TCP/IP обеспечивает связь между устройствами, работающими через интернет. Обычно эти устройства называют хостами. Хотя существуют и другие протоколы передачи данных, TCP/IP выделяется тем, что при его работе обеспечивается аппаратная независимость.
Это значит, что работа протокола не зависит от особенностей аппаратного обеспечения, он позволяет организовать обмен данными между любыми устройствами с различной технологией передачи данных. Кроме этого, сетевая модель TCP/IP определяет стандарты для множества различных служб связи конечных пользователей.
Благодаря TCP/IP возможны такие действия:
TCP и IP два отдельных протокола, работающие вместе. Они образуют стек протоколов надежной передачи данных. Стек протоколов TCP/IP различают два типа сокетов TCP (потоковые) и UDP (датаграммные). Подробнее о сокетах расскажем далее.
UDP – простой протокол с минимальной дополнительной нагрузкой, он подходит для отправки небольших сообщений, когда не важна надежность при передаче данных. Протокол TCP – выполняет проверку доставки всех файлов адресату и проверяет не было ли ошибки при передаче информации. TCP может повторно запросить данные, если они были потеряны и регулировать загрузку сети.
Стек протоколов TCP/IP позволяет обеспечивать доставку информации в необходимое место назначения. IP определяет адрес доставки, а TCP отвечает за процесс передачи и доставки данных. Для более наглядного примера предположим, что IP – это адрес электронной почты, а TCP — это почтовый клиент, с помощью которого происходит отправка сообщений.
Протоколы используются вместе, чтобы информация имела место назначения, а сам процесс происходил безопасно.
Для работы протоколов необходима установка TCP/IP – специального программного обеспечение. Обычно, оно устанавливается с операционной системой и не требует скачивания дополнительных программ.
Настройка TCP/IP происходит в разделе основных настроек компьютера.
Сокет — это программный механизм, который обеспечивает сетевое взаимодействие, помогает осуществлять передачу информации от одного компьютера к другому. Он представляет собой конструкцию, состоящую из IP-адреса и номера порта.
Сокет был придуман для того, чтобы облегчить программистам процесс написания кодов. При работе с сокетами программистам не надо разбираться с IP и портами, при программировании он указывает, что хочет создать сокет и обозначает для него IP-адрес. Программа, в которой работает специалист, создает сокет. Далее информация отправляется и принимается в сокете, а программа отвечает за ее передачу.
Основное назначение сокетов – передача данных через сеть и обеспечение связи между различными приложениями.
При настроенных сокетах в двух разных приложениях можно осуществлять передачу данных без дополнительных программ. Например, чтобы получить информацию из мобильного приложения, сервер запускает сокет для связи с этим приложением. Само приложение также открывает сокет, чтобы связаться с сервером. После этого происходит обмен данными между сервером и приложением.
Чтобы к серверу можно было одновременно подключиться нескольким приложениям, сервер делает копии сокетов.
Сетевые порты представляют собой 16-ти битное число от 1 до 65535, которое определяет назначение пакетов данных в пределах одного хоста. Они необходимы, чтобы осуществлять передачу информации определенного вида. Все хосты передают данные при помощи IP-адресов, когда происходит подключение к сети, порты определяют к какой программе относятся передаваемые файлы. Основные программы это:
При работе с почтовым клиентом Outlook используется два стандартизированных порта: порт 110 – для получения электронных сообщений и порт 25 – для отправки писем к адресату.
Важно знать, что порты обеспечивают доступ в интернет не только полезным программам, но и вирусам, которые могут открывать порты без согласия пользователя и считывать данные на его компьютере.
Одной из основных и первых моделей передачи данных была OSI (The Open Systems Interconnection model). В соответствии с ней происходит работа сетевых протоколов, так как она устанавливает основные требования и правила. Модель OSI состоит из семи уровней, каждый из них определяет нормы сотрудничества систем между собой:
Несколько протоколов, работающих по определенным уровням, называют стеком протоколов. Современный интернет работает на стеке протоколов TCP/IP. Различают следующие уровни стека TCP/IP:
Регулирует работу сетевых приложений, например, браузеры, программы для загрузки файлов по ftp, почтовые клиенты, SSH. Эти программы могут использовать свои протоколы обмена данными.
На прикладном уровне передача информации осуществляется путем передачи пакета с данными от одного сетевого узла к другому. Пересылка данных от хоста-отправителя к хосту-получателю осуществляется при помощи протокола IP, который сообщает адрес получателя и указывает номер порта.
Комбинация IP-адреса и номера порта передачи данных называется сокетом. Определенные порты используют для упрощения стандартов, каждый порт соответствует функциональному назначению приложения (Например, почтовый SMTP-сервер использует 25 порт).
Работу этого уровня определяют протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP анализирует переданные пакеты информации и, в случае ошибки, повторно запрашивает пакеты. Также он следит за верной последовательностью переданных пакетов. UDP – протокол без установки соединения, он выполняет небольшую проверку и считается ненадежным. Отправка информации с помощью UDP выполняется быстрее по сравнению с TCP.
Передача данных начинается с установки соединения: хост-клиент отправляет фрагмент данных с номером последовательности и флагом SYN (служит для обозначения начала установки соединения).
Сервер выделяет память для обработки задачи и назад отправляет фрагмент с номером последовательности и флагами SYN и ACK (служит для обозначения получения подтверждения).Получив флаг SYN, хост-клиент отправляет сегмент с флагом ACK, в том случае, когда этот флаг узел уже получил, включается режим ESTABLISHED ( или активное соединение). Если, повторив свой запрос, хост не получает ответа, то через некоторое время включается режим CLOSED (или завершение сеанса связи):
Так как глобальная сеть объединяет в себе множество локальных сетей, то сетевой уровень нужен для регламентирования передачи данных и взаимодействия локальных сетей.
Основные функции межсетевого уровня: доставка пакетов с информацией между сетями, выбор оптимального пути перемещения данных, согласование разных технологий передачи информации, фильтрация трафика, предотвращение перегрузок при передаче.
IP (Internet Protocol) – основной протокол межсетевого уровня. Он отвечает за перемещение пакетов между подсетями — от одного пограничного маршрутизатора до другого, пока данные не достигнут сети назначения.
При передаче информации от одного хоста к другому все данные делятся на пакеты, которые передаются по нужным каналам связи. Канальный уровень определяет физические свойства обмена информацией: максимальное расстояние передачи пакетов, частота сигнала, возможное время задержки ответа от хоста.
Чаще всего на этом уровне используют протокол Ethernet, он определяет проводные соединения и электросигналы на физическом уровне. Когда хост собирается передать пакет информации, он проверяет свободен ли канал в этот момент (по наличию несущей частоты в кабеле). Если частота не найдена, то начинается передача данных. Передача информации ограничивается по времени, она не может превышать, а также быть меньше заданной величины. Это необходимо для предотвращения единоличного использования сети одним компьютером и доступом к сети другим пользователям.
Зачем нужны уровни сетевой модели TCP/IP? Передача файлов между двумя хостами напрямую невозможна. Сначала пакеты данных попадают на сетевой уровень, чтобы получить IP-адрес. На транспортном уровне, с помощью протокола TCP, отдельные части данных передаются хосту. На каждом уровне к передаваемым файлов добавляется служебная информация: например, указание порта, чтобы распознать приложение. Кроме того, информацию могут добавлять протоколы Ethernet, IP, TCP и другие.
Такое наслоение правил и дополнительной информации называется стеком. Таким образом, стек – набор сетевых протоколов с иерархической структурой. Главная задача стека – достаточный набор правил, который обеспечивает взаимодействие устройств в интернете.
Чтобы все протоколы могли работать одновременно и не конфликтовали между собой, были выделены уровни стека протоколов TCP/IP. Каждый уровень решает свою определенную задачу, что снижает возникновение сбоев и незавершенных операций.
Протокол интернета TCP/IP популярен своей возможностью реализовать широкий набор функций: совместное использование файлов, принтеров, удаленный доступ к системам и серверам. Стек TCP/IP – надежный набор протоколов, благодаря которым легко налаживаться работа приложений, а управление маршрутизацией удобно настраивается.
Протокол управления передачей (TCP) — это стандарт связи, позволяющий прикладным программам и вычислительным устройствам обмениваться сообщениями по сети. Он предназначен для отправки пакетов через Интернет и обеспечения успешной доставки данных и сообщений по сети.
TCP является одним из основных стандартов, определяющих правила Интернета, и включен в стандарты, определенные Инженерной группой Интернета (IETF). Это один из наиболее часто используемых протоколов в цифровой сетевой связи, обеспечивающий сквозную доставку данных.
TCP организует данные таким образом, чтобы их можно было передавать между сервером и клиентом. Он гарантирует целостность данных, передаваемых по сети. Перед передачей данных TCP устанавливает соединение между источником и получателем, которое остается активным до тех пор, пока не начнется обмен данными. Затем он разбивает большие объемы данных на более мелкие пакеты, обеспечивая при этом целостность данных на протяжении всего процесса.
В результате все протоколы высокого уровня, которым необходимо передавать данные, используют протокол TCP. Примеры включают методы однорангового обмена, такие как протокол передачи файлов (FTP), Secure Shell (SSH) и Telnet. Он также используется для отправки и получения электронной почты через протокол доступа к сообщениям в Интернете (IMAP), протокол почтового отделения (POP) и простой протокол передачи почты (SMTP), а также для доступа в Интернет через протокол передачи гипертекста (HTTP).
Альтернативой TCP в сети является протокол пользовательских дейтаграмм (UDP), который используется для установления соединений с малой задержкой между приложениями и сокращения времени передачи. TCP может быть дорогостоящим сетевым инструментом, поскольку он включает отсутствующие или поврежденные пакеты и защищает доставку данных с помощью элементов управления, таких как подтверждения, запуск соединения и управление потоком.
UDP не обеспечивает ошибочное соединение или упорядочивание пакетов, а также не сигнализирует адресату перед доставкой данных, что делает его менее надежным, но менее дорогим. Таким образом, это хороший вариант для срочных ситуаций, таких как поиск в системе доменных имен (DNS), передача голоса по интернет-протоколу (VoIP) и потоковое мультимедиа.
Интернет-протокол (IP) — это метод отправки данных с одного устройства на другое через Интернет. Каждое устройство имеет IP-адрес, который однозначно идентифицирует его и позволяет ему взаимодействовать и обмениваться данными с другими устройствами, подключенными к Интернету. Сегодня он считается стандартом для быстрой и безопасной связи напрямую между мобильными устройствами.
IP отвечает за определение того, как приложения и устройства обмениваются пакетами данных друг с другом. Это основной протокол связи, отвечающий за форматы и правила обмена данными и сообщениями между компьютерами в одной сети или нескольких сетях, подключенных к Интернету. Он делает это с помощью набора протоколов Интернета (TCP/IP), группы протоколов связи, разделенных на четыре уровня абстракции.
IP — это основной протокол интернет-уровня TCP/IP. Его основная цель заключается в доставке пакетов данных между исходным приложением или устройством и пунктом назначения с использованием методов и структур, которые размещают теги, такие как адресная информация, в пакетах данных.
TCP и IP — это отдельные протоколы, которые работают вместе для обеспечения доставки данных по назначению в сети. IP получает и определяет адрес — IP-адрес — приложения или устройства, на которое должны быть отправлены данные. Затем TCP отвечает за транспортировку и маршрутизацию данных через сетевую архитектуру и обеспечение их доставки целевому приложению или устройству, определенному IP. Обе технологии, работающие вместе, обеспечивают связь между устройствами на больших расстояниях, позволяя передавать данные туда, куда они должны идти, наиболее эффективным способом.
Другими словами, IP-адрес подобен номеру телефона, присвоенному смартфону. TCP — это компьютерная сетевая версия технологии, используемой для того, чтобы смартфон звонил и позволял его пользователю разговаривать с человеком, который ему звонил.
Теперь, когда мы рассмотрели TCP и ICP по отдельности, что такое TCP/IP? Эти два протокола часто используются вместе и полагаются друг на друга, чтобы данные имели пункт назначения и безопасно доходили до него, поэтому этот процесс часто называют TCP/IP. При наличии правильных протоколов безопасности комбинация TCP/IP позволяет пользователям выполнять безопасный и надежный процесс, когда им необходимо перемещать данные между двумя или более устройствами.
Модель TCP/IP является методом передачи данных по умолчанию в Интернете. Он был разработан Министерством обороны США для обеспечения точной и корректной передачи данных между устройствами. Он разбивает сообщения на пакеты, чтобы избежать повторной отправки всего сообщения в случае возникновения проблемы во время передачи. Пакеты автоматически пересобираются, как только они достигают места назначения. Каждый пакет может проходить по другому маршруту между исходным и конечным компьютером, в зависимости от того, становится ли исходный маршрут перегруженным или недоступным.
TCP/IP делит коммуникационные задачи на уровни, что обеспечивает стандартизацию процесса, при этом поставщики аппаратного и программного обеспечения не занимаются самоуправлением. Пакеты данных должны пройти через четыре уровня, прежде чем они будут получены целевым устройством, затем протокол TCP/IP проходит через уровни в обратном порядке, чтобы вернуть сообщению исходный формат.
В качестве протокола, основанного на соединении, TCP устанавливает и поддерживает соединение между приложениями или устройствами, пока они не закончат обмен данными. Он определяет, как исходное сообщение должно быть разбито на пакеты, нумерует и повторно собирает пакеты и отправляет их на другие устройства в сети, такие как маршрутизаторы, шлюзы безопасности и коммутаторы, а затем к месту назначения. TCP также отправляет и получает пакеты на сетевом уровне, обрабатывает передачу любых отброшенных пакетов, управляет потоком и гарантирует, что все пакеты достигнут пункта назначения.
Хорошим примером того, как это работает на практике, является отправка электронной почты с помощью SMTP с почтового сервера. Чтобы начать процесс, уровень TCP на сервере делит сообщение на пакеты, нумерует их и пересылает на уровень IP, который затем транспортирует каждый пакет на сервер электронной почты назначения. Когда пакеты прибывают, они возвращаются на уровень TCP для повторной сборки в исходный формат сообщения и возвращаются на сервер электронной почты, который доставляет сообщение в почтовый ящик пользователя.
TCP/IP использует трехстороннее рукопожатие для установления соединения между устройством и сервером, что обеспечивает одновременную передачу нескольких соединений TCP-сокета в обоих направлениях. И устройство, и сервер должны синхронизировать и подтверждать пакеты до начала связи, после чего они могут согласовывать, разделять и передавать соединения сокетов TCP.
Модель TCP/IP определяет, как устройства должны передавать данные между собой, и обеспечивает связь по сетям и на большие расстояния. Модель представляет, как данные обмениваются и организуются в сетях. Он разделен на четыре уровня, которые устанавливают стандарты для обмена данными и представляют, как данные обрабатываются и упаковываются при доставке между приложениями, устройствами и серверами.
Ниже перечислены четыре уровня модели TCP/IP:
Пакеты данных, отправляемые по протоколу TCP/IP, не являются конфиденциальными, то есть их можно увидеть или перехватить. По этой причине крайне важно избегать использования общедоступных сетей Wi-Fi для отправки личных данных и обеспечивать шифрование информации. Одним из способов шифрования данных, передаваемых через TCP/IP, является использование виртуальной частной сети (VPN).
Адрес TCP/IP может потребоваться для настройки сети и, скорее всего, потребуется в локальной сети.
Поиск общедоступного IP-адреса — это простой процесс, который можно обнаружить с помощью различных онлайн-инструментов. Эти инструменты быстро определяют IP-адрес используемого устройства, а также IP-адрес хоста пользователя, интернет-провайдера (ISP), удаленный порт и тип используемого браузера, устройства и операционной системы.
Другой способ обнаружения TCP/IP — через страницу администрирования маршрутизатора, на которой отображается текущий общедоступный IP-адрес пользователя, IP-адрес маршрутизатора, маска подсети и другая сетевая информация.
Fortinet позволяет организациям безопасно обмениваться данными и передавать их по модели TCP/IP с помощью своих VPN-решений FortiGate для защиты интернет-протокола (IPsec)/уровня защищенных сокетов (SSL). Высокопроизводительные, масштабируемые крипто-VPN компании Fortinet защищают организации и их пользователей от сложных кибератак, таких как атаки типа «человек посередине» (MITM), а также от угрозы потери данных, когда данные передаются с высокой скоростью. Это очень важно для данных, передаваемых через TCP/IP, который не защищает пакеты данных во время их движения.
Решения Fortinet VPN защищают связь организаций через Интернет, по нескольким сетям и между конечными точками. Он делает это с помощью технологий IPsec и SSL, используя аппаратное ускорение Fortinet FortiASIC, чтобы гарантировать высокопроизводительную связь и конфиденциальность данных.
Виртуальные частные сети Fortinet маскируют IP-адрес пользователя и создают частное соединение для обмена данными независимо от безопасности используемого интернет-соединения. Они устанавливают безопасные соединения, шифруя данные, передаваемые между приложениями и устройствами. Это устраняет риск раскрытия конфиденциальных данных третьим лицам при передаче по TCP/IP, а также скрывает историю посещенных страниц пользователей, IP-адреса, местоположения, действия в Интернете и другую информацию об устройстве.
TCP позволяет передавать данные между приложениями и устройствами в сети и используется в модели TCP/IP. Он предназначен для разбивки сообщения, такого как электронная почта, на пакеты данных, чтобы гарантировать, что сообщение успешно и как можно быстрее достигнет адресата.
TCP, что означает «Протокол управления передачей», представляет собой стандарт связи для доставки данных и сообщений по сетям. TCP — это базовый стандарт, определяющий правила Интернета, и распространенный протокол, используемый для доставки данных в цифровой сети.
TCP — это протокол или стандарт, используемый для обеспечения успешной доставки данных из одного приложения или устройства в другое. TCP является частью протокола управления передачей/интернет-протокола (TCP/IP), который представляет собой набор протоколов, первоначально разработанных Министерством обороны США для поддержки построения Интернета. Модель TCP/IP состоит из нескольких типов протоколов, включая TCP и IP, протокол разрешения адресов (ARP), протокол управляющих сообщений Интернета (ICMP), протокол обратного разрешения адресов (RARP) и протокол пользовательских дейтаграмм (UDP).
TCP является наиболее часто используемым из этих протоколов и отвечает за большую часть трафика, используемого в сети TCP/IP. UDP — это альтернатива TCP, которая не обеспечивает исправление ошибок, менее надежна и имеет меньшие накладные расходы, что делает ее идеальной для потоковой передачи.
Практически все всемирная HTTP-связь переносится TCP/IP, популярный многоуровневый набор сетевых протоколов с коммутацией пакетов, на котором говорят компьютеров и сетевых устройств по всему миру. Клиентское приложение может открыть соединение TCP/IP с серверным приложением, работающим только о любой точке мира. Как только соединение установлено, обмен сообщениями между клиентом и компьютеры сервера никогда не будут потеряны, повреждены или получено не по порядку. [1]
Допустим, вам нужен последний прайс-лист на электроинструменты от Магазин оборудования Джо:
http://www.joes-hardware.com:80/power-tools.html |
При получении этого URL-адреса ваш браузер выполняет шаги, показанные на рис. 4-1. На шагах 1-3 IP-адрес и номер порта сервера извлекаются из URL. Устанавливается TCP-соединение с веб-сервер на шаге 4, и сообщение с запросом отправляется через соединение на шаге 5. Ответ считывается на шаге 6, и соединение закрывается на шаге 7.
Рис. 4-1. Веб-браузеры взаимодействуют с веб-серверами через TCP-соединения
HTTP-соединения на самом деле ничего не значат больше, чем соединения TCP, плюс несколько правил их использования. TCP-соединения — это надежные соединения в Интернете. Отправлять данные точно и быстро, вам необходимо знать основы ПТС. [2]
TCP дает HTTP надежный бит труба . Байты вставлены в одну сторону TCP соединение выходит с другой стороны правильно и в правильном порядке (см. рис. 4-2).
Рис. 4-2. TCP передает данные HTTP по порядку и без искажений
TCP отправляет данные небольшими порциями, называемыми IP пакеты (или IP-датаграммы ). Таким образом, HTTP является верхним уровнем в «стек протоколов» «HTTP через TCP через IP», как изображен на рис. 4-3а. Безопасный вариант, HTTPS, вставляет слой криптографического шифрования (называемый TLS или SSL) между HTTP и TCP (рис. 4-3b).
Рис. 4-3. Стеки сетевых протоколов HTTP и HTTPS
Когда HTTP хочет передать сообщение, он передает содержимое данные сообщения по порядку через открытое TCP-соединение. TCP берет на себя поток данных, разбивает поток данных на куски, называемые сегменты и транспортирует сегменты через Интернет внутри конвертов, называемых IP-пакеты (см. рис. 4-4). Этим всем занимается программное обеспечение TCP/IP; программист HTTP ничего из этого не видит.
Каждый сегмент TCP переносится IP-пакетом с одного IP-адреса на другой Айпи адрес. Каждый из этих IP-пакетов содержит:
Заголовок IP-пакета (обычно 20 байт)
Заголовок сегмента TCP (обычно 20 байт)
Фрагмент данных TCP (0 или более байтов) содержит заголовок IP IP-адреса источника и получателя, размер и другие флаги. Заголовок сегмента TCP содержит порт TCP числа, флаги управления TCP и числовые значения, используемые для упорядочения данных и проверка целостности.
Рис. 4-4. IP-пакеты несут сегменты TCP, которые несут фрагменты потока данных TCP 9.0005
Компьютер может иметь несколько открытых TCP-соединений в любой момент времени. TCP сохраняет все эти соединения прямо через порт номера .
Номера портов похожи на добавочные телефоны сотрудников. Точно так же, как основной номер телефона компании позволяет вам стойка регистрации и расширение доставят вас к нужному сотруднику, IP-адрес доставит вас к нужному компьютеру, а номер порта вам нужное приложение. Соединение TCP отличается четырьмя ценности:
Вместе эти четыре значения однозначно определяют соединение. Два разные TCP-соединения не могут иметь одинаковые значения для все четыре компонента адреса (но разные соединения могут иметь одинаковые значения для некоторых компонентов).
На рис. 4-5 показаны четыре соединения: A, B, C и D. Соответствующая информация для каждого порта указана в таблице 4-1.
Таблица 4-1. Значения TCP-соединения
Соединение | IP-адрес источника | Исходный порт | IP-адрес назначения | Порт назначения |
---|---|---|---|---|
А | 209. 1.32.34 | 2034 | 204.62.128.58 | 4133 |
Б | 209.1.32.35 | 3227 | 204.62.128.58 | 4140 |
С | 209.1.32.35 | 3105 | 207.25.71.25 | 80 |
Д | 209. 1.33.89 | 5100 | 207.25.71.25 | 80 |
Рис. 4-5. Четыре различных соединения TCP
Обратите внимание, что некоторые соединения используют один и тот же порт назначения номер (оба C и D имеют порт назначения 80). Некоторые из соединения имеют один и тот же исходный IP-адрес (B и C). У некоторых есть один и тот же IP-адрес назначения (A и B, C и D). Но нет двух разные соединения имеют все четыре одинаковых значения.
Операционные системы предоставляют различные средства для управления их TCP-соединения. Давайте кратко рассмотрим один TCP интерфейс программирования, чтобы сделать вещи конкретными. В Таблице 4-2 показаны некоторые из основных интерфейсов. посредством API сокетов. Этот API сокетов скрывает все подробности TCP и IP от программиста HTTP. API сокетов был сначала разрабатывался для операционной системы Unix, но сейчас есть варианты доступен почти для каждой операционной системы и языка.
Таблица 4-2. Общие функции интерфейса сокетов для программирования соединений TCP
вызов API сокетов | Описание |
---|---|
с = сокет(<параметры>) | Создает новый безымянный неприсоединенный сокет. |
привязка(и, <локальный IP:порт>) | Назначает сокету локальный номер порта и интерфейс. |
подключение(я, <удаленный IP:порт>) | Устанавливает TCP-соединение с локальным сокетом и удаленным хостом и порт. |
слушать(и,…) | Помечает локальный сокет как разрешенный для приема соединений. |
с2 = принять(-а) | Ожидает, пока кто-нибудь установит соединение с локальным портом. |
n = чтение (s, буфер, n) | Пытается прочитать n байтов из сокета в буфер. |
n = запись (s, буфер, n) | Пытается записать n байтов из буфера в сокет. |
близко(ые) | Полностью закрывает TCP-соединение. |
выключение(и,<сторона>) | Закрывает только вход или выход соединения TCP. |
getockopt(s, . . . ) | Считывает значение параметра конфигурации внутреннего сокета. |
setsockopt(s, . . . ) | Изменяет значение параметра конфигурации внутреннего сокета. |
API сокетов позволяет создавать TCP структуры данных конечной точки, подключите эти конечные точки к удаленному серверу Конечные точки TCP, а также чтение и запись потоков данных. TCP API скрывает все детали квитирования основного сетевого протокола и сегментация и повторная сборка потока данных TCP в и из IP пакеты.
На рис. 4-1 мы показали, как веб-браузер может Загрузите веб-страницу power-tools.html с Магазин оборудования Джо, использующий HTTP. Псевдокод в Рисунок 4-6 показывает, как мы можем использовать сокеты. API для выделения шагов, которые клиент и сервер могут выполнить для реализовать эту HTTP-транзакцию.
Рис. 4-6. Как TCP-клиенты и серверы взаимодействуют с помощью интерфейса TCP-сокетов
Начнем с веб-сервера, ожидающего соединения (рис. 4-6, S4). Клиент определяет IP-адрес и номер порта из URL-адреса и переходит к установлению TCP-соединения на сервер (Рисунок 4-6, C3). Создание подключение может занять некоторое время, в зависимости от того, насколько далеко находится сервер, нагрузка на сервер и загруженность интернета.
После установки соединения клиент отправляет HTTP-запрос (Рисунок 4-6, C5), и сервер читает его (Рисунок 4-6, S6). Как только сервер получает весь запрос сообщение, обрабатывает запрос, выполняет запрошенное действие (Рисунок 4-6, S7) и записывает данные обратно в клиент. Клиент читает его (рис. 4-6, C6) и обрабатывает данные ответа (рис. 4-6, C7).
[1] Через сообщения не будет потерян или поврежден, связь между клиент и сервер могут быть разделены, если компьютер или сеть сломаются. В в этом случае клиент и сервер уведомляются о связи авария.
[2] Если вы пытаетесь написать сложный HTTP приложений, и особенно если вы хотите, чтобы они были быстрыми, вы захотите узнать намного больше о внутренностях и производительность TCP, чем мы обсуждаем в этой главе. Мы рекомендуем книги «TCP/IP Illustrated» У. Ричард Стивенс (Эддисон Уэсли).
Получите HTTP: Полное руководство прямо сейчас с обучающей платформой O’Reilly.
члена O’Reilly знакомятся с книгами, живыми мероприятиями, курсами, подобранными в зависимости от должности, и многим другим от O’Reilly и почти 200 ведущих издателей.