SlideShare a Scribd company logo
1 of 80
Введение в сетевые
технологии
Виталий Унгурян
unguryan@itstep.org
Сетевое программирование
Сетевое программирование (англ.
network programming) — это
написание программ,
взаимодействующих с другими
программами посредством
компьютерной сети.
Сетевое программирование
Сетевое программирование
Программа или процесс,
инициирующие установление
связи, называются клиентским
процессом, а программа,
ожидающая инициации связи,
называется серверным процессом.
Сетевое программирование
Клиентский и серверный
процессы вместе образуют
распределенную систему
Сетевое программирование
Связь между клиентским и серверным
процессами может быть или на основе
соединений (как например, TCP-
протокол, устанавливающий
виртуальное соединение или сессию),
или без соединений (на основе UDP-
датаграмм).
Вычислительная сеть
Компьютерная сеть
(вычислительная сеть) — это
система связи компьютеров или
вычислительного оборудования
(серверы, маршрутизаторы и
другое оборудование).
Классификация
По территориальной распространенности:
BAN (Body Area Network —
нательная компьютерная сеть) —
сеть надеваемых или
имплантированных компьютерных
устройств.
Классификация
PAN (Personal Area Network) —
персональная сеть,
предназначенная для
взаимодействия различных
устройств, принадлежащих одному
владельцу.
Классификация
LAN (ЛВС, Local Area Network) —
локальные сети, имеющие замкнутую
инфраструктуру. Термин «LAN» может
описывать и маленькую офисную сеть,
и сеть уровня большого завода,
занимающего несколько сотен гектаров.
Зарубежные источники дают даже
близкую оценку — около шести миль
(10 км) в радиусе.
Классификация
CAN (Campus Area Network) —
кампусная сеть, объединяет локальные
сети близко расположенных зданий.
MAN (Metropolitan Area Network) —
городские сети между учреждениями в
пределах одного или нескольких
городов, связывающие много
локальных вычислительных сетей.
Классификация
WAN (Wide Area Network) —
глобальная сеть, покрывающая
большие географические регионы,
включающие в себя как локальные сети,
так и прочие телекоммуникационные
сети и устройства. Глобальные сети
являются открытыми и ориентированы
на обслуживание любых
пользователей.
Классификация
По архитектуре:
Клиент-сервер (англ. Client-server) —
вычислительная или сетевая архитектура, в
которой задания или сетевая нагрузка
распределены между поставщиками услуг,
называемыми серверами, и заказчиками
услуг, называемыми клиентами
Одноранговая сеть (децентрализованная
или пиринговая сеть)
Топология сетей - Шина
Физическая топология "шина" (Bus), именуемая также линейной шиной
(Linear Bus), состоит из единственного кабеля, к которому
присоединены все компьютеры сегмента
Топология сетей - Кольцо
Топология сетей - Звезда
Звезда — базовая топология компьютерной сети, в которой
все компьютеры сети присоединены к центральному узлу
Топология сетей - Ячейки
Ячеистая топология (англ. Mesh Topology) — сетевая
топология компьютерной сети, построенная на принципе ячеек
Топология сетей - Решетка
Решётка (англ. Grid network, иногда
также mesh, например 3D-mesh) — это
топология, в которой узлы образуют
регулярную многомерную решётку. При
этом каждое ребро решётки
параллельно её оси и соединяет два
смежных узла вдоль этой оси.
Топология сетей - Древовидная
Топология сетей - Смешанная
Смешанная
топология
Топология сетей - Fat Tree
Классификация сетей
По типу среды передачи:
Проводные (телефонный провод,
коаксиальный кабель, витая пара,
волоконный-оптический кабель)
Беспроводные (передачей
информации по радиоволнам в
определённом частотном диапазоне)
Классификация
По функциональному
назначению:
Сети хранения данных
Серверные фермы
Сети управления процессом
Домовые сети (Сети SOHO)
Классификация
По сетевым операционным
системам:
На основе Windows
На основе UNIX (подобных)
На основе NetWare
На основе Cisco
Сетевая модель OSI
Сетевая модель OSI (англ. open
systems interconnection basic reference
model — базовая эталонная модель
взаимодействия открытых систем) —
сетевая модель стека сетевых
протоколов OSI/ISO (ГОСТ Р ИСО/МЭК
7498-1-99).
Разработана в 1978 год
Сетевая модель OSI
Сетевая модель OSI
Прикладной уровень
Прикладной уровень (уровень
приложений; англ. application layer) —
верхний уровень модели,
обеспечивающий взаимодействие
пользовательских приложений с сетью:
Протоколы прикладного уровня: RDP,
HTTP, SMTP, SNMP, POP3, FTP, XMPP,
OSCAR, Modbus, SIP, TELNET и другие
Уровень представления
Представительский уровень (уровень
представления; англ. presentation layer)
обеспечивает преобразование
протоколов и кодирование или
декодирование данных. Запросы
приложений, полученные с прикладного
уровня, на уровне представления
преобразуются в формат для передачи
по сети, а полученные из сети данные
преобразуются в формат приложений.
Сеансовый уровень
Сеансовый уровень (англ. session layer)
обеспечивает поддержание сеанса
связи, позволяя приложениям
взаимодействовать между собой
длительное время. Уровень управляет
созданием/завершением сеанса,
обменом информацией, синхронизацией
задач, определением права на передачу
данных и поддержанием сеанса в
периоды не активности приложений.
Транспортный уровень
Транспортный уровень (англ. transport
layer) предназначен для обеспечения
надёжной передачи данных от
отправителя к получателю (уровень
надёжности может варьироваться).
Протоколы транспортного уровня: ATP, CUDP ,
DCCP, FCP, IL, NBF, NCP, SCTP, SPX, SST , TCP
(Transmission Control Protocol), UDP (User
Datagram Protocol).
Сетевой уровень
Сетевой уровень (англ. network layer)
модели предназначен для определения
пути передачи данных. Отвечает за
трансляцию логических адресов и имён
в физические, определение кратчайших
маршрутов, коммутацию и
маршрутизацию, отслеживание
неполадок и «заторов» в сети.
Канальный уровень
Канальный уровень (англ. data link layer)
предназначен для обеспечения
взаимодействия сетей на физическом
уровне и контроля за ошибками, которые
могут возникнуть.
Физический уровень
Физический уровень (англ. physical layer)
— нижний уровень модели, который
определяет метод передачи данных,
представленных в двоичном виде, от
одного устройства (компьютера) к
другому.
На этом уровне также работают
концентраторы, повторители сигнала и
медиаконвертеры.
Критика OSI
Пока комитеты ISO спорили о
своих стандартах, за их спиной
менялась вся концепция
организации сетей и по всему
миру внедрялся протокол
TCP/IP.
OSI
Когда протоколы ISO были наконец
реализованы, выявился ряд проблем:
эти протоколы основывались на концепциях, не
имеющих в современных сетях никакого смысла;
спецификации были в некоторых случаях
неполными;
по своим функциональным возможностям они
уступали другим протоколам;
наличие многочисленных уровней сделало эти
протоколы медлительными и трудными для
реализации.
OSI
Основных причин неудачи модели
OSI четыре:
1. Несвоевременность.
2. Неудачная технология.
3. Неудачная реализация.
4. Неудачная политика.
Сетевой протокол
Сетевой протокол — это набор правил,
позволяющий осуществлять соединение
и обмен данными между двумя и более
включёнными в сеть устройствами.
Сетевой протокол
Стек протоколов TCP/IP — набор
сетевых протоколов передачи данных,
используемых в сетях, включая сеть
Интернет.
Сетевой протокол
Название TCP/IP происходит из
двух наиважнейших протоколов
семейства — Transmission Control
Protocol (TCP) и Internet Protocol (IP),
которые были разработаны и
описаны первыми в данном
стандарте.
Сетевой протокол
Стек протоколов TCP/IP включает в себя
четыре уровня:
 прикладной уровень (application layer),
 транспортный уровень (transport layer),
 сетевой уровень (Internet layer),
 канальный уровень (link layer).
