4 3 tcp udp
Post on 02-Aug-2015
79 Views
Preview:
TRANSCRIPT
Промислові мережі та інтеграційні технології
Протоколи TCP та UDP
реєстрація fieldbus_book@ukr.net автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 1
Спрощена модель роботи стеку TCP/IP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 2
Транспортний рівень в стеці
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 3
Транспортний рівень (адресація)
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 4
TSAP – transport service access point: адресація прикладного процесу NSAP – Network service access point: адресація хоста
Транспортний рівень: TCP та UDP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 5
TCP vs UDP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 6
TCP - Transmission Control Protocol UDP - User Datagram Protocol
* надійність сервісів може реалізуватися на верхніх рівнях поверх UDP
• control (DNS, DHCP)
*
Порти UDP та TCP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 7
TSAP ~ номер порта
серверні порти клієнтські порти
• 0-1023 - добре відомі або системні порти (Well-Known, System)
• 1024-49151 – зареєстровані користувацькі (User)
• 49152-65535 – динамічні або приватні порти (Dynamic, Private)
Список портов TCP и UDP
44321 44321
Сокети
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 8
https://microchip.wikidot.com/tcpip:tcp-ip-sockets
сокет – програмна реалізація підключення сокет - проміжний об'єкт між Application та TCP/UDP сокет (адреса_сокета) = адреса_IP + номер_порту ідентифікатор з'єднання: Protocol+IPdst+PORTdst+ IPsrc+PORTsrc (5 tuple)
Приклад використання сокетів UDP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 9
Заголовки UDP та TCP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 10
заголовок UDP - датаграми
заголовок TCP - сегменту
октета
наступний номер октета
Робота UDP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 11
Робота TCP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 12
• спочатку створюється з'єднання (+ домовленість про особливості передачі)
• з'єднання "точка-точка" • з'єднання дуплексне • сервер очікує, ініціатор (клієнт)
активує • слідкування за доставкою, за
порядком октетів (байтів) • з'єднання розривається по
ініціативі будь-якого учасника • дані буферизуються • частина буферу передається
окремим пакетом - TCP-сегментом • межі між повідомленнями не
зберігаються (потік октетів)
байт чи октет?
З'єднання на базі TCP
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 13
АСК — квитанція на прийнятий сегмент; SYN — повідомлення, що використовується для синхронізації лічильників переданих даних при встановленні з'єднання; FIN — ознака досягнення передаючою стороною останнього байту в потоці даних
З'єднання на базі TCP: використання сокетів
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 14
Примітив Призначення
SOCKET (СОКЕТ) Створити новий сокет (гніздо зв’язку)
BIND (ЗВ’ЯЗАТИ) Зв’язати локальну адресу з сокетом
LISTEN (ОЧІКУВАТИ) Очікувати з’єднання зі сторони клієнта
ACCEPT (ПРИЙНЯТИ) Підтвердити з’єднання
CONNECT (З'ЄДНАТИ) Активно пробувати з’єднатись з сервером
SEND (ВІДПРАВИТИ) Відправити дані по встановленому каналі
RECEIVE (ОТРИМАТИ) Отримати дані із з’єднаного каналу
CLOSE (ЗАКРИТИ) Розірвати з’єднання
JAVA Socket programming
подія/дія
З'єднання на базі TCP: автомат станів
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 15
події: - виклик процедури CONNECT,
LISTEN, SEND або CLOSE - прибуття сегменту: SYN, FIN, ACK,
RST - таймаут
дії: відправка керуючого сегменту SYN, FIN, ACK
Полуоткрытое TCP/IP-соединение
типовий шлях клієнта
типовий шлях серверу
нетиповий шлях
Приклад: використання сокету (кінцева ціль)
15.06.2015
NET - TCP/UDP pupena_san@ukr.net 16
Джерело
Приклад: створення сокету на сервері + прослуховування
15.06.2015
NET - TCP/UDP pupena_san@ukr.net 17
Джерело
Приклад: створення сокету на клієнті + ініціація з'єднання
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 18
Джерело
Приклад: відправка повідомлення на з'єднання
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 19
Джерело
Приклад: створення нового сокету
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 20
Джерело
Приклад: передача сторінки клієнту
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 21
Джерело
Приклад: закриття сокетів
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 22
Джерело
Приклади обмежень на кількість підключень (сокетів)
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 23
PLC M241
Част. ATV
PLC S7 315
Утиліта NetStat
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 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 виводить дані тільки один раз
Утиліта NetStat
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 25
Утиліта TCPView
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 26
https://technet.microsoft.com/ru-ru/sysinternals/bb897437
Если в период между обновлениями состояние конечной точки изменилось, она выделяется желтым цветом, если конечная точка удалена — красным цветом, новые конечные точки отображаются зеленым цветом.
Утиліти сканування портів (nmap, …) Тільки для тестування своїх хостів (закон?)!
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 27
https://hideme.ru/ports/
http://www.yougetsignal.com/tools/open-ports/
https://nmap.org/download.html#windows
Packet Sender (TCP/UDP Client/Server) https://packetsender.com
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 28
TCP/IP Builder (TCP/UDP Client/Server)
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 29
TCP/IP Builder
Утиліти: COM2TCP, TCP2COM
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 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
TCP2COM + COM0COM: приклад SQUID Microl
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 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
Утиліта: hub4com
15.06.2015 NET - TCP/UDP pupena_san@ukr.net 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
top related