Se supponiamo che il client non ascolti sulla porta 68, quando il server DHCP riceve la richiesta, può inviarlo all'indirizzo da cui ha ricevuto la richiesta (con porta temporanea scelta dal client al momento dell'invio), quindi perché il protocollo specifica il client essere in ascolto sulla porta 68?Perché il client DHCP è in ascolto sulla porta 68?
risposta
Il motivo principale è che il server DHCP potrebbe trasmettere "l'offerta DHCP" sul livello mac, invece di inviarlo unicast all'indirizzo mac che aveva ricevuto la richiesta. Se la porta non è costante, alcuni host che ascoltano per caso la stessa porta casuale, accetteranno il pacchetto sul layer 5 - il livello dell'applicazione. In altre parole, un'applicazione riceverà il messaggio da un'applicazione completamente diversa, non una situazione salutare.
Questa risposta non sembra diversa da quella di 3+ anni fa. Se vuoi aggiungere qualcosa, prova a suggerire una modifica alla risposta esistente accettata :) –
Grazie, questa è in realtà la risposta corretta. – Parzifal
Domanda pertinente: Posso disattivare il firewall in modo sicuro da questa porta in una configurazione normale in cui viene utilizzato un client DHCP per ottenere gli indirizzi IP? Cioè è il * potrebbe * rilevante nel mondo reale? – Zero3
ho dovuto affrontare la stessa domanda me stesso, e dopo alcune ricerche, ho trovato quanto segue sul RFC 2131, che descrive il protocollo DHCP, ai sensi della sezione 1.6 Obiettivi di progettazione:
- DHCP deve fornire un servizio di client BOOTP esistenti
anche sul RFC 951, che descrivono il protocollo BOOTP, siamo in grado di trovare il seguente:
l'intestazione UDP contiene numeri di porta di origine e di destinazione. Il protocollo BOOTP utilizza due numeri di porta riservati, "client BOOTP" (68) e "server BOOTP" (67). Il client invia richieste utilizzando 'BOOTP server' come porta di destinazione; questo di solito è una trasmissione. Il server invia risposte utilizzando "client BOOTP" come porta di destinazione; a seconda del kernel o delle funzionalità del driver nel server, questo può essere o potrebbe non essere una trasmissione (ciò è spiegato ulteriormente nella sezione intitolata "Problemi di pollo/uova" di seguito). La ragione per cui sono utilizzate le porte DUE riservate , è quella di evitare il "risveglio" e la pianificazione dei daemon del server BOOTP , quando un bootreply deve essere trasmesso a un client. Poiché il server e gli altri host non saranno in ascolto sulla porta "client BOOTP", , tali trasmissioni entranti verranno filtrate al livello del kernel . Non potevamo semplicemente consentire al client di scegliere un numero "porta" casuale per il campo della porta di origine UDP; poiché la risposta del server potrebbe essere la trasmissione , un numero di porta scelto a caso potrebbe confondere gli altri host che si trovavano ad ascoltare su quella porta.
Quindi la risposta alla domanda deriva da quanto sopra. I client DHCP devono utilizzare la porta UDP 68, affinché il DHCP sia compatibile con il protocollo BOOTP e il protocollo BOOTP richiede una porta specifica per il client, dal momento che BOOTPREPLIES può essere trasmesso e se è stata scelta una porta casuale per il client , potrebbe causare la confusione di altri host in ascolto sulla stessa porta.
- 1. Perché è in ascolto sulla porta con Netcat non funziona
- 2. Express e WebSocket ascolto sulla stessa porta
- 3. Ascolto su URL specifici anziché sulla porta
- 4. Determinare il processo PID in ascolto su una determinata porta
- 5. Trova numero di porta dove HDFS è in ascolto
- 6. Quale PID è in ascolto su una determinata porta Mach
- 7. Come cambiare la porta HTTP che Play2 è in ascolto
- 8. In nodejs, come posso controllare se una porta è in ascolto o in uso
- 9. Perché vengono trasmessi l'offerta DHCP e Ack?
- 10. Percorso applicazione e porta di ascolto
- 11. Ascolto della porta seriale su Delphi 7
- 12. Node.js + espresso: applicazione non si avvierà in ascolto sulla porta 80
- 13. In che modo boost.asio rileva su quale porta è in ascolto la mia app del server?
- 14. Come forzare TUTTI i client DHCP a rinnovare?
- 15. Reindirizza il sottodominio sulla porta [nginx/beuta]
- 16. Come si verifica se una porta TCP è già in ascolto?
- 17. Prese Java: più thread client sulla stessa porta sulla stessa macchina?
- 18. Il client js di SignalR sembra ignorare la porta dell'URL
- 19. Reindirizzamento del traffico Websocket sulla porta 80 con lighttpd
- 20. Postgres server non in ascolto
- 21. Perché Java doClick() usa 68 millisecondi quando chiama doClick (pressTime)?
- 22. Perché connect() fornisce EINVAL intermittente sulla porta su FreeBSD?
- 23. Node.js: ECONNREFUSED sulla porta 80
- 24. opzione DHCP in Qt/C++
- 25. Tomcat Webapp sulla porta 80
- 26. Come riscrivere/proxy un URI Apache in un'applicazione in ascolto su una porta/server specifici?
- 27. Come posso ottenere la porta su cui è in ascolto un servizio WCF?
- 28. lavorando sulla porta 81 (WampServer)
- 29. Ascolto se il cookie è stato modificato
- 30. In che modo la classe serversocket serve più connessioni client sulla stessa porta?
La domanda dice "perché il protocollo specifica il client in ascolto sulla porta 68?", Quindi quello che stanno chiedendo sembra essere più "perché la RFC lo dice?" –
Il DHCP si basa sul protocollo BOOTP precedente che utilizzava le porte 67 (server) e 68 (client).Perché BOOTP ha usato queste porte era probabilmente perché non erano utilizzate da nessuno degli altri protocolli al momento (SMTP utilizza 25, FTP utilizza 21, ecc.). Mentre un host di solito ha un singolo indirizzo IP, può avere migliaia di porte. Assegnando numeri di porta specifici a protocolli specifici è stato possibile per più parti sviluppare servizi e client standard. Finché hai ascoltato la porta giusta, potresti scrivere il tuo client o server DHCP. – TLiebe
Ok significa che non ci sono motivi tecnici? – avd