Difference between handling multiple TCP/HTTP requests from a single client vs multiple clients to one Ubuntu host
https://askubuntu.com/questions/1565846/difference-between-handling-multiple-tcp-http-requests-from-a-single-client-vs-m
I have created a simple Java application (Spring MVC with one REST service) and I need to perform high-load testing after deploying it on Ubuntu 24.04.2 LTS.
I have already done some optimization of both the application and the operating system, and I am now achieving roughly the desired throughput and latency during testing. However, I’m not confident that my testing approach is entirely correct.
I understand that to simulate more realistic traffic, requests should be generated from multiple client machines. In my case, I only have one client (my laptop) and one server (another laptop), connected via a 1-meter Ethernet cable.During testing, I generate a large number of HTTP requests, and the packet flow for each request looks like this in Wireshark (see screenshot below. Total packets size is 1049bytes for 1 http request. I also use virtual IPs to workaround limit with ports).

For now, I’ve managed to achieve throughput of up to 100,000 requests per second(average wall clock time since Java HttpClient::send is invoked and after response synchronously received), given that both laptops use Ethernet cards with a maximum speed of 1 Gbps.
At a high level, I understand the TCP communication between one Ubuntu host and another as shown in the diagram (see screenshot).

I would like to also point out that I understand the difference between parallel and concurrent requests well.
My question is:
Is there anything in the Ubuntu (Linux) kernel—such as buffering, caching, or other optimizations—between receiving the initial TCP SYN packet from the client and sending the final response, that could artificially increase the number of requests per second when testing from a single client?
In other words, if I were to generate the same total load but distribute it across 10 different client machines, would I observe significantly lower throughput and why?
Or more specifically:
Are there any optimizations in the network stack that depend on using the same client IP address and port?