'Multiple access' means that all Ethernet hosts are equals (peers). There are no masters or slaves, or hosts with different priorities or privileges.
A single Ethernet frame has a 14-byte header, 46 to 1500 bytes of data, and a 4-byte checksum, for a total frame size of 64-1518 bytes. If the data to be transmitted is shorter than 46 bytes, zero bytes must be added before the checksum as padding. The header is specified by IEEE standard 802.3:
Ether type | ||
---|---|---|
hex | decimal | meaning |
0000-05DC | 0-1500 | Packet length field for 'raw' IEEE 802.3 packet |
0800 | 2048 | IP v4 (Ethernet II) |
0806 | 2054 | Address Resolution Protocol (ARP; Ethernet II) |
809B | 32923 | AppleTalk (Ethernet II) |
8137 | 33079 | Novell IPX (Ethernet II) |
Each Ethernet device has a unique address. Blocks of addresses are assigned by a central authority (the IEEE) to manufacturers, who then assign unique addresses from the blocks to each device they manufacture. The top 24 bits of the address indicate the vendor. From RFC-1700:
Top 24 bits of Ethernet address | Vendor |
---|---|
00000C | Cisco |
0000BC | Allen-Bradley |
00AA00 | Intel |
02608C | 3Com |
080009 | Hewlett-Packard |
080020 | Sun |
Ethernet supports broadcast packets, which will be received by all hosts. Such a packet has the destination address set to all ones (FF:FF:FF:FF:FF:FF).
An IP packet (or datagram) is a minimum of 20 bytes long, which is
the minimum size of the IP header. All multi-byte values in the packet are
big endian (network byte order).
xxx - packet details
IP addresses are 32 bits (for IP v4). Blocks of addresses on the Internet are assigned by a central authority (IANA). These blocks may contain 16 million addresses (Class A), 65,000 addresses (Class B), or 256 addresses (Class C). Because of concern over the depletion of the IPv4 address space, blocks of intermediate sizes are also being used.
Unlike Ethernet, individual IP v4 addresses may be assigned dyanmically, to different hosts at different times.
RFC-791 | IP (Internetwork Protocol, version 4) |
RFC-792 | ICMP (Internetwork Control Message Protocol) |
RFC-826 | ARP (Address Resolution Protocol; for IP over Ethernet) |
RFC-786 | UDP (User Datagram Protocol) |
RFC-1025 | TCP/IP Bake-Off (testing of TCP/IP implementations) |
RFC-1122 | Requirements for Internet hosts (1) |
RFC-1123 | Requirements for Internet hosts (2) |
RFC-1700 | Assigned Numbers |
Roll Your Own Intranet: http://www.vijaymukhi.com/vmis/roll.htm (write your own TCP/IP stack)
Ethernet Encapsulation Cheat Sheet: http://www.cisco.com/warp/public/105/encheat.html
Small TCP/IP stacks:
Spec sheet for National Semiconductor 8390 chip, used in NE2000 Ethernet board: http://www.national.com/pf/DP/DP8390D.html
- only Ethernet II is described here. Other types of Ethernet: 'raw' 802.3 (Ether type = packet length), 802.2 LLC, 802.2 LLC + SNAP (are these three obsolete?) - Service Access Point (SAP) codes for 802.2 LLC - IEEE 802.5 (Token Ring)? - details of IP packet: version, IHL, TOS, packet length, ID, flags, fragment offset, TTL, protocol, header checksum, src and dst adr - Other IP stuff: addressing, subnets, fragmentation, MaxTU, broadcasts - protocols that run atop IP: ICMP, UDP, TCP - protocols that run atop UDP: BOOTP, DHCP, TFTP, DNS - protocols that run atop TCP: HTTP, FTP, SMTP, POP, NNTP, FTP, Telnet - Berkeley socket API - IPX? AppleTalk? IP v6? - ARP