Протоколы этих уровней полностью реализуют
функциональные возможности модели OSI.
Сетевой протокол
Стек протоколов TCP/IP включает в себя
четыре уровня:
 прикладной уровень (application layer),
 транспортный уровень (transport layer),
 сетевой уровень (Internet layer),
 канальный уровень (link layer).
Протоколы этих уровней полностью реализуют
функциональные возможности модели OSI.
Сетевой протокол
IP адрес
IP-адрес (англ. Internet Protocol Address)
— уникальный идентификатор (адрес)
устройства (обычно компьютера),
подключённого к локальной сети или
интернету.
IP адрес
IP-адрес представляет собой 32-
битовое (по версии IPv4) или 128-
битовое (по версии IPv6) двоичное
число.
Удобной формой записи IP-адреса (IPv4)
является запись в виде четырёх
десятичных чисел (от 0 до 255),
разделённых точками.
IP адрес
128.10.2.30 — традиционная
десятичная форма представления
адреса
10000000 00001010 00000010
00011110 — двоичная форма
представления этого же адреса
Классы IP - адресов
Сокет
(англ. socket — разъём) —
название программного интерфейса для
обеспечения обмена данными между
процессами. Процессы при таком
обмене могут исполняться как на одной
ЭВМ, так и на различных ЭВМ,
связанных между собой сетью. Сокет —
абстрактный объект, представляющий
конечную точку соединения.
Сокет
Сетевой порт
Сетевой порт — условное число от 1 до
65535, указывающее, какому
приложению предназначается пакет.
Если прибегнуть к аналогии, то IP адрес
- почтовый адрес дома, а порт - номер
квартиры конкретного жильца.
Использование портов позволяет независимо
использовать TCP протокол сразу многим
приложениям на одном и том же компьютере.
Серверное программирование
Клиент-сервер (англ. Client-server) —
вычислительная или сетевая
архитектура, в которой задания или
сетевая нагрузка распределены между
поставщиками услуг, называемыми
серверами, и заказчиками услуг,
называемыми клиентами. Физически
клиент и сервер — это программное
обеспечение.
Серверное программирование
Серверное программирование
Расположение компонентов на стороне
клиента или сервера определяет
основные модели взаимодействия :
сервер терминалов — распределенное
представление данных;
файл-сервер — доступ к удалённой базе
данных и файловым ресурсам;
сервер БД — удалённое представление
данных;
сервер приложений — удалённое
приложение.
Двухзвенная архитектура
Трезвенная архитектура
Трезвенная архитектура сложнее, но имеет:
Высокую степень гибкости и масштабируемости.
Высокую безопасность (т.к. защиту можно определить для каждого
сервиса или уровня).
Высокую производительность (т.к. задачи распределены между
серверами).
Многозвенная архитектура
Web-сервер
Web-серверы - изначально
представляли доступ к гипертекстовым
документам по протоколу HTTP.
Сейчас поддерживают расширенные
возможности, в частности работу с
бинарными файлами (изображения,
мультимедиа и т.п.).
Серверы приложений
Серверы приложений - предназначены
для централизованного решения
прикладных задач в некоторой
предметной области. Для этого
пользователи имеют право запускать
серверные программы на исполнение.
Использование серверов приложений
позволяет снизить требования к
конфигурации клиентов и упрощает
общее управление сетью.
Серверы баз данных
Серверы баз данных - используются
для обработки пользовательских
запросов на языке SQL. При этом
СУБД находится на сервере, к
которому и подключаются
клиентские приложения.
Файл-сервер
Файл-сервер - хранит информацию
в виде файлов и представляет
пользователям доступ к ней. Как
правило файл-сервер обеспечивает
и определённый уровень защиты от
несанкционированного доступа.
Прокси-сервер
Прокси-сервер - действует как
посредник, помогая пользователям
получить информацию из Интернета и
при этом обеспечивая защиту сети и
сохраняет часто запрашиваемую
информацию в кэш-памяти на
локальном диске, быстро доставляя её
пользователям без повторного
обращения к Интернету.
Файрвол
Файрволы (брандмауэры) -
межсетевые экраны,
анализирующие и фильтрующие
проходящий сетевой трафик, с
целью обеспечения безопасности
сети.
Почтовый сервер
Почтовые серверы - представляют
услуги по отправке и получению
электронных почтовых сообщений
как правило на основе протоколов
IMAP4 или POP3 / SMTP.
HTTP
HTTP - это протокол описывающий
взаимодействие между двумя
компьютерами (клиентом и
сервером), построенное на базе
сообщений, называемых запрос
(Request) и ответ (Response).
Схема взаимодействия клиента и сервера
HTTP стартовая строка
Каждое сообщение состоит из трёх
частей: стартовая строка, заголовки и
тело.
При этом обязательной является только
стартовая строка.
METHOD URI HTTP/VERSION,
где METHOD — это как раз метод HTTP-запроса,
URI — идентификатор ресурса,
VERSION — версия протокола (на данный момент
актуальна версия 1.1).
Заголовки
Заголовки 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
Заголовки
Все заголовки разделяются на четыре
основных группы:
General Headers («Основные заголовки») —
могут включаться в любое сообщение клиента
и сервера.
Request Headers («Заголовки запроса») —
используются только в запросах клиента.
Response Headers («Заголовки ответа») —
только для ответов от сервера.
Entity Headers («Заголовки сущности») —
сопровождают каждую сущность сообщения.
Тело сообщения
Тело HTTP сообщения (message-
body), если оно присутствует,
используется для передачи тела
объекта, связанного с запросом или
ответом.
Пример:
message-body = entity-body
| <entity-body закодировано согласно
Transfer-Encoding>
GET — получение ресурса
Используется для запроса содержимого
указанного ресурса. С помощью метода
GET можно также начать какой-либо
процесс. В этом случае в тело ответного
сообщения следует включить
информацию о ходе выполнения
процесса.
GET — получение ресурса
Клиент может передавать параметры
выполнения запроса в URI целевого
ресурса после символа «?»:
/path/resource?par1=value1&par2=value2
HEAD
HEAD - аналогичен методу GET, за
исключением того, что в ответе сервера
отсутствует тело. Запрос HEAD обычно
применяется для извлечения
метаданных, проверки наличия ресурса
(валидация URL) и чтобы узнать, не
изменился ли он с момента последнего
обращения.
POST
POST - применяется для скрытой
передачи пользовательских данных
заданному ресурсу.
PUT
PUT - применяется для загрузки
содержимого запроса на указанный в
запросе URI. Если по заданному URI не
существует ресурс, то сервер создаёт
его и возвращает статус 201 (Created).
Если же был изменён ресурс, то сервер
возвращает 200 (Ok) или 204 (No
Content).
PATCH
PATCH - аналогично PUT, но
применяется только к фрагменту
ресурса.
DELETE
DELETE - удаляет указанный ресурс,
если такой запрос поддерживается
сервером.
TRACE
TRACE - возвращает полученный запрос
так, что клиент может увидеть, какую
информацию промежуточные серверы
добавляют или изменяют в запросе.
CONNECT
CONNECT - преобразует соединение
запроса в прозрачный TCP/IP-туннель,
обычно чтобы содействовать
установлению защищённого SSL-
соединения через нешифрованный
прокси.
Частичный GET
HTTP позволяет запросить не сразу всё
содержимое ресурса, а только
указанный фрагмент. Возможность их
выполнения необязательна (но
желательна) для серверов. Частичные
GET в основном используются для
докачки файлов и быстрого
параллельного скачивания в нескольких
потоках.
Условный GET
Метод GET изменяется на «условный
GET», если сообщение запроса
включает в себя поле заголовка «If-
Modified-Since». В ответ на условный
GET, тело запрашиваемого ресурса
передаётся только, если он изменялся
после даты, указанной в заголовке «If-
Modified-Since».

More Related Content

What's hot

Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Unguryan Vitaliy
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.Igor Shkulipa
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernateUnguryan Vitaliy
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.Igor Shkulipa
 
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.Igor Shkulipa
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.Igor Shkulipa
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5Technopark
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.Igor Shkulipa
 
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak OleksiiSvitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak OleksiiSvitla Systems Inc.
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.Igor Shkulipa
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.Igor Shkulipa
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Anton Moiseenko
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.genericsmuqaddas_m
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIEkaterina Kuchinskaya
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSPUnguryan Vitaliy
 
C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.Igor Shkulipa
 

What's hot (20)

Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
 
Stream API
Stream APIStream API
Stream API
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.
 
JDBC
JDBCJDBC
JDBC
 
C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.C++ STL & Qt. Занятие 08.
C++ STL & Qt. Занятие 08.
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
 
Java весна 2014 лекция 5
Java весна 2014 лекция 5Java весна 2014 лекция 5
Java весна 2014 лекция 5
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.
 
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak OleksiiSvitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
 
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
 
java
javajava
java
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.
 

Viewers also liked (7)

JSTL
JSTLJSTL
JSTL
 
Аннотации в java
Аннотации в javaАннотации в java
Аннотации в java
 
Date & Time in Java SE 8
Date & Time in Java SE 8Date & Time in Java SE 8
Date & Time in Java SE 8
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
JSP
JSPJSP
JSP
 
