實際上,必須在TCP連接上發(fā)送和接收數(shù)據(jù),并且還會有其他狀態(tài),例如TIME_WAIT。
在這些復雜的情況下,連接占用多少內(nèi)存?費格用了7天的實驗結果告訴您!實驗1:建立空連接實驗2:客戶端=>服務器發(fā)送數(shù)據(jù)測試實驗3:服務器=>客戶發(fā)送數(shù)據(jù)測試實驗4:非ESTABLISH狀態(tài)的摘要讓我們總結一下實驗中的數(shù)據(jù)。
可以看出,內(nèi)核位于套接字內(nèi)存中,已經(jīng)采用了許多方法來進行成本優(yōu)化:1.內(nèi)核將嘗試及時恢復發(fā)送緩沖區(qū)和接收緩沖區(qū),但較高的版本會更好。
2.最小的發(fā)送和接收緩沖區(qū)一定不能是rmem內(nèi)核參數(shù)中的最小值。
實際上可能會更小3。
例如,在其他狀態(tài)下,TIME_WAIT也將回收不必要的socket_alloc和其他對象