Есть код обрабатывающий кучу pcap-файлов c TCP/IP трафиком, извлекает из них пакеты, создает flow-таблицу и распределяет пакеты соответственно в нужные flows, в виде списка пакетов.
Так как пакеты могут прибывать неупорядоченными (out-of-order), мне нужно их разложить по порядку. Хочу использовать для этого поле SEQ(sequence number, 32-бита) в TCP заголовке, я уже читаю это поле из пакетов также как и подсчитываю ожидаемый sequnce number в следующем пакете:
pkt->seq + TCP_segment_size
1) Не уверен, что использовать только SEQ для моих целей это правильно, ведь sequence может переполняться, что будет в этом случае?
2) Можно тупо отсортировать список с пакетами (который я формирую, когда бегаю по pcap-ам) по sequence номерам — но это будет медленно.
Как обычно имплементируют реодеринг пакетов? Что посоветуете? Спасибо.