XML
XMLXML
XML
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в java
 

Similar to Введение в сетевые технологии

Introduction into computer networks
Introduction into computer networksIntroduction into computer networks
Introduction into computer networksAndrei Kirushchanka
 
Локальные и глобальные вычислительные сети
Локальные и глобальные вычислительные сетиЛокальные и глобальные вычислительные сети
Локальные и глобальные вычислительные сетиАндрей Сергеевич
 
введение в интернет
введение в интернетвведение в интернет
введение в интернетUlyana1973
 
лекционное занятие №4
лекционное занятие №4лекционное занятие №4
лекционное занятие №4Pavlo Krasikov
 
компьютерные сети3
компьютерные сети3компьютерные сети3
компьютерные сети3SolHuteII
 
интернет
интернетинтернет
интернетmari10ko
 
Презентация на тему "история Interne
Презентация на тему "история InterneПрезентация на тему "история Interne
Презентация на тему "история InterneАлёнка
 
Презентация на тему "история Internet"
Презентация на тему "история Internet"Презентация на тему "история Internet"
Презентация на тему "история Internet"Алёнка
 
Сетевая модель OSI, ATM и Ethernet
Сетевая модель OSI, ATM и EthernetСетевая модель OSI, ATM и Ethernet
Сетевая модель OSI, ATM и EthernetPutinTheJew
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сетиser170
 

