После каждой попытки установить связь
После каждой попытки установить связь провайдер производит коррекцию спецификации потока для того, чтобы наилучшим образом отразить реальную ситуацию в сети. Предполагается, что клиенты могут использовать текущую сетевую информацию для того, чтобы оптимально реализовать возможности сети.
Но после того как информация о состоянии сети получена, условия могут измениться, партнеры могут согласовать другой уровень QOS, так что приложение должно быть готово ко всему. Для информирования клиента о возможных изменениях условий в Winsock используется механизм сетевых событий (FD_QOS и FD_GROUP_QOS). Сервис-провайдер должен генерировать события типа FD_QOS/FD_GROUP_QOS, если уровень сервиса изменился значительно. Клиент должен использовать
WSPIoctl с кодами команд SIO_GET_QOS и/или SIO_GET_GROUP_QOS, чтобы получить соответствующую спецификацию потока и выяснить, изменился ли уровень сервиса (QOS). Структура QOS должна актуализоваться вне зависимости от типа события FD_QOS/FD_GROUP_QOS. Если новый уровень сервиса неприемлем, клиент может попытаться приспособиться к новым условиям или закрыть соединение. При повторной попытке согласовать уровень QOS успешный выход из процедуры
WSPIoctl указывает, что новое значение QOS приемлемо. Структура QOS в WinSock 2 описана в файле Winsock2.h и представлена ниже.
typedef enum
{
BestEffortService,
ControlledLoadService,
PredictiveService,
GuaranteedService
} GUARANTEE;
typedef struct _flowspec
{
int32
| TokenRate;
| /* В байтах/сек */
|
int32
| TokenBucketSize;
| /* В байтах */
|
int32
| PeakBandwidth;
| /* В байтах/сек */
|
int32
| Latency;
| /* В микросекундах */
|
int32
| DelayVariation;
| /* В микросекундах */
GUARANTEE LevelOfGuarantee;
int32
| CostOfCall;
| /* Зарезервировано для будущего использования, должно быть = 0 */
|
int32
| NetworkAvailability
| /* только для чтения:
1, если есть доступ,
0, если нет */
} FLOWSPEC, FAR * LPFLOWSPEC;
typedef struct _QualityOfService
{
FLOWSPEC
| SendingFlowspec;
| /* Спецификация потока для данных */
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий