Сетевые протоколы
Смаль Дмитрий
smal@corp.mail.ru
ISO - OSI
Назначения уровней
 Физический: управление средой, сигналом,
кодирование потока битов
 Канальный: физическая адресация, передача
между двумя интерфейсами
 Сетевой: логическая адресация, передача
между двумя хостами, передача в
гетерогенных сетях
 Транспортный: надежная доставка, передача
между двумя приложениями, управление
потоком байтов
Ethernet — manchester code
Ethernet — формат кадра
 Преамбула (7 байт) – стабилизация среды
 SFD (0xab) – начало кадра
 MAC адреса (broadcast, interface)
 Протокол верхнего уровня
 Данные – до 1500 байт
 CRC-32 – контрольная сумма
 EFD – конец кадра
Ethernet — Hub, Switch, ARP
IP – схема сети
IP адресация
 94.100.191.201 – один из адресов Mail.Ru
 127.0.0.1 – всегда адрес лок. компьютера
 192.168.12.14 – private ip (не уникален)
 192.168.0.0/16 – адрес подсети
 94.100.190.0/23 – тоже подсеть
 224.0.0.[1245...] – multicast ip
IP segment
Алгоритм маршрутизатора
 Получение сегмента, определение ip
получателя
 Поиск в таблице маршрутизации
 Не найдено → отбрасываем пакет
 Выбор наиболее приоритетного маршрута (по
префиксу, по дистанции, по ширине канала)
 Передача сегмента через нужный интерфес
TCP – надежная доставка
 Порты
– Well-known: SSH=20, FTP=21,22, HTTP=80,
SMTP=25, POP3=110
– Привилегированные (<1024)
– Остальные (>=1024)
 Сокеты (sockets)
