5.1 Fast Ethernet

will use IP addresses from the range 192.168.1.0 - 192.168.1.255 in the following examples.
In the past only a few netmasks were permitted. The netmasks were split on byte boundaries. These boundaries were given the names Class A (255.0.0.0 with about 16 million host addresses), Class B (255.255.0.0 with about 64 thousand host addresses)) and Class C (255.255.255.0 with 254 host addresses). Netmasks may now fall on any bit boundary, but are split on byte boundaries where possible. The Class names are still used when this occurs. We will use the Class C network 192.168.1.0.
Two addresses in the host address range are reserved: the addresses with all host bits 0 or 1. The host address with all bits set e.g., 192.168.1.255 is the network broadcast address. Packets sent to this address will be forwarded to every host on the network. The address with all bits unset is not a host address at all it is the network address. Similarly when a larger network is divided into subnets the highest and lowest address ranges are best avoided. While the Class C network 192.168.0.0 is valid, starting at 192.168.1.0 is recommended. It is syntacticly possible to specify an invalid netmask one with non-contiguous set bits. A "slash" notation is sometimes used to avoid this, e.g., 192.168.1.0/24 specifies our network of 192.168.1.0 with a netmask of 255.255.255.0.
5.3.2 Zero-copy Protocols
One way to improve network performance, especially for high performance networks, is to eliminate unnecessary copying of data between buffers in the kernel or between the kernel and user space. So-called zero-copy protocols give applications nearly direct access to the network hardware, which copies data directly to and from buffers in the application program.
Implementing true "zero-copy" TCP from user-level applications is difficult. On the transmit side the kernel must wire down the pages, so that they are not moved during the network operation, and set copy-on-write in the virtual memory system, so that there isn't a race condition with an application writing the data while it is being transferred. Transmit buffers are often quickly re-used, so the copy-on-write results in page copies rather than data buffer copies. If many small writes are done to socket, all of the data pages must be wired down until the ACK is received. After all of this kernel overhead not much work has been saved. Protocol layers must still construct the protocol headers and do the TCP checksums over the data to be transmitted.
When a frame arrives the kernel has to decide where to put it. While it is possible to only read the variable-length IP header and defer handling the data,

 



How to Build a Beowulf
How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation)
ISBN: 026269218X
EAN: 2147483647
Year: 1999
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net