Существуют два типа межкомпьютерного обмена данными – датаграммы и сеансы. Датаграмма - это сообщение, которое не требует подтверждения о приеме от принимающей стороны, а если такое подтверждение необходимо, то адресат должен сам послать специальное сообщение. Чтобы обмениваться данными таким способом, принимающая и передающая стороны должны строго придерживаться определенного протокола во избежание потери информации. Каждая датаграмма является самостоятельным сообщением, и при наличии нескольких датаграмм в ЛВС их доставка адресату, вообще говоря, не гарантируется. При этом датаграмма обычно является частью какого-либо сообщения, и в большинстве ЛВС скорость передачи датаграмм гораздо выше, чем сообщений в сеансах.
В сеансе предполагается создание логической связи для обмена сообщениями между компьютерами и гарантируется получение сообщений. В то время как датаграммы могут передаваться в произвольные моменты времени, в сеансе перед передачей сообщения происходит открытие сеанса, а по окончании обмена данными сеанс должен быть закрыт.
Операционные системы большинства компьютеров поддерживают мультипрограммный режим, т. е. несколько программ работают одновременно (параллельно выполняется несколько процессов). С некоторой степенью точности можно говорить о том, что процесс – это и есть окончательное место назначения для сообщения. Однако в силу того, что процессы создаются и завершаются динамически, отправитель редко имеет информацию, достаточную для идентификации процесса на другом компьютере. Поэтому возникает необходимость определить место назначения данных на основе выполняемых процессами функций при отсутствии какой-либо информации о процессах, которые реализуются этими функциями.
На практике вместо того, чтобы считать процесс конечным местом назначения, полагают, что каждый компьютер имеет набор некоторых точек назначения, называемых протокольными портами. Каждый порт идентифицируют целым положительным числом (от 0 до 65535). В этом случае операционная система обеспечивает механизм взаимодействия, используемый процессами для указания порта, на котором они работают, или порта, к которому нужен доступ. Обычно порты являются буферизированными, и данные, приходящие в конкретный порт до того, как процесс готов их получить, не будут потеряны: они будут помещены в очередь до тех пор, пока процесс не извлечет их.
Чтобы лучше понять технологию портов, представьте, что вы пришли в банк, чтобы сделать вклад. Для этого вам нужно подойти к определенному окошку, где оператор оформит документы и вы откроете счет. В этом примере банк представляет собой компьютер, а операторы банка – программы, которые выполняют определенную работу. А вот окошки – это и есть порты, при этом каждое окошко в банке часто нумеруется (1, 2, 3…). То же самое относится и к портам.
Следовательно, чтобы связаться с портом на другом компьютере, отправитель должен знать как IP-адрес компьютера-получателя, так и номер порта в компьютере. Каждое сообщение содержит как номер порта компьютера, которому оно адресовано, так и номер порта-источника компьютера, которому должен прийти ответ. Таким образом реализуется возможность ответить отправителю для каждого процесса.
Порты с номерами от 0 до 1023 является привилегированными и используются сетевыми службами, которые, в свою очередь, запущены с привилегиями администратора. Например, служба доступа к файлам и папкам Windows использует порт 139, однако если она не запущена на компьютере, то при попытке обратиться к данной службе ( т. е. к данному порту) будет получено сообщение об ошибке.
Порты с 1023 до 65535 являются непривилегированными и применяются программами-клиентами для получения ответов от серверов. Например, ваш веб-браузер, обращаясь к веб-серверу, использует порт 44587 вашего компьютера, но обращается к 80 порту веб-сервера. Получив запрос, веб-сервер отправляет ответ на порт 44587, который используется веб-браузером.
Комментариев нет:
Отправить комментарий