– Серверные (bind, listen, accept)
– Клиентские (connect, send, recv)
TCP packet
TCP handshake
DNS
/etc/hosts – локальные DNS записи, имеют приоритет
Домен – поддерево в пространстве доменных имен,
домены обладают иерархией
DNS зона (сегмент) – часть базы DNS, хранящаяся по
единым административным управлением, зоны не
перекрываются
RR – resource record – данные связанные с доменом
DNS и BIND -Крикет Ли, Пол Альбитц
DNS – domain vs. zone
DNS – domain vs. zone
DNS - кеширование
 Authoritative vs Cache
 Primary vs Slave, перенос зоны
 Negative caching, TTL
 in-addr.arpa
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 for example.com
example.com. NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver
; for example.com
example.com. MX 10 mail.example.com. ; mail.example.com is the mailserver for
; example.com
@ MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone
; origin
@ MX 50 mail3 ; equivalent to above line, but using a relative
; host name
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 another alias for
; www.example.com
mail A 192.0.2.3 ; IPv4 address for mail.example.com,
; any MX record host must be an address record
; as explained in RFC 2181 (section 10.3)
mail2 A 192.0.2.4 ; IPv4 address for mail2.example.com
mail3 A 192.0.2.5 ; IPv4 address for mail3.example.com
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)
URL vs URI
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)
Методы HTTP
OPTIONS – запрос методов сервера (Allow)
GET – запрос документа (Условный GET)
HEAD – аналог GET, но без тела запроса
POST – передача данных клиент
PUT – размещение файла по URI
DELETE – удаление файла по URI
TRACE, LINK, UNLINK, CONNECT - редко
Коды состояния HTTPP
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 – управление соединением
Multipart form data
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

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

  • 1.
  • 2.
  • 3.
    Назначения уровней  Физический:управление средой, сигналом, кодирование потока битов  Канальный: физическая адресация, передача между двумя интерфейсами  Сетевой: логическая адресация, передача между двумя хостами, передача в гетерогенных сетях  Транспортный: надежная доставка, передача между двумя приложениями, управление потоком байтов
  • 4.
  • 5.
    Ethernet — форматкадра  Преамбула (7 байт) – стабилизация среды  SFD (0xab) – начало кадра  MAC адреса (broadcast, interface)  Протокол верхнего уровня  Данные – до 1500 байт  CRC-32 – контрольная сумма  EFD – конец кадра
  • 6.
    Ethernet — Hub,Switch, ARP
  • 7.
  • 8.
    IP адресация  94.100.191.201– один из адресов Mail.Ru  127.0.0.1 – всегда адрес лок. компьютера  192.168.12.14 – private ip (не уникален)  192.168.0.0/16 – адрес подсети  94.100.190.0/23 – тоже подсеть  224.0.0.[1245...] – multicast ip
  • 9.
  • 10.
    Алгоритм маршрутизатора  Получениесегмента, определение ip получателя  Поиск в таблице маршрутизации  Не найдено → отбрасываем пакет  Выбор наиболее приоритетного маршрута (по префиксу, по дистанции, по ширине канала)  Передача сегмента через нужный интерфес
  • 11.
    TCP – надежнаядоставка  Порты – Well-known: SSH=20, FTP=21,22, HTTP=80, SMTP=25, POP3=110 – Привилегированные (<1024) – Остальные (>=1024)  Сокеты (sockets) – Серверные (bind, listen, accept) – Клиентские (connect, send, recv)
  • 12.
  • 13.
  • 14.
    DNS /etc/hosts – локальныеDNS записи, имеют приоритет Домен – поддерево в пространстве доменных имен, домены обладают иерархией DNS зона (сегмент) – часть базы DNS, хранящаяся по единым административным управлением, зоны не перекрываются RR – resource record – данные связанные с доменом DNS и BIND -Крикет Ли, Пол Альбитц
  • 15.
  • 16.
  • 18.
    DNS - кеширование Authoritative vs Cache  Primary vs Slave, перенос зоны  Negative caching, TTL  in-addr.arpa
  • 19.
    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 for example.com example.com. NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver ; for example.com example.com. MX 10 mail.example.com. ; mail.example.com is the mailserver for ; example.com @ MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone ; origin @ MX 50 mail3 ; equivalent to above line, but using a relative ; host name 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 another alias for ; www.example.com mail A 192.0.2.3 ; IPv4 address for mail.example.com, ; any MX record host must be an address record ; as explained in RFC 2181 (section 10.3) mail2 A 192.0.2.4 ; IPv4 address for mail2.example.com mail3 A 192.0.2.5 ; IPv4 address for mail3.example.com
  • 20.
    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)
  • 21.
    URL vs URI 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)
  • 22.
    Методы HTTP OPTIONS –запрос методов сервера (Allow) GET – запрос документа (Условный GET) HEAD – аналог GET, но без тела запроса POST – передача данных клиент PUT – размещение файла по URI DELETE – удаление файла по URI TRACE, LINK, UNLINK, CONNECT - редко
  • 23.
    Коды состояния HTTPP 1xx– Информационные 2xx – Успешное выполнение 200 – OK 204 – NoContent (только заголовки) 206 – PartitialContent (часть ответа) 3xx – Перенаправления 301 – Moved Pemanently (SEO, кеширование) 302 – Found (логика работы сайта) 304 – Not Modified (при условном GET)
  • 24.
    Коды состояния HTTP 4xx– Ошибка клиента 400 – Bad Request (размер, формат..) 401 – Unauthorized (запрос авторизации) 403 – Forbidden (allow, deny) 404 – Not Found 408 – Request Timeout (на чтение) 418 – I'm teapot
  • 25.
    Коды состояния HTTP 5xx– Ошибка сервера 500 – Internal Server Error 502 – Bad Gateway (проксирование) 503 – Service Unavailable 504 – Gateway Timeout 505 – HTTP version not supported 507 – Insufficient Storage
  • 26.
    Заголовки HTTP запросов Host– указание домена, вирт. Хостинг User-Agent – описание клиента Accept-* - поддержка MIME типов, кодировок, языков и т.п. Cookie – куки для данной страницы Referer – текущая страница If-Modified-Since – условный GET Connection – управление соединением
  • 27.
    Заголовки HTTP ответов Content-Type– MIME тип документа Content-Length – размер документа Content-Encoding – кодирование документа Date – текущее время сервера Expires – время актуальности документа Last-Modified – время изменения файла Set-Cookie – установка кук для данного URI Connection – управление соединением
  • 28.
    Multipart form data 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