Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Адресация в IP.doc
Скачиваний:
78
Добавлен:
13.02.2014
Размер:
296.96 Кб
Скачать

Протокол tcp

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

Протокол TCP используется в тех случаях, когда требуется надежная доставка сообщений. Он освобождает прикладные процессы от необходимости использовать таймауты и повторные передачи для обеспечения надежности. Наиболее типичными прикладными процессами, использующими TCP, являются FTP (File Transfer Protocol - протокол передачи файлов) и TELNET. Кроме того, TCP используют система X-Window, rcp (remote copy - удаленное копирование) и другие "r-команды". Большие возможности TCP даются не бесплатно. Реализация TCP требует большой производительности процессора и большой пропускной способности сети. Внутренняя структура модуля TCP гораздо сложнее структуры модуля UDP.

Прикладные процессы взаимодействуют с модулем TCP через порты. Для отдельных приложений выделяются общеизвестные номера портов. Например, сервер TELNET использует порт номер 23. Клиент TELNET может получать услуги от сервера, если установит соединение с TCP-портом 23 на его машине.

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

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

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

IP-адрес.

Относительно недавно пришлось столкнуться с проблемой на адаптерах Either Express 100TX PnP от Intel, при установке которых в систему приходилось ожидать загрузки около 5 минут на PII-450. При всём притом, что HDD при этом не работал в принципе. При установке постоянного IP-адреса, вместо динамически выделяемого, время загрузки удалось сократить более чем в 5 раз. Делается так: открывается Панель управления, в ней заходим в свойства Сети, там открываем свойства TCP/IP (внимание, имеется в виду настройки ЛОКАЛЬНОЙ сети, пожалуйста, не гробьте свой Интернет прописанием не тех IP-адресов). А в свойствах протокола прямо на первой вкладке меняем "получение IP адреса автоматически" на постоянный адрес из 4-х чисел. Пример 169.254.0.1 для первой машины, 169.254.0.2 для второй машины и т.д. Почему первые два числа такие? Потому что Microsoft считает неписаным стандартом (может и писаным, но сами знаете наше отношение к ими писанному), что в локальных сетях адреса IP начинаются с этих двух чисел.

Stanislav Vasiliev aka [Q-3D]-StaZ- Оптимизация Windows 98

(39) IP-адреса 169.254.X.X использовать нежелательно, кроме того, надо прописывать маску подсети. Например, можно задать адреса 192.168.0.1, 192.168.0.2, ... и маску подсети 255.255.255.0.

При построении (проектировании) внутренней IP-сети при выборе диапазонов статических адресов (либо диапазонов для выделения адресов DHCP-серверами) следует придерживаться рекомендаций RFC3330, в соответствии с которыми для использования во внутренних сетях зарезервированы следующие диапазоны адресов, установленные RFC1918:

10.0.0.0/8 (10.0.0.0–10.255.255.255); 1 сеть класса A

172.16.0.0/12 (172.16.0.0–172.31.255.255); 16 сетей класса B

192.168.0.0/16 (192.168.0.0–192.168.255.255); 256 сетей класса C

Согласно документу, данные диапазоны адресов не должны появляться в Интернете. В соответствии с RFC3330 любой маршрутизатор в Интернете, обнаружив IP-пакет с адресом из указанного диапазона (неважно, источник или приёмник), обязан его уничтожить.

Кроме того, есть ещё два зарезервированных диапазона адресов, однако они используются для специальных целей и не рекомендуются для прямого присвоения:

192.0.2.0/24 (192.0.2.0–192.0.2.255); 1 сеть класса C

169.254.0.0/16 (169.254.0.0–169.254.255.255); 256 сетей класса C

Первый диапазон (сеть) описывается как тестовый. Он должен использоваться в документации и примерах кода, где часто ассоциирован с доменными именами example.com и example.net.

Второй диапазон описан как "link local" — он используется для протокола автоматического присвоения адреса (APIPA, Automatic Private IP Adressing), то есть для самостоятельного присвоения рабочей станцией самой себе IP-адреса, если тот не указан в настройке протокола и не может быть получен с сервера DHCP (из-за его отсутствия или неработоспособности), в т.ч. при соединении двух компьютеров напрямую. Заманчивость использования этого диапазона адресов (особенно на DHCP-серверах) перечёркивается тем, что на самом деле диапазон состоит из 256 сетей класса C, более того, согласно протоколу APIPA присвоение адреса происходит по возможности в сети, которая отсутствует в ЛВС.

Не рекомендуется пытаться обойти это ограничение расширением маски сети, поскольку далеко не каждый аппаратный или программный маршрутизатор (в том числе сервер) способен понять и обработать такое отступление от правил. В худшем случае оборудование может вообще прекратить работать, и его придётся перегружать.

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

Соседние файлы в папке лекции