Дальнобойщики 3: Покорение Америки: различия между версиями

Материал из RnR Wiki
Перейти к навигации Перейти к поиску
(несколько слов о версии на Unity3D)
м (test)
Строка 149: Строка 149:
 
{{СофтЛаб-НСК}}
 
{{СофтЛаб-НСК}}
  
 +
==YR==
 +
Протокол маршрутной информации (Routing Information Protocol, RIP) — внутренний протокол маршрутизации дистанционно-векторного типа. Будучи одним из наиболее ранних протоколов обмена маршрутной информацией, он до сих пор чрезвычайно распространен в вычислительных сетях ввиду простоты реализации. Версии RIP имеются как для сетей TCP/IP, так и для сетей IPX/SPX компании Novell.
 +
 +
В настоящее время протокол RIP для IP представлен двумя версиями. RIP v.1 не поддерживает маски, т. е. он распространяет между маршрутизаторами информацию только о номерах сетей и расстояниях до них, но не о масках этих сетей, считая, что все адреса принадлежат к стандартным классам A, B или С. RIP v.2 передает данные о масках сетей, поэтому он в большей степени соответствует современным требованиям. Так как при построении таблиц маршрутизации работа второй версии принципиально не отличается от первой, то в дальнейшем для упрощения записей будет описываться работа первой версии.
 +
 +
В качестве расстояния до сети стандарты протокола RIP разрешают использовать различные виды метрик: число транзитных узлов, пропускную способность, вносимые задержки и надежность сетей (т. е. соответствующие признакам D, T и R в поле «Качество сервиса» пакета IP), а также любые их комбинации. Метрика должна обладать свойством аддитивности — метрика составного пути должна быть равна сумме метрик составляющих этого пути. В большинстве реализаций RIP применяется простейшая метрика — количество транзитных узлов, т. е. промежуточных маршрутизаторов, которые пакету нужно преодолеть для достижения сети назначения.
 +
 +
Процесс построения таблиц маршрутизации с помощью протокола RIP мы рассмотрим на примере составной сети, изображенной на Рисунке 1.
 +
 +
СОЗДАНИЕ МИНИМАЛЬНЫХ ТАБЛИЦ
 +
Как видим, восемь сетей IP связаны четырьмя маршрутизаторами с идентификаторами M1, M2, M3 и M4. Маршрутизаторы, работающие по протоколу RIP, могут иметь идентификаторы, однако они не влияют на работу протокола. В сообщениях RIP эти идентификаторы не передаются.
 +
 +
В исходном состоянии в каждом маршрутизаторе программным обеспечением стека TCP/IP автоматически создается минимальная таблица маршрутизации, где представлены только непосредственно подсоединенные сети. На рисунке адреса портов маршрутизаторов, в отличие от адресов сетей, помещены в овалы.
 +
 +
Примерный вид минимальной таблицы маршрутизации в М1 приведен в Таблице 1. Минимальные таблицы маршрутизации в других маршрутизаторах будут выглядеть аналогично: например, таблица маршрутизатора М2 состоит из трех записей (см. Таблицу 2).
 +
 +
После инициализации каждого маршрутизатора он начинает посылать своим соседям сообщения протокола RIP, куда помещается его минимальная таблица. Они передаются в пакетах протокола UDP и содержат информацию о двух параметрах каждой сети: ее IP-адрес и расстояние до нее от передающего сообщение маршрутизатора.
 +
 +
Соседи — это те маршрутизаторы, которым данный маршрутизатор может передать пакет IP непосредственно по какой-либо сети, к которой он подключен напрямую, не пользуясь услугами промежуточных маршрутизаторов. Например, соседние маршрутизаторы для М1 — маршрутизаторы М2 и М3, а для М4 — М2 и М3.
 +
 +
Таким образом, маршрутизатор М1 передает маршрутизатору М2 и М3 следующее сообщение:
 +
 +
сеть 201.36.14.0, расстояние 1,
 +
 +
сеть 132.11.0.0, расстояние 1,
 +
 +
сеть 194.27.18.0, расстояние 1.
 +
 +
ОБРАБОТКА ПОЛУЧЕННОЙ ОТ СОСЕДЕЙ ИНФОРМАЦИИ
 +
После получения аналогичных сообщений от маршрутизаторов М2 и М3 маршрутизатор М1 увеличивает каждое полученное поле метрики на единицу и запоминает, через какой порт и от какого маршрутизатора поступила новая информация (его адрес станет адресом следующего маршрутизатора, если эта запись будет внесена в таблицу). Затем маршрутизатор сравнивает новую информацию с той, которая хранится в его таблице маршрутизации (см. Таблицу 3).
 +
 +
Записи с четвертой по девятую получены от соседних маршрутизаторов, и они претендуют на включение в таблицу. Однако только записи с четвертой по седьмую попадают в таблицу, а восьмая и девятая — нет. Это происходит потому, что они содержат данные об уже имеющихся в таблице М1 сетях, а расстояние до них больше, чем в существующих записях.
 +
 +
Протокол RIP замещает запись о какой-либо сети только в том случае, если метрика новой информации лучше (расстояние в транзитных узлах меньше), чем прежняя. В результате в таблице маршрутизации о каждой сети остается только одна запись, так же как и при наличии нескольких равнозначных в отношении расстояния путей к одной и той же сети остается та, что была получена раньше всех. Для этого правила существует исключение — если худшая информация о какой-либо сети пришла от того же маршрутизатора, на основании сообщения которого была создана данная запись, то она замещает лучшую.
 +
 +
Аналогичные операции с новой информацией выполняют и остальные маршрутизаторы сети.
 +
 +
РАССЫЛКА НОВОЙ ТАБЛИЦЫ СОСЕДЯМ
 +
Каждый маршрутизатор отсылает новое сообщение RIP всем своим соседям, помещая в нем данные обо всех известных ему сетях — как непосредственно подключенных, так и удаленных, о которых маршрутизатор узнал из сообщений RIP.
 +
 +
Пятый этап повторяет третий: маршрутизаторы принимают сообщения RIP, обрабатывают содержащуюся в них информацию и на ее основании корректируют свои таблицы маршрутизации.
 +
 +
Посмотрим, как это делает маршрутизатор М1 (см. Таблицу 4). Маршрутизатор М1 получил от М3 информацию о сети 132.15.0.0, которую тот в свою очередь на предыдущем цикле работы получил от маршрутизатора М4. М1 уже знает о сети 132.15.0.0, причем предыдущее сообщение имеет лучшую метрику, чем новое, поэтому вновь поступившее отбрасывается.
 +
 +
О сети 202.101.16.0 маршрутизатор М1 узнает на этом этапе впервые, данные о ней приходят сразу от двух соседей — от М3 и М4. Поскольку метрики указаны одинаковые, то в таблицу попадает информация, пришедшая раньше. В нашем примере считается, что маршрутизатор М2 опередил маршрутизатор М3 и первым переслал свое сообщение RIP маршрутизатору М1.
 +
 +
Если маршрутизаторы периодически повторяют этапы рассылки и обработки сообщений RIP, то за конечное время в сети установится корректный режим маршрутизации. Это понятие предполагает такое состояние таблиц маршрутизации, когда любая сеть будет достижима с помощью некоторого рационального маршрута. Пакеты будут доходить до адресатов и не зацикливаться в петлях, подобных той, которую на Рисунке 1 образуют маршрутизаторы M1-M2-M3-M4.
 +
 +