Similar to Введение в сетевые технологии (20)

Introduction into computer networks
Introduction into computer networksIntroduction into computer networks
Introduction into computer networks
 
Архитектура компьютерные сетей
Архитектура компьютерные сетейАрхитектура компьютерные сетей
Архитектура компьютерные сетей
 
135128
135128135128
135128
 
135128
135128135128
135128
 
Локальные и глобальные вычислительные сети
Локальные и глобальные вычислительные сетиЛокальные и глобальные вычислительные сети
Локальные и глобальные вычислительные сети
 
Sety 9 klass
Sety 9 klassSety 9 klass
Sety 9 klass
 
введение в интернет
введение в интернетвведение в интернет
введение в интернет
 
лекционное занятие №4
лекционное занятие №4лекционное занятие №4
лекционное занятие №4
 
Comp seti2
Comp seti2Comp seti2
Comp seti2
 
Lekt 04 5-osi_decrypted
Lekt 04 5-osi_decryptedLekt 04 5-osi_decrypted
Lekt 04 5-osi_decrypted
 
Ip Adr
Ip AdrIp Adr
Ip Adr
 
компьютерные сети3
компьютерные сети3компьютерные сети3
компьютерные сети3
 
интернет
интернетинтернет
интернет
 
Презентация на тему "история Interne
Презентация на тему "история InterneПрезентация на тему "история Interne
Презентация на тему "история Interne
 
