В этом сценарии возможна ситуация, когда индивидуальные сообщения от разных приложений могут оказаться в одном буфере. Для программиста это означает, что количество блоков данных на стороне отправителя может не совпадать с с количеством блоков на стороне получателя. При первом знакомстве такой поворот событий кажется неожиданным и способен смутить. Задача выделения Data1 и Data2 из общего пакета возлагается на сетевую программу на стороне получателя. Так как подсистема TCP стирает границы между блоками данных, то логика сетевой программы должна быть более сложной. Существует два способа решения этой задачи:
¨ Создать протокол, который вводит реакции на каждый отдельный блок данных.
¨ Разработать систему маркировки для различения границ между отдельными сообщениями.
Наиболее часто используют первый способ. При реализации работы с FTP-протоколами часто прибегают ко второму способу. При этом клиентское приложение посылает на сервер одно сообщение (один блок данных) и ждет ответа, подтверждающего его получение.
Протокол UDP был создан для того, чтобы устранить проблему границ между блоками данных. Этот протокол не нуждается в буферах накопления, так как каждое сообщение (блок данных) посылается в виде отдельного пакета. Аналогично этому, каждый полученный пакет тут же передается приложению в виде одного сообщения.
Недостатком протокола UDP является тот факт, что он не гарантирует надежную доставку данных. Эту проблему должно решать сетевое приложение. Программа на стороне отправителя должна убедиться, что отправленный пакет получен. Одним из способов решения этой проблемы является ожидание ответа на каждый посланный пакет (метод command/response). Если ответ не пришел, то программа считает, что посланный пакет утерян. Процесс передачи пакета делится на четыре шага:
¨ Отсыл данных удаленному получателю,
¨ Запуск таймера, настроенного на определенный квант времени,
¨ Ожидание ответа. Если ответ пришел, то таймер сбрасывается и выполнение программы возобновляется.
¨ Если квант времени истек, а подтверждение не пришло, то вся процедура повторяется.
Если число попыток (the retry count) превзошло определенное количество, то делается вывод, что связь с узлом невозможна. Алгоритм проверки целостности хоть и прост, но потребует усилий, поэтому протокол TCP считается более приемлемым.
Под сетевым интерфейсом понимают сетевой адаптер—устройство, которое подключает компьютер к сети. Сетевой интерфейс определяет способы (технологии) передачи данных между узлами сети. Забегая вперед, отметим, что в библиотеке классов .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. Оно используется в локальных сетях |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.