Lecture 3 - Network hardware, Ethernet
Download
Report
Transcript Lecture 3 - Network hardware, Ethernet
Chapter 2 Tidbits
Outline
A little hardware
Ethernet
Reading: Sec. 2.1, 2.2, 2.6
Spring 2010
CS 332
1
Why?
• Host architecture affects “realistic” data transfer
rates, which affects protocol design
• It’s a good idea to see a bit of the details of how at
least one kind of LAN works
– Ethernet is popular (though being replaced by faster
technologies)
– It uses a media access control (MAC) protocol that
gives a good introduction to some of the problems
encountered in MAC design
Spring 2010
CS 332
2
Example Workstation Architecture
CPU
Netw ork
adaptor
Cache
(To netw ork)
I/O bus
Memory
Spring 2010
CS 332
3
Key Features
• Memory is finite (say 1GB – 8 GB)
– Memory (along with bandwidth) are two key scarce network resources
that must be carefully managed
– Scarce because on a switch or router, packets must be buffered in
memory while awaiting transmission over link
• Each node connects to network via a network adaptor (card,
interface)
– Sits on system I/O bus and transfers data between memory and network
link
– Device driver (OS component) on workstation manages the adaptor
(i.e., where (memory address) should incoming data be stored, what
commands are sent to adaptor and when)
• While CPU speeds are doubling every 18 months, same is not
true of memory speeds (only approx. 7% increase per year)
– It is the speed of memory access, not how fast the processor is, that
limits how fast we can transfer data on the network!
Spring 2010
CS 332
4
Interfacing to the wire
Network
Controller
Cable
Transceiver
Cable
System
Backplane
Tap
Transceiver
Chassis
•
Transceiver functions
•
–
–
–
–
–
– Signal detection
– Collision detection
– Jam signaling
Spring 2010
Controller functions
Transmit and receive packets
Frame construction
Address recognition
Packet buffering
Checksum generation &
verification
– DMA interaction with memory
CS 332
5
The Memory Bottleneck
I/O bus
3200 Mbps
Memory
8512 Mbps
CPU
Crossbar
Memory Bandwidth on a modern PC-class machine
Spring 2010
CS 332
6
The Memory Bottleneck
• Looks like we should be able to transmit frames between
network adaptor and host memory at rate of 8512 Mbps
– Misleading: the figure measures peak bandwidth! (64 bit wide bus
@ 133 MHz = 8512 Mbps) – ignores overhead
– Limitation is size of data blocks being transferred across bus
– Ex. Takes 8 clock cycles to acquire bus, regardless of number of
bytes transferred (bus arbitration), so 64 byte payload takes 16
cycles (bus is 64 bits wide so 8 cycles for data + 8 for bus
acquisition) so max bandwidth is
8 (8 8) 8512 4256
Mbps
Spring 2010
CS 332
7
But There’s More…
• Memory/CPU bandwidth (3200 Mbps) is realistic, but
same order of magnitude as range of network bandwidths
machine can support.
• So yes, there is a network-speed path to CPU registers…
• We may need to "touch" each word of data in a network
packet multiple times to process it (possibly because it
needs to be copied from one buffer to another).
– If memory/CPU path crossed n times, then effective throughput is
3200 Mbps/n.
– Ex. If copying needs to be done 5 times (not uncommon), then
your peak bandwidth is now 640 Mbps.
• Fixing involves protocol stack architecture, understanding
cache/memory interaction, etc.
Spring 2010
CS 332
8
LANs and the OSI RM
Typical LANs need only address Data Link layer issues of
providing communication between two computers which are
“directly connected.”
• Primary Data Link Layer Tasks
–
–
–
–
–
Data Framing
Error Detection
Acknowledgments
Retransmissions
Duplicate detection
Spring 2010
CS 332
9
LANs and the OSI RM
Because most LANs use broadcast media, the Data Link layer
is divided between the “Logical Link Control” sublayer (for
“point-to-point” Data Link layer functionality) and the “Media
Access” sublayer, which disguises the broadcast service
provided by the physical layer as a set of point to point links.
• Primary Media Access Sublayer Tasks
– Arbitrating access to shared medium
– Error detection
Spring 2010
CS 332
10
Section 2.6 in text!
Ethernet (IEEE 802.3)
• Multiple access network
– Nodes send and receive frames over a shared link
• Carrier Sense Multiple Access with Collision Detect
(CSMA/CD)
– CSMA: all nodes can distinguish between an idle and busy link
– CD: nodes listen as they transmit and can therefore detect when
frame it is transmitting has interfered with a frame transmitted by
another node
• Evolved philosophically from the Aloha packet radio
network (both mediate access to a shared medium—for
Aloha it was the atmosphere, for Ethernet a coaxial cable).
Spring 2010
CS 332
11
Ethernet (802.3)
• DEC, Intel, Zerox joined forces to define 10Mbps
Ethernet standard in 1978.
– 100Mbps and 1Gps Ethernet are designed for point-topoint switched network, so not the “true” ethernet
algorithm.
• IEEE Standard 802.3 is the “official” protocol,
though not every Ethernet follows this standard
(slight differences in certain packet header fields,
etc).
Spring 2010
CS 332
12
Physical Properties
• Implemented on coaxial cable of up to 500 meters
in length
• Hosts connect by “tapping” into it.
– Taps at least 2.5 meters apart
• Transceiver is small device directly attached to tap
– Detects when line is idle and drives signal when host is
transmitting
• All protocol logic implemented in the adaptor (not
transceiver)
Spring 2010
CS 332
13
Multiple Ethernet Segments
• Multiple Ethernet segments can be joined together
by repeaters
– No more than four repeaters between any two hosts (so
Ethernet has a total reach of only 2500 meters).
– Like single Ethernet, each host hears every message
sent on network
• An Ethernet is limited, regardless of whether
repeaters used, to 1024 hosts
• Again, any signal is heard by everyone
– Terminators attached to end of each segment absorb
signal and keep if from reflecting back and interfering
with trailing signals
Spring 2010
CS 332
14
All hosts in the
same collision
domain
Spring 2010
CS 332
15
Frame Format
• 64 bit preamble for synchronization (unseen by
host)
• 48 bit address fields for both destination and
source
• Type field (to which higher level protocol should
this frame be delivered)
Spring 2010
CS 332
16
Frame Format (cont.)
• Body: minimum of 46 and maximum of 1500
bytes of data
– Minimum required to keep frames long enough for
collision detection
• 32 bit CRC (cyclic redundancy check) for error
checking
• 802.3 format slightly different (16 bit length field
replaces the type field)
– Software kludged so that it can handle either
Spring 2010
CS 332
17
Addresses
• Typically written in hex notation
– Ex. 8:0:2b:e4:b1:2
• Every Ethernet Adaptor in world has unique
Ethernet address
– Burned into ROM at factory
– Each manufacturer has different prefix
• Ex. AMD starts with x080020
• Each frame transmitted on Ethernet received by
every adaptor on that Ethernet
Spring 2010
CS 332
18
Adaptor Accepts:
• Frames addressed to its own address
• Frames addressed to the broadcast address (all 1s)
• Frames addressed to a multicast address (first bit 1) if
instructed to listen for that address by host
• All frames, if it is in promiscuous mode
• Note that every adaptor receives enough of every
frame to do address recognition
• It passes to host only the frames that it accepts
Spring 2010
CS 332
19
Transmitter Algorithm
• When adaptor has frame to send and line is idle, it
transmits frame immediately
– Upper bound of 1500 bytes ensures that no adaptor can
occupy the line for too long
• If adaptor has frame to send and line is busy, it
waits for line to go idle then transmits
immediately
– Well, all adaptors wait 9.6 μsec after one frame before
sending next
Spring 2010
CS 332
20
Transmitter Algorithm (cont.)
• It is possible for two or more adaptors to begin
transmitting at same time (a collision)
• If collision occurs, both adaptors transmit a 32 bit jamming
sequence, then stop transmitting.
– So in minimal case an adaptor sends 96 bits: 64 bit preamble and
32 bit jamming sequence (this is called a runt frame)
– Runt frame only occurs if senders are near. In worst case they may
need to send as many as 512 bits (64) bytes past preamble to detect
collision (thus the 46 data byte miminum: 14 bytes of header plus
46 bytes of data plus 4 byte CRC = 64 bytes).
– Why 512 bits?!
Spring 2010
CS 332
21
512 Bits…
Worst case scenario:
A sends frame at time t
A’s frame arrives at B
at time t+d
B begins transmitting at
time t+d and collides with
A’s frame
B’s runt (32 bits) arrives at
A at time t +2d
Host A must transmit for 2d to be sure it detects all possible collisions!
Spring 2010
CS 332
22
512 Bits (cont.)
• A maximally configured Ethernet is 2500 meters
long
• Has max of 4 repeaters
• Round trip delay has been determined to be 51.2
μs long, which on 10Mbps Ethernet is 512 bits
• Bottom line: limits placed on Ethernet are
designed to limit latency on the network, and thus
allow the access algorithm to work somewhat
efficiently
Spring 2010
CS 332
23
And after the Collision?
• Min. pkt. length insures all colliding hosts detect
the collision
• How do we decide when to try again?
– Remember, a station has no information about what
other stations are involved or where they are located.
Spring 2010
CS 332
24
Binary Exponential Backoff
Algorithm
• After first collision, randomly choose to retransmit
after 0 or 1 slot times.
• If another collision, double the retransmission
interval to four possible slots, and pick one at
random.
• Repeat until:
– Success – you're done; or
– 16 tries and no success. Quit and declare network
broken. (Interval only increases first 10 times.)
Spring 2010
CS 332
25
BEB Notes
• Good because it requires no global (in the sense of
knowing what's going on at other stations) state
info. Completely distributed.
• Introduces a probabilistic element into the
performance of the protocol
• We can't make hard guarantees about delay.
(Token ring was better about this.)
Spring 2010
CS 332
26
Ethernet Success
• Extremely easy to administer and maintain
– No switches that can fail
– No routing or configuration tables to maintain
– Easy to add new hosts
• Inexpensive
– Cable is cheap
– Only additional cost is network adapter for each host
(potentially as little as $5 per host these days)
Spring 2010
CS 332
27