DirectPlay
Microsoft DirectPlay — сетевой программный интерфейс (API), обеспечивающий обслуживание на транспортном и сеансовом уровне.
Функционирование DirectPlay
DirectPlay поддерживает топологию соединений клиент-сервер и клиент-клиент. Топология клиент-сервер предназначена для больших многопользовательских игр. Клиенты создают соединение только с сервером и при необходимости передачи пакета между клиентами он пересылается через сервер.
При использовании топологии клиент-клиент, создаются соединения каждого клиента с каждым другим клиентом. Пакеты посылаются непосредственно другому клиенту, без необходимости использования центрального сервера. Один из клиентов избирается главным компьютером сеанса и обрабатывает административную нагрузку по поддержанию сеанса между всеми клиентами. В случае отключения главного компьютера, он переизбирается из оставшихся клиентов, при этом гарантируется завершение всех начатых транзакций. Топология подходит для небольших многопользовательских игр, ограниченных примерно шестьюдесятью четырьмя клиентами.
Внутренний сервис DPNSRV сохраняет список всех сессий, запущенных на машине, и передаёт его клиентам, подключающимся к выделенному для DirectPlay порту 6073. Номера портов для соединений между клиентами (или клиентов с сервером) указываются при установке соединения.
Передача голоса
При использовании топологии клиент-клиент аудиопоток передаётся одновременно всем получателям. Требуемая ширина полосы пропускания и нагрузка на ЦПУ клиента увеличивается с ростом количества клиентов, поэтому данная топология плохо масштабируется.
При использовании микширования сессий аудиопоток передаётся на сервер, где микшируется с аудиопотоками от других клиентов и передаётся обратно каждому клиенту. При использовании данной топологии увеличивается задержка передачи звука и создаётся большая нагрузка на ЦПУ сервера, а кроме того невозможно использовать звуковые трёхмерные эффекты.
Другим вариантом клиент-серверной модели является пересылка сессий, при которой сервер пересылает аудиопоток всем получателям без микширования. Это значительно снижает загрузку ЦПУ сервера (но повышает для клиентов, поскольку им приходится производить микширование), требуемая полоса пропускания меньше чем при использовании топологии клиент-клиент, но больше чем при микшировании сессий.
Ссылки
- Robert Di Benedetto. Microsoft DirectPlay 8 Overview (англ.) (май 2001). — Перепечатка MSDN Technical Articles. Дата обращения: 14 июля 2012. Архивировано из оригинала 28 сентября 2012 года.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.