Каждый из нас когда либо задумывался, а что такое порт? Ведь
мы часто слышим про это. Существуют два типа межкомпьютерного обмена данными -
датаграмм и сеансы. Датаграмма - это простое сообщение, которое не требует
подтверждение о приеме от принимающей стороны, а если такое подтверждение
необходимо, то адресат должен сам послать специальное сообщение, короче говоря,
ты посылаешь сообщение и не знаешь, дошло оно или нет . Для осуществления
обмена данными таким способом принимающая и передающая стороны должны строго
придерживаться определенного протокола во избежание потери инфы. Каждая
датаграмма является самостоятельным сообщением, и при наличии нескольких таких
датаграмм в ЛВС их доставка адресату, вообще говоря, не гарантируется. При этом
датаграмма обычно является частью какого-либо сообщения, и в большинстве ЛВС
скорость передачи датаграмм гораздо выше, чем сообщения в сеансах.
Ну что, настало время поговорить о сеансе. Сеанс - это такая
же байда, только в данном случае мы будем знать о получение сообщения. В то
время как датаграммы могут передаваться в произвольное время (то есть, когда
наша душа этого пожелает), а сеанс полная противоложность наших датаграмм. В
сеансе перед подачей сообщения происходит открытие сеанса, а по окончании мы
его закрываем.
Операционнки большинства компов поддерживают
мультипрограммный режим, это значит, что программы могут выполнятся
одновременно, значит параллельно выполняется несколько процессов. Если сказать
точнее можно сказать о том, что процесс - это и есть окончательное место
сообщения.
На практике вместо того, чтобы считать процесс конечным
местом назначения, полагают, что каждый комп имеет набор некоторых точек
назначения, что в простонародьи называют протокольными портами. Каждый порт
обозначается целым положительным числом (от 0 до 65535). В этом случае
операционка обеспечивает механизм взаимодействия, а процессы этот механизм
используют для указания порта, на котором они работают, или наоборот, к порту
которому нужен доступ, думаю ничего сложного. Обычно порты буферезированные, то
есть имеют определенное место для хранения данных, и данные, приходящие в
конкретный порт до того, как процесс готов их получить, не будут потеряны! Они
будут помещены в очередь до тех пор, пока процесс не извлечет их.
Можно сделать ма-а-аленький вывод по поводу вышесказанного:
чтобы связаться с портом на другом компе, нам нужно знать его IP-адрес и номер
порта в компьютере.
Порты с номерами от 0 до 1023 являются привилегированными и
используется сетевыми службами, которые в свою очередь, запущены с привилегиями
админа или суперпользователя. Например, служба доступа к файлам и папкам Винды
использует порт 139, но если она не запущена на компьютере, то при попытке
обратиться к данной службе (т.е к данному порту) комп просто ругнется, выдавая
сообщение об ошибке . Порты с 1023 до 65535 являются непривилегированными и
используется программами клиентами для получения оветов от серверов, например
VPN-клиент может использовать порт под номером 1723 по PРTP-протоколу (если не
знаешь, что такое VPN, напиши мне на мыло или отправь сообщение, с радостью
отвечу!). Еще на последок приведу пример: браузер пользователя (не важно какой,
Netscape, Opera или IE 5.0) обращаясь к WEB-серванту, использует 44587 своего
компа, но он обращается к 80 порту WEB-серванта.
Как вы поняли портов может быть оочень много, и если вы
пожелаете познакомится с ними вы можете пройти по ссылке ниже. На этом ресурсе
указаны все порты)
http://www.iana.org/assignments/port-numbers
|