SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Сетевые протоколы
Дмитрий Смаль
ISO - OSI
Назначение уровней
●Физический: управление средой, сигналом,
кодирование потока битов
●Канальный: физическая адресация, передача между
двумя интерфейсами
●Сетевой: логическая адресация, передача между двумя
хостами, передача в гетерогенных сетях
●Транспортный: надежная доставка, передача между
двумя приложениями, управление потоком байтов
Ethernet
Ethernet
Ethernet
Ethernet – формат кадра
●Преамбула (7 байт) – стабилизация среды
●SFD (0xab) – начало кадра
●MAC адреса (broadcast, interface)
●Протокол верхнего уровня
●Данные – до 1500 байт
●CRC-32 – контрольная сумма
●EFD – конец кадра
Hub, Switch, ARP
Ограничения ЛВС
●Физические ограничения
– Затухание
– Коллизии
●Ограничение числа хостов
– Сложность топологии
– Огромные таблицы коммутации
●Несовместимость различных архитектур
IP
Internet Protocol
Схема IP сети
Задачи IP протокола
●Глобальная адресация
●Передача в гетерогенной сети (сегментация)
●Маршрутизация пакетов
IP – адресация
●94.100.191.201 – один из адресов Mail.Ru
●127.0.0.1 – всегда адрес лок. Компьютера
●94.100.190.0/23 – адрес подсети
●10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 – private ip (не
уникальные адреса)
●224.0.0.0 – 239.255.255.255 – multicast ip
Иерархия IP адресов
IP дейтограмма
Алгоритм роутера
●Получение сегмента, определение ip получателя
●Поиск в таблице маршрутизации
●Не найдено отбрасываем пакет→
●Выбор наиболее приоритетного маршрута (по
префиксу, по дистанции, по ширине канала)
●Передача сегмента через нужный интерфес
Маршрутизация
Статическая: конфиг
Внутренняя: RIP и OSPF
●Работает в небольших сетях
●Каждый марштизатор вычис полную таблицу
маршрутов
Внешняя: BGP и EGP
●Обмен маршрутами на уровне автономных систем (АС)
●Маршрутные политики
DNS
Domain Name System
●/etc/hosts – локальные DNS записи, имеют приоритет
●Домен – поддерево в пространстве доменных имен,
домены обладают иерархией
●DNS зона (сегмент) – часть базы DNS, хранящаяся по
единым административным управлением, зоны не
перекрываются
●RR – resource record – данные связанные с доменом
DNS и BIND -Крикет Ли, Пол Альбитц
DNS
DNS – domain vs zone
DNS – domain vs zone
DNS zone file
example.com. IN SOA ns.example.com. username.example.com. (
2007120710 ; serial number of this zone file
1d ; slave refresh (1 day)
2h ; slave retry time in case of a problem (2 hours)
4w ; slave expiration time (4 weeks)
1h ; maximum caching time in case of failed lookups (1 hour)
)
example.com. NS ns ; ns.example.com is a nameserver
example.com. NS ns.somewhere.example. ; backup nameserver
example.com. MX 10 mail.example.com. ; mailserver for example.com
@ MX 20 mail2.example.com. ; equivalent to above line
DNS zone file
example.com. A 192.0.2.1 ; IPv4 address for example.com
AAAA 2001:db8:10::1 ; IPv6 address for example.com
ns A 192.0.2.2 ; IPv4 address for ns.example.com
AAAA 2001:db8:10::2 ; IPv6 address for ns.example.com
www CNAME example.com. ; www.example.com is an alias
; for example.com
wwwtest CNAME www ; wwwtest.example.com is an alias
; for www.example.com
mail A 192.0.2.3 ; IPv4 address for mail.example.com,
mail2 A 192.0.2.4 ; IPv4 address for mail2.example.com
mail3 A 192.0.2.5 ; IPv4 address for mail3.example.com
DNS – что еще ?
●Authoritative vs Cache
●Primary vs Slave, перенос зоны
●Negative caching, TTL
●in-addr.arpa
Что НЕ решает IP ?
●Невозможно адресовать конкретное приложение
●Нет надежной доставки данных
●Нет порядка дейтограмм
●Нет контроля потока
TCP
Transmission Control Protocol
●Адресация приложения в пределах хоста
●Последовательное двустороннее соединение
●Надежная доставка
●Управление потоком
Задачи протокола TCP
●Порты
– Well-known: SSH=20, FTP=21,22, HTTP=80, SMTP=25,
POP3=110
– Привилегированные (<1024)
– Остальные (>=1024)
●Сокеты (sockets)
– Серверные (bind, listen, accept)
– Клиентские (connect, send, recv)
TCP
TCP сегмент
TCP handshake
Round Trip Time (0.5ms / 150ms)
TCP сервер
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1', 8080))
s.listen(10)
while True:
conn, addr = s.accept()
data = conn.recv(1024)
conn.send(data)
conn.close()
TCP клиент
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8080))
s.send('Hello world')
print s.recv(1024)
s.close()
Как правильно читать данные из
сокета
def myreceive(sock, msglen):
msg = ''
while len(msg) < msglen:
chunk = self.sock.recv(msglen-len(msg))
if chunk == '':
raise RuntimeError("broken")
msg = msg + chunk
return msg
http://docs.python.org/2/howto/sockets.html
Вопрос: откуда получить msglen ?
Как правильно писать данные в
сокет
def mysend(sock, msg):
totalsent = 0
while totalsent < len(msg):
sent = sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError("broken")
totalsent = totalsent + sent
http://docs.python.org/2/howto/sockets.html
HTTP
HyperText Transfer Protocol
HTTP – передача гипертекста
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
Accept: text/html
Connection: close
(пустая строка)
HTTP/1.1 200 OK
Server: Apache
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(пустая строка)
(HTML)
●URI – идентификатор (mailto:me@tut.ru, tel:02, urn:isbn:0-
395-36341-1)
●URL – определяет положение ресурса
(http://tom:abc@host.com/h/1.html?a=b)
http – протокол
tom:abc – логин / пароль
host.com – адрес сервера
/h/1.html – путь к ресурсу
a=b – параметры (query string)
URI vs URL
OPTIONS – запрос методов сервера (Allow)
GET – запрос документа (Условный GET)
HEAD – аналог GET, но без тела запроса
POST – передача данных клиент
PUT – размещение файла по URI
DELETE – удаление файла по URI
TRACE, LINK, UNLINK, CONNECT - редко
Методы HTTP
1xx – Информационные
2xx – Успешное выполнение
200 – OK
204 – NoContent (только заголовки)
206 – PartitialContent (часть ответа)
3xx – Перенаправления
301 – Moved Pemanently (SEO, кеширование)
302 – Found (логика работы сайта)
304 – Not Modified (при условном GET)
Коды состояния HTTP
4xx – Ошибка клиента
400 – Bad Request (размер, формат..)
401 – Unauthorized (запрос авторизации)
403 – Forbidden (allow, deny)
404 – Not Found
408 – Request Timeout (на чтение)
418 – I'm teapot
Коды состояния HTTP
5xx – Ошибка сервера
500 – Internal Server Error
502 – Bad Gateway (проксирование)
503 – Service Unavailable
504 – Gateway Timeout
505 – HTTP version not supported
507 – Insufficient Storage
Коды состояния HTTP
Host – указание домена, вирт. Хостинг
User-Agent – описание клиента
Accept-* - поддержка MIME типов, кодировок,
языков и т.п.
Cookie – куки для данной страницы
Referer – текущая страница
If-Modified-Since – условный GET
Connection – управление соединением
Заголовки HTTP запросов
Content-Type – MIME тип документа
Content-Length – размер документа
Content-Encoding – кодирование документа
Date – текущее время сервера
Expires – время актуальности документа
Last-Modified – время изменения файла
Set-Cookie – установка кук для данного URI
Connection – управление соединением
Заголовки HTTP ответов
Email
Формат Email
From: Dmitry Smal <smal@corp.mail.ru>
To: Pupkin <v.pupkin@gmail.com>
Subject: party for everybody discuss
Date: Fri, 18 May 2012 08:17:59 -0700
Hi there!
Can't stop writing!
Bye bye!
Заголовки Email
● From, To – от кого и кому письмо
● Subject – тема письма
● Date – дата отправки
● Сс – “копия”, аналогичен To, но означает, что
получатель – не главный
● Bcc – “скрытая копия”, аналогиче Сс, но получатели не
увидят email указанный в Bcc
● Reply-To – email адрес, на который нужно отвечать
Multipurpose Internet Message
Extensions
MIME
Задачи:
● Передача не-ASCII текста через ASCII канал
● Передача не-текстовых приложений
● Передача сообщений из нескольких частей (multipart
body messages)
● Передача не-ASCII заголовков
MIME
Заголовки:
● Content-ID – уникальный ID части, для ссылок
● Content-Type – MIME тип сообщения или части
● Content-Disposition – расположение части
● Content-Transfer-Encoding – кодирование части
Multipart Messages
To: =?UTF-8?B?0JTQuNC80LA=?= <mialinx@gmail.com>
Content-Type: multipart/mixed;
boundary="----4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794"
------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Ym9keQ==
------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794
Content-Type: application/octet-stream;
name="=?UTF-8?B?ZmF2aWNvbi5pY28=?="
Content-Disposition: attachment
Content-Transfer-Encoding: base64
AAABAAEAEBAAAAEAIABoBA..........AAAAAAAA==
------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794--
Multipart HTTP POST
POST /send-message.html HTTP/1.1
Host: mail.example.com
Referer: http://mail.example.com/send-message.html
Content-Type: multipart/form-data; boundary=Asrf456BGe4h
Content-Length: (суммарный объём включая дочерние заголовки)
--Asrf456BGe4h
Content-Disposition: form-data; name="DestAddress"
brutal-vasya@example.com
--Asrf456BGe4h
Content-Disposition: form-data; name="MessageTitle"
Hello world
Процесс передачи Email
Агенты
MUA – Mail User Agent – программа, предоставляющая
пользовательский интерфейс, например MS Outlook,
sendmail
MTA – Mail Transfer Agent (relay) – программа (почтовый
сервер), отвечающая за пересылку почты к по сети. SMTP
протокол.
MDA – Mail Delivery Agent – программа, отвечающая за
доставку почты конечному пользователю. POP3 и IMAP
Агенты
SMTP – отправка почты
● Работает поверх TCP, порт 25
● Текстовый протокол
Команды: MAIL FROM, RCPT TO, DATA, QUIT
Статусы ответа: 2xx – команды выполнена
3xx – ожидаются доп. данные
4xx – временная ошибка
5xx – неисправимая ошибка
● ESMTP – набор расширений для SMTP:
TLS, Авторизация, Pipelining
SMTP Пример
C:HELO
S:250 domain name should be qualified
C:MAIL FROM: <someusername@somecompany.ru>
S:250 someusername@somecompany.ru sender accepted
C:RCPT TO:<user1@company.tld>
S:250 user1@company.tld ok
C:DATA
S:354 Enter mail, end with "." on a line by itself
C:from: someusername@somecompany.ru
C:to: user1@company.tld
C:subject: tema
C:
C:Hi!
C:.
S:250 769947 message accepted for delivery
C:QUIT
Полезные утилиты
ifconfig – узнать IP и MAC адреса
http://whatismyip.com - узнать внешний IP
ping 8.8.8.8 – проверить доступность хоста
tracerout 8.8.8.8 – показать путь к хосту
nmap 8.8.8.8 – поиск открытых портов
host mail.ru – DNS запросы (nslookup, dig)
telnet 127.0.0.1 11211 – подключиться к порту
ab -n 10000 -c 500 http://localhost/index.html
Домашнее задание
●Настройка nginx для отдачи статики
●Настройка apache для запуска WSGI скриптов
●“Hello world” приложение на Django
●Настройка проксирования в nginx
Подробности: http://tp.mail.ru/blog/Web
Спасибо за внимание
Дмитрий Смаль, smal@corp.mail.ru

Weitere ähnliche Inhalte

Was ist angesagt?

Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNSYandex
 
Web весна 2012 лекция 12
Web весна 2012 лекция 12Web весна 2012 лекция 12
Web весна 2012 лекция 12Technopark
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor SysoevMedia Gorod
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3Technopark
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1Technopark
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3Technopark
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1Dima Dzuba
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPSmartTools
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхAnastasia Lubennikova
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколыRoman Brovko
 
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...it-people
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.MageCloud
 
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системахDrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системахDrupalSPB
 
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияАлексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияYandex
 

Was ist angesagt? (20)

Dyn DNS story
Dyn DNS storyDyn DNS story
Dyn DNS story
 
Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNS
 
Web весна 2012 лекция 12
Web весна 2012 лекция 12Web весна 2012 лекция 12
Web весна 2012 лекция 12
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor Sysoev
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
WWW
WWWWWW
WWW
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данных
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
 
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
 
Http session
Http sessionHttp session
Http session
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.
 
Administrarea DSpace
Administrarea DSpaceAdministrarea DSpace
Administrarea DSpace
 
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системахDrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
 
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияАлексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
 
Statutes and codes of HTTP
Statutes and codes of HTTPStatutes and codes of HTTP
Statutes and codes of HTTP
 

Andere mochten auch

DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013Shumon Huque
 
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days
 
Сети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизацииСети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизацииAndrey Sozykin
 
Сети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPСети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPAndrey Sozykin
 
DNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security ExtensionsDNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security ExtensionsPeter R. Egli
 
Understanding the DNS & DNSSEC
Understanding the DNS & DNSSECUnderstanding the DNS & DNSSEC
Understanding the DNS & DNSSECICANN
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Technopark
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5Technopark
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Technopark
 
Java осень 2012 лекция 4
Java осень 2012 лекция 4Java осень 2012 лекция 4
Java осень 2012 лекция 4Technopark
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Technopark
 
Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12Technopark
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3Technopark
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1Technopark
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]Technopark
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2Technopark
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Technopark
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Technopark
 
HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5Technopark
 

Andere mochten auch (20)

Доменная структура интернета
Доменная структура интернетаДоменная структура интернета
Доменная структура интернета
 
DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013
 
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
 
Сети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизацииСети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизации
 
Сети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDPСети и системы телекоммуникаций. Протокол UDP
Сети и системы телекоммуникаций. Протокол UDP
 
DNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security ExtensionsDNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security Extensions
 
Understanding the DNS & DNSSEC
Understanding the DNS & DNSSECUnderstanding the DNS & DNSSEC
Understanding the DNS & DNSSEC
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2
 
Java осень 2012 лекция 4
Java осень 2012 лекция 4Java осень 2012 лекция 4
Java осень 2012 лекция 4
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7
 
Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12Разработка веб-сервисов осень 2013 лекция 12
Разработка веб-сервисов осень 2013 лекция 12
 
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 
Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3Алгоритмы и структуры данных весна 2014 лекция 3
Алгоритмы и структуры данных весна 2014 лекция 3
 
HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5HighLoad весна 2014 лекция 5
HighLoad весна 2014 лекция 5
 

Ähnlich wie Web осень 2012 лекция 2

архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияVladyslav Leikykh
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 67bits
 
Принципы работы интернет.
Принципы работы интернет. Принципы работы интернет.
Принципы работы интернет. Dmitry Chabanenko
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP7bits
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikExpolink
 
Qlogic: Технологии Ethernet
Qlogic: Технологии EthernetQlogic: Технологии Ethernet
Qlogic: Технологии EthernetExpolink
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web7bits
 
Web весна 2013 лекция 11
Web весна 2013 лекция 11Web весна 2013 лекция 11
Web весна 2013 лекция 11Technopark
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
Лекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide WebЛекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide WebЯковенко Кирилл
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3Dima Dzuba
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhonePavel Bashmakov
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networkingguest57eb8a
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения7bits
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"Yandex
 
Aleksey Androsov
Aleksey AndrosovAleksey Androsov
Aleksey Androsovyaevents
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programmingcolriot
 

Ähnlich wie Web осень 2012 лекция 2 (20)

архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
Принципы работы интернет.
Принципы работы интернет. Принципы работы интернет.
Принципы работы интернет.
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от Qlogik
 
Qlogic: Технологии Ethernet
Qlogic: Технологии EthernetQlogic: Технологии Ethernet
Qlogic: Технологии Ethernet
 
DNS
DNSDNS
DNS
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Web весна 2013 лекция 11
Web весна 2013 лекция 11Web весна 2013 лекция 11
Web весна 2013 лекция 11
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
Лекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide WebЛекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide Web
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhone
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networking
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"
Алексей Андросов "HTML5 в Я.Почте (WebSocket, localStorage, Cross-site XHR)"
 
Aleksey Androsov
Aleksey AndrosovAleksey Androsov
Aleksey Androsov
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programming
 

Mehr von Technopark

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelTechnopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuTechnopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Technopark
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSTechnopark
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы HadoopTechnopark
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceTechnopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 

Mehr von Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

Web осень 2012 лекция 2

  • 3. Назначение уровней ●Физический: управление средой, сигналом, кодирование потока битов ●Канальный: физическая адресация, передача между двумя интерфейсами ●Сетевой: логическая адресация, передача между двумя хостами, передача в гетерогенных сетях ●Транспортный: надежная доставка, передача между двумя приложениями, управление потоком байтов
  • 6. Ethernet – формат кадра ●Преамбула (7 байт) – стабилизация среды ●SFD (0xab) – начало кадра ●MAC адреса (broadcast, interface) ●Протокол верхнего уровня ●Данные – до 1500 байт ●CRC-32 – контрольная сумма ●EFD – конец кадра
  • 8. Ограничения ЛВС ●Физические ограничения – Затухание – Коллизии ●Ограничение числа хостов – Сложность топологии – Огромные таблицы коммутации ●Несовместимость различных архитектур
  • 11. Задачи IP протокола ●Глобальная адресация ●Передача в гетерогенной сети (сегментация) ●Маршрутизация пакетов
  • 12. IP – адресация ●94.100.191.201 – один из адресов Mail.Ru ●127.0.0.1 – всегда адрес лок. Компьютера ●94.100.190.0/23 – адрес подсети ●10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 – private ip (не уникальные адреса) ●224.0.0.0 – 239.255.255.255 – multicast ip
  • 15. Алгоритм роутера ●Получение сегмента, определение ip получателя ●Поиск в таблице маршрутизации ●Не найдено отбрасываем пакет→ ●Выбор наиболее приоритетного маршрута (по префиксу, по дистанции, по ширине канала) ●Передача сегмента через нужный интерфес
  • 16. Маршрутизация Статическая: конфиг Внутренняя: RIP и OSPF ●Работает в небольших сетях ●Каждый марштизатор вычис полную таблицу маршрутов Внешняя: BGP и EGP ●Обмен маршрутами на уровне автономных систем (АС) ●Маршрутные политики
  • 18. ●/etc/hosts – локальные DNS записи, имеют приоритет ●Домен – поддерево в пространстве доменных имен, домены обладают иерархией ●DNS зона (сегмент) – часть базы DNS, хранящаяся по единым административным управлением, зоны не перекрываются ●RR – resource record – данные связанные с доменом DNS и BIND -Крикет Ли, Пол Альбитц DNS
  • 19. DNS – domain vs zone
  • 20. DNS – domain vs zone
  • 21.
  • 22. DNS zone file example.com. IN SOA ns.example.com. username.example.com. ( 2007120710 ; serial number of this zone file 1d ; slave refresh (1 day) 2h ; slave retry time in case of a problem (2 hours) 4w ; slave expiration time (4 weeks) 1h ; maximum caching time in case of failed lookups (1 hour) ) example.com. NS ns ; ns.example.com is a nameserver example.com. NS ns.somewhere.example. ; backup nameserver example.com. MX 10 mail.example.com. ; mailserver for example.com @ MX 20 mail2.example.com. ; equivalent to above line
  • 23. DNS zone file example.com. A 192.0.2.1 ; IPv4 address for example.com AAAA 2001:db8:10::1 ; IPv6 address for example.com ns A 192.0.2.2 ; IPv4 address for ns.example.com AAAA 2001:db8:10::2 ; IPv6 address for ns.example.com www CNAME example.com. ; www.example.com is an alias ; for example.com wwwtest CNAME www ; wwwtest.example.com is an alias ; for www.example.com mail A 192.0.2.3 ; IPv4 address for mail.example.com, mail2 A 192.0.2.4 ; IPv4 address for mail2.example.com mail3 A 192.0.2.5 ; IPv4 address for mail3.example.com
  • 24. DNS – что еще ? ●Authoritative vs Cache ●Primary vs Slave, перенос зоны ●Negative caching, TTL ●in-addr.arpa
  • 25. Что НЕ решает IP ? ●Невозможно адресовать конкретное приложение ●Нет надежной доставки данных ●Нет порядка дейтограмм ●Нет контроля потока
  • 27. ●Адресация приложения в пределах хоста ●Последовательное двустороннее соединение ●Надежная доставка ●Управление потоком Задачи протокола TCP
  • 28. ●Порты – Well-known: SSH=20, FTP=21,22, HTTP=80, SMTP=25, POP3=110 – Привилегированные (<1024) – Остальные (>=1024) ●Сокеты (sockets) – Серверные (bind, listen, accept) – Клиентские (connect, send, recv) TCP
  • 30. TCP handshake Round Trip Time (0.5ms / 150ms)
  • 31. TCP сервер import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1', 8080)) s.listen(10) while True: conn, addr = s.accept() data = conn.recv(1024) conn.send(data) conn.close()
  • 32. TCP клиент import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1', 8080)) s.send('Hello world') print s.recv(1024) s.close()
  • 33. Как правильно читать данные из сокета def myreceive(sock, msglen): msg = '' while len(msg) < msglen: chunk = self.sock.recv(msglen-len(msg)) if chunk == '': raise RuntimeError("broken") msg = msg + chunk return msg http://docs.python.org/2/howto/sockets.html Вопрос: откуда получить msglen ?
  • 34. Как правильно писать данные в сокет def mysend(sock, msg): totalsent = 0 while totalsent < len(msg): sent = sock.send(msg[totalsent:]) if sent == 0: raise RuntimeError("broken") totalsent = totalsent + sent http://docs.python.org/2/howto/sockets.html
  • 36. HTTP – передача гипертекста GET /wiki/страница HTTP/1.1 Host: ru.wikipedia.org Accept: text/html Connection: close (пустая строка) HTTP/1.1 200 OK Server: Apache Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close (пустая строка) (HTML)
  • 37. ●URI – идентификатор (mailto:me@tut.ru, tel:02, urn:isbn:0- 395-36341-1) ●URL – определяет положение ресурса (http://tom:abc@host.com/h/1.html?a=b) http – протокол tom:abc – логин / пароль host.com – адрес сервера /h/1.html – путь к ресурсу a=b – параметры (query string) URI vs URL
  • 38. OPTIONS – запрос методов сервера (Allow) GET – запрос документа (Условный GET) HEAD – аналог GET, но без тела запроса POST – передача данных клиент PUT – размещение файла по URI DELETE – удаление файла по URI TRACE, LINK, UNLINK, CONNECT - редко Методы HTTP
  • 39. 1xx – Информационные 2xx – Успешное выполнение 200 – OK 204 – NoContent (только заголовки) 206 – PartitialContent (часть ответа) 3xx – Перенаправления 301 – Moved Pemanently (SEO, кеширование) 302 – Found (логика работы сайта) 304 – Not Modified (при условном GET) Коды состояния HTTP
  • 40. 4xx – Ошибка клиента 400 – Bad Request (размер, формат..) 401 – Unauthorized (запрос авторизации) 403 – Forbidden (allow, deny) 404 – Not Found 408 – Request Timeout (на чтение) 418 – I'm teapot Коды состояния HTTP
  • 41. 5xx – Ошибка сервера 500 – Internal Server Error 502 – Bad Gateway (проксирование) 503 – Service Unavailable 504 – Gateway Timeout 505 – HTTP version not supported 507 – Insufficient Storage Коды состояния HTTP
  • 42. Host – указание домена, вирт. Хостинг User-Agent – описание клиента Accept-* - поддержка MIME типов, кодировок, языков и т.п. Cookie – куки для данной страницы Referer – текущая страница If-Modified-Since – условный GET Connection – управление соединением Заголовки HTTP запросов
  • 43. Content-Type – MIME тип документа Content-Length – размер документа Content-Encoding – кодирование документа Date – текущее время сервера Expires – время актуальности документа Last-Modified – время изменения файла Set-Cookie – установка кук для данного URI Connection – управление соединением Заголовки HTTP ответов
  • 44. Email
  • 45. Формат Email From: Dmitry Smal <smal@corp.mail.ru> To: Pupkin <v.pupkin@gmail.com> Subject: party for everybody discuss Date: Fri, 18 May 2012 08:17:59 -0700 Hi there! Can't stop writing! Bye bye!
  • 46. Заголовки Email ● From, To – от кого и кому письмо ● Subject – тема письма ● Date – дата отправки ● Сс – “копия”, аналогичен To, но означает, что получатель – не главный ● Bcc – “скрытая копия”, аналогиче Сс, но получатели не увидят email указанный в Bcc ● Reply-To – email адрес, на который нужно отвечать
  • 48. MIME Задачи: ● Передача не-ASCII текста через ASCII канал ● Передача не-текстовых приложений ● Передача сообщений из нескольких частей (multipart body messages) ● Передача не-ASCII заголовков
  • 49. MIME Заголовки: ● Content-ID – уникальный ID части, для ссылок ● Content-Type – MIME тип сообщения или части ● Content-Disposition – расположение части ● Content-Transfer-Encoding – кодирование части
  • 50. Multipart Messages To: =?UTF-8?B?0JTQuNC80LA=?= <mialinx@gmail.com> Content-Type: multipart/mixed; boundary="----4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794" ------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Ym9keQ== ------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794 Content-Type: application/octet-stream; name="=?UTF-8?B?ZmF2aWNvbi5pY28=?=" Content-Disposition: attachment Content-Transfer-Encoding: base64 AAABAAEAEBAAAAEAIABoBA..........AAAAAAAA== ------4MNjdUkz-ZBcPvpoGwPsUtn9u:1338241794--
  • 51. Multipart HTTP POST POST /send-message.html HTTP/1.1 Host: mail.example.com Referer: http://mail.example.com/send-message.html Content-Type: multipart/form-data; boundary=Asrf456BGe4h Content-Length: (суммарный объём включая дочерние заголовки) --Asrf456BGe4h Content-Disposition: form-data; name="DestAddress" brutal-vasya@example.com --Asrf456BGe4h Content-Disposition: form-data; name="MessageTitle" Hello world
  • 53. Агенты MUA – Mail User Agent – программа, предоставляющая пользовательский интерфейс, например MS Outlook, sendmail MTA – Mail Transfer Agent (relay) – программа (почтовый сервер), отвечающая за пересылку почты к по сети. SMTP протокол. MDA – Mail Delivery Agent – программа, отвечающая за доставку почты конечному пользователю. POP3 и IMAP
  • 55. SMTP – отправка почты ● Работает поверх TCP, порт 25 ● Текстовый протокол Команды: MAIL FROM, RCPT TO, DATA, QUIT Статусы ответа: 2xx – команды выполнена 3xx – ожидаются доп. данные 4xx – временная ошибка 5xx – неисправимая ошибка ● ESMTP – набор расширений для SMTP: TLS, Авторизация, Pipelining
  • 56. SMTP Пример C:HELO S:250 domain name should be qualified C:MAIL FROM: <someusername@somecompany.ru> S:250 someusername@somecompany.ru sender accepted C:RCPT TO:<user1@company.tld> S:250 user1@company.tld ok C:DATA S:354 Enter mail, end with "." on a line by itself C:from: someusername@somecompany.ru C:to: user1@company.tld C:subject: tema C: C:Hi! C:. S:250 769947 message accepted for delivery C:QUIT
  • 57. Полезные утилиты ifconfig – узнать IP и MAC адреса http://whatismyip.com - узнать внешний IP ping 8.8.8.8 – проверить доступность хоста tracerout 8.8.8.8 – показать путь к хосту nmap 8.8.8.8 – поиск открытых портов host mail.ru – DNS запросы (nslookup, dig) telnet 127.0.0.1 11211 – подключиться к порту ab -n 10000 -c 500 http://localhost/index.html
  • 58. Домашнее задание ●Настройка nginx для отдачи статики ●Настройка apache для запуска WSGI скриптов ●“Hello world” приложение на Django ●Настройка проксирования в nginx Подробности: http://tp.mail.ru/blog/Web