Протоколы Internet

         

После каждой попытки установить связь


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

Но после того как информация о состоянии сети получена, условия могут измениться, партнеры могут согласовать другой уровень 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
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий