Home

Page 58
Page 58
background image

  

 

Однако данный пример, ВОЗМОЖНО, иллюстрирует работу таймеров протокола ARP, для 

изучения  таймеров  протокола TCP реализованных  в  стеке  нам  необходимо  смоделировать 
ситуацию, в которой TCP сегменты все же будут посылаться. Для этого можно либо внести в ARP 
кеш  станции  клиента  статическую  запись  о  МАС  адресе  сервера,  либо  обратиться  к  узлу  в 
Интернет,  который  заведомо  не  ответит.  Обратимся  к  узлу 10.168.0.89 – этот  узел  НЕ  может 
существовать  в  Интернет,  и  поэтому  не  сможет  ответить  на  предложение установить  соединение. 
Проанализируем  файл TCP3_1.cap, отметим,  что  и  в  этом  случае  мы  видим  ТРИ  попытки 
установить  соединение – сегмент  с  флагом SYN повторяется  дважды  (отметим,  что  анализатор 
протоколов  отмечает,  что  данный  сегмент  есть Retransmission сегмента  номер 1). Отметим,  что 
заголовки TCP первого,  второго  и  третьего  сегмента  полностью  совпадают – перед  нами  НЕ  три 
попытки установить три соединения, а три попытки установить ОДНО соединение. Однако может 
возникнуть  вопрос:  КТО  делает  три  попытки:  наш  клиент  или  стек TCP/IP данной  операционной 
системы? Этот вопрос крайне важен, найдем на него ответ. Проанализируем файлы TCP3_2.cap и 
TCP3_3.cap.  Эти  файлы  иллюстрируют  обращение  к 999 порту  станции 10.168.0.89 с  помощью 
утилиты telnet.exe (напомним,  что  мы  уже  обсуждали  ее,  мы  говорили  о  том,  что  ее  можно 
использовать как универсальный TCP клиент, она есть под рукой в любой операционной системе, в 
отличие  от  утилиты sock, показываем,  как  использовать telnet.exe как TCP клиента)  и  обращение 
файлового клиента ftp.exe к несуществующему файловому серверу 10.1.1.1. Видно, что во всех трех 
случаях  наблюдается  одна  и  та  же  картина:  делается  два  повтора TCP сегмента  с  флагом SYN 
(через  три  секунды  отсутствия  ответа  на  первый  сегмент  и  через 6 секунд  отсутствия  ответа  на 
второй сегмент), ответ на третий сегмент ожидается 12 секунд, после этого приложение получает от 
стека  уведомление,  что  установить  соединение  с  удаленным  портом  невозможно.  Крайне  важно, 
чтобы Вы поняли: TCP во всех его проявлениях реализован в СТЕКЕ, т.е. программисту, пишущему 
программное обеспечение, использующее сетевой обмен, не нужно указывать количество повторов, 
интервалы  ожидания  ответов etc, программист  просто  передает  стеку  запрос  на  установку 
соединения,  а  стек  устанавливает  его  в  соответствии  со  своими  представлениями  об 
эффективности.  
 


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.