py.user.next
“Разница во времени” - это что? Какого времени?
Разница во времени - Это модуль разности значений полей Time между “I-й” строкой (последовательно берется из набора данных) у которой значение поля port1=443 и “N-й” строкой (неизвестной), в которой port1=443.
При соблюдении условия, что seqN-seqI будет не больше CWS (на момент расчёта значения seqN-seqI, в N-й строке).
Суть объясню ниже.
py.user.next
“разница значений seq” - это что? Каких значений?
Sequence Number (seq) - номер очереди или последовательный номер, показывает порядковый номер пакета при передаче.
Разница значений - модуль разности между seq “I-й” строки и “N-й” строки (неизвестной), в которых port1=443.
Для второй строки начальный номер seq равен 0, т.е для всех остальных строк (с полем port1=443) разность между seqN-seq2 будут означать количество переданных байт.
Например:
разность seq 4-й строки (значение 49) и 2-й строки (значение 0) будет означать, что передано 49 байт данных.
разность seq 6-й строки (значение 100) и 11-й строки (полученное значение 210) будет означать, что передано 110 байт данных.
py.user.next
“не превышает значения CWS” - это что?
CWS - размер буфера в байтах. Размер буфера меняется как в большую, так и в меньшую сторону.
py.user.next
Какого значения?
С этим сложнее, так как оно меняется в каждом расчёте (как в цикле I, так и в цикле N) за ним необходимо следить.
Алгоритм:
Так как количество строк известно, запускаю цикл I (for, счётчик цикла - номер строки).
Беру 1-ю строку (I=1). В первой строке значение port1=53023, значит из неё я извлекаю CWS_1 (размер буфер).
Беру 2-ю строку (I=2), в ней port1=443, для нее мне необходимо выполнить расчёт разности времени между 2-й строкой и N-й (пока неизвестной).
Для I=2 запускаю цикл N (while, счётчик цикла номер строки). Значение N от i+1 до неизвестного. Текущее значение CWS я получил ранее (в i=1), пока оно не измениться все последующие строки буду сравнивать с ним.
Беру 3-ю строку: в ней значение port1=53023, значит из неё я извлекаю CWS_3 (55).
Беру 4-ю строку: в ней значение port1=443, значит из неё я считаю seq4-seq2=49, CWS на данный момент 55. Проверяю условия seq4-seq2 <= CWS_3 . Условие выполнятся. Продолжаю цикл N.
Беру 5-ю строку: в ней значение port1=53023, значит из неё я извлекаю CWS_5 (60).
Беру 6-ю строку: в ней значение port1=443, значит из неё я считаю seq6-seq2=100, CWS на данный момент 60. Проверяю условия seq6-seq2 <= CWS_3. Условие не выполнятся. Останавливаю цикл N для I=2.
Беру последнюю строку где условие выполнялось. Считаю разность времени между 4-й строкой и 2-й строкой, получаю значение 0.02, записываю в файл.
Возвращаюсь к циклу I.
Беру 3-ю строку (I=3). В 3-й строке значение port1=53023, значит из неё я извлекаю CWS_3 (60).
Беру 4-ю строку (I=4), в ней port1=443, для нее мне необходимо выполнить расчёт разности времени между 4-й строкой и N-й (пока неизвестной).
Для I=4 запускаю цикл N (while, счётчик цикла номер строки). Значение N от i+1 до неизвестного. Текущее значение CWS я получил ранее (в i=3), пока оно не измениться все последующие строки буду сравнивать с ним.
Беру 5-ю строку: в ней значение port1=53023, значит из неё я извлекаю CWS_5 (60).
Беру 6-ю строку: в ней значение port1=443, значит из неё я считаю seq6-seq4=51, CWS на данный момент 60. Проверяю условия seq6-seq4 <= CWS_5. Условие выполнятся. Продолжаю цикл N.
Беру 7-ю строку: в ней значение port1=53023, значит из неё я извлекаю CWS_7 (70).
Беру 8-ю строку: в ней значение port1=443, значит из неё я считаю seq8-seq4=91, CWS на данный момент 70. Проверяю условия seq8-seq4 <= CWS_7. Условие не выполнятся. Останавливаю цикл N для I=4.
Беру последнюю строку где условие выполнялось. Считаю разность времени между 6-й строкой и 4-й строкой, получаю значение 0.02, записываю в файл.
Возвращаюсь к циклу I.