Протокол TCP

Протокол TCP Протокол TCP Радик Усманов radik@binep.ac.ru Оригинальная версия документа RFC793 размещается на сервере ISI (Information Sciences Institute ): URL - http://info.internet.isi.edu/in-notes/rfc/files/rfc793.txt Vit - в ДРКБ публикуется в сильно сокращённом варианте 1. Введение Протокол управления передачей (TCP) предназначен для использования в качестве надежного протокола общения между хост-компьютерами в коммуникационных компьютерных сетях с коммутацией пакетов, а также в системах, объединяющих такие сети. Данный документ описывает функции, которые должны выполняться прото- колом управления передачей, программу, которая реализует протокол, а также ее интерфейс с программами или пользователями, нуждающимися в ее услугах. 1.1 Мотивация Компьютерные коммуникационные системы играют все более важную роль в военных, правительственных и гражданских приложениях. Этот документ в первую очередь освещает требования к компьютерным коммуникациям в во- енной области, и особенно к устойчивости в условиях недостаточной на- дежности коммуникаций и возможности перегрузок. Тем не менее, многие из этих проблем имеют место также в гражданском и правительственном секторе. В условиях, когда стратегические и тактические сети компьютерных ком- муникаций возникают и исчезают, важно обеспечить средства для их со- единения, а также стандартные протоколы коммуникации между процесса- ми, которые бы поддерживали большой диапазон прикладных программ. Предвидя потребность в таких стандартах, Представительство Секретари- ата Обороны по научно-исследовательским и опытно- конструкторским ра- ботам предъявило протокол управления передачей (Transmission Control Protocol - TCP), описанный здесь, на основе стандартизации DoD прото- кола коммуникаций между процессами. TCP - это протокол обеспечения надежности прямых соединений, создан- ный для многоуровневой иерархии протоколов, поддерживающих межсетевые приложения. Протокол TCP обеспечивает надежность коммуникаций между парами процессов на хост-компьютерах, включенных в различные ком- пьютерные коммуникационные сети, которые объединены в единую систему. В отношении надежности протоколов более низкого, чем TCP, уровня сделаны весьма скромные запросы. TCP предполагает, что он может получить простой, потенциально ненадежный сервис для своих датаграмм со стороны протоколов нижнего уровня. В принципе, протокол TCP должен быть работоспособен на большом наборе коммуникационных систем, начиная с кабельных соединений и кончая сетями с переключением пакетов или электрических цепей. Протокол TCP основывается на концепциях, впервые описанных авторами Cerf и Kahn в документе [1]. TCP занимает в многоуровневой архитек- туре протоколов нишу непосредственно над протоколом Internet, который позволяет протоколу TCP отправлять и получать сегменты информации пе- ременной длины, заключенные в оболочку Internet датаграмм. Internet датаграмма предоставляет средства для адресации отправителя и получа- теля сегментов TCP в различных сетях. Протокол Internet также осу- ществляет любую фрагментацию и сборку сегментов TCP, необходимую для осуществления передачи и доставки через множество сетей и промежуточ- ных шлюзов. Протокол Internet также обработывает информацию о приори- тете, классификации безопасности, а также осуществляет разграничение TCP сегментов. Так что данная информация может быть передана напрямую через множество сетей. Уровни протоколов +----------------------+ | верхний уровень | +----------------------+ | TCP | +----------------------+ | протокол Internet | +----------------------+ |коммуникационная сеть | +----------------------+ Большая часть этого документа написана всвязи с реализациями TCP про- токола, которые вместе с протоколами более высокого уровня присут- ствуют на хост-компьютере. Некоторые компьютерные системы будут вклю- чаться в сети через главные компьютеры, содержащие протоколы уровней TCP и Internet, а также специфическое сетевое программое обеспечение. Спецификация TCP описывает ее интерфейс с протоколами более высокого уровня, которые оказались осуществимы даже в случае главного компью- тера, если реализован соответствующий протокол общения между хост- компьютером и главным компьютером. 1.2 Цель Протокол TCP обязан обеспечить надежный сервис для коммуникаций между процессами в многосетевой системе. Протокол TCP должен быть общим протоколом для коммуникаций между хост-компьютерами во множестве се- тей. 1.4 Интерфейсы Протокол TCP взаимодействует с одной стороны с пользователем или при- кладной программой, а с другой - с протоколом более низкого уровня, таким как протокол Internet. Интерфейс между прикладным процессом и протоколом TCP мы поясняем с приемлемой детализацией. Этот интерфейс состоит из набора вызовов, которые похожи на вызовы операционной системы, предоставляемые при- кладному процессу для управления файлами. Например, в этом случае имеются вызовы для открытия и закрытия соединений, для отправки и по- лучения данных на установленных соединениях. Предполагается также, что протокол TCP сможет асинхронно взаимодействовать с прикладными программами. Хотя разработчикам TCP протокола и предоставлена значи- тельная свобода в создании интерфейсов, которые соответствуют свой- ствам конкретной операционной системы, все же от любой приемлемой ре- ализации требуются некие обязательные минимальные функции интерфейса между протоколом TCP и пользователем. Интерфейс между протоколом TCP и протоколами более низкого уровня за- дан в значительно меньшей степени, за исключением того, что должен существовать некий механизм, с помощью которого эти два уровня могут асинхронно обмениваться информацией друг с другом. Обычно полагают, что протокол нижнего уровня задает данный интерфейс. Протокол TCP спроектирован так, чтобы работать с весьма разнообразной средой объ- единенных компьютерных сетей. В данном документе предполагается, что протокол более низкого уровня - это Internet [2]. 1.5 Действие Как указывалось ранее, главной целью протокола TCP является обеспече- ние надежного, безопасного сервиса для логических цепей или соедине- ний между парами процессов. Чтобы обеспечить такой сервис, основыва- ясь на менее надежных коммуникациях Internet, система должна иметь возможности для работы в следующих областях: - базовая передача данных - достоверность - управление потоком - разделение каналов - работа с соединениями - приоритет и безопасность Основные действия протокола TCP в каждой из этих областей описаны в следующих параграфах. Базовая передача данных Протокол TCP способен передавать непрерывные потоки октетов между своими клиентами в обоих направлениях, пакуя некое количес- тво октетов в сегменты для передачи через системы Internet. В об- щем случае протоколы TCP решают по своему усмотрению, когда произ- водить блокировку и передачу данных. Иногда пользователям бывает необходимо убедиться в том, что все данные, переданные ими протоколу TCP, уже отправлены. Для этой це- ли определена функция проталкивания (push). Чтобы убедиться в том, что данные, отправленные протоколу TCP, действительно переданы, отправитель указывает, что их следует протолкнуть к получателю. Проталкивание приводит к тому, что программы протокола TCP сразу осуществляют отправление и, соответственно, получение остающихся данных. Правильно осуществленное проталкивание может быть невидимо для получателя, а сама функция проталкивания может не иметь маркера границы записи. Достоверность Протокол TCP должен иметь защиту от разрушения данных, потери, дублирования и нарушения очередности получения, вызываемых коммуникационной системой Internet. Это достигается присвоением очередного номера каждому передаваемому октету, а также требованием подтверждения (ACK) от программы TCP, принимающей данные. Если подтверждения не получено в течении контрольного интервала времени, то данные посылаются повторно. Со стороны получателя номера очереди используются для восстановления очередности сегментов, которые могут быть получены в неправильном порядке, а также для ограничения возможности появления дубликатов. Повреждения фиксируются посредством добавления к каждому передаваемому сегменту контрольной суммы, проверки ее при получении и последующей ликвидации дефектных сегментов.

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...