Очевидно, что если в сети все маршрутизаторы, их интерфейсы и соединяющие их каналы связи постоянно работоспособны, то объявления по протоколу RIP можно делать достаточно редко, например один раз в день. Однако в сетях постоянно происходят изменения — меняется как работоспособность маршрутизаторов и каналов, так и сами маршрутизаторы; каналы могут добавляться в существующую сеть или выводиться из ее состава.
 +
 +
Для адаптации к новым условиям в сети протокол RIP использует ряд механизмов.
 +
 +
АДАПТАЦИЯ МАРШРУТИЗАТОРОВ RIP К ИЗМЕНЕНИЯМ СОСТОЯНИЯ СЕТИ
 +
К появлению новых маршрутов маршрутизаторы RIP приспосабливаются без труда: в очередном сообщении своим соседям они передают новую информацию, так что та постепенно становится известна всем маршрутизаторам сети. А вот к отрицательным изменениям, связанным с потерей какого-либо маршрута, им адаптироваться сложнее. Дело в том, что в формате сообщений протокола RIP нет поля, где бы содержалась информация об отсутствии пути к данной сети.
 +
 +
Понятно, что некоторый маршрут более недействителен, можно двумя способами:
 +
 +
на основании истечения времени жизни маршрута;
 +
указанием специального расстояния до сети, ставшей недоступной, а именно — бесконечности.
 +
Для реализации первого механизма каждая запись таблицы маршрутизации (как и записи таблицы продвижения моста/коммутатора), полученная по протоколу RIP, имеет время жизни (TTL). При поступлении очередного сообщения RIP с подтверждением того, что данная запись действительна, таймер TTL устанавливается в исходное состояние, а затем из него каждую секунду вычитается единица. Если за время тайм-аута не придет новое маршрутное сообщение об этом маршруте, то он отмечается как недействительный.
 +
 +
Время ожидания связано с периодом рассылки векторов по сети. Период рассылки в RIP равен 30 с, а в качестве тайм-аута принято шестикратное значение периода рассылки, т. е. 180 с. Шестикратный запас времени нужен для уверенности в том, что проблемы заключаются не в потерях сообщений RIP (а это возможно, так как RIP использует транспортный протокол UDP, который не гарантирует доставку сообщений), а в том, что сеть действительно стала недоступна. Если какой-либо маршрутизатор выходит из строя, то через 180 с все порожденные этим маршрутизатором записи станут недействительными у его ближайших соседей. После этого процесс повторится уже для соседей ближайших соседей — они вычеркнут подобные записи через 360 с, так как первые 180 с ближайшие соседи еще передавали сообщения об этих записях. Как видим, сведения о недоступных через отказавший маршрутизатор сетях распространяются по сети не очень быстро, время распространения кратно времени жизни записи, а коэффициент кратности равен количеству транзитных узлов между самыми дальними маршрутизаторами сети. В этом и заключается одна из причин выбора в качестве периода рассылки небольшой величины в 30 с.
 +
 +
Если сбой происходит лишь на одном из интерфейсов маршрутизатора или в сети, через которую он связан с каким-либо соседом, то ситуация сводится к только что описанной — механизм тайм-аута вновь приводится в действие, и ставшие недействительными маршруты постепенно будут вычеркнуты из всех маршрутизаторов сети.
 +
 +
Тайм-аут работает в тех случаях, когда маршрутизатор не может послать соседям сообщение о недоступном маршруте по причине собственной неработоспособности либо неработоспособности линии связи, по которой можно было бы передать сообщение.
 +
 +
Если пересылка возможна, то маршрутизаторы RIP не используют специальный признак в сообщении, а указывают бесконечное расстояние до сети, причем в протоколе RIP оно выбрано равным 16 транзитным узлам (при использовании другой метрики маршрутизатору необходимо указать ее значение, считающееся бесконечностью). При поступлении сообщения, в котором расстояние до некоторой сети равно 16 (или 15, что приводит к тому же результату, так как полученное значение увеличивается на 1), маршрутизатор должен проверить, исходит ли эта «негативная» информация о сети от того же маршрутизатора, сообщение которого послужило в свое время основанием для записи о данной сети в таблице маршрутизации. Если это так, то информация считается достоверной, и маршрут отмечается как недоступный.
 +
 +
Значение «бесконечного» расстояния задается столь небольшим потому, что в некоторых случаях перебои в линиях связи вызывают длительные периоды некорректной работы маршрутизаторов RIP, выражающейся в зацикливании пакетов в петлях сети. И чем меньше расстояние, используемое в качестве «бесконечного», тем такие периоды становятся короче.
 +
 +
Один из примеров зацикливания пакетов рассмотрим на примере сети, изображенной на Рисунке 1. Допустим, что маршрутизатор М1 обнаружил, что его связь с непосредственно подключенной сетью 201.36.14.0 потеряна (например, по причине отказа интерфейса 201.36.14.3). М1 отметил в своей таблице маршрутизации, что сеть 201.36.14.0 недоступна. В худшем случае он выяснит это сразу же после отправки очередных сообщений RIP, так что до начала нового цикла объявлений, когда он сможет сообщить соседям, что расстояние до сети 201.36.14.0 стало равным 16, останется почти 30 с.
 +
 +
Каждый маршрутизатор работает на основании своего внутреннего таймера, не синхронизируя рассылку объявлений с другими маршрутизаторами. Поэтому весьма вероятно, что M2 опередил M1 и отправил ему свое сообщение раньше, чем М1 успел передать новость о недостижимости сети 201.36.14.0. А в этом сообщении имеются данные, порожденные следующей записью в таблице маршрутизации М2, как показано в Таблице 5. Эта запись была получена от маршрутизатора М1 и остается корректной до отказа интерфейса 201.36.14.3. Теперь она устарела, но маршрутизатор М2 об этом не узнал.
 +
 +
Маршрутизатор M1 получил новые данные о сети 201.36.14.0 — эта сеть достижима через маршрутизатор M2 с метрикой 2. Раньше эта информация поступала М1 также от М2, но M1 игнорировал ее, так как его собственная метрика для 201.36.14.0 была лучше. Теперь М1 должен принять данные о сети 201.36.14.0, полученные от М2, и заменить запись в таблице маршрутизации о недостижимости этой сети на точно такую же запись, как в Таблице 6.
 +
 +
В результате в сети образовалась маршрутная петля: пакеты, направляемые узлам сети 201.36.14.0, будут передаваться маршрутизатором М2 маршрутизатору М1, а М1 будет возвращать их обратно. Пакеты IP будут циркулировать по этой петле до тех пор, пока не истечет время жизни каждого пакета. Так может продолжаться достаточно долго. Рассмотрим периоды времени, кратные времени жизни записей в таблицах маршрутизаторов.
 +
 +
Время 0—180 с. После отказа интерфейса на маршрутизаторах М1 и М2 сохранятся некорректные записи, приведенные выше. Маршрутизатор М2 по-прежнему снабжает маршрутизатор М1 своей записью о сети 201.36.14.0 с метрикой 2, так как ее время жизни не истекло. Пакеты зацикливаются.
 +
 +
Время 180—360 с. В начале этого периода на маршрутизаторе М2 истекает время жизни записи о сети 201.36.14.0 с метрикой 2, так как в предыдущий период маршрутизатор М1 посылал ему сообщения о сети 201.36.14.0 с худшей метрикой, чем у М2, и они не могли подтвердить эту запись. Теперь М2 принимает от М1 запись о сети 201.36.14.0 с метрикой 3 и трансформирует ее в запись с метрикой 4. М1 не получает новых сообщений от М2 о сети 201.36.14.0 с метрикой 2, поэтому время жизни его записи начинает уменьшаться. Процесс зацикливания продолжается.
 +
 +
Время 360—540 с. У маршрутизатора М1 истекает время жизни записи о сети 201.36.14.0 с метрикой 3. М1 и М2 опять меняются ролями — теперь М2 снабжает М1 устаревшей информацией о пути к сети 201.36.14.0, но уже с метрикой 4, которую М1 преобразует в метрику 5. Ситуация не изменилась. Пакеты все еще зацикливаются.
 +
 +
Если бы в протоколе RIP в качестве недостижимого не было выбрано расстояние 16, то описанный процесс длился бы до бесконечности (вернее, пока не исчерпалась бы разрядная сетка поля расстояния и не зафиксировалось переполнение при очередном увеличении расстояния).
 +
 +
В результате маршрутизатор М2 на очередном этапе описанного процесса получает от маршрутизатора М1 метрику 15, что дает после наращивания 16, и фиксирует недостижимость сети. Период нестабильной работы сети длился 36 мин!
 +
 +
Ограничение в 15 транзитных узлов сужает область применения протокола RIP до сетей, в которых число промежуточных маршрутизаторов не должно превышать 15. Для более масштабных сетей нужно использовать другие протоколы маршрутизации, например OSPF, или разбивать сеть на автономные области.
 +
 +
Приведенный пример хорошо иллюстрирует главную причину нестабильной работы маршрутизаторов с поддержкой RIP. Она заключается в самом принципе работы дистанционно-векторных протоколов — информация, полученная из третьих рук, не используется. Действительно, М2 передал маршрутизатору М1 сведения о достижимости сети 201.36.14.0, за достоверность которых он сам не отвечает. Избавиться от этого полностью нельзя, ведь сам способ построения таблиц маршрутизации связан с передачей чужой информации без указания источника ее происхождения.
 +
 +
Не следует думать, что при любых отказах интерфейсов и маршрутизаторов в сетях возникают маршрутные петли. Если бы М1 успел передать сообщение о недостижимости сети 201.36.14.0 раньше ложной информации маршрутизатора М2, то такая петля не образовалась бы. Так что подобные проблемы возникают в среднем не более чем в половине тех случаев, которые способны привести к их возникновению.
 +
 +
МЕТОДЫ БОРЬБЫ С ЛОЖНЫМИ МАРШРУТАМИ В ПРОТОКОЛЕ RIP
 +
Несмотря на то что протокол RIP не способен полностью исключить переходные состояния в сети, когда некоторые маршрутизаторы пользуются устаревшей информацией о несуществующих уже маршрутах, отчасти подобные проблемы решаются при помощи специальных методов.
 +
 +
Так, трудности, возникающие от появления петли между соседними маршрутизаторами, предотвращаются с помощью метода, получившего название «расщепление горизонта» (split horizon). Он заключается в том, что маршрутная информация о некоторой сети, хранящаяся в таблице маршрутизации, никогда не передается маршрутизатору, от которого она получена (это тот маршрутизатор, который является следующим в данном маршруте). Если в рассмотренном выше примере маршрутизатор М2 поддерживает технику расщепления горизонта, то он не передаст маршрутизатору М1 устаревшую информацию о сети 201.36.14.0, так как получил ее именно от него.
 +
 +
Практически все сегодняшние маршрутизаторы, работающие по протоколу RIP, используют эту технику.
 +
 +
Однако расщепление горизонта не помогает в тех случаях, когда петли образуют не два, а несколько маршрутизаторов. Рассмотрим более детально ситуацию, которая возникнет в сети, приведенной на Рисунке 1, в случае потери связи маршрутизатора М2 с сетью А. Пусть все маршрутизаторы этой сети поддерживают технику расщепления горизонта. Тогда М2 и М3 не будут возвращать данные о сети 201.36.14.0 с метрикой 2, так как они получили их от маршрутизатора М1. Но они будут передавать сведения о достижимости сети 201.36.14.0 с метрикой 4 через себя, так как они дошли до них по сложному маршруту, а не от маршрутизатора М1 непосредственно. Например, на маршрутизатор М2 информация поступила по цепочке М4-М3-М1. Поэтому М1 снова может быть введен в заблуждение, пока каждый из маршрутизаторов в цепочке M3-M4-M2 не вычеркнет запись о достижимости сети А (а это произойдет через период 3 x 180 с).
 +
 +
Для предотвращения зацикливания пакетов по составным петлям при отказах связей применяется два других приема, называемых «принудительные обновления» (triggered update) и «замораживание изменений» (hold down).
 +
 +
Способ принудительных обновлений состоит в том, что, получив данные об изменении метрики до какой-либо сети, маршрутизатор не ждет истечения периода передачи таблицы маршрутизации, а передает данные об изменившемся маршруте немедленно. Этот прием помогает во многих случаях предотвратить передачу устаревших сведений об отказавшем маршруте, но он перегружает сеть служебными сообщениями, поэтому принудительные объявления также делаются с некоторой задержкой. В связи с этим возможна ситуация, когда регулярное обновление на каком-либо маршрутизаторе опередит поступление принудительного обновления от предыдущего маршрутизатора в цепочке, и данный маршрутизатор успеет передать по сети устаревшую информацию о несуществующем маршруте.
 +
 +
Второй прием позволяет исключить подобные ситуации. Он связан с введением тайм-аута на принятие новых данных о только что ставшей недоступной сети и предотвращает принятие устаревших сведений о конкретном маршруте от тех из них, кто находится на некотором расстоянии от отказавшей связи и передает устаревшие сведения о ее работоспособности. Предполагается, что в течение тайм-аута замораживания изменений эти маршрутизаторы вычеркнут данный маршрут из своих таблиц, так как не получат о нем новых записей и не будут распространять устаревшую информацию.
 
==Примечания==
 
==Примечания==

Версия 19:51, 30 марта 2020

Дб3.jpg

Дальнобойщики 3: Покорение Америки (Rig'n'Roll на западе) – последняя часть культовой серии «Дальнобойщики», разработанная компанией СофтЛаб-НСК и изданная . Как и вторая часть, сочетает в себе симулятор водителя-дальнобойщика с элементами экономической стратегии. Вышла 18 ноября 2009 года.

В отличие от предыдущих частей, где действие игры происходило в вымышленном игровом мире, Дальнобойщики 3 переносят игроков в реалистично смоделированную Калифорнию. В игре реализовано 20 000 км реальных дорог в масштабе 1:10, то есть имеется 2000 км автотрасс. Также в игре около 40 больших и малых городов, в том числе Сан-Франциско и Лос-Анджелес.

Названия игры

