* Internet
  Wide area networks (Internet most common).
    Composed of individuals lans of diverse technology.

    Requiring a common platform independent protocols for various activity.
      Terminal connection (telnet).
  
      File transfer (ftp).

      Remote document viewing (WWW) 

      Etc.

      Also helpful - common symbolic labeling of "sites" to contact.

* TCP/IP - a protocol independent of the LAN technology.
  Current standard coming out of Unix systems.

  Alternative protocols such as Novell's SPX/IPX lost favor.

  TCP - Transmission Control Protocol: establishes a virtual connection
    between source and destination applications on the "internet".
   
    To transfer of a complete file between your pc and mp.cs.niu.edu,
      the file is broken standard size packets, addressed and numberd.
      TCP is responsible for breaking up and reassembling the file. 

  IP - Internet protocol: specifies the configuration of individual 
    packets of data and successful delivery of such between hops of
    the "internet".  
  
    IP makes sure each packet generated by TCP is moved along the 
      "internet" without corruption. 
 
* TCP/IP addressing.
  A node is given a numeric address (IP #)
    4 Octet value (8 bit or 0-255) x.y.z.q

    The IP number has no relation to the MAC address of the node's hardware
      or even the type of hardware (token, ethernet, etc).

    Class A - 1st octet - network, other 3 - 16M units at site.
      0xxxxxxxb, 1-126 - all are in use.
      Network can be subdivided and sparse. IBM
      Currrenly all assigned.

    Class B - 1st 2 octets (14 bit) - network, other 2 - units (65 thousand)
      10xxxxxxb, 128-191: Ex.  NIU 131.156.x.y
      Occasionally come back into circulation.

    Class C - 1st 3 octets - network, last - units (254)
      110xxxxxb, 192-233
      Small companies (may have more than one address).
      xx.xx.xx.000 and xx.xx.xx.255 are reserved.
 
    0111111b - 127 - loopback, used internally on each node.
   
    Class D - special broadcast.  1110b

    Class E - Future use and testing. 11110b

* Subnets
    A particular class address can be further subdivided by using a
    subnet mask by the owner of the address.   

    NIU has a class B address and it's subnet mask is 255.255.255.00 - this 
    allows us to have up to 256 separate local networks of 253 machines.

    Subnet division is the choice of addresses' owner.  For class B, a mask
    of 255.255.255.128 would provide for 512 subnets of 128 machines.
 
  Each IP node has up to 32 thousand ports.
    Allows multiple connections and actions for a single node.

    In general, ports <= 1024 are reserved for predefined or system level
      connections.

    Ports > 1024 are used for the client side of a tcp connection between
      a user and service being accessed.  User telneting to mp.
  
* Internet Packets (conceptual)
  Packet consists of source & destination address, data, & control.

  Data - information being transferred.

  Address
    Internet address.

    Port id - Specific task
      Most systems can do a variety of communication tasks.

      FTP, Telnet, Web services, etc. & more than 1 session.

      1st 1024 port ids reserve for system functions.
        Web server, FTP server. 

      Client - rest of 32K possible @ - unique for each session.

  Control - sequence information and error checking.

  Internet packet encapsulated in the network packet.

* Some standard ports
  ftp-data 20 /tcp
  ftp   21 /tcp

  ssh   22 /tcp secure terminal

  telnet  23 /tcp terminal

  smtp  25 /tcp mail

  name  42 /udp nameserver 

  domain 53 /udp

  domain 53 /tcp

  bootps 67 /udp    # BOOTP/DHCP server

  bootpc 68 /udp    # BOOTP/DHCP client

* Communication sequence
  Application prepares data for communication

  Uses destination site's name to request its IP from a name server.
    The name server is part of a hierachical tree of servers
      that eventually can find any name's ip equivalent.

  It prepends 
    Destination ip and port of service to contact.

    Source ip (machine running the application)

    Random port > 1024 gotten from network support software.

  If data larger than one packet,
    parses the data into sequenced packets

  Adds sequence id to packet

  Adds data to packet and sends.

  More advanced forms (TCP) require acknowledgment.

  At this point, the network card 
    Adds additional data that makes is transportable at the lan level
  
    Possibly breaks the packet up into packets appropriate to lan.
  
    Converts data to electronic/optical pulses appropriate to lan.
 
  If destination on same lan, process reversed.

  If destination elsewhere, a special machine will further manipulate
    the packets into a form appropriate to the next hop on the "internet".

* Interfaces
  Bridges - Unites two or more sub-nets of a lan.
    Point to point connections.
 
    Aware of all devices on network (usually via mac id) and makes them 
    part of 1 logical newtwork. List of devices small < 20.
  
    Can connect ethernet systems where 1 subnet is twisted pair and the
    other is wireless or coax. (Same protocol but disimilar physically)
   
    Sometimes used to connect two sub-nets via p to p over a distance 
      using a dis-similar technology.
   
    Attempts to optimize traffic by not passing packets that will not 
    be processed on other sub-net.

* Interfaces
  Gateway - software/hardware access between two networks.
    Connects systems of dis-similar architectures. 

    Uses logical protocol to identify packet destinations such as tcp/ip

    Performs protocol changes between networks.

    The gateway machine/card has a unique id public to local network.

* Interfaces
  Router - Connects lans or other networks together & translates protocols.
    Multiple input/outputs. Acts as a switching station. 

    Repackages data into appropriate sized units.

    Often includes Gateway logic/hardware.
  
    Keeps a list of other contactable routers, list > 10,000.

  Brouters - a combination of both a bridge and a small local router.
    Scope of any address lists in the 10's. 

    Often used to create an artifical local Internet.  

  DHCP/bootp/rarp - converts a mac address to an IP address.

  ARP - address resolution protocol - converts an IP to mac address.

* Names
  Currently controlled by ICANN and IANA - www.iana.org
  ICANN 
    - Internet Corporation for Assigned Names and Numbers. 
  IANA 
    - Internet Assigned Numbers Association - assigns port # to functions. 
      ftp, telnet, etc.
  
  Under that umbrella - certain catagories are handled by non-profit or
  commercial registries.

  Originally - ARPANET (DARPA) and names controlled by U.S. government.

  COM - Commercial.

  GOV - U.S. and state civilian government.

  MIL - U.S. military. 

  ORG - non-profit organizations.

  NET - non-profit & usually network related.

  EDU - education - 4 year accredited.

  ARPA - special top level id for the actual internet structure.

  2 letter - Nations
   Psuedo-official - countries who licenses their domains for commercial use. 
     .to - Tonga  as in go.to
     .tv - Tuvalu 
 
  INT - international organization.

* New Names (2001?)

  .aero - air-transport industry
 
  .biz  - Business

  .coop - cooperatives

  .info - unrestricted use

  .museum - museums

  .name - for individuals.

  .pro - accountants, lawyers, and physicians.


* Naming protocol.
  Names often start with type of protocol www.cs.niu.edu (web), ftp.cdrom.com
  (ftp site), etc.  Although a good idea, this is not a requirement.  

  Names can be any length (?) - www.completelyfreesoftware.com.
  
  Names must be at least 2 units long but can be more than 3 - www.cs.niu.edu.

  There is no relation between name and ip other than a name must resolve
  to a single ip.

  At the top level, the DNS systems are somewhat isolated. .com handled
  by one system, .edu by another, etc. 

  At this level, ownership of each system by individual organizations.
   .com - Network Solutions - who may contract out name assignments but
   must control the master list for .com.

* DNS - Domain Name server - converts symbolic name to ip number.  Usually one 
  DNS on a network or known by IP to each network.  The DNS service is 
  structured as a hierarchical tree with the local DNS at the lowest or leaf
  level.

  When user uses a name, the local DNS is contacted to see if name is local.
  If local
    Ip returned.

  Else DNS checks to see it tried to find the same name recently
    If found, it uses that data.
 
  Else it asks another DNS that is higher up in the tree.  The configuration
  of DNS requires that the address of higher nodes be coded.

  This process is repeated at each level until address is found.  

  At higher levels, the DNS does not know all of the names under it, rather
  its able to make intelligent guesses which nodes can further indentify
  the ip for a given name.