32
Промислові мережі та інтеграційні технології Протоколи TCP та UDP реєстрація [email protected] автор і лектор: Олександр Пупена ([email protected]) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua) 15.06.2015 NET - TCP/UDP [email protected] 1

4 3 tcp udp

Embed Size (px)

Citation preview

Page 1: 4 3 tcp udp

Промислові мережі та інтеграційні технології

Протоколи TCP та UDP

реєстрація [email protected] автор і лектор: Олександр Пупена ([email protected])

зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)

15.06.2015 NET - TCP/UDP [email protected] 1

Page 2: 4 3 tcp udp

Спрощена модель роботи стеку TCP/IP

15.06.2015 NET - TCP/UDP [email protected] 2

Page 3: 4 3 tcp udp

Транспортний рівень в стеці

15.06.2015 NET - TCP/UDP [email protected] 3

Page 4: 4 3 tcp udp

Транспортний рівень (адресація)

15.06.2015 NET - TCP/UDP [email protected] 4

TSAP – transport service access point: адресація прикладного процесу NSAP – Network service access point: адресація хоста

Page 6: 4 3 tcp udp

TCP vs UDP

15.06.2015 NET - TCP/UDP [email protected] 6

TCP - Transmission Control Protocol UDP - User Datagram Protocol

* надійність сервісів може реалізуватися на верхніх рівнях поверх UDP

• control (DNS, DHCP)

*

Page 7: 4 3 tcp udp

Порти UDP та TCP

15.06.2015 NET - TCP/UDP [email protected] 7

TSAP ~ номер порта

серверні порти клієнтські порти

• 0-1023 - добре відомі або системні порти (Well-Known, System)

• 1024-49151 – зареєстровані користувацькі (User)

• 49152-65535 – динамічні або приватні порти (Dynamic, Private)

Список портов TCP и UDP

Page 8: 4 3 tcp udp

44321 44321

Сокети

15.06.2015 NET - TCP/UDP [email protected] 8

https://microchip.wikidot.com/tcpip:tcp-ip-sockets

сокет – програмна реалізація підключення сокет - проміжний об'єкт між Application та TCP/UDP сокет (адреса_сокета) = адреса_IP + номер_порту ідентифікатор з'єднання: Protocol+IPdst+PORTdst+ IPsrc+PORTsrc (5 tuple)

Page 9: 4 3 tcp udp

Приклад використання сокетів UDP

15.06.2015 NET - TCP/UDP [email protected] 9

Page 10: 4 3 tcp udp

Заголовки UDP та TCP

15.06.2015 NET - TCP/UDP [email protected] 10

заголовок UDP - датаграми

заголовок TCP - сегменту

октета

наступний номер октета

Page 11: 4 3 tcp udp

Робота UDP

15.06.2015 NET - TCP/UDP [email protected] 11

Page 12: 4 3 tcp udp

Робота TCP

15.06.2015 NET - TCP/UDP [email protected] 12

• спочатку створюється з'єднання (+ домовленість про особливості передачі)

• з'єднання "точка-точка" • з'єднання дуплексне • сервер очікує, ініціатор (клієнт)

активує • слідкування за доставкою, за

порядком октетів (байтів) • з'єднання розривається по

ініціативі будь-якого учасника • дані буферизуються • частина буферу передається

окремим пакетом - TCP-сегментом • межі між повідомленнями не

зберігаються (потік октетів)

байт чи октет?

Page 13: 4 3 tcp udp

З'єднання на базі TCP

15.06.2015 NET - TCP/UDP [email protected] 13

АСК — квитанція на прийнятий сегмент; SYN — повідомлення, що використовується для синхронізації лічильників переданих даних при встановленні з'єднання; FIN — ознака досягнення передаючою стороною останнього байту в потоці даних

Page 14: 4 3 tcp udp

З'єднання на базі TCP: використання сокетів

15.06.2015 NET - TCP/UDP [email protected] 14

Примітив Призначення

SOCKET (СОКЕТ) Створити новий сокет (гніздо зв’язку)

BIND (ЗВ’ЯЗАТИ) Зв’язати локальну адресу з сокетом

LISTEN (ОЧІКУВАТИ) Очікувати з’єднання зі сторони клієнта

ACCEPT (ПРИЙНЯТИ) Підтвердити з’єднання

CONNECT (З'ЄДНАТИ) Активно пробувати з’єднатись з сервером

SEND (ВІДПРАВИТИ) Відправити дані по встановленому каналі

RECEIVE (ОТРИМАТИ) Отримати дані із з’єднаного каналу

CLOSE (ЗАКРИТИ) Розірвати з’єднання

JAVA Socket programming

Page 16: 4 3 tcp udp

Приклад: використання сокету (кінцева ціль)

15.06.2015

NET - TCP/UDP [email protected] 16

Джерело

Page 17: 4 3 tcp udp

Приклад: створення сокету на сервері + прослуховування

15.06.2015

NET - TCP/UDP [email protected] 17

Джерело

Page 18: 4 3 tcp udp

Приклад: створення сокету на клієнті + ініціація з'єднання

15.06.2015 NET - TCP/UDP [email protected] 18

Джерело

Page 19: 4 3 tcp udp

Приклад: відправка повідомлення на з'єднання

15.06.2015 NET - TCP/UDP [email protected] 19

Джерело

Page 20: 4 3 tcp udp

Приклад: створення нового сокету

15.06.2015 NET - TCP/UDP [email protected] 20

Джерело

Page 21: 4 3 tcp udp

Приклад: передача сторінки клієнту

15.06.2015 NET - TCP/UDP [email protected] 21

Джерело

Page 22: 4 3 tcp udp

Приклад: закриття сокетів

15.06.2015 NET - TCP/UDP [email protected] 22

Джерело

Page 23: 4 3 tcp udp

Приклади обмежень на кількість підключень (сокетів)

15.06.2015 NET - TCP/UDP [email protected] 23

PLC M241

Част. ATV

PLC S7 315

Page 24: 4 3 tcp udp

Утиліта NetStat

15.06.2015 NET - TCP/UDP [email protected] 24

Утиліта відображає активні підключення TCP, порти, які прослуховуються комп’ютером, статистику Ethernet, таблиці маршрутизації IP, статистику IPv4 (для протоколів IP, ICMP, TCP и UDP). Викликана без параметрів, команда netstat відображає підключення TCP.

netstat [-a] [-b] [-e] [-n] [-o] [-p протокол] [-r] [-s] [інтервал]

Параметр Призначення параметру

/? виводить довідку по використанню

-a виводить всі активні підключення TCP та портів TCP та UDP, які прослуховуються.

- b Відображення назву файлу, що використовує підключення або вхідний порт (Win7)

-e виводить статистику Ethernet, наприклад кількість відправлених та прийнятих байтів та пакетів; цей параметр може комбінуватися з ключем -s.

-f Відображення повного імені домену (FQDN) для зовнішніх адрес (Win7)

-n виводить активні підключення TCP з відображенням адрес та номерів портів в числовому форматі без визначення імен

-o

виводить активні підключення TCP та включення коду процесу (PID) для кожного підключення; цей параметр може комбінуватися з ключами -a, -n та -p.

-p протокол виводить підключення для протоколу, вказаного параметром протокол. У цьому випдаку параметр протокол може приймати значення tcp, udp, tcpv6 або udpv6. Якщо даний параметр використовується з ключем -s для виводу статистики по протоколу, параметр протокол может мати занчення tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6 або ipv6.

-s виводить статистику по протоколу; по замовченню виводиться статистика для протоколів TCP, UDP, ICMP та IP; параметр -p може використовуватися для вказівки набору протоколів.

-r виводить зміст таблиці маршрутизації IP; ця команда еквівалентна route print. інтервал

оновлення вибраних даних з інтервалом, визначеним параметром інтервал (в секундах); нажимання CTRL+C зупиняє оновлення; якщо параметр опущений netstat виводить дані тільки один раз

Page 25: 4 3 tcp udp

Утиліта NetStat

15.06.2015 NET - TCP/UDP [email protected] 25

Page 26: 4 3 tcp udp

Утиліта TCPView

15.06.2015 NET - TCP/UDP [email protected] 26

https://technet.microsoft.com/ru-ru/sysinternals/bb897437

Если в период между обновлениями состояние конечной точки изменилось, она выделяется желтым цветом, если конечная точка удалена — красным цветом, новые конечные точки отображаются зеленым цветом.

Page 27: 4 3 tcp udp

Утиліти сканування портів (nmap, …) Тільки для тестування своїх хостів (закон?)!

15.06.2015 NET - TCP/UDP [email protected] 27

https://hideme.ru/ports/

http://www.yougetsignal.com/tools/open-ports/

https://nmap.org/download.html#windows

Page 28: 4 3 tcp udp

Packet Sender (TCP/UDP Client/Server) https://packetsender.com

15.06.2015 NET - TCP/UDP [email protected] 28

Page 29: 4 3 tcp udp

TCP/IP Builder (TCP/UDP Client/Server)

15.06.2015 NET - TCP/UDP [email protected] 29

TCP/IP Builder

Page 30: 4 3 tcp udp

Утиліти: COM2TCP, TCP2COM

15.06.2015 NET - TCP/UDP [email protected] 30

http://www.serialporttool.com/CommTunnel.htm

TCP SERVER port=5555

IP ADDR=192.168.200.3

COM4 TCP2COM

TCP CLIENT port=dyn

IP ADDR=192.168.200.2

Virtual COM4

COM2TCP APP напр. SCADA

Page 31: 4 3 tcp udp

TCP2COM + COM0COM: приклад SQUID Microl

15.06.2015 NET - TCP/UDP [email protected] 31

TCP SERVER port=xxxx

STATIC IP ADDR

Virtual COM4

TCP2COM

TCP CLIENT port=yyyy

Dynamic IP ADDR

Virtual COM3

COM0COM

APP напр. SCADA

SQID Microl

GPRS

INTERNET

ZZZZ

Modbus Client Modbus Server

Page 32: 4 3 tcp udp

Утиліта: hub4com

15.06.2015 NET - TCP/UDP [email protected] 32

http://com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/ReadMe.txt?revision=RELEASED

• GPS hub – один COM на декілька інших • COM port to telnet redirector • RFC 2217 server (TCP to COM port redirector) • RFC 2217 client (COM port to TCP redirector) • CHAT server • CVS pserver proxy • CVS ssh to https proxy • Multiplexing • Encryption