Клиент-сервер в HL и CS, Newbie Коммуникации клиент-сервер |
|
.: Просмотров: 3174 :: :: :. |
" Перевод: Newbie |
Клиент - программа Half-life используемая игроком для подключения к серверу. Сервер Half-Life - центральная программа, к которой могут подключаться клиенты для игры в Half-Life и его модификации, например Counter-Strike.
Клиенты не общаются друг с другом, только с сервером. Сервер следит за тем, что делаеткаждый клиент и как они влияют друг на друга и сообщает клиентам то, что им необходимознать.
Если представить картинку схематично, то мы получим что-то вроде звезды, с сервером в середине и расходящимися от него соединениями к клиентам в виде лучей.
При общении сервера с клиентом используются два основных понятия - ширина канала (bandwidth) и задержка (latency).
В идеальном мире, общение клиент-сервер должно быть мгновенным, не должно быть никаких ограничений по количеству передаваемых данных и сама передача должна быть моментальной. В результате, клиент всегда имел бы ту же информацию о происходящем, что и сервер.
В реальности, существует лимит данных, которые можно передать между клиентом и сервером за секунду - ширина канала и время, за которое эти данные передаются - задержка.
Ограничение ширины канала происходит двумя способами.
Во-первых, на сервере выставляется настройка, ограничивающая максимальное значениеширины канала, которое сервер может использовать для общения с одним клиентом. Врезультате, даже если клиент соединяется через выделенный канал или xDSL, пропускнаяспособность которого не меньше 64 килобайт в секунду, сервер все равно будет передаватьсо скоростью не более чем 8 килобайт в секунду (стандартное значение, которое однакоможет меняться в зависимости от сервера). Это - ограничение со стороны сервера.
Это делается потому, что большое количество "скоростных" клиентов "съедят" слишкомбольшой объем трафика, за который соответственно необходимо платить. Выставление болеевысокого лимита имеет легко предсказуемые финансовые последствия.
Во-вторых, клиенты с менее скоростным соединением (56k модемы) обычно не имеютдостаточной ширины канала для достижения максимума, выставленного на сервере. В данномслучае работает ограничение со стороны клиента.
Задержка в основном зависит от типа соединения клиента (56k модем, ISDN, xDSL и т.д.).Чем больше задержка, тем больше времени требуется для передачи данных. Чем меньшезадержка, тем лучше.
Тип соединения | Ширина канала | Задержка |
56k модем | Низкая | Высокая |
ISDN | Низкая | Низкая |
xDSL | Высокая | Низкая |
Спутник | Высокая | Высокая |
Заметьте, что задержка никак не зависит от ширины канала. Именно поэтому напримеродноканальный ISDN имеет ту же задержку, что и двухканальный ISDN, а спутниковый канал -хотя и способен передавать мегабайты в секунду - бесполезен для игр в реальном временииз-за задержки в районе 2000 миллисекунд (ms).