Home (Главная)

Page - Страница
Page 1
background image

Вспомним, какие вопросы о протоколе TCP мы рассмотрели в прошлом уроке: 

•  Основные принципы работы TCP:  

o  Установка  логических  соединений  между  участниками  взаимодействия  перед 

передачей данных 

o  Двусторонний  обмен  неструктурированными  потоками  байт  между  двумя 

участниками TCP соединения 

o  Нумерация передаваемых в соединении байт каждой стороной 
o  Квитирование принятых в TCP соединении байт каждой стороной 
o  Повторные передачи не квитированных партнером данных каждой стороной 
o  Разрыв соединения по окончание передачи данных обоими сторонами 

•  Процесс 

установки TCP соединения, 

использование 

флагов, 

использование 

последовательных номеров и номеров подтверждений 

•  Процесс  разрыва TCP соединений,  независимый  разрыв  двух  полусоединений, 

использование последовательных номеров и номеров подтверждений 

•  Использование  последовательных  номеров  и  номеров  подтверждений  при  квитировании 

данных, передаваемых в TCP соединении 

 

Рассмотренные  нами  сеансовые  функции TCP, (установка  и  разрыв  соединений)  и 

транспортные  функции  (квитирование)  рассмотрены  нами  лишь  в  первом  приближении.  Теперь, 
рассмотрев  базовые  принципы  работы TCP, нам  необходимо  более  глубоко  рассмотреть  данные 
темы.  Сегодняшнее  занятие  в  том  числе  будет  посвящено  детальному  рассмотрению  сеансовых 
функций протокола TCP, т.е. вопросам установки и разрыва TCP соединений.  

Как  Вам  уже  известно, TCP соединение  может  находиться  в  различных  «состояниях»: 

соединение может находиться в процессе установки, при чем клиент и сервер при этом ведут себя 
по-разному, может быть установлено (клиент и сервер равноправны), может находиться в процессе 
разрыва, может быть наполовину разорвано и т.д. Ранее мы обсуждали процессы установки разрыва 
TCP  соединения  «вообще»,  не  детализирую  те  состояния,  в  которых  находятся  участники 
соединения  на  различных  фазах  работы,  начинаем  сегодняшнее  занятие  с  изучения  темы 
«Состояния TCP соединения». 

Определим,  что  мы  будем  впредь  понимать  под  состоянием TCP соединения,  и  в  каком 

случае  будем  говорить  о  том,  что  одно  состояние  сменяется  на  другое.  Вообще  говоря,  дать 
определение  состоянию TCP соединения,  не  пользуясь  словом  «состояние»  достаточно  трудно. 
Будем  называть  состоянием TCP соединения  некоторую  ФАЗУ,  ЭТАП,  на  котором  находится 
соединение. Важно отметить, что понятие «состояние соединения» характеризует не «соединение» 
в целом, а характеризует этап, на котором находится каждый участник соединения в отдельности, 
т.е.  фактически,  само  соединение  характеризуется  двумя  состояниями – состояниями  каждого  из 
его  участников  (сокетов).  При  этом  возможны  ситуации,  когда  состояния  соединения  каждого  из 
двух участников соединения идентичны, т.е. оба участника находятся в одном и том же состоянии, 
однако  возможны  и  ситуации,  когда  состояния  соединения  различны  для  его  участников  в  один 
момент времени.  

Будем говорить об определенном выраженном состоянии соединения в том случае, если на 

данной  фазе  соединения  его  участник  в  рамках  протокола  должен  выполнять  некий  набор 
уникальных, характерных действий. Два состояния TCP соединения мы назовем различными в том 
случае,  если  участник  соединений  должен  вести  себя  принципиально  по-разному  в  этих  двух 
состояниях.  Напротив,  мы  будем  говорить,  что  участник  соединения  в  двух  случаях  находится  в 
одном  состоянии,  если  нет  принципиальных  различий  в  поведении  участника  соединения  в  этих 
двух  случаях.  Ясно,  что  все  вышесказанное  пока  является  лишь  некоторым  набором 
формальностей, лишенных реального наполнения, однако по мере изучения состояний соединения 
Вам все станет ясно.  

Так  же  отметим,  что  во  всех  рассмотренных  ниже  примерах  мы  будем  говорить  о  паре 

сокетов,  находящихся  в  том  или  ином  состоянии  соединения.  Для  простоты  мы  будем  говорить, 
например,  что  «станция  А  находится  в  некотором  состоянии  соединения»,  при  этом  мы  будем 
полагать,  что  «сокет  на  станции  А,  принимающий  участие  в  рассматриваемом  соединении 
находится в некотором состоянии».  

Состояния TCP соединения можно классифицировать по ряду признаков: