4. Сетевое программирование
Программа или процесс,
инициирующие установление
связи, называются клиентским
процессом, а программа,
ожидающая инициации связи,
называется серверным процессом.
6. Сетевое программирование
Связь между клиентским и серверным
процессами может быть или на основе
соединений (как например, TCP-
протокол, устанавливающий
виртуальное соединение или сессию),
или без соединений (на основе UDP-
датаграмм).
9. Классификация
PAN (Personal Area Network) —
персональная сеть,
предназначенная для
взаимодействия различных
устройств, принадлежащих одному
владельцу.
10. Классификация
LAN (ЛВС, Local Area Network) —
локальные сети, имеющие замкнутую
инфраструктуру. Термин «LAN» может
описывать и маленькую офисную сеть,
и сеть уровня большого завода,
занимающего несколько сотен гектаров.
Зарубежные источники дают даже
близкую оценку — около шести миль
(10 км) в радиусе.
11. Классификация
CAN (Campus Area Network) —
кампусная сеть, объединяет локальные
сети близко расположенных зданий.
MAN (Metropolitan Area Network) —
городские сети между учреждениями в
пределах одного или нескольких
городов, связывающие много
локальных вычислительных сетей.
12. Классификация
WAN (Wide Area Network) —
глобальная сеть, покрывающая
большие географические регионы,
включающие в себя как локальные сети,
так и прочие телекоммуникационные
сети и устройства. Глобальные сети
являются открытыми и ориентированы
на обслуживание любых
пользователей.
13. Классификация
По архитектуре:
Клиент-сервер (англ. Client-server) —
вычислительная или сетевая архитектура, в
которой задания или сетевая нагрузка
распределены между поставщиками услуг,
называемыми серверами, и заказчиками
услуг, называемыми клиентами
Одноранговая сеть (децентрализованная
или пиринговая сеть)
14. Топология сетей - Шина
Физическая топология "шина" (Bus), именуемая также линейной шиной
(Linear Bus), состоит из единственного кабеля, к которому
присоединены все компьютеры сегмента
16. Топология сетей - Звезда
Звезда — базовая топология компьютерной сети, в которой
все компьютеры сети присоединены к центральному узлу
17. Топология сетей - Ячейки
Ячеистая топология (англ. Mesh Topology) — сетевая
топология компьютерной сети, построенная на принципе ячеек
18. Топология сетей - Решетка
Решётка (англ. Grid network, иногда
также mesh, например 3D-mesh) — это
топология, в которой узлы образуют
регулярную многомерную решётку. При
этом каждое ребро решётки
параллельно её оси и соединяет два
смежных узла вдоль этой оси.
22. Классификация сетей
По типу среды передачи:
Проводные (телефонный провод,
коаксиальный кабель, витая пара,
волоконный-оптический кабель)
Беспроводные (передачей
информации по радиоволнам в
определённом частотном диапазоне)
25. Сетевая модель OSI
Сетевая модель OSI (англ. open
systems interconnection basic reference
model — базовая эталонная модель
взаимодействия открытых систем) —
сетевая модель стека сетевых
протоколов OSI/ISO (ГОСТ Р ИСО/МЭК
7498-1-99).
Разработана в 1978 год
28. Прикладной уровень
Прикладной уровень (уровень
приложений; англ. application layer) —
верхний уровень модели,
обеспечивающий взаимодействие
пользовательских приложений с сетью:
Протоколы прикладного уровня: RDP,
HTTP, SMTP, SNMP, POP3, FTP, XMPP,
OSCAR, Modbus, SIP, TELNET и другие
29. Уровень представления
Представительский уровень (уровень
представления; англ. presentation layer)
обеспечивает преобразование
протоколов и кодирование или
декодирование данных. Запросы
приложений, полученные с прикладного
уровня, на уровне представления
преобразуются в формат для передачи
по сети, а полученные из сети данные
преобразуются в формат приложений.
30. Сеансовый уровень
Сеансовый уровень (англ. session layer)
обеспечивает поддержание сеанса
связи, позволяя приложениям
взаимодействовать между собой
длительное время. Уровень управляет
созданием/завершением сеанса,
обменом информацией, синхронизацией
задач, определением права на передачу
данных и поддержанием сеанса в
периоды не активности приложений.
31. Транспортный уровень
Транспортный уровень (англ. transport
layer) предназначен для обеспечения
надёжной передачи данных от
отправителя к получателю (уровень
надёжности может варьироваться).
Протоколы транспортного уровня: ATP, CUDP ,
DCCP, FCP, IL, NBF, NCP, SCTP, SPX, SST , TCP
(Transmission Control Protocol), UDP (User
Datagram Protocol).
32. Сетевой уровень
Сетевой уровень (англ. network layer)
модели предназначен для определения
пути передачи данных. Отвечает за
трансляцию логических адресов и имён
в физические, определение кратчайших
маршрутов, коммутацию и
маршрутизацию, отслеживание
неполадок и «заторов» в сети.
33. Канальный уровень
Канальный уровень (англ. data link layer)
предназначен для обеспечения
взаимодействия сетей на физическом
уровне и контроля за ошибками, которые
могут возникнуть.
34. Физический уровень
Физический уровень (англ. physical layer)
— нижний уровень модели, который
определяет метод передачи данных,
представленных в двоичном виде, от
одного устройства (компьютера) к
другому.
На этом уровне также работают
концентраторы, повторители сигнала и
медиаконвертеры.
35. Критика OSI
Пока комитеты ISO спорили о
своих стандартах, за их спиной
менялась вся концепция
организации сетей и по всему
миру внедрялся протокол
TCP/IP.
36. OSI
Когда протоколы ISO были наконец
реализованы, выявился ряд проблем:
эти протоколы основывались на концепциях, не
имеющих в современных сетях никакого смысла;
спецификации были в некоторых случаях
неполными;
по своим функциональным возможностям они
уступали другим протоколам;
наличие многочисленных уровней сделало эти
протоколы медлительными и трудными для
реализации.
37. OSI
Основных причин неудачи модели
OSI четыре:
1. Несвоевременность.
2. Неудачная технология.
3. Неудачная реализация.
4. Неудачная политика.
38. Сетевой протокол
Сетевой протокол — это набор правил,
позволяющий осуществлять соединение
и обмен данными между двумя и более
включёнными в сеть устройствами.
39. Сетевой протокол
Стек протоколов TCP/IP — набор
сетевых протоколов передачи данных,
используемых в сетях, включая сеть
Интернет.
40. Сетевой протокол
Название TCP/IP происходит из
двух наиважнейших протоколов
семейства — Transmission Control
Protocol (TCP) и Internet Protocol (IP),
которые были разработаны и
описаны первыми в данном
стандарте.
41. Сетевой протокол
Стек протоколов TCP/IP включает в себя
четыре уровня:
прикладной уровень (application layer),
транспортный уровень (transport layer),
сетевой уровень (Internet layer),
канальный уровень (link layer).
Протоколы этих уровней полностью реализуют
функциональные возможности модели OSI.
42. Сетевой протокол
Стек протоколов TCP/IP включает в себя
четыре уровня:
прикладной уровень (application layer),
транспортный уровень (transport layer),
сетевой уровень (Internet layer),
канальный уровень (link layer).
Протоколы этих уровней полностью реализуют
функциональные возможности модели OSI.
44. IP адрес
IP-адрес (англ. Internet Protocol Address)
— уникальный идентификатор (адрес)
устройства (обычно компьютера),
подключённого к локальной сети или
интернету.
45. IP адрес
IP-адрес представляет собой 32-
битовое (по версии IPv4) или 128-
битовое (по версии IPv6) двоичное
число.
Удобной формой записи IP-адреса (IPv4)
является запись в виде четырёх
десятичных чисел (от 0 до 255),
разделённых точками.
46. IP адрес
128.10.2.30 — традиционная
десятичная форма представления
адреса
10000000 00001010 00000010
00011110 — двоичная форма
представления этого же адреса
48. Сокет
(англ. socket — разъём) —
название программного интерфейса для
обеспечения обмена данными между
процессами. Процессы при таком
обмене могут исполняться как на одной
ЭВМ, так и на различных ЭВМ,
связанных между собой сетью. Сокет —
абстрактный объект, представляющий
конечную точку соединения.
50. Сетевой порт
Сетевой порт — условное число от 1 до
65535, указывающее, какому
приложению предназначается пакет.
Если прибегнуть к аналогии, то IP адрес
- почтовый адрес дома, а порт - номер
квартиры конкретного жильца.
Использование портов позволяет независимо
использовать TCP протокол сразу многим
приложениям на одном и том же компьютере.
51. Серверное программирование
Клиент-сервер (англ. Client-server) —
вычислительная или сетевая
архитектура, в которой задания или
сетевая нагрузка распределены между
поставщиками услуг, называемыми
серверами, и заказчиками услуг,
называемыми клиентами. Физически
клиент и сервер — это программное
обеспечение.
53. Серверное программирование
Расположение компонентов на стороне
клиента или сервера определяет
основные модели взаимодействия :
сервер терминалов — распределенное
представление данных;
файл-сервер — доступ к удалённой базе
данных и файловым ресурсам;
сервер БД — удалённое представление
данных;
сервер приложений — удалённое
приложение.
55. Трезвенная архитектура
Трезвенная архитектура сложнее, но имеет:
Высокую степень гибкости и масштабируемости.
Высокую безопасность (т.к. защиту можно определить для каждого
сервиса или уровня).
Высокую производительность (т.к. задачи распределены между
серверами).
57. Web-сервер
Web-серверы - изначально
представляли доступ к гипертекстовым
документам по протоколу HTTP.
Сейчас поддерживают расширенные
возможности, в частности работу с
бинарными файлами (изображения,
мультимедиа и т.п.).
58. Серверы приложений
Серверы приложений - предназначены
для централизованного решения
прикладных задач в некоторой
предметной области. Для этого
пользователи имеют право запускать
серверные программы на исполнение.
Использование серверов приложений
позволяет снизить требования к
конфигурации клиентов и упрощает
общее управление сетью.
59. Серверы баз данных
Серверы баз данных - используются
для обработки пользовательских
запросов на языке SQL. При этом
СУБД находится на сервере, к
которому и подключаются
клиентские приложения.
60. Файл-сервер
Файл-сервер - хранит информацию
в виде файлов и представляет
пользователям доступ к ней. Как
правило файл-сервер обеспечивает
и определённый уровень защиты от
несанкционированного доступа.
61. Прокси-сервер
Прокси-сервер - действует как
посредник, помогая пользователям
получить информацию из Интернета и
при этом обеспечивая защиту сети и
сохраняет часто запрашиваемую
информацию в кэш-памяти на
локальном диске, быстро доставляя её
пользователям без повторного
обращения к Интернету.
63. Почтовый сервер
Почтовые серверы - представляют
услуги по отправке и получению
электронных почтовых сообщений
как правило на основе протоколов
IMAP4 или POP3 / SMTP.
64. HTTP
HTTP - это протокол описывающий
взаимодействие между двумя
компьютерами (клиентом и
сервером), построенное на базе
сообщений, называемых запрос
(Request) и ответ (Response).
66. HTTP стартовая строка
Каждое сообщение состоит из трёх
частей: стартовая строка, заголовки и
тело.
При этом обязательной является только
стартовая строка.
METHOD URI HTTP/VERSION,
где METHOD — это как раз метод HTTP-запроса,
URI — идентификатор ресурса,
VERSION — версия протокола (на данный момент
актуальна версия 1.1).
67. Заголовки
Заголовки HTTP (англ. HTTP Headers) —
это строки в HTTP - сообщении,
содержащие разделённую двоеточием
пару параметр - значелние.
Пример:
Server: Apache/2.2.11 (Win32) PHP/5.3.0
Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT
Content-Type: text/plain; charset=windows-1251
Content-Language: ru
68. Заголовки
Все заголовки разделяются на четыре
основных группы:
General Headers («Основные заголовки») —
могут включаться в любое сообщение клиента
и сервера.
Request Headers («Заголовки запроса») —
используются только в запросах клиента.
Response Headers («Заголовки ответа») —
только для ответов от сервера.
Entity Headers («Заголовки сущности») —
сопровождают каждую сущность сообщения.
69. Тело сообщения
Тело HTTP сообщения (message-
body), если оно присутствует,
используется для передачи тела
объекта, связанного с запросом или
ответом.
Пример:
message-body = entity-body
| <entity-body закодировано согласно
Transfer-Encoding>
70. GET — получение ресурса
Используется для запроса содержимого
указанного ресурса. С помощью метода
GET можно также начать какой-либо
процесс. В этом случае в тело ответного
сообщения следует включить
информацию о ходе выполнения
процесса.
71. GET — получение ресурса
Клиент может передавать параметры
выполнения запроса в URI целевого
ресурса после символа «?»:
/path/resource?par1=value1&par2=value2
72. HEAD
HEAD - аналогичен методу GET, за
исключением того, что в ответе сервера
отсутствует тело. Запрос HEAD обычно
применяется для извлечения
метаданных, проверки наличия ресурса
(валидация URL) и чтобы узнать, не
изменился ли он с момента последнего
обращения.
74. PUT
PUT - применяется для загрузки
содержимого запроса на указанный в
запросе URI. Если по заданному URI не
существует ресурс, то сервер создаёт
его и возвращает статус 201 (Created).
Если же был изменён ресурс, то сервер
возвращает 200 (Ok) или 204 (No
Content).
77. TRACE
TRACE - возвращает полученный запрос
так, что клиент может увидеть, какую
информацию промежуточные серверы
добавляют или изменяют в запросе.
78. CONNECT
CONNECT - преобразует соединение
запроса в прозрачный TCP/IP-туннель,
обычно чтобы содействовать
установлению защищённого SSL-
соединения через нешифрованный
прокси.
79. Частичный GET
HTTP позволяет запросить не сразу всё
содержимое ресурса, а только
указанный фрагмент. Возможность их
выполнения необязательна (но
желательна) для серверов. Частичные
GET в основном используются для
докачки файлов и быстрого
параллельного скачивания в нескольких
потоках.
80. Условный GET
Метод GET изменяется на «условный
GET», если сообщение запроса
включает в себя поле заголовка «If-
Modified-Since». В ответ на условный
GET, тело запрашиваемого ресурса
передаётся только, если он изменялся
после даты, указанной в заголовке «If-
Modified-Since».