SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    Re: TCP vs. UDP on SMP



    At 03:53 PM 9/16/00 -0400, Black_David@emc.com wrote:
    
    >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.
    
    This can create performance issues.  Scalability is achieved by 
    distributing operations across a set of resources.  The key is to determine 
    when to distribute the operation - it is a function of how much subsequent 
    processing and system impact (bus utilization, cache pollution, etc.) one 
    can handle.  In general, the lower within the TCP/IP stack the better.
    
    >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.
    
    This is an implementation problem which can (and has been to some extent) 
    be solved with some thought.
    
    >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.
    
    The issue is how fast can the system generate workload relative to the 
    ability of the attached fabric and target to consume.  If there is no 
    feedback process anywhere along the path, then the source executes in an 
    unbounded fashion which is not acceptable.
    
    >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.
    
    Thought this was well understood but good to reiterate every once in awhile.
    
    Mike
    
    


Home

Last updated: Tue Sep 04 01:07:14 2001
6315 messages in chronological order