Ho uno scenario in cui un client apre una connessione TCP a un server dopo aver impostato un valore TOS TOS (setsockopt(.., IP_TOS, ..)
. Sul server, voglio recuperare il valore TOS ricevuto e impostarlo sullo zoccolo in modo che la TOS ricevuta si rifletta sui pacchetti client-serverrecupero del valore TOS su un socket TCP
Il problema è, dal lato server, come posso recuperare il valore TOS ricevuto dal client? Posso supporre che il client non cambierà i TOS valore durante l'intera sessione, quindi è sufficiente ottenere e impostare il valore TOS una volta inizialmente
L'impostazione IP_RECVTOS
e l'utilizzo di dati ausiliari funziona per UDP ma non per i socket TCP. qualcosa di simile si può ottenere sui socket TCP? getsockopt(2)
con SO_PRIORITY
o IP_TOS
restituisce i valori configurati sul socket locale. Quindi se ho fatto uno setsockopt()
localmente, lo getsockopt()
riflette quel valore. Non riflette ciò che viene ricevuto sulla rete.
solo per chiedersi, ma perché si dovrebbe lasciare che un'opzione configurata alla fine modifichi le tue _your_ priorità del traffico in uscita? – Alnitak
ToS è stato sostituito da DSCP per un tempo molto lungo. –