Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: TCP  (Прочитано 26338 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
kiborg
Гость
TCP
« : 25-05-2008 11:10 » 

Здравствуйте!Зачем изначально устанавливается размер TCP окна в 16Kb или в 4Kb, ведь отправитель может в последствии увеличить его?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 25-05-2008 12:55 » 

kiborg, Хочу пример, где ты сам вручную выставляеш?
А вообше, Если я правильно понял, о чем ты говориш. Это длина пакета. Его рекомендуют делать по возмлжности, как можно меньше. Так как большие пакеты, на загруженных линиях, с малой пропускной способностью, могут создать заторы.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
kiborg
Гость
« Ответ #2 : 25-05-2008 14:04 » 

Например в регистре можно установить значение в 16К, в Windows этот параметр максимально может достигать динамически в 64К если в сетях с хорошей пропускной способностью, для чего он устанавливается если не является ограничителем!?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 25-05-2008 14:13 » 

kiborg, 64 килобайта это максимальная длина пакета, которая может быть отослана для IP4. Кстати, а ты уверен, что на всем протяжении пути будет отличная линия и без заторов? Система в этом не уверена.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
kiborg
Гость
« Ответ #4 : 25-05-2008 14:57 » 

Конечно всё может быть, но всеже вопрос остаётся зачем устанавливать окно в 16К?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 25-05-2008 15:11 » 

kiborg, А сколько ты хочеш? Скорее всего сделали проверку, какая длина пакета наиболее оптимальна. Насколько я знаю, в стандарте нигде не прописано. По крайней мере я не встречал.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 26-05-2008 06:37 » 

Finch, длина TCP окна не имеет отношение к размеру пакета. Окно - это объем данных, отсылаемых по TCP без подтверждения от принимающей стороны. Рекомендую почитать теорию.

Кстати, в винде есть ошибка с максимальным размером окна - оно превышает определенный стандартом предел и может не всегда правильно работать.
Дефолтное значение быть должно полюбому и то, что его можно административно поменять - только в плюс.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kiborg
Гость
« Ответ #7 : 26-05-2008 10:23 » 

RXL само дефолтное значение для каких целей слижет это ведь не порог?
Записан
kiborg
Гость
« Ответ #8 : 26-05-2008 16:29 » 

Или это порог медленного старта?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #9 : 26-05-2008 19:47 » 

Насколько я знаю, сколько пакетов отправить без подтвреждения система сама автоматически определяет в зависимости от качества линии. И меряется это в количестве пакетов, а не в килобайтах. Хотя могу и ошибаться. Это все работает на уровне системы, я так далеко не копал, в повседневной работе.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 28-05-2008 06:36 » 

Принцип работы окна (для удобства пакеты у меня по 1000 байт):

0. Окно размером 8000.
1. Посылается 8000 байт в виде 8 пакетов по 1000 байт.
2. Приходит подтверждение на пакет 3. Окно сдвигается на размер пакетов 1, 2 и 3 - 3000 байт.
3. Отсылается 3000 байт в виде 3 пакетов...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 17-08-2009 12:35 » 

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

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #12 : 17-08-2009 12:45 » 

Нет. Этого не гарантирует. Если это две разные отсылки. В одной отсылке ты получиш все данные в таком же порядке.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 17-08-2009 12:51 » 

Вить, как-то витиевато у тебя получилось. Я скажу немного иначе: на уровне IP порядок пакетов не гарантируется, а подсистема TCP выравнивает эту несправедливость и передает приложению данные строго в упорядоченном виде. Т.е. если пришли пакеты 1, 2 и 4, то 1 и 2 могут быть прочитаны из сокета, а пакет 4 будет ждать в буфере до прихода пакета 3. И вообще, TCP - потоковый протокол и не надо его мерить пакетами, если только не спускаться на уровень IP.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 17-08-2009 12:54 » 

Цитата
Вить, как-то витиевато у тебя получилось
каламбуришь Улыбаюсь)

Цитата
если пришли пакеты 1, 2 и 4, то 1 и 2 могут быть прочитаны из сокета, а пакет 4 будет ждать в буфере до прихода пакета 3.
это радует. Так и хотелось Улыбаюсь
Записан

lapulya
Молодой специалист

ru
Offline Offline

« Ответ #15 : 27-12-2009 23:24 » 

народ, недопонимания от того что используется термин "пакет", нету в TCP пакетов, нету! это потоковый протокол, он гарантирует правильный порядок данных, даже если на уровне например IP порядок (тут уже можно) пакетов был нарушен.
Записан

С уважением Lapulya
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #16 : 28-12-2009 04:12 » new

lapulya ТСР потоковый протокол в этот поток вставляются контрольные квитанции, который бьют поток  кадров на сегменты. ТСР окно показывает через какой промежуток кадров вставят контрольную квитанцию, размер сегмента(ТСР окна) определяется во время установления соединения с помощи механизма (slow start) или (congestion avoidance) Для изменения размера сегмента(ТСР окна) что бы не копаться в реестре можно использовать   утилиту DrTCP.
P.S.Единицей данных протокола TCP является сегмент
Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 28-12-2009 04:25 » 

Diskriptor, а зачем это нужно - вручную менять размер сегмента?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #18 : 28-12-2009 05:49 » 

RXL, лично не приходилось правит , преподаватель в Шаге рассказывал что, у него  проблема была на Windows 2003 при использовании маршрутизации BGP  и там он правил размер окна вручную.
Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 28-12-2009 08:35 » 

Спроси у препода: Винда и BGP - это юмор или просто буквы понравились?
Дело не в сегментах, а в неправильной работе стека TCP в винде: она посылает данных больше, чем окно TCP.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #20 : 28-12-2009 11:22 » 

Diskriptor, не понял претензии... где и что у меня не верно?

Я ж не отрицаю, что по сети пересылаются не только пользовательские данные, а еще куча "системных", иначе как вообще по сети работать можно и удовлетворить требования к протоколу?

Установка же размера окна в программе не гарантирует размер исходного сегмента равного размеру окна не то что в сети, но даже на хосте отправителе.
Записан

С уважением Lapulya
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #21 : 28-12-2009 19:45 » 

lapulya, Ошибся адресатом я хотел поставит ник автора темы kiborg в при ведущем  топиве а спросоня поставил твое Улыбаюсь,  а так я с тобой согласен. 
RXL
Цитата
Спроси у препода: Винда и BGP - это юмор или просто буквы понравились?
лучше не буду а то еще экзамены впереди,TCP изучал год назад, я уже подробности ситуации не помню, просто из памяти ассоциации всплыли  Windows,BGP правка окна
Цитата
Дело не в сегментах, а в неправильной работе стека TCP в винде: она посылает данных больше, чем окно TCP.
согласен.
Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines