Your SlideShare is downloading. ×
0
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Web весна 2013 лекция 2

211

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
211
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Сетевые протоколы Дмитрий Смаль
  • 2. ISO - OSI
  • 3. Назначение уровней ● ● ● ● Физический: управление средой, сигналом, кодирование потока битов Канальный: физическая адресация, передача между двумя интерфейсами Сетевой: логическая адресация, передача между двумя хостами, передача в гетерогенных сетях Транспортный: надежная доставка, передача между двумя приложениями, управление потоком байтов
  • 4. Ethernet Ethernet
  • 5. Ethernet
  • 6. Ethernet – формат кадра ● Преамбула (7 байт) – стабилизация среды ● SFD (0xab) – начало кадра ● MAC адреса (broadcast, interface) ● Протокол верхнего уровня ● Данные – до 1500 байт ● CRC-32 – контрольная сумма ● EFD – конец кадра
  • 7. Hub, Switch, ARP
  • 8. Ограничения ЛВС ● Физические ограничения – Затухание – Коллизии ● Ограничение числа хостов – Сложность топологии – Огромные таблицы коммутации ● Несовместимость различных архитектур
  • 9. IP Internet Protocol
  • 10. Схема IP сети
  • 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
  • 13. Иерархия IP адресов
  • 14. IP дейтограмма
  • 15. Алгоритм роутера ● Получение дейтограммы, определение ip получателя ● Поиск в таблице маршрутизации ● Не найдено → отбрасываем пакет ● ● Выбор наиболее приоритетного маршрута (по префиксу, по дистанции, по ширине канала) Передача дейтограммы через нужный интерфес
  • 16. Маршрутизация Статическая: конфиг Внутренняя: RIP и OSPF ● Работает в небольших сетях ● Каждый марштизатор вычис полную таблицу маршрутов Внешняя: BGP и EGP ● Обмен маршрутами на уровне автономных систем (АС) ● Маршрутные политики
  • 17. DNS Domain Name System
  • 18. DNS ● ● ● ● /etc/hosts – локальные DNS записи, имеют приоритет Домен – поддерево в пространстве доменных имен, домены обладают иерархией DNS зона (сегмент) – часть базы DNS, хранящаяся по единым административным управлением, зоны не перекрываются RR – resource record – данные связанные с доменом DNS и BIND -Крикет Ли, Пол Альбитц
  • 19. DNS – domain vs zone
  • 20. DNS – domain vs zone
  • 21. 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 example.com. NS ns.somewhere.example. ; backup nameserver example.com. MX 10 mail.example.com. ; mailserver for example.com @ 20 mail2.example.com. ; equivalent to above line MX ; ns.example.com is a nameserver
  • 22. DNS zone file example.com. A 192.0.2.1 ; IPv4 address for example.com AAAA 2001:db8:10::1 ns ; IPv6 address for example.com A ; IPv4 address for ns.example.com 192.0.2.2 AAAA 2001:db8:10::2 www ; IPv6 address for ns.example.com 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
  • 23. DNS – что еще ? ● Authoritative vs Cache ● Primary vs Slave, перенос зоны ● Negative caching, TTL ● in-addr.arpa
  • 24. Что НЕ решает IP ? ● Невозможно адресовать конкретное приложение ● Нет надежной доставки данных ● Нет порядка дейтограмм ● Нет контроля потока
  • 25. TCP Transmission Control Protocol
  • 26. Задачи протокола TCP ● Адресация приложения в пределах хоста ● Последовательное двустороннее соединение ● Надежная доставка ● Управление потоком
  • 27. TCP ● Порты – Well-known: SSH=20, FTP=21,22, HTTP=80, SMTP=25, POP3=110 – Привилегированные (<1024) – Остальные (>=1024) ● Сокеты (sockets) – Серверные (bind, listen, accept) – Клиентские (connect, send, recv)
  • 28. TCP сегмент
  • 29. TCP handshake Round Trip Time (0.5ms / 150ms)
  • 30. 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()
  • 31. 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()
  • 32. Как правильно читать данные из сокета http://docs.python.org/2/howto/sockets.html def myreceive(sock, msglen): msg = '' while len(msg) < msglen: chunk = sock.recv(msglen-len(msg)) if chunk == '': raise RuntimeError("broken") msg = msg + chunk return msg Вопрос: откуда получить msglen ?
  • 33. Как правильно писать данные в сокет http://docs.python.org/2/howto/sockets.html def mysend(sock, msg): totalsent = 0 while totalsent < len(msg): sent = sock.send(msg[totalsent:]) if sent == 0: raise RuntimeError("broken") totalsent = totalsent + sent
  • 34. HTTP HyperText Transfer Protocol
  • 35. 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)
  • 36. URI vs URL ● ● URI – идентификатор (mailto:me@tut.ru, tel:02, urn:isbn:0395-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)
  • 37. Методы HTTP OPTIONS – запрос методов сервера (Allow) GET – запрос документа (Условный GET) HEAD – аналог GET, но без тела запроса POST – передача данных клиент PUT – размещение файла по URI DELETE – удаление файла по URI TRACE, LINK, UNLINK, CONNECT - редко
  • 38. Коды состояния HTTP 1xx – Информационные 2xx – Успешное выполнение 200 – OK 204 – NoContent (только заголовки) 206 – PartitialContent (часть ответа) 3xx – Перенаправления 301 – Moved Pemanently (SEO, кеширование) 302 – Found (логика работы сайта) 304 – Not Modified (при условном GET)
  • 39. Коды состояния HTTP 4xx – Ошибка клиента 400 – Bad Request (размер, формат..) 401 – Unauthorized (запрос авторизации) 403 – Forbidden (allow, deny) 404 – Not Found 408 – Request Timeout (на чтение) 418 – I'm teapot
  • 40. Коды состояния HTTP 5xx – Ошибка сервера 500 – Internal Server Error 502 – Bad Gateway (проксирование) 503 – Service Unavailable 504 – Gateway Timeout 505 – HTTP version not supported 507 – Insufficient Storage
  • 41. Заголовки HTTP запросов Host – указание домена, вирт. Хостинг User-Agent – описание клиента Accept-* - поддержка MIME типов, кодировок, языков и т.п. Cookie – куки для данной страницы Referer – текущая страница If-Modified-Since – условный GET Connection – управление соединением
  • 42. Заголовки HTTP ответов Content-Type – MIME тип документа Content-Length – размер документа Content-Encoding – кодирование документа Date – текущее время сервера Expires – время актуальности документа Last-Modified – время изменения файла Set-Cookie – установка кук для данного URI Connection – управление соединением
  • 43. Email
  • 44. Формат 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!
  • 45. Заголовки Email ● From, To – от кого и кому письмо ● Subject – тема письма ● Date – дата отправки Сс – “копия”, аналогичен To, но означает, что получатель – не главный ● Bcc – “скрытая копия”, аналогиче Сс, но получатели не увидят email указанный в Bcc ● ● Reply-To – email адрес, на который нужно отвечать
  • 46. Multipurpose Internet Message Extensions
  • 47. MIME Задачи: ● Передача не-ASCII текста через ASCII канал ● Передача не-текстовых приложений Передача сообщений из нескольких частей (multipart body messages) ● ● Передача не-ASCII заголовков
  • 48. MIME Заголовки: ● Content-ID – уникальный ID части, для ссылок ● Content-Type – MIME тип сообщения или части ● Content-Disposition – расположение части ● Content-Transfer-Encoding – кодирование части
  • 49. 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--
  • 50. 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
  • 51. Процесс передачи Email
  • 52. Агенты MUA – Mail User Agent – программа, предоставляющая пользовательский интерфейс, например MS Outlook, sendmail MTA – Mail Transfer Agent (relay) – программа (почтовый сервер), отвечающая за пересылку почты к по сети. SMTP протокол. MDA – Mail Delivery Agent – программа, отвечающая за доставку почты конечному пользователю. POP3 и IMAP
  • 53. Агенты
  • 54. SMTP – отправка почты ● Работает поверх TCP, порт 25 ● Текстовый протокол Команды: MAIL FROM, RCPT TO, DATA, QUIT Статусы ответа: 2xx – команды выполнена 3xx – ожидаются доп. данные 4xx – временная ошибка 5xx – неисправимая ошибка ● ESMTP – набор расширений для SMTP: TLS, Авторизация, Pipelining
  • 55. 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
  • 56. Полезные утилиты 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
  • 57. Домашнее задание ● Настройка nginx для отдачи статики ● Настройка apache для запуска WSGI скриптов ● “Hello world” приложение на Django ● Настройка проксирования в nginx Подробности: http://tp.mail.ru/blog/Web
  • 58. Спасибо за внимание Дмитрий Смаль, smal@corp.mail.ru

×