В зависимости от страны издания, игра имеет разные названия. Известно несколько названий игры:

  • Дальнобойщики 3: Покорение Америки — релиз игры в России.
  • Rig'n'Roll — под этим названием игра выпускалась в Северной Америке и Великобритании компаниями 505 Games/Atari и 1C/Focus Multimedia.
  • Rig'n'Roll: Cut-Throat Highway — издание игры в США от THQ.
  • Rig’n’Roll: Die Truck-Simulation — название немецкой версии. Издатель - Rondomedia.
  • Truck-Simulator Rig'n'Roll — ещё одно название игры в Германии от того же издателя.
  • Rig'n'Roll Gold Edition — "Золотое" издание игры, включает в себя 3 новых тягача и дополнение "Большие гонки".
  • Rig’n’Roll: Tirowiec — название польской версии игры от Cenega Poland.
  • Symulator Jazdy Tirem: Rig’n’Roll: Wyścigi Tirów + Tirowiec — название польской версии Gold Edition.

История версий

Версия Дата выхода Изменения[1]
3.0.0 18 ноября 2009 Релизная версия игры
3.0.1 5 мая 2010 Оптимизация
На компьютерах, соответствующих системным требованиям игры, повышение производительности составило:
- порядка 30-35% для настроек по умолчанию;
- до 30% при максимальных настройках;
- до 55% при минимальных.

Подробности:
Исправлена проблема с возможным снижением производительности после ареста полицией;
Оптимизирована архитектура системы частиц;
Ускорена загрузка файлов деформаций машин;
Оптимизирован процесс загрузки машин;
Улучшено определение конфигурации компьютера.
Улучшение в звуковой подсистеме
Исправлена ошибка пропадания звука в одном из каналов при использовании OpenAL звуковых устройств;
Удалены возможные звуковые артефакты, возникающие при работе радио;
Улучшена настройка громкости звуков;
Исправлен звук при езде по гравию;
Исправлена проблема с кнопкой <Cancel> в меню настроек звука;
Исправлены возможные проблемы со звуком при загрузках сохранённых игр;
Исправлены эффекты "заикания" звука меню, которые проявлялись на некоторых конфигурациях.

Прочее
Исправлены некоторые ошибки в поведении полиции;
Улучшено поведение транспортного потока;
Исправлены некоторые ошибки, связанные с увеличением капитала игрока за счет работы наемных водителей;
Исправлен ряд ошибок в сценарии;
Исправлен ряд ошибок в миссиях;
Исправлен ряд ошибок, связанных с подбором посетителей бара;
Разблокировано вращение камеры и переключение видов внутри кабины при работающем CB радио;
Сигнал поворота теперь можно выключить повторным нажатием на клавиши "<" или ">";
Улучшена физическая модель, используемая при прыжках через трамплин;
Улучшен интерфейс клавиатурного ввода данных в меню (меню профиля, меню сохранения игр, меню мотеля и т.д.);
Исправлены некоторые ошибки, связанные, с денежными операциями в офисе;
Введена возможность включения дворников при неработающем двигателе;
Исправлены ошибки при загрузке некоторых сохраненных игр;
Внесены улучшения в систему деформаций и других повреждений машин;
Улучшен ряд моделей и анимаций персонажей.
3.0.2 24 мая 2010 Добавлена поддержка сохранений, сделанных на версии 3.0.0

Если сейв был создан в релизной версии или после начала новой игры в версии 3.0.1, в версии 3.0.2 он будет работать правильно.

Если сейв был создан в релизной версии игры, затем загружен в версии 3.0.1 и заново сохранён, он не будет работать правильно и восстановить его не получится.
3.0.4 2 июня 2010 Устраняет ошибку, приводившую к невозможности заправки автомобиля топливом при большом количестве денег у игрока;
Исправляет ошибку, возникавшую при сохранении пользовательских настроек управления;
Корректирует модель тягача Freightliner FLD 120 Classic XL.
3.0.5 22 октября 2010 Добавлена возможность использования пользовательских скинов автомобилей;
Добавлен внутриигровой магазин[2];
Доступны для покупки в магазине 13 скинов автомобилей;
Исправлены ошибки отображения капель дождя на лобовом стекле;
Исправлено некорректное поведение световых сигналов на некоторых полуприцепах;
Улучшено поведение ИИ на дорогах.

Разработка игры

Обычная доставка груза
Красоты игрового мира (максимальные настройки графики)

Игра была анонсирована в 2001 году на закрытом семинаре партнёров 1С, в то время, когда Дальнобойщики 2 уверенно шли «на золото». А в 2003 году на Конференции Разработчиков Игр (КРИ 2003) и E3 2003 игра состоялся публичный анонс. За это время разработчики проехали по дорогам Калифорнии около 10 000 километров, снимая различные графические материалы, в это же время команда программистов существенно переделала движок игры. 2 сентября 2004 года демоверсия игры была показана в Лондоне на выставке EGN. В ней были представлены такие города, как Окснард, Лос Анжелес, Темикула, Сан Клементе и Сан Диего, общая протяжённость трасс составила около 70 километров. С осени того же года различные игровые издания стали брать у разработчиков интервью. Первое интервью вышло у издания «РС Игры» в сентябре 2004 года. В нём на вопросы журналиста отвечал Игорь Белаго, один из главных программистов всей серии. Было заявлено, что выпуск запланирован на 2005 год.

Начиная с 2005 и до релиза, игра каждый год демонстрировалась на выставке "Игромир". За время существования проект чуть не закрылся из-за отсутствия разработчиков. Многочисленные баги, недоделки тех или иных фишек геймплея, вызванных амбициозностью студии, существенно затягивали разработку. В 2008 году ситуация дошла до критической точки и 1С пришлось вмешаться – конечный релиз был установлен на 2009, команда продюсеров осмотрела существующую на тот момент версию игры и составила список что должно войти в игру, а что должно быть вырезано из-за нехватки ресурсов и времени. Например, из игры пропали пешеходы[3].

Игровой процесс

Игроки должны возить грузы на различных тягачах с целью накопления бюджета для дальнейшего развития предприятия Nick Trucking и получения приза «Золотой Перевозчик» с всеобщим признанием. Но по пути к успеху игроку придется столкнуться с целой историей предательства и дружбы.

В США нет бандитизма, который процветал в России в 90-ые и 2000-ые, а это значит, что вас никто не попросит остановиться поболтать.

Существует 2 режима игры:

  • Один заказ - этот режим представляет собой одну поездку между двумя базами. Перед началом игроку даётся возможность выбрать свой грузовик и задать опции игры: настроить трафик и погоду.
  • Игра - в этом режиме игроку предстоит перевозить грузы и развивать свою компанию. При желании, игру можно пройти без сюжета.

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

Грузы для перевозки берутся на погрузочных базах, но есть и такие, которые вам предлагается доставить в рамках квеста. Также вы можете брать попутчиков, с которыми связаны уникальные сцены и реплики. Еще одним способом заработка является гонка - грузовики без прицепов отправляются в пункт назначения. Пришедший первым получает немалые призовые, остальным остается подсчитывать убытки на ремонт и топливо - даже за 2 и 3 места наград не предусмотрено. Тема гонок развивается в дополнении "Большие гонки" - в нем игроку предлагается поучаствовать в чемпионате, который включает гонки как на "головах", так и с полуприцепами. Во время доставки груза или гонки с вами, как и во второй части, соревнуются "живые" соперники. Тем не менее, приемы контактной борьбы из второй части применить не удастся - за все попытки "потолкаться" вас незамедлительно начинает преследовать полиция, от которой невозможно скрыться. Впрочем, это не мешает конкурентам таранить вас так, что от груза фактически ничего не остается. Стоит упомянуть еще один вид соревнований - "Тендер". Идентичен с гонкой, но наградой служит не денежный приз, а возможность в следующем рейсе взять особо ценный заказ с большим вознаграждением.

