|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] TCP vs. UDP on SMP> A multithread program will use different cpu in different thread. For example, we use one > cpu for receving packets to receive queue and the other CPU for sending packets from sending > queue. Hence we can have more CPU power in iSCSI path. An UDP program with its sending > and receiving can archive this situation. I think this will give a significant performance than TCP if > TCP can't use both CPUs proccesing power. > > TCP process its own queue in kernel mode. And will this TCP queue is processed with 2 CPU? The situation is somewhat more complex than this. iSCSI is REQUIRED to implement congestion control (for more information, see draft-floyd-cong-04.txt, which is about to be issued as a Best Current Practice RFC). UDP by itself does not implement congestion control, and adding this to UDP may affect SMP efficiency because congestion control solutions use information from the network (receive queue) to control transmission (send queue); this couples the receive and send processing in a way that tends to reduce SMP effectiveness. My recollection of published results on using multiple processors for TCP in Unix-like operating systems is that the big gains come from using different processors for different connections rather than handling send and receive on a single connection on different processors due in part to the send/receive coupling required by congestion control ... but it's been a while since I've checked/read this literature. So, I think the summary Q&A is approximately: Q1: Can a single TCP connection be processed by multiple CPUs? A1: Yes. Q2: Will this work as well as using separate CPUs to handle UDP send and receive? A2: Not in all cases, because TCP couples send and receive processing in a way that UDP does not. Q3: Is the UDP solution with independent send and receive processing on two CPUs applicable to iSCSI? A3: Probably not. It does not implement congestion control, and implementing congestion control will result in some coupling of send and receive processing. Let me remind everyone that while congestion control and flow control may be implemented in roughly the same area of protocol code, they are rather different functions. Flow control is concerned with the effective (e.g., reliable and high performance) delivery of individual flows of traffic. Congestion control is concerned with the response of the entire network as a system to overload conditions in which the network as a whole cannot deliver all of the offered traffic. --David --------------------------------------------------- David L. Black, Senior Technologist EMC Corporation, 42 South St., Hopkinton, MA 01748 +1 (508) 435-1000 x75140 FAX: +1 (508) 497-8500 black_david@emc.com Mobile: +1 (978) 394-7754 ---------------------------------------------------
Home Last updated: Tue Sep 04 01:07:15 2001 6315 messages in chronological order |