Co by się stało, gdybym sfałszował ilość pakietów przychodzących za pomocą tcp


-4

Załóżmy, że tworzę wadliwy serwer tcp, który mówi na przykład do innego
komputera, że ​​będzie przechodzić 7 pakietów, ale tylko 6 zostanie wysłanych.
Co zrobiłby drugi komputer?


Nie możesz tego zrobić, ponieważ w protokole nie ma nic, co mówi „nadchodzą pakiety x”. Albo wysyłasz pakiety x, albo nie.
dirkt

Ale skąd możesz mieć pewność, że te pakiety przeszły? Czyż nie o to chodzi w tcp?
Slipknot1

„Ale skąd możesz mieć pewność, że te pakiety zostały
wysłane

1
@ Slipknot1, odbiornik nie zna liczby pakietów, które mają zostać odebrane, ale wysyła ACK dla odebranych danych. Nadawca musi rozpoznać, kiedy dane nie są potwierdzone, i ponownie przesłać dane.
YLearn

Odpowiedzi:


1

Sam protokół TCP nigdy nie określa, ile pakietów ma zostać przesłanych z serwera do klienta. Klient jedynie wysyła pakiety ACK (potwierdzenie) z powrotem do serwera, gdy tylko odbierze pakiet TCP. Protokół został zaprojektowany z myślą o wadliwych sieciach, więc serwer, który nie wyśle ​​kolejnego pakietu, nie spowoduje żadnej szkody.

Teraz w warstwie aplikacji możesz napisać oprogramowanie, które oczekuje wcześniej przesłanej liczby bajtów (na przykład menedżera pobierania), a wadliwy serwer rzeczywiście spowodowałby jego awarię. Ale to nie wchodzi w zakres twojego pytania.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.