Estou analisando o código-fonte do kernel TCP na versão do kernel 4.9.59
Eu aprendo sobre a variável sk_wmem_queued, referindo-se à arquitetura, design e implementação TCP-IP no livro Linux.
De tcp_sendmsg () para tcp_transmit_skb () no lado do remetente e de tcp_rcv_established () para tcp_ack () no lado do receptor, observo a variação sk_wmem_queued.
Pergunta !!!!
Já temos sk_wmem_queued, porque precisamos da variável sk_wmem_alloc no kernel ??
e por que a variável sk_wmem_alloc aumenta em tcp_transmit_skb ()? não no skb_entail () provavelmente a variável sk_wmem_queued aumentou a localização?
e por que a variável sk_wmem_alloc usa atomic_read ()?
mas a variável sk_wmem_queued não usou a função atômica.
Eu não sei exatamente a diferença! mas, eu sei sk_wmem_queued que significa bytes que ainda não foram enviados (mas vinculados à fila de gravação) ou pacotes já enviados e que ainda não foram reconhecidos.