Você pode encontrar a definição junto com os comentários em sys/sys/sockbuf.h
:
u_int sb_cc; /* (c/d) actual chars in buffer */
u_int sb_mbcnt; /* (c/d) chars of mbufs used */
Os BSDs estão usando estruturas chamadas mbuf
/ mbuf_cluster
para dados de rede. Eles usaram em todos os lugares do código do driver para a camada de soquete. Mesmo que o pacote tenha 1 byte de carga útil, ele consumirá 256 ( mbuf
) bytes no mbuf. Se o tamanho do pacote (com todos os cabeçalhos de frame / pacote) > = 256, ele consumirá 256 ( mbuf
) + 2048 ( mbuf_cluster
) bytes. Daí a diferença entre sb_cc
e sb_mbcnt
.
Para responder à sua pergunta: S-BCNT
é o valor mais correto a ser usado.
PS . Para obter mais informações, consulte TCP / IP Illustrated Volume 2 - W. Richard Stevens e Garry R. Wright , Capítulo 16 - E / S de soquete, Seção 16.3 - Buffers de soquete, p.476