Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Протокол транспортного уровня

Прикладные протоколы стека TCP\IP

1. Основные понятия

Стек протоколов – совокупность протоколов, обеспечивающие полное взаимодействие между узлами в сети. (стеки TCP\IP, IPX\SPX, NetBIOS)

Протокол – набор правил и алгоритмов используемый для анализа данных и обработки служебной информации.

OSI TCP\IP Protocols
Application Application DHCP, DNS, SMTP, POP3, IMAP, HTTP, FTP, telnet
Presentation
Session
Transport Transport TCP, UDP Icmp\igmp
Network Internet Ip  
Datalink Network MII, AUI ARP, RARP
Physical

2. Понятия Port и socket

Port – адрес виртуального канала используемый для адресации сетевых приложений и протоколов в операционной системе.

Socket – это точный адрес сетевого приложения в сети. Socket = IP address + port.

Типы портов.

· Assignet (назначенный) – 0-1023: номера портов зарегистрированы за сетевыми протоколами.

· Registered (зарегистрированные) – 1024 – 49151: номера портов зарегистрированные за компаниями занимающиеся разработкой программного и аппаратного обеспечения.

· Dynamic (динамические) – 1024 – 65535: номера портов свободные к использованию любыми разработчиками при условии что они не зарегистрированы и не перечислены в RFC1700. Для приложений находящихся на стадии бета - тестировании или применяемые только в пределах локальной сети рекомендуется использовать номера от 49152 и выше.

RFC (request for comment) – это набор правил и рекомендаций по работе сетевых протоколов, при внесении изменений в RFC они выходят под новым номером.

3. Протокол UDP

UDP (User datagrame protocol) – протокол транспортного уровня используемый для передачи данных без установки соединения и без подтверждения, применяется в основном для широковещательной рассылки и передачи служебной информации или служебных запросов.

RFC:768 IP(поле протокол): 11h.

a) Функции протокола UDP

· Передача данных без подтверждения.

· Передача данных с широковещательной рассылкой.

· Мультиплексирование данных при условии что получателям и отправителям является одни те же узлы и не превышен максимальный размер кадра.

· Адресация протоколов верхнего уровня.

b) Дейто грамма – блок данных передаваемый в виде потока без установки соединения и подтверждения.

c) Формат заголовка.

2b 2b
Sorce port Destination port
Lenghth Checksum

Sorce port – отправитель

Destination port – получатель.

Lenghth – длинна заголовка вместе с данными.

Checksum – контрольная сумма.

Ethenet=18b IP=20b UDP=8b Data: 18-1472b
1518b

Поля Sorce port и Checksum являются не обязательными и могут быть равны 0.

4. Протокол TCP

TCP – протокол транспортного уровня используемый для передачи данных с установкой соединения и подтверждения, а также обеспечения заданной последовательности актетов данных.

RFC:793

IP (поле протокол): 06h.

Актет – это блок данных передаваемый с подтверждением, а также контролем за целостностью и заданной последовательностью.

a) Функции протокола TCP

· Передача данных с подтверждением.

· Контроль за правильной последовательностью блока данных.

· Управление каналом передачи данных.

· Мультиплексирование данных

· Адресация протокола верхним уровням.

b) Заголовок TCP

2b 2b
Source port Destination port
Sequence number
Acknowledgment number
Off set Reserv Urg Ack Psh Rst Syn Fin Window
checksum Urgent point
                   
Ethernet 18b IP 20b TCP 20b DATA: 6 - 1460b
1518b


Sequence number – указывает номер байтовой последовательности с которой начинается данный блок из общей последовательности передаваемый данных.

Acknowledgment number – используется для подтверждения ранее переданных данных и содержит номер «Sequence number» ожидаемый следующий.

Off set – смещение содержит размер заголовка TCP.

Reserv – зарезервировано.

Window – содержит размер окна для передачи данных, используемый для управления каналом.

Checksum – контрольная сумма.

Urgent point – метка срочности и приоритета данных при отправке.

Urg – указывает что в заголовке используется значение приоритета на которое следует обратить внимание.

Ack – указывает что кадр требует подтверждения всегда =1 кроме первого кадра установки соединения.

