4 3 tcp udp

Post on 02-Aug-2015

79 Views

Category:

Internet

3 Downloads

Preview:

Click to see full reader

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 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

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

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