TCP pokazuje SŁUCHANIE w kolumnie stanu, a UDP niczego nie pokazuje:
Czy to dlatego, że UDP ma tylko jeden stan ( SŁUCHANIE ), więc nie trzeba go pokazywać, czy może jest inny powód?
TCP pokazuje SŁUCHANIE w kolumnie stanu, a UDP niczego nie pokazuje:
Czy to dlatego, że UDP ma tylko jeden stan ( SŁUCHANIE ), więc nie trzeba go pokazywać, czy może jest inny powód?
Odpowiedzi:
Jak wspomniano w komentarzach, UDP jest bezpołączeniowy. W przeciwieństwie do TCP, nie ma pojęcia „nasłuchiwania”, „ustalonego”, „zamkniętego” ani czegoś takiego. Jeśli port UDP jest otwarty, pojawia się na liście; jeśli nie jest otwarte, to nie. Nie ma innego stanu do wyświetlenia. Wyświetlenie LISTENING
lub coś podobnego w tej kolumnie może sugerować, że istnieją inne możliwe stany i byłoby to fałszywe.
Pomimo twierdzeń, że netstat nie pokazują stan ponieważ UDP jest bezpaństwowcem, netstat na niż Windows systemów operacyjnych nie wykazują wartość dla kolumny State. Na przykład Solaris pokazuje „Bezczynny” lub „Bez ograniczeń”. O ile wiem, gniazda „bezczynne” to te związane z konkretnymi portami lokalnymi, podczas gdy gniazda „niezwiązane” są zawsze „*. *”, A więc prawdopodobnie jakoś otwarte, ale nie powiązane z konkretnymi portami. netstat w systemie Linux może pokazywać co najmniej „ESTABLISHED”. Ponadto nadal chciałbym wiedzieć, czy port UDP oczekuje połączeń z innego miejsca, aby zainicjować ruch, czy jest po prostu otwarty, aby mógł wysyłać rzeczy z innego miejsca.
read
), albo istnieje albo nie ma procesu oczekującego na blokujące recv
(lub powiązane) wywołanie systemowe, a jądro wie, czy istnieje taki proces (ponieważ, podobnie jak z potokiem lub tty, musi wiedzieć, jak zareagować, gdy pojawi się wejście). Dlatego powinno być możliwe netstat
ustalenie i zgłoszenie, czy proces oczekuje na przesłanie danych do gniazda UDP.