TCP 연결을 통해 n 개의 바이트로 pkts 양을 보내는 데 걸리는 시간을 측정하고 싶습니다. 유일한 문제는 내 패킷이 병합되는 것입니다. TCP가 기본적으로이 작업을 수행한다는 것을 알고 있지만 패킷을 병합하는 경우에도 TCP를 즉시 전송할 수있는 방법은 무엇입니까?Node.js | nagle 알고리즘 사용 안함
클라이언트 :
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 6969;
var number_packets = 2500;
var packet_size = 200;
var client = new net.Socket();
client.connect(PORT, HOST, function() {
client.setNoDelay(true);
for (var i = 0; i <= 100; i++) {
var message = new Buffer(packet_size);
console.log('Sending message #: '+i);
client.write(message);
}
});
client.on('data', function(data) {
console.log('DATA: ' + data);
// Close the client socket completely
client.destroy();
});
client.on('close', function() {
console.log('Connection closed');
});
서버 : 이미 true로 setNoDelay
를 설정하여 코드에서 Nagle 알고리즘을 비활성화 한
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 6969;
var count = 1;
net.createServer(function(sock) {
sock.on('data', function(data) {
var size = data.length;
console.log('pkt: '+count+' size: '+size);
//sock.write(data+'-');
count++;
});
sock.on('close', function(data) {
console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
});
}).listen(PORT, HOST);
//console.log('Server listening on ' + HOST +':'+ PORT);