25
МАИ, каф 806, Сети ЭВМ ЛЕКЦИЯ №2 Сети TCP/IP 1

МАИ, Сети ЭВМ, Лекция №2

Embed Size (px)

DESCRIPTION

Основы TCP/IP.

Citation preview

Page 1: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

ЛЕКЦИЯ №2

Сети TCP/IP

1

Page 2: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ2

Интернет

1. Физический уровень

Протоколы обеспечивающие связь между «канальным» и сетевым уровнем

• ARP (Address Resoultion Protocol)

• RARP (Reverse Address Resoultion Protocol)

2. Сетевой уровень

IP –маршрутизация, фрагментация и сборка пакетов.

Протоколы маршрутизации:

• RIP (Routing Information Protocol)

• EGP (Exterior Gateway Protocol)

• BGP (Border Gateway Protocol)

• И т.д.

3. Транспортный уровень

• TCP

• UDP

4. Прикладной уровень

• FTP

• SMTP

• HTTP

• Telnet

• NFS

Page 3: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ3

Интернет. Адресация в интернет

IP Адрес (32 бита) xx.xx.xx.xx - где xx лежит в диапазоне от 0 до 255

Классы сетей

• Сеть класса A 0 7 битов 8 битов 8 битов 8 битов

сеть узел

• Сеть класса B 10 6 8 битов 8 битов 8 битов

сеть узел

• Сеть класса C 110 5 8 битов 8 битов 8 битов

сеть узел

• Сеть класса D 1110 4 8 битов 8 битов 8 битов

Групповой адрес

• Сеть класса E 11110 3 8 битов 8 битов 8 битов

зарезервировано

Page 4: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ4

• Адрес Сети

14.0.0.0

•Локальный адрес

0.0.0.0

•Broadcast адрес

255.255.255.255

•Loopback адрес

127.0.0.1 (Класс A)

•Адреса частных сетей

A 10.0.0.0 – 10.255.255.255

B 172.16.0.0 - 172.31.255.255

C 192.168.0.0 – 192.168.255.255

Интернет. Специальные адреса. Registry

пример 001_CardGrab

Использование ipconfig для получения

информации об адресе

C:\>ipconfig

Windows NT IP Configuration

Ethernet adapter El90x1:

IP Address. . . . . . . . . :

192.168.12.234

Subnet Mask . . . . . . . . :

255.255.255.0

Default Gateway . . . . . . :

192.168.1.1

PPP adapter NdisWan5:

IP Address. . . . . . . . . : 0.0.0.0

Subnet Mask . . . . . . . . : 0.0.0.0

Default Gateway . . . . . . :

C:\>

Демонстрация “Получение данных из Registry”

Page 5: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

Протокол IP v4

5

Page 6: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ6

Интернет. Специальные адреса.WMI

Атрибуты класса Win32_NetworkAdapterConfiguration

DefaultIPGateway массив IP адресов шлюза

Description описание сетевого устройства

DHCPEnabled Динамический IP адрес млм нет

DHCPServer DHCP сервер

DNSHostName Имя DNS сервера

IPAddress Массив IP адресов устройства

IPEnabled Используется ли IP в данной сети

IPSubnet Массив адресов IP подсетей

MACAddress MAC адрес данного устройства

Page 7: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

Интернет. Специальные адреса.WMI

пример 002_WMIGrab

Получать данные из WMI можно простыми SQL запросами:

SELECT IPAddress, IPSubnet from Win32_NetworkAdapterConfiguration

Для того что бы получить данные из C# нам понадобится:

Создать объект ManagementObjectSearcher, который содержит SQL запрос.

Получит объект ManagementObjectCollection, который будет содержать результат

выполнения запроса.

В цикле, создать объект ManagementObject для каждого элемента из Management-

ObjectCollection.

Назначить значения обычным переменным

7

Демонстрация “Получение данных из WMI”

http://msdn.microsoft.com/en-us/library/aa394084%28VS.85%29.aspx

Page 8: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ8

Интернет. DNS

www . mai . ru

Домен 1-го уровня

Домен 2-го уровня

Домен 3-го уровня

Domain Описание

.com Commercial organizations

.edu Educational institutions

.mil U.S. military sites

.gov U.S. government organizations

.net Internet Service Providers (ISPs)

.org Nonprofit organizations

.us Other U.S. organizations (such as

local governments)

.ca Canadian organizations

.de German organizations

(other

countries)

Organizations from other

countries

Иерархическая база данных для хранения

информации, которая может быть разделена

на уровни и разделена между различными

системами в интернет.

Page 9: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

DNS. Поиск информации

1. Локальный DNS сервер запрашивает корневой DNS

сервер об адресе хоста.

2. Корневой DNS сервер запрашивает данные у

сервера, ответственного за домен.

3. Доменный DNS сервер получает IP адрес и

возвращает ответ корневому DNS серверу.

4. Корневой DNS сервер посылает ответ локальному

DNS серверу.

5. Локальный DNS сервер посылает ответ клиенту

9

Протокол: DNS

Транспортный уровень: TCP/UDP

Порт: 53

Page 10: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

DNS. База данных

Содержит

Описание домена

Список всех хостов домена

Имена хостов домена

Специальные сервисы, такие как DNS и e-mail

10

Тип

записи

Описание

SOA Start of Authority. Содержит описание зоны, имя компьютера на

котором содержится описание зоны, электронная почта

человека, отвечающего за зону, версия базы данных, срок

устареваняи данных.

A Internet address. Имя хоста и IP адрес.

NS Name server. Каждая зона должна иметь минимум два DNS

сервера. Запись содержит описание DNS серверов.

CNAME Canonical name (nickname). Дополнительные имена для

хостов.

HINFO Host information. Описание аппаратного устройства сервера и

версии OS.

MX Mail server. Описание почтового сервера и приоритет.

PTR Pointer (IP address). Служит для определения имени сервера

по IP адресу (фактически запись A наоборот)..

C:\>nslookup www.microsoft.com

Server: dns.ispnet.net

Address: 10.25.0.1

Non-authoritative answer:

Name: www.microsoft.akadns.net

Addresses: 207.46.197.100,

207.46.230.218, 207.46.197.113,

207.46.197.102

207.46.230.220, 207.46.230.219

Aliases: www.microsoft.com

C:\>

Page 11: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ11

Интернет. DNS

пример 003_DNSLookup

Демонстрация “Получение информации из DNS”

smallorg.org IN SOA master.isp.net. postmaster.master.isp.net

postmaster.master.isp.net (

2003080800 ; sn = serial number

172800 ; ref = refresh = 2d

900 ; ret = update retry = 15m

1209600 ; ex = expiry = 2w

3600 ; min = minimum = 1h )

NS ns1.isp.net. ;defines primary namserver

NS ns2.isp.net. ;defines secondary nameserver

MX 10 mail1.isp.net. ; defines primary mail server

MX 20 mail2.isp.net. ; defines secondary mail server

www CNAME host1.isp.net ;defines a www server at the ISP

ftp CNAME host1.isp.net ; defines an FTP server at the ISP

host1.isp.net A 10.0.0.1 1.0.0.10.IN-ADDR.ARPA PTR host1.isp.net ; pointer for reverse DNS

Page 12: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ12

Интернет. URL

Имя или путь доступа:// /

•http

•ftp

•Rmi

•…

схема

•IP адрес

•DNS адрес

Адрес

• имя приложения

• имя файла на локальном диске

• виртуальная директория

• имя сервлета

• запрос с параметрами

query?param1=value1&param2=value2

И т.д.

Page 13: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

Интернет. Протокол HTTP

Протокол передачи гипертекста HTTP является протоколом прикладного уровня для

распределенных мультимедийных информационных систем. Это объектно-ориентированный

протокол, пригодный для решения многих задач, таких, как создание серверов имен,

распределенных объектно-ориентированных управляющих систем и др..

Создателем этой технологии явился Тим Бернес Ли, который работал в конце 80-х годов в

ЦЕРН (Женева), а до этого вел разработки в области экспертных систем, которые базируются

на гипертексте. Ему в голову пришла мысль объединить гипертекст и возможности Интернет.

HTTP это протокол передачи данных в Internet.

HTTP это стандарт на передачу запросов и ответов между клиентом и сервером.

Клиент обычно – конечный пользователь, в качестве сервера выступает Web- сервер.

Протокол реализует сервис без соединения и состояния.

Порт по умолчанию 80

Адресация серверов в HTTP выглядит следующим образом:

13

http_URL = "http:" "//" host [ ":" port ] [ abs_path ]

Page 14: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ14

Интернет. Протокол HTTP

Клиент Серверзапрос

ответВеб Браузер Веб Сервер

Клиент Сервер

запрос

ответ

Веб Браузер Веб Сервер

Промежуточный

сервер

запрос

ответ

Стандартный сеанс работы выглядит следующим образом:

1. HTTP клиент инициирует соединение с сервером по протоколу TCP.2. HTTP клиент посылает запрос серверу, указывая URL и параметры запроса.3. Сервер получает сообщение от клиента.4. Сервер отправляет клиенту результат запроса.5. Сервер закрывает соединение.

Page 15: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

Интернет. HTTP. Посредники

Существует три стандартных формы посредников: прокси, туннель и внешний шлюз

(gateway). Прокси представляет собой агент переадресации, получающий запрос для URI,

переписывающий все сообщение или его часть и отправляющий переделанный запрос

серверу, указанному URI. Внешний шлюз (gateway) — это приемник, который работает на

уровень выше некоторых других серверов и транслирует, если необходимо, запрос

нижележащему протоколу сервера. Туннель действует как соединитель точкаточка и не

производит каких-либо видоизменений сообщений. Туннель используется, если нужно

пройти через какуюто систему (например, Firewall) в условиях, когда эта система не

анализирует содержимое сообщений.

15

Page 16: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ16

Интернет. Протокол HTTP.Запрос

Состоит из

Строка запроса «Method SP Request-URI SP HTTP-Version CRLF»

Заголовок запроса

Пустая строка

Тело сообщения-запроса (может отсутствовать)

Возможные значения Method

HEAD – получить в ответ только заголовки, без данных

GET – запрос данных

POST – отправка данных

PUT – загрузка ресурса на сервер

DELETE – удаление ресурса с сервера

TRACE – запрос получение текста запрос обратно (для просмотра изменений, внесенных промежуточными серверами)

OPTIONS – получение методов, поддерживаемых сервером для данного URL

CONNECT – создание соединения для последующих взаимодействий (обычно для SSL).

Версия

HTTP/1.0

HTTP/1.1

Page 17: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ

Интернет. Протокол HTTP

Тело сообщения HTTP (если имеется) используется для переноса тела объекта, сопряженного с запросом или откликом. Тело

сообщения отличается от тела объекта, только когда используется транспортное кодирование, как это указано в поле заголовка

Transfer-Encoding.

messagebody = entitybody | <entitybody encoded as per Transfer-Encoding>

Transfer-Encoding должно применяться для указания любого транспортного кодирования, реализованного приложением с целью

гарантированной неискаженной доставки сообщения. Транспортное кодирование лежит в зоне ответственности сообщения, а не

объекта и по этой причине может быть реализовано любым приложением в цепочке запрос/отклик.

Длина сообщения

Когда тело включено в сообщение, его длина определяется следующим образом (в порядке приоритета).

Любое сообщениеотклик, которое не должно включать в себя тело сообщения (такое, как отклик 1xx, 204 и 304, а также

любые отклики на запрос HEAD), всегда завершаются первой пустой строкой после полей заголовка, вне зависимости от

присутствующих в сообщении полей заголовка объекта.

Если присутствует поле заголовка Transfer-Encoding и указано, что использовано фрагментное ("chunked") транспортное

кодирование, тогда длина тела определяется выбранной схемой кодирования.

Если присутствует поле заголовка ContentLength, его значение в байтах и определяет длину тела сообщения.

Если сообщение использует тип cреды multipart/byteranges, который является самоограничивающим, тогда он и определяет

длину. Этот тип среды не должен использоваться, если отправитель не знает, может ли получатель разобрать его.

Присутствие в запросе заголовка Range с множественными спецификаторами диапазона подразумевает, что клиент может

разобрать отклики типа multipart/byteranges.

Длина определяется сервером при закрытии связи. (Закрытие соединения не может применяться для обозначения конца

тела запроса, так как это не оставит возможности для сервера послать отклик.)

17

Page 18: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ18

Интернет. Протокол HTTP.Заголовки запроса

Page 19: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ19

Интернет. Протокол HTTP.Ответ

Состоит из

Строка ответа «HTTP-Version SP Status-Code SP Reason-Phrase CRLF »

Заголовок ответа

Пустая строка

Тело сообщения-ответа (может отсутствовать)

Возможные значения Status-Code

1xx - Informational

2xx - Success

3xx - Redirection

4xx - Client Error

5xx - Server Error

Версия

HTTP/1.0

HTTP/1.1

Page 20: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ20

Интернет. Протокол HTTP.Заголовок ответа

Page 21: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ21

Интернет. Протокол HTTP.Пример

Запрос

GET /index.html HTTP/1.1

Host: www.example.com

Ответ

HTTP/1.1 200 OK

Date: Mon, 23 May 2005 22:38:34 GMT

Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)

Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT

Etag: "3f80f-1b6-3e1cb03b"

Content-Length: 438

Content-Type: text/html

Page 22: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ22

Интернет. Протокол HTTP. .NET Framework

пример 0030_WebClient

WebClient – как средство работы с HTTP на стороне клиента.

Page 23: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ23

Интернет. Протокол HTTP.NET Framework

HTTP Handlers – как средство работы с HTTP на стороне сервера

http://msdn.microsoft.com/en-us/library/system.web.httpcontext_properties.aspx

Page 24: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ24

Пример сценария посылки сообщения

Сервер: 220 имя_сервера ESMTP

Клиент: HELO имя_сервера

Сервер: 250 имя_сервера

Клиент: MAIL FROM: e-mail

Сервер: 250 ok

Клиент:RCPT TO: e-mail

Сервер: 250 ok

Клиент: DATA

Сервер: 354 go ahead

Клиент: Текст письма, оканчивающийся на строку

содержащую только точку.

Сервер: 250 ok

Клиент: QUIT

Сервер: 221 имя_сервера

Интернет. Протокол SMTP

Протокол для отправки e-mail.

Порт по умолчанию 25.

Реализует сервис с соединением

Набор команд:

HELO

DATA

QUIT

RCPT TO

MAIL FROM

Page 25: МАИ, Сети ЭВМ, Лекция №2

МАИ, каф 806, Сети ЭВМ25

Интернет. Протокол POP3

Протокол для получения e-mail.

Порт по умолчанию 110.

Реализует сервис с соединением

Набор команд:

USER

PASS

QUIT

STAT

RETR

DELE

Пример

Сервер: +OK QPOP (version 2.3) at kynes.gatewest.net starting.

Клиент: user jeff

Сервер:+OK Password required for jeff.

Клиент: pass secret

Сервер: +OK jeff has 1 message (554 octets).

Клиент: stat

Сервер: +OK 1 554

Клиент: retr 1

Сервер: +OK 554 octets

Return-Path: <[email protected]>

Received: from gatewest.net (h139-142-224-

80.gtcust.grouptelecom.net [139.142.224.80]

by kynes.gatewest.net (8.12.1/8.12.0.Beta19/Debian 8.12.0.Beta19)

for <[email protected]>; Sat, 2 Mar 2002 16:38:29 -0600

Date: Sat, 2 Mar 2002 16:38:10 -0600

From: Jeff Friesen <[email protected]>

Message-Id: <[email protected]>

Subject: Test Email

To: undisclosed-recipients:; S:X-UIDL:

ef17608650892dac19191c3244fbe4a9

This is my email message.

.

Клиент: quit

Сервер: +OK