Добро пожаловать,
|
|
|
|
|
|
Поиск
|
Принципы диснеевской анимации были получены практическим путем, исходя из опыта конкретной повседневной работы. Они оказались столь эффективными, что их изучение стало обязательным сначала для аниматоров Диснея, а потом и для аниматоров всего мира. В целом это наиболее полный набор технологических приемов, необходимых для создания образа и его динамики в анимационном фильме.
Принципы диснеевской анимации имеют гораздо более широкое применение, чем область анимационного кино. Основанные на общих законах восприятия визуальной информации, они обеспечивают наилучший режим восприятия. Фильмы, построенные в соответствии с этими принципами, удобно и комфортно смотреть. Их успех как бы предопределен.
Этот цикл статей можно считать своего рода учебником по дизайну, пособием, которое рассмотрит как теоретические аспекты дизайна, так и историю дизайна и предложит пути воплощения в жизни полученных знаний.
|
|
|
я знал о борьбе Яндекса с белыми каталогами, но если честно - не подозревал о масштабах этой борьбы… А столкнулся я с этой проблемой (а именно “проблемой белых каталогов”) в связи с созданием нескольких новых сайтов и желанием на старте “нахаляву” немного им поднять ТИЦ. Нахаляву - то есть просто регистрируя новый сайт в белых каталогах, работа конечно крайне скучная и нудная, но простая и не требует затрат.
Для чего существуют белые каталоги? Думаю, не открою секрета, если скажу - для поднятия ТИЦ (то есть для поисковиков, а не для людей как бы, вот поэтому Яндекс и банит белые каталоги, особенно те, которые уж очень явно сделаны не для людей).
А чтоб белый каталог был полезен для этого самого поднятия, прямую ссылку с него должен увидеть Яндекс. А если каталог отсутствует в индексе Яндекса, зачем в нем регистрироваться? Есть, конечно, еще и другие поисковики, тот же Гугле, Рамблер, но все-таки большинство усилий SEO направлено именно на Яндекс.
С учетом всего этого я внимательно проверял каждый каталог или рейтинг перед регистрацией, чтобы не выполнять напрасную работу. И вот к какому тоскливому выводу я пришел - большинство подборок и списков белых каталогов оказались абсолютно бесполезны! Беру из списка первые 10-15 каталогов и проверяю такие параметры - ТИЦ, Google PR, наличие в индексе Яндекса и Гугла (кол-во страниц в выдаче).
Итог множества проверок такой: примерно 10-20% каталогов вообще мертвы, то есть просто давно заброшены и не работают, 70-80% имеют ТИЦ, какой-то PR и проиндексированы Google, но! в выдаче Яндекса либо 0 страниц, либо 1-2 - вот и приплыли… и только в среднем 1 из 10 каталогов жив и здравствует… Но это тоже зависит от подборки - в некоторых списках из первых 30-40 каталогов я не находил ни одного рабочего и полезного каталога (не “нулевки”).
Совершенно забавные данные я получил по одному из каталогов (видно, что ранее он был довольно продвинут) - каталог фигурировал под названием “Самый большой интернет каталог”, так вот в индексе Google оказалось 237000 страниц этого каталога! А в Яндексе - 0 (ноль), но Яндекс ТИЦ равен 375 - не так уж плохо, зато Google PR - ноль! вот с таким я столкнулся первый раз, но это уже за торговлю ссылками.
Попадались каталоги с ТИЦ более 1000, но отсутствующие в выдаче Яндекса.
Буквально сегодня видел (и не раз) рекламу в Бегуне - “Регистрируем в 4500 каталогов! Быстрая раскрутка, недорого! Вы сразу получите PR3 и ТИЦ +30?. Вдумываясь в текст, понимаешь истинный смысл - их 4.5 тыщи каталогов дадут вам прирост ТИЦ всего 30! ну а PR3 вообще никак не связано с регистрацией в каталогах - это достигается просто грамотной внутренней перелинковкой сайта, к примеру два наших сайта, запущенные в 2007 году, при первом же апе Google получили PR3, бэклинков к этому времени почти не было, ТИЦ тоже был почти нулевой. Хотя сейчас вроде Google ужесточает раздачу PR, теперь возможно получить “тройку” сразу будет непросто, по крайней мере многие сайты во время прошлого апдейта Google PR получили падение ПР, но опять-таки - большинство из них имели продажные ссылки.
В общем, делаем выводы - стоит ли регистрироваться в белых каталогах, стоит ли пользоваться услугами “оптовых регистраторов”, и как выбирать каталоги для регистрации. Регистрироваться вслепую - напрасно тратить время.
|
|
|
Каждый системный администратор знает, насколько важно регулярно проводить резервное копирование компьютерных систем и данных, а также иметь возможность восстанавливать любую или все из них в случае сбоя системы, аппаратной ошибки, стихийного бедствия или при потере данных в иной ситуации
В течение долгого времени ежедневное резервное копирование, как правило, предусматривало запись копий файлов на магнитную ленту. Обычно это происходило ночью в рамках пакетного задания, когда нет текущей работы. Периодически, возможно, раз в неделю, делалась полная копия всех данных и систем.
В рамках методики, получившей название резервного копирования со сжатием, файлы, как правило, сокращались за счет сжатия. При другом подходе, так называемом зеркальном копировании, этап сжатия пропускался, и информация просто записывалась на другой диск, благодаря чему резервные копии файлов могли читать и использовать обычные системные инструментальные средства.
Но объем данных, используемых и хранящихся в организациях, быстро растет. Кроме того, необходимо, чтобы системы работали непрерывно в течение более длительных периодов времени (в том числе и круглосуточно).
Учитывая, что период, в течение которого можно выполнять резервное копирование (так называемое окно резервного копирования) постоянно сокращается и увеличивается срок, необходимый для его выполнения, ИТ-специалисты оказались в тупиковой ситуации. Нельзя гарантировать постоянную готовность системы, если нет актуальных резервных копий, но и прерывать работу системы, даже на короткий период для того, чтобы сделать эти копии, тоже нельзя.
С целью решения этой задачи было разработано множество стратегий. Во-первых, частичное резервное копирование. Такой подход предусматривает создание полных резервных копий через регулярные интервалы, и позволяет сэкономить время на сохранении только тех файлов, которые изменились, при условии, что копии неизменившихся файлов уже есть.
Для того чтобы определить, какие файлы были модифицированы, программы резервного копирования анализируют дату и время модификации всех файлов в системе. Если оказывается, что файл менялся после того, как была сделана полная резервная копия, он будет включен в состав следующей частичной копии. Для восстановления файлов по отдельности или всей системы в целом необходимо сначала восстановить последнюю полную резервную копию, а затем последующую частичную копию. Очевидно, что операция восстановления такого типа сложнее, чем восстановление с полной копии.
По мере увеличения числа и размера меняющихся файлов создание таких частичных копий может занять почти столько же времени, сколько и полной копии, которую значительно проще восстанавливать. Поэтому иногда делают резервные копии только тех файлов, которые были изменены после даты создания последней частичной копии.
Такая трехэтапная схема получила название инкрементального резервного копирования, и она действительно позволяет сократить объем данных, резервные копии которых необходимо сделать. Такой подход кажется разумным до тех пор, пока вам не пришлось что-нибудь восстанавливать с таких копий. Сначала необходимо восстановить последнюю полную копию (и пока все хорошо), затем — последнюю частичную копию и, наконец, каждую из последовательно сделанных инкрементальных копий, созданных после даты последнего частичного сохранения.
Рассмотрим следующий пример. Предположим, что полная копия была сделана в субботу, а сбой в системе возник в следующую пятницу, причем частичные копии в течение этого времени делались каждый вечер. После восстановления полной резервной копии необходимо восстановить в хронологическом порядке резервные копии, созданные в субботу, понедельник, вторник, среду, четверг и в пятницу.
Помимо времени, которое потребуют все эти операции, не стоит забывать и о том, сколько времени займет установка и снятие всех соответствующих лент. Автоматическое аппаратное обеспечение, в том числе и библиотеки лент, и автоматы смены дисков, в определенной степени облегчают этот процесс, но восстановление частичной копии — занятие нетривиальное, особенно если ваши системы достаточно большие и их полная резервная копия делается реже, чем раз в неделю.
Инкрементальные и частичные резервные копии можно сочетать таким образом, чтобы первая включала в себя все изменения, сделанные с момента последней полной или частичной копии. Такой подход требует еще более тщательного контроля и регистрации магнитных лент, но позволяет быстрее восстановить систему.
Еще один недостаток этих схем резервного копирования состоит в том, что они не подходят для транзакционных систем и систем, опирающихся на базы данных реального времени, в которых крайне важно делать резервную копию каждой транзакции, изменения файла и всех операций записи на диск или ввода/вывода. Пока наилучшим решением для таких систем является непрерывная защита данных (CDP). С помощью CDP, которое также называют непрерывным или зависимым от времени резервным копированием, на диск или в другое место копируется каждая версия данных, которую сохраняет пользователь. При таком подходе вы можете восстановить данные в любой заданный момент, в том числе самую последнюю перед сбоем запись на диск или операцию ввода/вывода.
У CDP по сравнению с записью на RAID, тиражированием и зеркалированием есть важная отличительная особенность. Последние защищают данные только от аппаратной ошибки за счет сохранения самой свежей копии информации. Непрерывная защита данных к тому же помогает уберечь их от искажений, поскольку в этом случае можно точно определить момент, когда данные были повреждены. Единственный вопрос — это уровень детализации. Какой именно объем данных необходимо сохранять для каждого вида приложений? Весь файл или только изменения? Все почтовые ящики или только личные сообщения электронной почты? Файлы и индексы базы данных или журналы регистрации транзакций? Большинство продуктов категории CDP сохраняют только изменившиеся байты или блоки дисковой памяти, а не весь файл. Изменился один байт из 10-гигабайтного файла, и CDP сделает резервную копию только этого байта или соответствующего блока. Традиционные частичные и инкрементальные резервные копии сохраняют только все файлы целиком. В силу этого, для CDP зачастую требуется меньше места на носителе с резервной копией.
Несколько иной подход, который не считается полным CDP, опирается на методологию мгновенных снимков, предполагая запись полных состояний системы через регулярные интервалы. Мгновенные снимки включают в себя ссылки на исходный том, которые должны оставаться неизменными.
Как правило, эти снимки создаются очень быстро и их можно использовать для восстановления или воссоздания состояний данных, имевшихся в системе в некий момент. Но мгновенные снимки — это не резервные копии, и их необходимо сохранять отдельно, если они будут применяться для восстановления дисков после сбоев или других физических повреждений.
Все стратегии резервного копирования имеют как свои достоинства (простоту, экономию времени, экономичность), так и вытекающие из них недостатки
|
|
|
Если вы решили всерьез заняться продвижением вашего сайта в сети интернет, то без механизмов, которые бы отслеживали его посещаемость, вам не обойтись. Ведь именно благодаря им вы можете узнать, сколько к вам пришло посетителей, их географию (из какой страны), как много страниц они просмотрели, какие из этих страниц наиболее популярны.
Также есть очень важные параметры - заходы поисковых (индексирующих) ботов на ваш сайт и реферальные ссылки - откуда посетители зашли на ваш сайт - это может быть как поисковая машина, так и другой сайт.
В этой статье рассмотрим способы, как получить информацию о посетителях вашего сайта.
Тут есть три основных варианта:
1) самостоятельно анализировать log-файлы своего сайта (дает максимально точную информацию, но не все хостеры дают к ним доступ, про бесплатный хостинг и говорить не приходится). Отличной программой, которой сам давно пользуюсь и вам рекомендую, является WebLog Expert (http://www.weblogexpert.com/) Программа не бесплатная, а триал, но при желании всегда можно найти к ней "лекарство". Среди возможностей программы - строит цветные графики и диаграммы для отображения информации о всех данных статистики. Есть возможность вывода отчета об анализе в виде html, pdf или cvs (для импорта в Excel). Работать с программой очень просто - указал пусть к лог-файлу (можно и не распаковывать его, программа понимает архивы gz, zip, и tar.gz), потом нажимаем кнопку "analize" и смотрим отчет.
2) если у вас платный хостинг, то можно использовать встроенные в CPanel или DirectAdmin (у всех по-разному) скрипты типа Webalizer или AwStats. Как с ними работать - об этом должно быть написано в "Вопросах и ответах" (FAQ, ЧАВО) вашего хостинг-провайдера. Многие предпочитают использовать эти скрипты, чтобы не возиться с программами лог-анализаторами или не замусоривать свой сайт кнопками бесплатных сервисов статистики.
3) использовать специальные скрипты, как правило написанные на php, устанавливаются в директорию вашего сайта, используют для хранения информации базу данных MySQL. Самый известный представитель подобного рода скриптов - это CNStats (site). Больше чем уверен, что в мире существует немало его аналогов, но этот скрипт имеет русский интерфейс, что, согласитесь, немаловажно для нас. Среди недостатков - опять же платный, но есть и бесплатные версии с ограниченной функциональностью. БД быстро разрастается, особенно на посещаемом сайте - придется постоянно следить за размером и периодически чистить.
4) бесплатные сервисы статистики - их даже на просторах рунета огромное множество. Рассмотрим лишь самые известные и с качественным сервисом.
SpyLog - spylog.ru
После регистрации и установки счётчика мы получаем возможность анализировать следующие показатели сайта: хиты (сегодня, неделя, месяц), хосты, ссылающиеся страницы, популярные страницы ресурса, география посетителей по странам, хосты, операционные системы, браузеры, дисплеи. В этом списке отсутствует такой важный отчёт как «поисковые запросы» - это один из самых главных показателей эффективности оптимизации сайта и его индексации в поисковых машинах.
Top Mail.ru - top.mail.ru
Предоставляет достаточно полную статистику по сайту в т.ч. по поисковым машинам. Всего – 12 отчётов:
* Позиции в рейтинге
* Динамика визитов
* Время визитов
* Страницы
* Ссылки
* Поисковики
* Каталоги
* Браузеры
* Настройки
* География
* Сравнение аудиторий
* Мой top
Работает счётчик достаточно хорошо, иногда, даже лучше, чем вышеупомянутый SpyLog. Его хорошая работа во многом обуславливается тем, что имеется возможность разделить код счётчика на две части. Первую часть (которая считает посетителей) поставить в начало страницы, а вторую (отображающую сам счётчик) можно разместить в любом месте страницы.
Мой top позволяет определить некий круг сайтов и отслеживать их посещаемость, общих посетителей и рейтинг относительно друг друга, что очень приятно. С помощью данного топа можно отслеживать посещаемость ближайших конкурентов ресурса, причём, они об этом могут даже не знать. А вот для того, чтобы закрыть вашу статистику от других, можете поставить ее на пароль. Насчет стабильности работы Top Mail.ru ходят легенды - не знаю, как сейчас (в последнее время не использую этот сервис), но 2-3 месяца назад были у него частые глюки - статистика была недоступна, обнулялась (да, именно так - на счетчике было три нуля в столбик :)), один раз даже была обратная сортировка рейтинга - на первых местах оказались ресурсы с нулевой посещаемостью, а гранды - на последних.
Liveinternet.ru - liveinternet.ru
Пожалуй, самый качественный и информативный сервер сбора статистики (хотя больше известен своими online-дневниками). Дает любую нужную вам информацию - и посещаемость, и географию посетителей, источники трафика (поисковики, рефералы, букмарки). За небольшую плату (где-то 3$ в месяц) можно установить невидимый счетчик, т.е. кнопки liveinternet.ru не будет на вашем сайте, а статистика будет считаться. Также есть возможность закрыть статистику на пароль.
Catalog.i.ua - catalog.i.ua
Сравнительно новый сервер сбора статистики и каталог одновременно. Появился в ноябре 2006 года, но уже успел зарекомендовать себя как стабильный и точный сервис. Информацию о посетителях выдает как в виде графиков, таблиц, так и есть возможность импорта данных в cvs - для дальнейшего анализа в Excel. Отличительной чертой от подобных сервисов является возможность просмотра не только самой рефссылки, но и поисковой фразы, если был заход из поисковика.
Подведу итог вышесказанному. Какой вид анализа и сбора статистики вам выбрать - решайте сами. В чем могут быть ограничения - это бесплатный хостинг, на котором у вас не будет доступа к лог-файлам и возможность выполнения php-скпритов. Главное, если вы используете бесплатные сервисы сбора статистики, то не переусердствуйте - не нужно ставить их более 3-х штук - ведь это дополнительное время, которое потребуется на загрузку графического счетчика и ява-скрипта.
|
|
|
В стеке протоколов TCP/IP протокол TCP (Transmission Control Protocol) работает так же, как и протокол UDP, на транспортном уровне. Он обеспечивает надежную транспортировку данных между прикладными процессами путем установления логического соединения.
Сегменты TCP
Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом.
В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP, не ожидая заполнения буфера до уровня размера сегмента, немедленно передает указанные данные в сеть. О таких данных говорят, что они передаются вне потока - out of band.
Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет.
Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров (MTU) всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети.
Порты и установление TCP-соединений
В протоколе TCP также, как и в UDP, для связи с прикладными процессами используются порты. Номера портам присваиваются аналогичным образом: имеются стандартные, зарезервированные номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet), а менее известные приложения пользуются произвольно выбранными локальными номерами.
Однако в протоколе TCP порты используются несколько иным способом. Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений, и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновременно в обе стороны, то есть полнодуплексную передачу.
Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов (оконечных точек). Адрес каждой из оконечных точек включает IP-адрес (номер сети и номер компьютера) и номер порта. Одна оконечная точка может участвовать в нескольких соединениях.
Установление соединения выполняется в следующей последовательности:
* При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).
* После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.
* Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.
* Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.
* Сторона-инициатор открывает порт для приема и возвращает квитанцию. Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения.
Концепция квитирования
В рамках соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. Идея квитирования состоит в следующем.
Для того, чтобы можно было организовать повторную передачу искаженных данных отправитель нумерует отправляемые единицы передаваемых данных (далее для простоты называемые кадрами). Для каждого кадра отправитель ожидает от приемника так называемую положительную квитанцию - служебное сообщение, извещающее о том, что исходный кадр был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого кадра передатчик запускает таймер, и если по его истечению положительная квитанция на получена, то кадр считается утерянным. В некоторых протоколах приемник, в случае получения кадра с искаженными данными должен отправить отрицательную квитанцию - явное указание того, что данный кадр нужно передать повторно.
Существуют два подхода к организации процесса обмена положительными и отрицательными квитанциями: с простоями и с организацией "окна".
Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). В этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.
Во втором методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры ответных квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Обычно кадры при обмене нумеруются циклически, от 1 до W. При отправке кадра с номером 1 источнику разрешается передать еще W-1 кадров до получения квитанции на кадр 1. Если же за это время квитанция на кадр 1 так и не пришла, то процесс передачи приостанавливается, и по истечению некоторого тайм-аута кадр 1 считается утерянным (или квитанция на него утеряна) и он передается снова.
Если же поток квитанций поступает более-менее регулярно, в пределах допуска в W кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола.
Этот алгоритм называют алгоритмом скользящего окна. Действительно, при каждом получении квитанции окно перемещается (скользит), захватывая новые данные, которые разрешается передавать без подтверждения.
[pagebreak]
Реализация скользящего окна в протоколе TCP
В протоколе TCP реализована разновидность алгоритма квитирования с использованием окна. Особенность этого алгоритма состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байт неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP.
Квитанция посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции.
В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.
Выбор тайм-аута
Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP.
Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции.
При выборе величины тайм-аута должны учитываться скорость и надежность физических линий связи, их протяженность и многие другие подобные факторы. В протоколе TCP тайм-аут определяется с помощью достаточно сложного адаптивного алгоритма, идея которого состоит в следующем. При каждой передаче засекается время от момента отправки сегмента до прихода квитанции о его приеме (время оборота).
Получаемые значения времен оборота усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается с тем, чтобы усилить влияние последних замеров. В качестве тайм-аута выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2. В сетях с большим разбросом времени оборота при выборе тайм-аута учитывается и дисперсия этой величины.
Реакция на перегрузку сети
Варьируя величину окна, можно повлиять на загрузку сети. Чем больше окно, тем большую порцию неподтвержденных данных можно послать в сеть. Если сеть не справляется с нагрузкой, то возникают очереди в промежуточных узлах-маршрутизаторах и в конечных узлах-компьютерах.
При переполнении приемного буфера конечного узла "перегруженный" протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера. Однако даже после этого приложение может послать сообщение на отказавшийся от приема порт. Для этого, сообщение должно сопровождаться пометкой "срочно" (бит URG в запросе установлен в 1). В такой ситуации порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находящиеся там данные.
После приема квитанции с нулевым значением окна протокол-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если протокол-приемник уже готов принимать информацию, то в ответ на контрольный запрос он посылает квитанцию с указанием ненулевого размера окна.
Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизовано изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцировано управлять интенсивностью потока данных в разных частях сети.
Формат сообщений TCP
Сообщения протокола TCP называются сегментами и состоят из заголовка и блока данных. Заголовок сегмента имеет следующие поля:
* Порт источника (SOURS PORT) занимает 2 байта, идентифицирует процесс-отправитель;
* Порт назначения (DESTINATION PORT) занимает 2 байта, идентифицирует процесс-получатель;
* Последовательный номер (SEQUENCE NUMBER) занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных;
* Подтвержденный номер (ACKNOWLEDGEMENT NUMBER) занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции;
* Длина заголовка (HLEN) занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле Опции;
* Резерв (RESERVED) занимает 6 битов, поле зарезервировано для последующего использования;
* Кодовые биты (CODE BITS) занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля:
* URG - срочное сообщение;
* ACK - квитанция на принятый сегмент;
* PSH - запрос на отправку сообщения без ожидания заполнения буфера;
* RST - запрос на восстановление соединения;
* SYN - сообщение используемое для синхронизации счетчиков переданных данных при установлении соединения;
* FIN - признак достижения передающей стороной последнего байта в потоке передаваемых данных.
* Окно (WINDOW) занимает 2 байта, содержит объявляемое значение размера окна в байтах;
* Контрольная сумма (CHECKSUM) занимает 2 байта, рассчитывается по сегменту;
* Указатель срочности (URGENT POINTER) занимает 2 байта, используется совместно с кодовым битом URG, указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера;
* Опции (OPTIONS) - это поле имеет переменную длину и может вообще отсутствовать, максимальная величина поля 3 байта; используется для решения вспомогательных задач, например, при выборе максимального размера сегмента;
* Заполнитель (PADDING) может иметь переменную длину, представляет собой фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.
|
|
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском
.
книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать
|
|