CSCI.4220 Network Programming
Class 9, Tuesday February 22, 2005
email, Bit Torrent, and IPv6

email

There are several kinds of mail software. Individual users use a user agent or mail reader such as Eudora, Pine, Outlook or Netscape messenger.

These connect with a mail server. A mail server has a mailbox for each user. When a user agent connects to the mail server, it authenticates the user and then sends the mail.

The mail server connects over the internet with other mail servers using a the SMTP Protocol (Simple Mail Transfer Protocol). Note that the mail server is both a client and a server. It has to have a mechanism for temporarily storing mail for unreachable servers (it retries every 30 minutes or so for several days). SMTP is very old, and archaic. It only understands 7 bit ascii. So everything else has to be encoded.

Content-Transfer-Encoding: (base64)

Content-Type: image/jpeg
A user agent connects to the mail server using one of two protocols, POP3 (Post Office Protocol version 3) or IMAP (Internet Mail Access Protocol)

BitTorrent

Introduction to Bit Torrent
The BitTorrent protocol

IPv6 aka IPng

IPv4 has been used since the early 1980s, but it needs to be upgraded.

Motivations for IPv6

  1. Running out of IP addresses
  2. Routing tables are getting very large
  3. Support for Real time applications like streaming video and audio
  4. Support for authentication
RFC 1752 - Jan 1995 and numerous RFPs since Major changes
  1. larger address space (128 bits) 3.4 x 1034
    340,282,366,920,938,463,463,374,607,431,768,211,456
  2. extended address hierarchy - it is possible to have a hierarchy of ISPs for example - this makes routing much more efficient
  3. flexible headers
  4. improved options
  5. support for autoconfiguration and renumbering
The IPv6 Header A detailed description of the IPv6 Header

The headers are like a linked list. If there are no extension headers NEXT=TCP

Base Header (NEXT=ROUTE) Route Header (NEXT=TCP) TCP segment

Base Header (NEXT=ROUTE) Router Header (NEXT=AUTH) Auth Header (NEXT=TCP)

Fragmentation can only be done by the sender. Sender can either use the minimum guaranteed MTU of 1280 or it can use MTU discovery. One of the headers is the fragmentation header If none of the intermediate routers have to think about fragmentation, this makes routing faster.

IPv6 address space

Proposed Division of IPv6 addresses

first three bits are a format prefix 001 means unicast

next 13 bits TLA ID - top level aggregation id (ISP)

This means that the backbone routers need a routing table of only 213 or 8192.

next 8 bits are reserved, currently all zeroes

next 24 bits NLA ID (next level aggregate ID) identifies a particular subscriber

The next 16 bits SLA ID - site level aggregation (like an IP subnet)

The lower order 64 bits identify specific network interfaces Note that this is large enough to accomodate direct encoding of the interface hardware address. (The MAC address is a part of the IP address). This means that ARP or DHCP is no longer needed.

There is an encoding mechanism to handle current 48 bit MAC addresses.

IPv6server.c
IPv6client.c