Автомобили можно купить лишь в офисе - процесс поиска вожделенного грузовика с разъездами по торговым площадкам, как в Дальнобойщики 2, отсутствует. Тем не менее, вы не сможете купить автомобиль, самостоятельно собрав его комплектацию в "конфигураторе" - приобретать придется те грузовики, которые представлены в наличии. Можно также приобрести подержанный автомобиль. Каких-либо отличий от новых не замечено - первый грузовик главного героя с пробегом более 200 000 миль ни в чем не уступает машинам конкурентов. Стоит отметить, что игра дает большие возможности для апгрейда грузовика - можно не только изменить технические характеристики, но и экстерьер, а также отделку салона.

Экономика

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

Процесс найма сотрудников также отличается – необходимо отдельно приобрести машину и отдельно нанять сотрудника. Наёмных дальнобойщиков можно «настраивать», выбирая предпочтения при выборе грузов на базах.

Сюжет

Сюжетная победа
Геймплейная победа (монополия на рынке грузоперевозок)
Банкротство компании

Это история о российском водителе, который прибывает в Калифорнию в поисках удачи и богатства. В начале игры у Ника (Николая Перепелова) есть лишь скромная сумма денег (100000$ на уровне сложности «Эксперт», 150000$ на уровне сложности «Дальнобойщик», 200000$ на уровне сложности «Чайник») на первый грузовик, небольшую транспортную компанию и секретаря. Всё это устроил Мэтью Тирсон — друг главного героя. После этого Кох забирает балонник у Ника. Через сутки при въезде в Окснард звонит Мэтью и предлагает спасти Дороти от «Штормовиков», если согласиться, но опоздать в бар, то Ника убьют, если приехать вовремя, завяжется погоня со стрельбой, если остановиться, то Ника тоже убивают, если оторваться от погони — задание выполнено, есть возможность отказаться от этого задания. Через 12 часов после спасения Дороти звонит Кохрейн и сообщает о пропаже Мэтью. Ещё через 12 часов Нику звонит начальник полиции Окснарда Марк Метцер и приказывает Нику приехать в Окснард, если отказаться от этого задания, сюжет остановится, и через 3 суток титул «Дальнобойщик года» будет присвоен «Штормовикам». Если согласиться и приехать в Окснард, Марк спросит Ника, есть ли у Мэтью враги, и предложит сотрудничать. Если отказаться — смотреть выше. Если согласиться — сюжет продолжится. Через некоторое время Нику звонит незнакомец с информацией о Мэтью и назначает встречу в баре Окснарда. Если отменить задание — смотреть выше. Незнакомец Джон До расскажет Нику о том, что Мэтью связан с компанией «Шторм Экспресс», и рекомендует обратиться за информацией о Мэтью к Питеру Пену, директору этой компании, который с 17 до 23 часов вечера сидит в баре Санта-Барбары. На выполнение этого задания даётся 3 игровых дня. Если отменить задание — сюжет будет провален. Если приехать в бар в назначенное время, то Питера там не будет, вместо него Ник разговаривает с бандитами, которые его видели ранее, и от которых он спасался. Бандиты Мюррей и лысый предлагают приехать в бар на следующий день. На вторую попытку встречи с Питером Пеном даётся 3 игровых дня. Если провалить задание — сюжет провалится. Если встретиться с Питером Пеном в баре, Ник предложит ему гонку в обмен на информацию о Мэтью. Питер выбирает маршрут до Атаскадеро. Если во время гонки упустить тягач Питера, то он позвонит Нику и отберёт его машину. Если ехать, но не обгонять машину Питера, то в Атаскадеро Ник отдаст Пену ключи от своего грузовика. Если выиграть гонку, то Питер не скажет ничего о Мэтью, но расскажет о грузе наркотиков, неустойка которого — 12 миллионов долларов, которая может обанкротить компанию Ника Перепелова. Затем Главного героя подставляют, он чуть не оказывается в тюрьме, и это подводит его к расследованию серии происшествий в среде дальнобойщиков Калифорнии. По ходу развития истории Ник попадает в различные приключения, порой угрожающие его жизни.

Персонажи игры

Фото Предварительное имя Род занятий Возраст Количество штрафов Количество ДТП Судимость Водительский стаж Примечания
D3 Nick Armstrong.jpg Николай Перепелов дальнобойщик - - - - - Прибыл в Калифорнию из России. Владелец и руководитель компании Nick Trucking, базирующейся в городе Окснард.

Имя в английской версии - Ник Армстронг (Nick Armstrong)
D3 Matthew Tearson.jpg
Мэтью Тирсон дальнобойщик 26 4 1 нет 9 Друг Перепелова, сотрудник транспортной компании «Ровная подошва». Помог Нику с организацией бизнеса в Калифорнии.
D3 Cochraine Jones.jpg
Кохреин Джонс дальнобойщик 27 18 4 нет 7 Сотрудник компании «Ровная подошва». Неуклюжий добродушный толстяк.
D3 Dorothy O’Leary.jpg
Дороти О'Лири дальнобойщик 22 6 1 нет 6 Хорошая знакомая Мэтью.
D3 Peter Pen.jpg
Питер Пен дальнобойщик 29 4 3 нет 11 Руководитель транспортной компании Storm Express. Ходят слухи, что деятельность компании Питера Пена не всегда происходит в соответствии с законом...

Имя в английской версии - Джек Мардок (Jack Murdoc)
D3 Pamela.jpg
Памела секретарша 21 2 нет нет 2
D3 Murray.jpg
Мюррей дальнобойщик 38 12 4 нет 17
D3 John O’Leary.jpg
Джон О'Лири механик 30 1 нет нет 14
D3 Spyros Topoquinaki.jpg
Спирос Топокинаки дальнобойщик 53 4 2 нет 32
D3 Luis Fernandez.jpg
Луис Фернандес полицейский 29 нет 2 нет 11
D3 Steven Cunning.jpg
Стивен Каннинг агент 42 - - нет 24
D3 Mark Metzger.jpg
Марк Метцер следователь 53 нет нет нет 34
D3 Frank Dakotah.jpg
Фрэнк Дакота дальнобойщик 34 нет нет нет 14
D3 Monica Delancy.jpg
Моника Деленси журналист 26 2 нет нет 7
D3 Jeffrey.jpg
Джефри бармен 32 - - - -

NPC

  • Нейтральные водители — обычные боты, являются трафиком. Зачастую ведут себя странно, могут подрезать игрока.
  • Дальнобойщики — боты, являются соперниками при доставке груза. Также могут быть обычным трафиком. Можно нанять на работу в свою компанию.
  • Полиция - штрафуют игрока за нарушение ПДД. Если привлечь их внимание - начнётся преследование. Уйти от погони достаточно сложно.

Автопарк

В игре представлено 16 тягачей, но известно, что изначально должно было быть 23 тягача. См. статью Автопарк (Дальнобойщики 3)

Игровой регион

См. статью Игровой регион (Дальнобойщики 3)

В отличие от предыдущих частей, где действие игры происходило в вымышленном игровом мире, Дальнобойщики 3 переносят игроков в реалистично смоделированную Калифорнию. В игре реализовано 20 000 км реальных дорог в масштабе 1:10, то есть имеется 2000 км автотрасс. Также в игре около 40 больших и малых городов, в том числе Сан-Франциско и Лос-Анджелес.

