From 55fef89be9eb9da8b40bfdc1cc20475421ca5554 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Wed, 26 Jun 2024 22:02:16 +0200 Subject: TCP: Delay ACKs to batch together packets ACKed --- kernel/network/tcp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kernel/network') diff --git a/kernel/network/tcp.c b/kernel/network/tcp.c index bb48f53..e6febba 100644 --- a/kernel/network/tcp.c +++ b/kernel/network/tcp.c @@ -84,6 +84,7 @@ void tcp_send_empty_payload(struct TcpConnection *con, u8 flags) { header.dst_port = htons(con->outgoing_port); header.seq_num = htonl(con->snd_nxt); if (flags & ACK) { + con->should_send_ack = 0; header.ack_num = htonl(con->rcv_nxt); } else { header.ack_num = 0; @@ -282,7 +283,7 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload, int rc = ringbuffer_write(&con->incoming_buffer, tcp_payload, tcp_payload_length); con->rcv_nxt += rc; - tcp_send_empty_payload(con, ACK); + con->should_send_ack = 1; } break; } -- cgit v1.2.3