Spec-Zone .ru
спецификации, руководства, описания, API
След: Пользовательские Сети
Урок: Краткий обзор Сетей
Сети Основ
Домашняя страница > Пользовательские Сети > Краткий обзор Сетей

Сети Основ

Компьютеры, работающие на Интернете, связываются друг с другом, используя или протокол TCP (TCP) или Пользовательский Протокол Дейтаграммы (UDP), поскольку эта схема иллюстрирует:

Пример сетевых коммуникаций.

Когда Вы пишете программы Java, которые связываются по сети, Вы программируете в прикладном уровне. Как правило, Вы не должны интересоваться уровнями UDP и TCP. Вместо этого можно использовать классы в java.net пакет. Эти классы обеспечивают системно-независимые сетевые коммуникации. Однако, чтобы решить, который должны использовать классы Java Ваши программы, Вы действительно должны понять, как TCP и UDP отличаются.

TCP

Когда два приложения хотят связаться друг с другом достоверно, они устанавливают соединение и отправляют данные назад и вперед по тому соединению. Это походит на создание телефонного звонка. Если Вы хотите говорить с Тетей Беатрис в Кентукки, соединение устанавливается, когда Вы набираете ее номер телефона, и она отвечает. Вы отправляете данные назад и вперед по соединению, говоря с друг другом по телефонным линиям. Как телефонная компания, TCP гарантирует, что данные, отправленные от одного конца соединения фактически, добираются до другого конца, и в том же самом порядке это было отправлено. Иначе, об ошибке сообщают.

TCP обеспечивает канал "точка-точка" для приложений, которые требуют надежной связи. Гипертекстовый Протокол передачи (HTTP), Протокол Передачи файлов (FTP), и Telnet является всеми примерами приложений, которые требуют надежного канала связи. Порядок, в котором данные отправляются и получаются по сети, является критическим по отношению к успеху этих приложений. Когда HTTP используется, чтобы читать из URL, данные должны быть получены в порядке, в котором это было отправлено. Иначе, Вы заканчиваете со смешанным файлом HTML, поврежденным файлом zip, или некоторой другой недопустимой информацией.


Определение: 

TCP (протокол TCP) является основанным на соединении протоколом, который обеспечивает надежный поток данных между двумя компьютерами.


UDP

Протокол UDP предусматривает передачу, которая не гарантируется между двумя приложениями на сети. UDP не основан на соединении как TCP. Скорее это отправляет независимые пакеты данных, названных дейтаграммами, от одного приложения до другого. Отправка дейтаграмм очень походит на отправку буквы через почтовую службу: порядок поставки не важен и не гарантируется, и каждое сообщение независимо от любого другого.


Определение: 

UDP (Пользовательский Протокол Дейтаграммы) является протоколом, который отправляет независимые пакеты данных, названных дейтаграммами, от одного компьютера до другого без гарантий о прибытии. UDP не основан на соединении как TCP.


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

Рассмотрите, например, сервер часов, который отправляет текущее время его клиенту когда требующийся сделать так. Если клиент пропускает пакет, действительно не имеет смысла снова посылать это, потому что время будет неправильным, когда клиент получит это на второй попытке. Если клиент обращается с двумя просьбами и получает пакеты от сервера не в порядке, он действительно не имеет значения, потому что клиент может выяснить это, пакеты не в порядке и обращаются с другой просьбой. Надежность TCP является ненужной в этом экземпляре, потому что это вызывает ухудшение производительности и может препятствовать полноценности службы.

Другим примером службы, которая не нуждается в гарантии надежного канала, является команда ping. Цель команды ping состоит в том, чтобы протестировать передачу между двумя программами по сети. Фактически, ping должен знать об отброшенном или не в порядке пакетах определять, насколько хороший или плохой соединение. Надежный канал лишил бы законной силы эту службу в целом.

Протокол UDP предусматривает передачу, которая не гарантируется между двумя приложениями на сети. UDP не основан на соединении как TCP. Скорее это отправляет независимые пакеты данных от одного приложения до другого. Отправка дейтаграмм очень походит на отправку буквы через почтовую службу: порядок поставки не важен и не гарантируется, и каждое сообщение независимо от любых других.


Отметьте: 

Много брандмауэров и маршрутизаторов были сконфигурированы, чтобы не позволить пакеты UDP. Если Вы испытываете затруднения, соединяясь со службой вне Вашего брандмауэра, или если клиенты испытывают затруднения, соединяясь с Вашей службой, спросите своего системного администратора, если UDP разрешается.


Понимание Портов

Вообще говоря, у компьютера есть единственное физическое соединение с сетью. Все данные, предназначенные для определенного компьютера, прибывают через то соединение. Однако, данные могут быть предназначены для различных приложений, работающих на компьютере. Так, как компьютер знает к который приложение передать данные? С помощью портов.

Данные, переданные по Интернету, сопровождаются адресной информацией, которая идентифицирует компьютер и порт, для которого это предназначается. Компьютер идентифицируется его 32-разрядным IP-адресом, который использование IP поставить данные правильному компьютеру на сети. Порты идентифицируются 16-разрядным числом, который TCP и использование UDP, чтобы поставить данные правильному приложению.

В основанной на соединении передаче, такой как TCP, серверное приложение связывает сокет с определенным номером порта. Это имеет эффект регистрации сервера с системой, чтобы получить все данные, предназначенные для того порта. Клиент может тогда рандеву с сервером в порту сервера, как иллюстрировано здесь:

Клиент, связывающийся с сервером через его порт

Определение: 

TCP и протоколы UDP используют порты, чтобы отобразить входящие данные на определенный процесс, работающий на компьютере.


В основанной на дейтаграмме передаче, такой как UDP, пакет дейтаграммы содержит номер порта своего места назначения, и UDP направляет пакет к соответствующему приложению, как иллюстрировано в этом числе:

Маршрутизация пакета к соответствующему приложению.

Номера портов колеблются от 0 до 65 535, потому что порты представляются 16-разрядными числами. Номера портов в пределах от 0 - 1023 ограничиваются; они резервируются для использования известными службами, такими как HTTP и FTP и другие системные службы. Эти порты вызывают закрепленными портами. Ваши приложения не должны попытаться связать с ними.

Сети Классов в JDK

Через классы в java.net, Программы Java могут использовать TCP или UDP, чтобы связаться по Интернету. URL, URLConnection, Socket, и ServerSocket классы весь TCP использования, чтобы связаться по сети. DatagramPacket, DatagramSocket, и MulticastSocket классы для использования с UDP.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Что Можно Уже Знать О Сетях в Java
Следующая страница: Работа с URL