Pakiet TCP

0

W jaki sposób dokładnie pakiet TCP zostaje wysyłany i odbierany?

Napisałem w C# sniffer który skanuje lokalny ruch sieci, kilka pakietów może się łączyć w jedna całość przy odbieraniu ale nie wiem dlaczego pakiety przychodzą nie po kolei, z tego co czytałem to TCP wysyła pakiety kolejno po sobie

Większość pakietów przychodzi po kolei ale nie wszystkie zdarza się coś w tym stylu(podaje ID pakietów, liczby w jednej linii to pakiety połączone przy odbieraniu):
1
2
7
3456

8
9

lub tak:

1
2
76543
8
9

A tutaj Identification z pakietu TCP tak moj program je zapisal(z tego co widze to tylko na poczatku pakiety są odbierane w złej kolejności a potem już pokolei:

Identification: 19735
Identification: 19916
Identification: 22950
Identification: 23017
Identification: 23051 <<
Identification: 23050
Identification: 23062 <<
Identification: 23061
Identification: 23076
Identification: 23077
Identification: 23088
Identification: 23095
Identification: 23096
Identification: 23109
Identification: 23123 <<
Identification: 23122
Identification: 23137 <<
Identification: 23136
Identification: 23150
Identification: 23182
Identification: 23183
Identification: 23186
Identification: 23223
Identification: 23243
Identification: 23270
Identification: 23505
Identification: 23534
Identification: 23601
Identification: 23643
Identification: 23697
Identification: 23772
Identification: 23829
Identification: 24432
Identification: 24841
Identification: 25036
Identification: 25177
Identification: 25310
Identification: 25531
Identification: 25752
Identification: 25984
Identification: 26374
Identification: 27056
Identification: 27219
Identification: 27334
Identification: 27476
Identification: 27622
Identification: 27743
Identification: 28015
Identification: 28259
Identification: 28438
Identification: 29153
Identification: 29386
Identification: 30195
Identification: 30354
Identification: 30596
Identification: 30914
Identification: 31104
Identification: 31286
Identification: 31517
Identification: 31647
Identification: 31792
Identification: 32097
Identification: 32238
Identification: 32421
Identification: 32702
Identification: 588
Identification: 1140
Identification: 1314
Identification: 1491
Identification: 1854
Identification: 2441
Identification: 2586
Identification: 3732
Identification: 3961
Identification: 4141
Identification: 4290
Identification: 4429
Identification: 4553
Identification: 4703
Identification: 5127

może macie jakieś rozwiązanie na to?

0
varens napisał(a)

z tego co czytałem to TCP wysyła pakiety kolejno po sobie

To trzeba było czytać dalej, byś się dowiedział, że pakiety mogą docierać do adresata w innej kolejności niż były wysłane.

0

ale system sortuje je i aplikacja widzi je już jakby były wysłane po kolei więc nie wiem w czym problem

0

Zdajesz sobie sprawę, że sniffer odbiera pakiety w takiej kolejności, w jakiej dochodzą do systemu docelowego? Skoro widzisz nawet fragmentację to chyba 'sortowania' widzieć nie możesz?

0

aha ale możne poddacie mi jakiś pomysł żeby to posortować bo jak będę załóżmy przetrzymywał zawsze jeden pakiet i sprawdzał czy ma on większy identyfikator niż ten nowy to gdy przez dłuższy czas nie przyjdą pakiety, jeden będzie cały czas niewyświetlony

a ja potrzebuje przetwarzać to w czasie rzeczywistym

0

Stos TCP/IP jak w OSie?

0

pewnie tak zrobię bo nie widzę innego rozwiązania, najgorsze tym jest to ze będzie przez to opóźnienie a potrzebuje to przetwarzać odrazy no ale trudno

1 użytkowników online, w tym zalogowanych: 0, gości: 1