В отличие от второй части, базы в "Дальнобойщиках-3" представлены в виде больших станций, на которых к тягачу игрока прицепляют прицеп. Также, число доступных грузов увеличено с 4 до 20. Однако, эти базы управляются с помощью скриптов и просто так нельзя покататься по территории, если не использовать различные баги и хитрости.

СТО также претерпело существенное изменение. Теперь это одна из построек TruckStop – территории, где дальнобойщики отдыхают и обслуживают свои траки. В Дальнобойщиках 3 помимо многочисленных апгрейдов как ходовой, так и внешней части доступна изменение окраски тягача, в том числе с помощью пользовательских скинов.

Интересные факты

  • Похоже, что спидометр показывает скорость в километрах, несмотря на шкалу "мили в час". Если верить этой шкале, то большинство стандартных тягачей с легкостью достигают 160-180 км/ч (100-110 миль в час). При этом разгон у некоторых грузовиков неправдоподобно быстр - например, Titan El-dorado с двигателем 600 л.с. разгоняется с 0 до 100 км/ч (62 мили/час по спидометру игры) около 13 секунд. Такая динамика разгона, скорее, характерна для легкового автомобиля. С бустером динамика становится и вовсе пугающей.
  • Если достаточно сильно разбить свой тягач, то на скорости, вопреки законам аэродинамики, у него начнут открываться капот и двери.
  • Зачастую квестовые персонажи звонят во время доставки груза, и тогда приходится делать выбор - скинуть груз или игнорировать квест, так как времени на то, чтобы успеть все сразу, нет. Если есть хоть малейшие сомнения, что не сможете выполнить квест - отказывайтесь. За отказ сразу санкций не последует, а за невыполнение взятого обязательства можно получить огромную неустойку и потерю репутации.
  • Так как игра создавалась довольно долго, большинство автомобилей в ней устарели (Не стоит забывать, что действие игры разворачивается и вовсе спустя 5 лет после релиза - в 2014). Так, вместо Peterbilt 379 было бы логичнее добавить 389 модель, а вместо Kenworth T600 более новый Kenworth T660. Впрочем, старые машины выглядят эффектнее, поэтому в минусы игры данный факт едва ли можно записать.
  • Единственная игра серии, где можно разбиться насмерть.
  • В 2011 году был создан прототип игры на движке Unity3D[4]. Существовала также и фанатская версия на том же движке.

Скриншоты игры на движке Unity3D


Дальнобойщики 3: Покорение Америки
Игровое наполнение Игровой регионАвтопаркПобочные заданияСаундтрек
D3 jewel cover.jpg
Аддоны и издания Большие ГонкиЛас-ВегасGold Edition
Разное История версийСоветы и секретыМодификацииАвторы


Игровой регион (Дальнобойщики 3)
Базовая игра АльтурасАтаскадероБарстоуБейкерсфилдБерниБишопБриджпортВикторвиллГринфилдКетлмен-СитиКолфаксЛебекЛегеттЛон-ПайнЛос-АнджелесМантикаМерседМи-Вук-ВиллиджМинденМохавеОклендОкснардОрлендПалмдейл и ЛанкастерПаттерсонРеддингРиноСакраментоСан-ДиегоСан-КлементеСан-ФранцискоСан-ХосеСанта-БарбараСтэндишТемекьюлаУивервиллФресноЮкайаЮрика
D3 mapscan.jpg
DLC "Большие гонки" ПасификаСан-СимионСанта-Круз


Автопарк (Дальнобойщики 3)
Лицензированные Freightliner ArgosyFreightliner CenturyFreightliner CoronadoFreightliner FLD 120 Classic XLSterling A9500SWestern Star 4900EX LowMaxSterling A9500S SportFreightliner Century SportWestern Star 4900 Sport
Titan Ventura.png
Нелицензированные Hercules AtlasHercules FreedomHercules LibertyTitan AlpineTitan El DoradoTitan InyoTitan VenturaHercules Freedom SportTitan Ventura Sport
Выдуманные Guepard
Вырезанные Kenworth K100EMack CH603Mack CX603Navistar 9300Navistar 9800Navistar 9900ixVolvo VNL770Неизвестный пикап


СофтЛаб-НСК
Игры MindDriveАвтомобильные гонкиДальнобойщики: Путь к победеДальнобойщики 2Дальнобойщики 3: Покорение АмерикиДальнобойщики 3: Большие ГонкиДальнобойщики 3: Лас-ВегасДальнобойщики 4IRome
SOFTLAB logo.png
Прочее Virtual World InventorСимулятор профессионального вождения автомобиляСимулятор модуля станции МирТренажёр «Телеоператор»Тренажёр "Сортировочная горка"


YR

Протокол маршрутной информации (Routing Information Protocol, RIP) — внутренний протокол маршрутизации дистанционно-векторного типа. Будучи одним из наиболее ранних протоколов обмена маршрутной информацией, он до сих пор чрезвычайно распространен в вычислительных сетях ввиду простоты реализации. Версии RIP имеются как для сетей TCP/IP, так и для сетей IPX/SPX компании Novell.

В настоящее время протокол RIP для IP представлен двумя версиями. RIP v.1 не поддерживает маски, т. е. он распространяет между маршрутизаторами информацию только о номерах сетей и расстояниях до них, но не о масках этих сетей, считая, что все адреса принадлежат к стандартным классам A, B или С. RIP v.2 передает данные о масках сетей, поэтому он в большей степени соответствует современным требованиям. Так как при построении таблиц маршрутизации работа второй версии принципиально не отличается от первой, то в дальнейшем для упрощения записей будет описываться работа первой версии.

В качестве расстояния до сети стандарты протокола RIP разрешают использовать различные виды метрик: число транзитных узлов, пропускную способность, вносимые задержки и надежность сетей (т. е. соответствующие признакам D, T и R в поле «Качество сервиса» пакета IP), а также любые их комбинации. Метрика должна обладать свойством аддитивности — метрика составного пути должна быть равна сумме метрик составляющих этого пути. В большинстве реализаций RIP применяется простейшая метрика — количество транзитных узлов, т. е. промежуточных маршрутизаторов, которые пакету нужно преодолеть для достижения сети назначения.

Процесс построения таблиц маршрутизации с помощью протокола RIP мы рассмотрим на примере составной сети, изображенной на Рисунке 1.

СОЗДАНИЕ МИНИМАЛЬНЫХ ТАБЛИЦ Как видим, восемь сетей IP связаны четырьмя маршрутизаторами с идентификаторами M1, M2, M3 и M4. Маршрутизаторы, работающие по протоколу RIP, могут иметь идентификаторы, однако они не влияют на работу протокола. В сообщениях RIP эти идентификаторы не передаются.

В исходном состоянии в каждом маршрутизаторе программным обеспечением стека TCP/IP автоматически создается минимальная таблица маршрутизации, где представлены только непосредственно подсоединенные сети. На рисунке адреса портов маршрутизаторов, в отличие от адресов сетей, помещены в овалы.

Примерный вид минимальной таблицы маршрутизации в М1 приведен в Таблице 1. Минимальные таблицы маршрутизации в других маршрутизаторах будут выглядеть аналогично: например, таблица маршрутизатора М2 состоит из трех записей (см. Таблицу 2).

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

Соседи — это те маршрутизаторы, которым данный маршрутизатор может передать пакет IP непосредственно по какой-либо сети, к которой он подключен напрямую, не пользуясь услугами промежуточных маршрутизаторов. Например, соседние маршрутизаторы для М1 — маршрутизаторы М2 и М3, а для М4 — М2 и М3.

Таким образом, маршрутизатор М1 передает маршрутизатору М2 и М3 следующее сообщение:

сеть 201.36.14.0, расстояние 1,

сеть 132.11.0.0, расстояние 1,

сеть 194.27.18.0, расстояние 1.

ОБРАБОТКА ПОЛУЧЕННОЙ ОТ СОСЕДЕЙ ИНФОРМАЦИИ После получения аналогичных сообщений от маршрутизаторов М2 и М3 маршрутизатор М1 увеличивает каждое полученное поле метрики на единицу и запоминает, через какой порт и от какого маршрутизатора поступила новая информация (его адрес станет адресом следующего маршрутизатора, если эта запись будет внесена в таблицу). Затем маршрутизатор сравнивает новую информацию с той, которая хранится в его таблице маршрутизации (см. Таблицу 3).

Записи с четвертой по девятую получены от соседних маршрутизаторов, и они претендуют на включение в таблицу. Однако только записи с четвертой по седьмую попадают в таблицу, а восьмая и девятая — нет. Это происходит потому, что они содержат данные об уже имеющихся в таблице М1 сетях, а расстояние до них больше, чем в существующих записях.

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

Аналогичные операции с новой информацией выполняют и остальные маршрутизаторы сети.

РАССЫЛКА НОВОЙ ТАБЛИЦЫ СОСЕДЯМ Каждый маршрутизатор отсылает новое сообщение RIP всем своим соседям, помещая в нем данные обо всех известных ему сетях — как непосредственно подключенных, так и удаленных, о которых маршрутизатор узнал из сообщений RIP.

Пятый этап повторяет третий: маршрутизаторы принимают сообщения RIP, обрабатывают содержащуюся в них информацию и на ее основании корректируют свои таблицы маршрутизации.

Посмотрим, как это делает маршрутизатор М1 (см. Таблицу 4). Маршрутизатор М1 получил от М3 информацию о сети 132.15.0.0, которую тот в свою очередь на предыдущем цикле работы получил от маршрутизатора М4. М1 уже знает о сети 132.15.0.0, причем предыдущее сообщение имеет лучшую метрику, чем новое, поэтому вновь поступившее отбрасывается.

О сети 202.101.16.0 маршрутизатор М1 узнает на этом этапе впервые, данные о ней приходят сразу от двух соседей — от М3 и М4. Поскольку метрики указаны одинаковые, то в таблицу попадает информация, пришедшая раньше. В нашем примере считается, что маршрутизатор М2 опередил маршрутизатор М3 и первым переслал свое сообщение RIP маршрутизатору М1.

Если маршрутизаторы периодически повторяют этапы рассылки и обработки сообщений RIP, то за конечное время в сети установится корректный режим маршрутизации. Это понятие предполагает такое состояние таблиц маршрутизации, когда любая сеть будет достижима с помощью некоторого рационального маршрута. Пакеты будут доходить до адресатов и не зацикливаться в петлях, подобных той, которую на Рисунке 1 образуют маршрутизаторы M1-M2-M3-M4.

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

Для адаптации к новым условиям в сети протокол RIP использует ряд механизмов.

АДАПТАЦИЯ МАРШРУТИЗАТОРОВ RIP К ИЗМЕНЕНИЯМ СОСТОЯНИЯ СЕТИ К появлению новых маршрутов маршрутизаторы RIP приспосабливаются без труда: в очередном сообщении своим соседям они передают новую информацию, так что та постепенно становится известна всем маршрутизаторам сети. А вот к отрицательным изменениям, связанным с потерей какого-либо маршрута, им адаптироваться сложнее. Дело в том, что в формате сообщений протокола RIP нет поля, где бы содержалась информация об отсутствии пути к данной сети.

Понятно, что некоторый маршрут более недействителен, можно двумя способами:

на основании истечения времени жизни маршрута; указанием специального расстояния до сети, ставшей недоступной, а именно — бесконечности. Для реализации первого механизма каждая запись таблицы маршрутизации (как и записи таблицы продвижения моста/коммутатора), полученная по протоколу RIP, имеет время жизни (TTL). При поступлении очередного сообщения RIP с подтверждением того, что данная запись действительна, таймер TTL устанавливается в исходное состояние, а затем из него каждую секунду вычитается единица. Если за время тайм-аута не придет новое маршрутное сообщение об этом маршруте, то он отмечается как недействительный.

Время ожидания связано с периодом рассылки векторов по сети. Период рассылки в RIP равен 30 с, а в качестве тайм-аута принято шестикратное значение периода рассылки, т. е. 180 с. Шестикратный запас времени нужен для уверенности в том, что проблемы заключаются не в потерях сообщений RIP (а это возможно, так как RIP использует транспортный протокол UDP, который не гарантирует доставку сообщений), а в том, что сеть действительно стала недоступна. Если какой-либо маршрутизатор выходит из строя, то через 180 с все порожденные этим маршрутизатором записи станут недействительными у его ближайших соседей. После этого процесс повторится уже для соседей ближайших соседей — они вычеркнут подобные записи через 360 с, так как первые 180 с ближайшие соседи еще передавали сообщения об этих записях. Как видим, сведения о недоступных через отказавший маршрутизатор сетях распространяются по сети не очень быстро, время распространения кратно времени жизни записи, а коэффициент кратности равен количеству транзитных узлов между самыми дальними маршрутизаторами сети. В этом и заключается одна из причин выбора в качестве периода рассылки небольшой величины в 30 с.

Если сбой происходит лишь на одном из интерфейсов маршрутизатора или в сети, через которую он связан с каким-либо соседом, то ситуация сводится к только что описанной — механизм тайм-аута вновь приводится в действие, и ставшие недействительными маршруты постепенно будут вычеркнуты из всех маршрутизаторов сети.

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

Если пересылка возможна, то маршрутизаторы RIP не используют специальный признак в сообщении, а указывают бесконечное расстояние до сети, причем в протоколе RIP оно выбрано равным 16 транзитным узлам (при использовании другой метрики маршрутизатору необходимо указать ее значение, считающееся бесконечностью). При поступлении сообщения, в котором расстояние до некоторой сети равно 16 (или 15, что приводит к тому же результату, так как полученное значение увеличивается на 1), маршрутизатор должен проверить, исходит ли эта «негативная» информация о сети от того же маршрутизатора, сообщение которого послужило в свое время основанием для записи о данной сети в таблице маршрутизации. Если это так, то информация считается достоверной, и маршрут отмечается как недоступный.

Значение «бесконечного» расстояния задается столь небольшим потому, что в некоторых случаях перебои в линиях связи вызывают длительные периоды некорректной работы маршрутизаторов RIP, выражающейся в зацикливании пакетов в петлях сети. И чем меньше расстояние, используемое в качестве «бесконечного», тем такие периоды становятся короче.

Один из примеров зацикливания пакетов рассмотрим на примере сети, изображенной на Рисунке 1. Допустим, что маршрутизатор М1 обнаружил, что его связь с непосредственно подключенной сетью 201.36.14.0 потеряна (например, по причине отказа интерфейса 201.36.14.3). М1 отметил в своей таблице маршрутизации, что сеть 201.36.14.0 недоступна. В худшем случае он выяснит это сразу же после отправки очередных сообщений RIP, так что до начала нового цикла объявлений, когда он сможет сообщить соседям, что расстояние до сети 201.36.14.0 стало равным 16, останется почти 30 с.

Каждый маршрутизатор работает на основании своего внутреннего таймера, не синхронизируя рассылку объявлений с другими маршрутизаторами. Поэтому весьма вероятно, что M2 опередил M1 и отправил ему свое сообщение раньше, чем М1 успел передать новость о недостижимости сети 201.36.14.0. А в этом сообщении имеются данные, порожденные следующей записью в таблице маршрутизации М2, как показано в Таблице 5. Эта запись была получена от маршрутизатора М1 и остается корректной до отказа интерфейса 201.36.14.3. Теперь она устарела, но маршрутизатор М2 об этом не узнал.

Маршрутизатор M1 получил новые данные о сети 201.36.14.0 — эта сеть достижима через маршрутизатор M2 с метрикой 2. Раньше эта информация поступала М1 также от М2, но M1 игнорировал ее, так как его собственная метрика для 201.36.14.0 была лучше. Теперь М1 должен принять данные о сети 201.36.14.0, полученные от М2, и заменить запись в таблице маршрутизации о недостижимости этой сети на точно такую же запись, как в Таблице 6.

В результате в сети образовалась маршрутная петля: пакеты, направляемые узлам сети 201.36.14.0, будут передаваться маршрутизатором М2 маршрутизатору М1, а М1 будет возвращать их обратно. Пакеты IP будут циркулировать по этой петле до тех пор, пока не истечет время жизни каждого пакета. Так может продолжаться достаточно долго. Рассмотрим периоды времени, кратные времени жизни записей в таблицах маршрутизаторов.

Время 0—180 с. После отказа интерфейса на маршрутизаторах М1 и М2 сохранятся некорректные записи, приведенные выше. Маршрутизатор М2 по-прежнему снабжает маршрутизатор М1 своей записью о сети 201.36.14.0 с метрикой 2, так как ее время жизни не истекло. Пакеты зацикливаются.

Время 180—360 с. В начале этого периода на маршрутизаторе М2 истекает время жизни записи о сети 201.36.14.0 с метрикой 2, так как в предыдущий период маршрутизатор М1 посылал ему сообщения о сети 201.36.14.0 с худшей метрикой, чем у М2, и они не могли подтвердить эту запись. Теперь М2 принимает от М1 запись о сети 201.36.14.0 с метрикой 3 и трансформирует ее в запись с метрикой 4. М1 не получает новых сообщений от М2 о сети 201.36.14.0 с метрикой 2, поэтому время жизни его записи начинает уменьшаться. Процесс зацикливания продолжается.

Время 360—540 с. У маршрутизатора М1 истекает время жизни записи о сети 201.36.14.0 с метрикой 3. М1 и М2 опять меняются ролями — теперь М2 снабжает М1 устаревшей информацией о пути к сети 201.36.14.0, но уже с метрикой 4, которую М1 преобразует в метрику 5. Ситуация не изменилась. Пакеты все еще зацикливаются.

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

В результате маршрутизатор М2 на очередном этапе описанного процесса получает от маршрутизатора М1 метрику 15, что дает после наращивания 16, и фиксирует недостижимость сети. Период нестабильной работы сети длился 36 мин!

Ограничение в 15 транзитных узлов сужает область применения протокола RIP до сетей, в которых число промежуточных маршрутизаторов не должно превышать 15. Для более масштабных сетей нужно использовать другие протоколы маршрутизации, например OSPF, или разбивать сеть на автономные области.

Приведенный пример хорошо иллюстрирует главную причину нестабильной работы маршрутизаторов с поддержкой RIP. Она заключается в самом принципе работы дистанционно-векторных протоколов — информация, полученная из третьих рук, не используется. Действительно, М2 передал маршрутизатору М1 сведения о достижимости сети 201.36.14.0, за достоверность которых он сам не отвечает. Избавиться от этого полностью нельзя, ведь сам способ построения таблиц маршрутизации связан с передачей чужой информации без указания источника ее происхождения.

Не следует думать, что при любых отказах интерфейсов и маршрутизаторов в сетях возникают маршрутные петли. Если бы М1 успел передать сообщение о недостижимости сети 201.36.14.0 раньше ложной информации маршрутизатора М2, то такая петля не образовалась бы. Так что подобные проблемы возникают в среднем не более чем в половине тех случаев, которые способны привести к их возникновению.

МЕТОДЫ БОРЬБЫ С ЛОЖНЫМИ МАРШРУТАМИ В ПРОТОКОЛЕ RIP Несмотря на то что протокол RIP не способен полностью исключить переходные состояния в сети, когда некоторые маршрутизаторы пользуются устаревшей информацией о несуществующих уже маршрутах, отчасти подобные проблемы решаются при помощи специальных методов.

Так, трудности, возникающие от появления петли между соседними маршрутизаторами, предотвращаются с помощью метода, получившего название «расщепление горизонта» (split horizon). Он заключается в том, что маршрутная информация о некоторой сети, хранящаяся в таблице маршрутизации, никогда не передается маршрутизатору, от которого она получена (это тот маршрутизатор, который является следующим в данном маршруте). Если в рассмотренном выше примере маршрутизатор М2 поддерживает технику расщепления горизонта, то он не передаст маршрутизатору М1 устаревшую информацию о сети 201.36.14.0, так как получил ее именно от него.

Практически все сегодняшние маршрутизаторы, работающие по протоколу RIP, используют эту технику.

Однако расщепление горизонта не помогает в тех случаях, когда петли образуют не два, а несколько маршрутизаторов. Рассмотрим более детально ситуацию, которая возникнет в сети, приведенной на Рисунке 1, в случае потери связи маршрутизатора М2 с сетью А. Пусть все маршрутизаторы этой сети поддерживают технику расщепления горизонта. Тогда М2 и М3 не будут возвращать данные о сети 201.36.14.0 с метрикой 2, так как они получили их от маршрутизатора М1. Но они будут передавать сведения о достижимости сети 201.36.14.0 с метрикой 4 через себя, так как они дошли до них по сложному маршруту, а не от маршрутизатора М1 непосредственно. Например, на маршрутизатор М2 информация поступила по цепочке М4-М3-М1. Поэтому М1 снова может быть введен в заблуждение, пока каждый из маршрутизаторов в цепочке M3-M4-M2 не вычеркнет запись о достижимости сети А (а это произойдет через период 3 x 180 с).

Для предотвращения зацикливания пакетов по составным петлям при отказах связей применяется два других приема, называемых «принудительные обновления» (triggered update) и «замораживание изменений» (hold down).

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

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

Примечания

  1. Указаны официальные списки изменений
  2. Только в русской версии
  3. Тем не менее, в релизной версии игры они есть и при желании их можно вернуть на улицы городов - достаточно изменить некоторые конфигурационные файлы игры
  4. Впрочем, создавать полноценную версию на Unity3D никто не собирался - «эксперимент был разовый, кратковременный и без практических последствий». Подробнее: статья на сайте db-3.ru