Psh – Push, флаг указывает о том что необходимо прекратить накапливать данные в оперативной памяти и пересохранить их на винчестере, применяется для того чтобы не допустить повторение номеров «Sequence number» и для разгрузи буфера.

Rst – сообщает о том что произошла критическая ошибка и необходимо срочно закрыть соединение без сохранения результатов работы.

Syn – используется для установки соединения между двумя узлами.

Fin – используется для закрытия соединения.

c) Установка соединения.

Комп 1 Комп 2

Syn=1 ack=0 Запрос

Syn=1 ack=1 Подтверждение

Syn=0 ack=1 согласование

Процедура установки соединения называется тройным рукопожатием.

Флаг syn = 1 только в двух первых кадрах установки соединения. Является обязательным для организации канала передачи данных по TCP.

d) Закрытие соединения.

Комп 1 Комп 2

Fin=1 ack=1

ack=1

Fin=1 ack=1


ack=1

 
 


Закрытие соединения возможно только по прохождению всей процедуры, при этом блок управления передачи данных ещё существует в течении 4-х минут.

e) Процедура взаимодействия.

Комп 1 Комп 2

Syn=1 ack=0 data=100

Seq=1 akn=1

Syn=1 ack=1 data=20

Seq=1 akn=101

Syn=0 ack=1 data=100

Seq=101 akn=21

Ack=1 data=50

Seq=21 akn=201

Ack=1 data=1000

Seq=201 akn=71

Ack=1 data=100

Seq=71 akn=1201

Ack=1 data=1000

Seq=1201 aknow=171

Номера Sequence number отправителя и получателя между собой не зависимы их совпадение чистая случайность. Отсылаемое значение Acknowledgment number сообщает об ожидаемом Sequence number, подтверждая что до этого всё было принято успешно.

f) Окно передачи данных.

Окно передачи данных используется для управления сеанса связи и указывает какое количество данных требует групповго подтверждения обеспечивая более эффективную работу канала.

Выбор окна:

· На этапе установки соединения состояние ожидания размер окна равен 16 кб.

· При получении первого кадра на установку соединения, размер окна уменьшается до одного msl. При начале передачи данных размер окна увеличивается до 4-х msl и запускается алгоритм расчёта оптимального размера окна. W=Bw*Dl\4

· Если полученное значение больше или меньше 4-х msl запускается алгоритм масштабирования окна увеличивающий или уменьшающий его размер. При условии что размер окна не может превышать 65635 байт.

Недостатки метода:

Формулу расчёта подставляется пропускная способность и задержка не посредственно подключенного сегмента и не отражает пропускной способности между отправителем и получателем, что может приводить к образованию глупого окна (явление при котором система постоянно корректирует размер окна в следствии потерь данных).

g) Дополнительные алгоритмы TCP.

· Алгоритм масштабирования окна. Увеличивает размер окна для передачи данных в 2 раза, при успешной передачи прошлого окна и уменьшает его в 2 раза при наличии хотя бы одного из сбоев. Алгоритм Вам Якобсона.

· Алгоритм медленного старта. Разработана Вам Якобсоном используется для снижения нагрузки на конечные узлы при одновременном подключении большого количества клиентов. Задерживает отправку запроса на величину паузы

· Алгоритм Найгла. Используется для повышения эффективности передачи данных задерживая отправку слишком маленьких сегментов в ожидании поступления дополнительных данных. Пока не подтверждён прошлый маленький кадр.

· Keeplive выполняет отправку пакетов в поддержу состояния каналов при отсутствии сеансов взаимодействия между конечными клиентами чтобы канал не закрылся по тайм ауту.

h) Групповое уведомление

Комп 1 комп 2

Seq=2000 data=1000

Seq=3000 data=1000

Seq=4000 data=1000

Seq=5000 data=1000 x

Seq=6000 data=1000

Aknow=5000

Seq=5000 data=1000

Aknow=7000

i) Полуоткрытые и полузакрытые соединения.

Полуоткрытым считается соединение когда отправлен запрос на открытие но не получено подтверждение.

Полузакрытое соединение когда отправлен запрос на закрытие но нету уведомления о доставке и подтверждения о закрытии, такое соединение закрывается по тайм ауту.

j) Сокет.

TCP: Ip + port = socket (tcp)

UDP: IP + port = End point (udp)


k) Алгоритм работы TCP.

ин – инициатор

пер - передающий

прин - принимающий

           
 
   
   
 
 


Close – состояние порта при котором он не чего не принимает и не передаёт. В данном состоянии находятся все порты.

Listen – состояние открытого порта при котором он ждёт подключения.

Syn-send – находиться инициатор установки соединения отправивший в кадр syn=1 ack=0

Syn-rcv – в данном состоянии находиться инициируемый узел, получив syn=1 ack=0 отправив syn=1 ack=1.

Established – состояние в котором находятся оба узла и выполняется передача данных.

Fin-wait1 – передача данных закончилась. Инициатор подключения завершил передачу данных и просит закрыть о соединении fin=1 ack=1. И ждёт подтверждения.

Fin-wait2 – узел принимающий данные получает fin=1 ack=1 отправляет подтверждение что кадр получен и подтверждение соединения fin=1 ack=1.

Closing – инициатор разрыва соединения не дождавшись соединения, закрывает его по тайм ауту.

Time-wait – состояние в котором находятся оба узла, до окончания разрыва соединения. При этом сетевые сокеты не удаляются на случай повторного установки соединения. В течении 2-x MSL (4 минуты) MSL – Maximum Sigment Live время в течении которого сегмент храниться в ОЗУ компьютера при отсутствии подтверждения на него. Равно 2 минуты.

Close-wait – узел принимающий данные не закончив приём полного объема данных, инициирует разрыв соединения, отправляя fin=1 ack=1

Last-ack – узел предающий данные получает запрос на закрытие соединения, завершив передачу данных из текущего окна он отправляет подтверждение fin=1 ack=1.

l) TCB

TBC (Transmission control block) – блок управления передачи данных создаваемый в оперативной памяти и отвечающий за формирование сегмента отправку уведомления о доставки закрытия-открытия соединения. Блок TCB состоит из 3-х блоков переменных управляющих передачей.

Ø Переменная передача данных. (Seg) ведёт учёт всех переданных байт данных.

· Seg.una – содержит все байтовые последовательности которые были переданы но не получено подтверждение о доставке.

· Seg.nxt – содержит байты данных которые должны быть отправлены следующими.

· Seg.wnd – содержит значение окна для передачи данных.

Seg. Seg.una Seg.nxt
5   6
     
     
     
     

Ø Переменные приема данных (RCV.)

· RCV. – ведёт учет всех принятых данных.

· RCV.nxt – содержит номера которые должны быть приняты следующими.

· RCV.wnd – содержит значение окна для приёма данных.

Ø Текущие переменные (seq.)

· Seq.seq – используется для заполнения поля Sequence number указывая первый номер из вставляемой последовательности.

· Seq.ack – указывает текущее значение Acknowledgment number.

· Seq.wnd – содержит текущее размер окна для передачи данных.

· Seq.urg – содержит метку срочности для передачи кадров.

ISS – initiale sequence send - содержит номер с которого начинается отсчёт Sequence number при передачи данных, как правило равен 1.

IRS – initiale receive sequence – указывает значение с которого начинается отсчёт Sequence number у инициируемого узла.

m) Анализ сигнатуры.

Ethernet Ethernet IP

0000: 0026 18ca 9740 0013 d48b 7467 0800 4 5 00

Destination Mac Sorce Mac Type vers ihl ToS

0010: 0028 249c 4 000 40 06 f51f 0a03 0003 0a03

Total leng IP Flag Offset TTL Prot Checksum Sorce IP Dest IP

0020: 0d0c 0c38 c0b7 d2ca 1df9 0000 0000 5004

Dest IP Sorce port dest port Sequence number Acknowled num Offcet + flag

0030: 0000 d118 0000 0000 0000 0000

Windows check sum Urg Data

n) Netstat.

>netstat – используется для просмотра текущих активных портов.

-a Отображение всех подключений и ожидающих портов.

-n Отображение адресов и номеров портов в числовом формате.

-o Отображение кода (PID) процесса каждого подключения.

-b Показывает приложение активировавший данный порт.

Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [], сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.


Дата публикования: 2015-11-01; Прочитано: 239 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.018 с)...