High-Speed Networking
- Computer Architecture
- Integrated Layer Processing
- Service Models:
- Real-Time networking
- Reservations
- Admission Control
- RSVP
Faster Networks
| Speed | Technology | Year |
|
(Mb/s) | | |
|
0.13 | ISDN | 80's |
|
10 | classical Ethernet | 80's |
|
25 | slowest ATM | early 90's |
|
100 | Fast Eth, FDDI | early 90's |
|
155 | ATM OC-3 | early 90's |
|
622 | ATM OC-12 | mid 90's |
|
1,000 | Gigabit Ethernet | late 90's |
|
2,400 | ATM OC-48 | 1999 |
|
1,000,000 | Terabit | 2003/2010? |
|
|
Computer Architecture
- in the past, the computer was generally faster than the network
- it takes a very fast computer to inject 1Gb/s of TCP data into
the network:
- limited memory bandwidth
- multiple transfers of data to and from memory before data gets to device:
- user space to system space
- checksumming, CRC
- DMA
- I/O bus bandwidth may be less than memory bandwidth
- adapter may not be able to transfer at peak rate
Integrated Layer Processing
- Suppose I have a number of data manipulations to do on incoming
and outgoing data:
- error checking -- checksumming or CRC
- encryption or decryption
- conversion from network to host byte-order
- If I do them in three separate loops, I have to load the data
from memory 3 times, store it two times
- If I merge them into a single complex loop, I only
have to load and store the data once
- modularity and clean implementation run counter to efficiency
- can the process be automated? (loop fusion)
In-Class Exercise
(10 minutes) fuse these two loops:
char * pkt, *end;
short * sp;
long * lp;
cksum = 0;
for (sp = (short *)pkt;
sp < (short *)end; sp++) {
cksum += *sp;
}
for (lp = ((long *)pkt) + 10;
lp < ((long *)end; lp++) {
*lp = ntohl (*lp);
}
Service Models
- Internet gives best-effort service -- does not
even attempt to give guarantees about:
- maximum percentage drop
- maximum delay
- maximum delay variation (jitter)
- minimum bandwidth
- best effort is inadequate for real-time applications
such as telephony
Application needs
- maximum delay variation lets application
buffer data and play it back continuously
- maximum delay allows real-time interaction
- real-time (and multicasting) don't generally support retransmission, so:
- transmissions must be tolerant of data loss (e.g. by degrading quality)
- network must provide guarantees about packet loss
- some applications need bandwidth guarantees, e.g. voice-grade
telephony needs 64Kb/s
Reservations
- best-effort is very efficient in network utilization, but does
not fit all applications
- a reservation is an agreement (a contract) between the host
and the network
- network must perform admission control to
- admit the new reservation if the resources are available
- not admit otherwise
- reservations are less efficient because network resources
might remain unused
- mixing best-effort (low priority) and reserved (high priority)
traffic gives good utilization with needed guarantees
RSVP
- reservation protocol for IPv4
- connectionless, unlike ATM (connection)
- routers have soft state which expires after 1 minute
(similar to ARP, RIP)
- reservation must be repeated every 30 seconds, therefore flexible
- receiver sends reservation
- suitable for multicast