Презентация на тему "история Internet"
Презентация на тему "история Internet"Презентация на тему "история Internet"
Презентация на тему "история Internet"
 
Сетевая модель OSI, ATM и Ethernet
Сетевая модель OSI, ATM и EthernetСетевая модель OSI, ATM и Ethernet
Сетевая модель OSI, ATM и Ethernet
 
сетевые протоколы
сетевые протоколысетевые протоколы
сетевые протоколы
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сети
 
Lec 1
Lec 1Lec 1
Lec 1
 
сети
сетисети
сети
 

More from Unguryan Vitaliy

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование. Unguryan Vitaliy
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVCUnguryan Vitaliy
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектамиUnguryan Vitaliy
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Unguryan Vitaliy
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»Unguryan Vitaliy
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoFUnguryan Vitaliy
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылокUnguryan Vitaliy
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьUnguryan Vitaliy
 
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Unguryan Vitaliy
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Unguryan Vitaliy
 

More from Unguryan Vitaliy (13)

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
 
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
java 8
java 8java 8
java 8
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
 
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
List - списки
List - списки List - списки
List - списки
 

Введение в сетевые технологии

  • 2. Сетевое программирование Сетевое программирование (англ. network programming) — это написание программ, взаимодействующих с другими программами посредством компьютерной сети.
  • 4. Сетевое программирование Программа или процесс, инициирующие установление связи, называются клиентским процессом, а программа, ожидающая инициации связи, называется серверным процессом.
  • 5. Сетевое программирование Клиентский и серверный процессы вместе образуют распределенную систему
  • 6. Сетевое программирование Связь между клиентским и серверным процессами может быть или на основе соединений (как например, TCP- протокол, устанавливающий виртуальное соединение или сессию), или без соединений (на основе UDP- датаграмм).
  • 7. Вычислительная сеть Компьютерная сеть (вычислительная сеть) — это система связи компьютеров или вычислительного оборудования (серверы, маршрутизаторы и другое оборудование).
  • 8. Классификация По территориальной распространенности: BAN (Body Area Network — нательная компьютерная сеть) — сеть надеваемых или имплантированных компьютерных устройств.
  • 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) — это топология, в которой узлы образуют регулярную многомерную решётку. При этом каждое ребро решётки параллельно её оси и соединяет два смежных узла вдоль этой оси.
  • 19. Топология сетей - Древовидная
  • 20. Топология сетей - Смешанная Смешанная топология
  • 22. Классификация сетей По типу среды передачи: Проводные (телефонный провод, коаксиальный кабель, витая пара, волоконный-оптический кабель) Беспроводные (передачей информации по радиоволнам в определённом частотном диапазоне)
  • 23. Классификация По функциональному назначению: Сети хранения данных Серверные фермы Сети управления процессом Домовые сети (Сети SOHO)
  • 24. Классификация По сетевым операционным системам: На основе Windows На основе UNIX (подобных) На основе NetWare На основе Cisco
  • 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 — двоичная форма представления этого же адреса
  • 47. Классы IP - адресов
  • 48. Сокет (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.
  • 50. Сетевой порт Сетевой порт — условное число от 1 до 65535, указывающее, какому приложению предназначается пакет. Если прибегнуть к аналогии, то IP адрес - почтовый адрес дома, а порт - номер квартиры конкретного жильца. Использование портов позволяет независимо использовать TCP протокол сразу многим приложениям на одном и том же компьютере.
  • 51. Серверное программирование Клиент-сервер (англ. Client-server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Физически клиент и сервер — это программное обеспечение.
  • 53. Серверное программирование Расположение компонентов на стороне клиента или сервера определяет основные модели взаимодействия : сервер терминалов — распределенное представление данных; файл-сервер — доступ к удалённой базе данных и файловым ресурсам; сервер БД — удалённое представление данных; сервер приложений — удалённое приложение.
  • 55. Трезвенная архитектура Трезвенная архитектура сложнее, но имеет: Высокую степень гибкости и масштабируемости. Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня). Высокую производительность (т.к. задачи распределены между серверами).
  • 57. Web-сервер Web-серверы - изначально представляли доступ к гипертекстовым документам по протоколу HTTP. Сейчас поддерживают расширенные возможности, в частности работу с бинарными файлами (изображения, мультимедиа и т.п.).
  • 58. Серверы приложений Серверы приложений - предназначены для централизованного решения прикладных задач в некоторой предметной области. Для этого пользователи имеют право запускать серверные программы на исполнение. Использование серверов приложений позволяет снизить требования к конфигурации клиентов и упрощает общее управление сетью.
  • 59. Серверы баз данных Серверы баз данных - используются для обработки пользовательских запросов на языке SQL. При этом СУБД находится на сервере, к которому и подключаются клиентские приложения.
  • 60. Файл-сервер Файл-сервер - хранит информацию в виде файлов и представляет пользователям доступ к ней. Как правило файл-сервер обеспечивает и определённый уровень защиты от несанкционированного доступа.
  • 61. Прокси-сервер Прокси-сервер - действует как посредник, помогая пользователям получить информацию из Интернета и при этом обеспечивая защиту сети и сохраняет часто запрашиваемую информацию в кэш-памяти на локальном диске, быстро доставляя её пользователям без повторного обращения к Интернету.
  • 62. Файрвол Файрволы (брандмауэры) - межсетевые экраны, анализирующие и фильтрующие проходящий сетевой трафик, с целью обеспечения безопасности сети.
  • 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) и чтобы узнать, не изменился ли он с момента последнего обращения.
  • 73. POST POST - применяется для скрытой передачи пользовательских данных заданному ресурсу.
  • 74. PUT PUT - применяется для загрузки содержимого запроса на указанный в запросе URI. Если по заданному URI не существует ресурс, то сервер создаёт его и возвращает статус 201 (Created). Если же был изменён ресурс, то сервер возвращает 200 (Ok) или 204 (No Content).
  • 75. PATCH PATCH - аналогично PUT, но применяется только к фрагменту ресурса.
  • 76. DELETE DELETE - удаляет указанный ресурс, если такой запрос поддерживается сервером.
  • 77. TRACE TRACE - возвращает полученный запрос так, что клиент может увидеть, какую информацию промежуточные серверы добавляют или изменяют в запросе.
  • 78. CONNECT CONNECT - преобразует соединение запроса в прозрачный TCP/IP-туннель, обычно чтобы содействовать установлению защищённого SSL- соединения через нешифрованный прокси.
  • 79. Частичный GET HTTP позволяет запросить не сразу всё содержимое ресурса, а только указанный фрагмент. Возможность их выполнения необязательна (но желательна) для серверов. Частичные GET в основном используются для докачки файлов и быстрого параллельного скачивания в нескольких потоках.
  • 80. Условный GET Метод GET изменяется на «условный GET», если сообщение запроса включает в себя поле заголовка «If- Modified-Since». В ответ на условный GET, тело запрашиваемого ресурса передаётся только, если он изменялся после даты, указанной в заголовке «If- Modified-Since».