Что такое IP-адреса, порты, протоколы.Давайте немного поговорим о компьютерных сетях и автомобилях. Что у них общего? Мы каждый день ездим на автомобиле на работу и домой и знаем что у каждого автомобиля есть свой номер. Точно так же и каждый компьютер в компьютерной сети имеет свой номер. По другому это номер называют IP-адрес.
IP-адрес это номер компьютера в сети. Он служит для того чтобы найти нужный нам компьютер среди множества других.
На рисунке компьютеры имеют IP-адреса 1,2,3,4
На стоянке среди машин мы можем найти собственный автомобиль если скажем: "мой автомобиль имеет такой-то номер". Точно так же в компьютерной сети, чтобы найти нужный нам компьютер нужно сказать: "давайте соединимся с компьютером который имеет такой-то номер" (или IP-адрес, что одно и тоже).
Но на самом деле в компьютерной сети Интернет находится много компьютеров, и IP-адреса обычно бывают большими, например 64127244101, 64127244102, 64127244103. Запоминать нам такие номера неудобно, поэтому люди договорились писать и разделять их точками вот так: 64.127.244.101, 64.127.244.102, 64.127.244.103. А уж для полного удобства придумали доменные имена (например www.yahoo.com), которые запомнить совсем не составит проблем. Когда мы вводим доменное имя в браузер, компьютер переводит его в IP-адрес (номер компьютера в сети) и дальше работает с полученным IP-адресом. Например, имя www.google.com компьютер переведёт в 66.102.11.104, имя www.yahoo.com в 216.109.118.74, а имя www.yandex.ru в 213.180.194.129. Вот так компьютеры в сети находят друг друга.
Теперь давайте посмотрим что творится на отдельно взятом компьютере, поговорим о портах.
Пусть мой компьютер имеет IP-адрес 192.168.0.2 и на нём установлен WEB-сервер, почтовый сервер, и ICQ-сервер. А у вас есть ваш любимый Internet Explorer. Вы говорите ему: "соединяйся ка с компьютером, который имеет IP-адрес 192.168.0.2, посмотрим что там у него за сайт". Internet Explorer отвечают "ОК", и находит по указанному адресу мой компьютер. А дальше возникает путаница. Потому что Internet Explorer нашёл компьютер, но с каким сервером ему работать, ведь на компьютере у меня их целых три?
Для того, чтобы избежать этой путаницы, давайте ка я назначу каждому серверу свой номер. Этот номер и будет называться портом.
На моём компьютере почтовый сервер получил порт номер 1, ICQ-сервер порт номер 2, и WEB-сервер порт номер 3.
Теперь вы говорите своему браузеру "соединяйся ка с компьютером в Интернет, который имеет IP-адрес 192.168.0.2 по порту номер 3 посмотрим что там у него за сайт". Internet Explorer отвечают "ОК", находит по IP-адресу мой компьютер, находит на моём компьютере при помощи указанного порта (номера) WEB-сервер и показывает мой сайт.
Потом вы можете сказать своей почтовой программе: "соединись ка с компьютером который имеет IP-адрес 192.168.0.2 по порту номер 1 посмотрим есть ли у нас новая почта". И опять путаницы не возникнет, почтовая программа точно найдёт почтовый сервер на моём компьютере.
Программа, которая ожидает когда к ней подсоединится другая программа, называется серверной (сервер). Программа, которая подсоединяется к серверной программе и просит её выполнить какое-нибудь действие называется клиентской (клиент).
Порт - это номер, который точно указывает серверную программу на выбранном компьютере. Клиентская программа использует порт для того, чтобы указать к какому серверу на выбранном компьютере она хочет подсоединиться.
Теперь мы знаем, что для того, чтобы подсоединиться к выбранному компьютеру, нам необходимо знать его IP-адрес (чтобы найти компьютер в сети), и порт (чтобы найти нужный сервер на выбранном компьютере). Кратко это записывается так: "IP-адрес:порт". Вот несколько примеров:
192.168.0.2:1 (IP-адрес равен 192.168.0.2, порт равен 1) 66.102.11.104:80 (IP-адрес равен 66.102.11.104, порт равен 80) 216.109.118.74:316 (IP-адрес равен 216.109.118.74, порт равен 316)
Когда владелец компьютера устанавливает у себя серверные программы, он сам назначает порты для этих программ. Как же нам узнать какой порт имеет, например WEB-сервер на www.yahoo.com (IP 216.109.118.74) ? К счастью чтобы избежать путаницы все администраторы договорились давать серверам определённые порты.
WEB-серверу договорились давать порт номер 80 FTP-серверу договорились давать порт номер 21 серверу для отправки почты (SMTP-сервер) обычно дают порт 25 серверу для приёма почты (POP-сервер) обычно дают порт 110 ICQ-сервер имеет порт 5190
Поэтому поисковая машина на www.yahoo.com (IP 216.109.118.74) будет иметь порт номер 80.
Теперь пару слов про протоколы а потом немного поэкспериментируем с портами.
У меня есть друг, который говорит на японском. Хотите с ним пообщаться? Я могу дать телефон. Но думаю, что если вы не знаете японского у вас врятле что-то получится. Точно так же и программы, для общения между собой используют различные языки (протоколы). И если одна программа не знает язык другой, то программы просто не смогут работать друг с другом.
Набор правил по которым программы взаимодействуют друг с другом, называется протоколом. Разные программы используют разные протоколы.
Internet Explorer отлично понимает язык WEB-серверов и показывает нам сайты в Интернет. Но давайте попробуем заставить его соединиться с ICQ-сервером. Что произойдёт? Давайте скажем "Internet Explorer, соединись ка с сервером login.icq.com используя порт 5190". Internet Explorer ответит "ОК". Потом преобразует имя "login.icq.com"в IP адрес 205.188.179.233 и соединяется с этим компьютером по порту 5190. ICQ-сервер видит что к нему кто-то подсоединился и говорит: "Привет, я ICQ-сервер". Но Explorer не понимает, что ему говорит ICQ-сервер, потому что не знает его протокола. Он отвечает "Что ты мне говоришь? Я тебя не понимаю!". ICQ-сервер тоже не понимает что говорит ему Explorer. Он отвечает "Я не понимаю кто ты и о чём меня хочешь попросить. Я с тобой не буду разговаривать!". После этого ICQ-сервер закрывает соединение с Internet Explorer'ом и Internet Explorer показывает нам страничку об ошибке. Однако ваш ICQ-пейджер, который знает ICQ-протокол каждый раз подсоединяется к ICQ-серверу и вы можете получать и отправлять сообщения своим друзьям.
Их всего этого сделаем правильный вывод: почтовая программа должна общаться с почтовым сервером, WEB-браузер должен общаться с WEB-сервером, FTP-клиент с FTP-сервером и так далее. По другому у них ничего не получится.
Экспериментируем с IP-адресами.
Читая предыдущую главу вы наверняка задавались вопросом: "А как это компьютер переводит доменные имена типа www.google.com в IP-адреса как 66.102.11.104 ?". Давайте и мы уподобимся Windows и определим IP-адрес для www.google.com, тем более что это не потребует от нас никаких усилий. Запустим сначала командную строку. Вот как она выглядит у меня:
Теперь набираем строку "ping www.google.com" и нажимаем ввод:
Вот что приблизительно вы увидите:
Те цифры, которые стоят в квадратных скобках [66.102.11.104] и есть IP-адрес компьютера на котором находится поисковый сервер www.google.com. Если вы получили другой адрес, не расстраивайтесь. Так как на эту поисковую машину идёт большое количество запросов, и для каждой страны имя www.google.com может указывать на разные компьютеры.
Вот как выглядит www.e-gold.com
а www.petsmart.com имеет адрес [66.77.62.4]
Теперь попробуем заставить Internet Explorer напрямую подсоединится к WEB-серверу на [66.77.62.4].
Как вы помните для этого нам понадобится ещё и порт. Если вы забыли на каком порту стоят WEB-сервера, посмотрите выше, вы найдёте что это порт номер 80.
Итак, давайте наберём в нашем браузере строку "http://66.77.62.4:80" и нажмём ввод. Вот что я увидел:
Значит всё работает! Теперь попробуем проделать тоже самое для www.compaq.com. Определим его IP как это было описано выше. У меня получается [161.114.87.252]. Порт 80 это мы знаем. Введём в браузер "http://161.114.87.252:80" и нажмём ввод. Вот что у меня получилось:
|