Сетевое программирование в .NET. Расшифровка IP-адреса (IP address specification). Обеспечение надежности доставки пакетов, страница 8

В этом сценарии возможна ситуация, когда индивидуальные сообщения от разных приложений могут оказаться в одном буфере. Для программиста это означает, что количество блоков данных на стороне отправителя может не совпадать с с количеством блоков на стороне получателя. При первом знакомстве такой поворот событий кажется неожиданным и способен смутить. Задача выделения Data1 и Data2 из общего пакета возлагается на сетевую программу на стороне получателя. Так как подсистема TCP стирает границы между блоками данных, то логика сетевой программы должна быть более сложной. Существует два способа решения этой задачи:

¨  Создать протокол, который вводит реакции на каждый отдельный блок данных.

¨  Разработать систему маркировки для различения границ между отдельными сообщениями.

Наиболее часто используют первый способ. При реализации работы с FTP-протоколами часто прибегают ко второму способу. При этом клиентское приложение посылает на сервер одно сообщение (один блок данных) и ждет ответа, подтверждающего его получение.

Особенности использования протокола UDP

Протокол UDP был создан для того, чтобы устранить проблему границ между блоками данных. Этот протокол не нуждается в буферах накопления, так как каждое сообщение (блок данных) посылается в виде отдельного пакета. Аналогично этому, каждый полученный пакет тут же передается приложению в виде одного сообщения.

Недостатком протокола UDP является тот факт, что он не гарантирует надежную доставку данных. Эту проблему должно решать сетевое приложение. Программа на стороне отправителя должна убедиться, что отправленный пакет получен. Одним из способов решения этой проблемы является ожидание ответа на каждый посланный пакет (метод command/response). Если ответ не пришел, то программа считает, что посланный пакет утерян. Процесс передачи пакета делится на четыре шага:

¨  Отсыл данных удаленному получателю,

¨  Запуск таймера, настроенного на определенный квант времени,

¨  Ожидание ответа. Если ответ пришел, то таймер сбрасывается и выполнение программы возобновляется.

¨  Если квант времени истек, а подтверждение не пришло, то вся процедура повторяется.

Если число попыток (the retry count) превзошло определенное количество, то делается вывод, что связь с узлом невозможна. Алгоритм проверки целостности хоть и прост, но потребует усилий, поэтому протокол TCP считается более приемлемым.

Как узнать конфигурацию IP

Под сетевым интерфейсом понимают сетевой адаптер—устройство, которое подключает компьютер к сети. Сетевой интерфейс определяет способы (технологии) передачи данных между узлами сети. Забегая вперед, отметим, что в библиотеке классов .NET Framework существует перечисление NetworkInterfaceType, которое содержит список возможних способов передачи. Вот этот список.

Тип

Интерфейс использует для передачи

AsymmetricDsl

Линию типа ADSL (Asymmetric Digital Subscriber Line)

Atm

Технологию типа ATM (Asynchronous Transfer Mode)

BasicIsdn

Соединение типа ISDN (Integrated Services Digital Network). Это телефонные стандарты.

Ethernet

Соединение типа Ethernet, определенное в стандарте IEEE 802.3.

Ethernet3Megabit

Соединение типа Ethernet, определенное в стандарте IEEE 802.3.

FastEthernetFx

Соединение типа Fast Ethernet, использующее оптическое волокно. Его часто называют 100BaseFX

FastEthernetT

Соединение типа Fast Ethernet, обеспечивающее 100 megabits per second. Его часто называют 100BaseT.

Fddi

Соединение типа FDDI (Fiber Distributed Data Interface). Стандарты оптоволокна в локальных сетях

GenericModem

Устройство типа modem

GigabitEthernet

?

HighPerformanceSerialBus

Высокоскоростную последовательную шину (High Performance Serial Bus)

IPOverAtm

IP (Internet Protocol) в комбинации с технологией ATM (Asynchronous Transfer Mode)

Isdn

Соединение типа ISDN и протокол X.25, который позволяет общаться с помощью промежуточного компьютера

Loopback

Адаптер типа Loopback, служащий для целей тестирования

MultiRateSymmetricDsl

Соединение типа Multirate Digital Subscriber

Ppp

Протокол типа PPP (Point-To-Point protocol)

PrimaryIsdn

Соединение типа ISDN с интерфейсом Primary Rate

RateAdaptDsl

Соединение типа ADSL (Rate Adaptive Digital Subscriber Line)

Slip

Соединение типа SLIP (Serial Line Internet Protocol), определенное стандартом IETF RFC 1055

SymmetricDsl

Соединение типа SDSL (Symmetric Digital Subscriber Line)

TokenRing

Соединение типа Token-Ring, определенное стандартом IEEE 802.5.

Tunnel

Туннельное соединение.

Unknown

Тип интерфейса неизвестен

VeryHighSpeedDsl

Соединение типа VDSL (Very High Data Rate Digital Subscriber Line).

Wireless80211

Беспроводное соединение, заданное стандартом IEEE 802.11. Оно используется в локальных сетях