Upload
dima-dzuba
View
76
Download
0
Embed Size (px)
DESCRIPTION
Основы TCP/IP.
Citation preview
МАИ, каф 806, Сети ЭВМ
ЛЕКЦИЯ №2
Сети TCP/IP
1
МАИ, каф 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
МАИ, каф 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 битов
зарезервировано
МАИ, каф 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”
МАИ, каф 806, Сети ЭВМ6
Интернет. Специальные адреса.WMI
Атрибуты класса Win32_NetworkAdapterConfiguration
DefaultIPGateway массив IP адресов шлюза
Description описание сетевого устройства
DHCPEnabled Динамический IP адрес млм нет
DHCPServer DHCP сервер
DNSHostName Имя DNS сервера
IPAddress Массив IP адресов устройства
IPEnabled Используется ли IP в данной сети
IPSubnet Массив адресов IP подсетей
MACAddress MAC адрес данного устройства
МАИ, каф 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
МАИ, каф 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
Иерархическая база данных для хранения
информации, которая может быть разделена
на уровни и разделена между различными
системами в интернет.
МАИ, каф 806, Сети ЭВМ
DNS. Поиск информации
1. Локальный DNS сервер запрашивает корневой DNS
сервер об адресе хоста.
2. Корневой DNS сервер запрашивает данные у
сервера, ответственного за домен.
3. Доменный DNS сервер получает IP адрес и
возвращает ответ корневому DNS серверу.
4. Корневой DNS сервер посылает ответ локальному
DNS серверу.
5. Локальный DNS сервер посылает ответ клиенту
9
Протокол: DNS
Транспортный уровень: TCP/UDP
Порт: 53
МАИ, каф 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:\>
МАИ, каф 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
МАИ, каф 806, Сети ЭВМ12
Интернет. URL
Имя или путь доступа:// /
•http
•ftp
•Rmi
•…
схема
•IP адрес
•DNS адрес
Адрес
• имя приложения
• имя файла на локальном диске
• виртуальная директория
• имя сервлета
• запрос с параметрами
query?param1=value1¶m2=value2
И т.д.
МАИ, каф 806, Сети ЭВМ
Интернет. Протокол HTTP
Протокол передачи гипертекста HTTP является протоколом прикладного уровня для
распределенных мультимедийных информационных систем. Это объектно-ориентированный
протокол, пригодный для решения многих задач, таких, как создание серверов имен,
распределенных объектно-ориентированных управляющих систем и др..
Создателем этой технологии явился Тим Бернес Ли, который работал в конце 80-х годов в
ЦЕРН (Женева), а до этого вел разработки в области экспертных систем, которые базируются
на гипертексте. Ему в голову пришла мысль объединить гипертекст и возможности Интернет.
HTTP это протокол передачи данных в Internet.
HTTP это стандарт на передачу запросов и ответов между клиентом и сервером.
Клиент обычно – конечный пользователь, в качестве сервера выступает Web- сервер.
Протокол реализует сервис без соединения и состояния.
Порт по умолчанию 80
Адресация серверов в HTTP выглядит следующим образом:
13
http_URL = "http:" "//" host [ ":" port ] [ abs_path ]
МАИ, каф 806, Сети ЭВМ14
Интернет. Протокол HTTP
Клиент Серверзапрос
ответВеб Браузер Веб Сервер
Клиент Сервер
запрос
ответ
Веб Браузер Веб Сервер
Промежуточный
сервер
запрос
ответ
Стандартный сеанс работы выглядит следующим образом:
1. HTTP клиент инициирует соединение с сервером по протоколу TCP.2. HTTP клиент посылает запрос серверу, указывая URL и параметры запроса.3. Сервер получает сообщение от клиента.4. Сервер отправляет клиенту результат запроса.5. Сервер закрывает соединение.
МАИ, каф 806, Сети ЭВМ
Интернет. HTTP. Посредники
Существует три стандартных формы посредников: прокси, туннель и внешний шлюз
(gateway). Прокси представляет собой агент переадресации, получающий запрос для URI,
переписывающий все сообщение или его часть и отправляющий переделанный запрос
серверу, указанному URI. Внешний шлюз (gateway) — это приемник, который работает на
уровень выше некоторых других серверов и транслирует, если необходимо, запрос
нижележащему протоколу сервера. Туннель действует как соединитель точкаточка и не
производит каких-либо видоизменений сообщений. Туннель используется, если нужно
пройти через какуюто систему (например, Firewall) в условиях, когда эта система не
анализирует содержимое сообщений.
15
МАИ, каф 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
МАИ, каф 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
МАИ, каф 806, Сети ЭВМ18
Интернет. Протокол HTTP.Заголовки запроса
МАИ, каф 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
МАИ, каф 806, Сети ЭВМ20
Интернет. Протокол HTTP.Заголовок ответа
МАИ, каф 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
МАИ, каф 806, Сети ЭВМ22
Интернет. Протокол HTTP. .NET Framework
пример 0030_WebClient
WebClient – как средство работы с HTTP на стороне клиента.
МАИ, каф 806, Сети ЭВМ23
Интернет. Протокол HTTP.NET Framework
HTTP Handlers – как средство работы с HTTP на стороне сервера
http://msdn.microsoft.com/en-us/library/system.web.httpcontext_properties.aspx
МАИ, каф 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
МАИ, каф 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