Networking Services, Ch. 2, 3
  1. Internet: Near-exponential growth.
  2. Original Internet usage.
    1. Allow computers from different manufacturers using different OS's to interconnect.
    2. Allow users to use a command shell remotely.
    3. Transfer of files.
    4. Plain-text email and messages.
  3. Changes in Internet Usage.
    1. Text Images Video Clips High-Def Video
      1. The Internet was originally designed primarily to transmit text.
      2. Improved hardware, and the shift to popular use expand these demands.
    2. Alert Sounds Voice Audio Clips High Fi
  4. Multimedia refers to data containing a mix of text, graphics, audio and video.
  5. Recent trends.
    1. Telephone system from analog to voice-over-IP (VoIP).
    2. Cable TV from analog to IP delivery.
    3. Cell phones from analog to digital services (4G, 5G coming).
      1. The G's are for Generation.
      2. Don't actually describe the technology.
    4. Internet access moving from wired to wireless.
    5. Centralized services moving to distributed (P2P, cloud).
  6. Applications beyond some of Internet's original vision.
    1. Audio teleconferencing was one of the Internet's original purposes, but much higher-quality is available.
    2. Financial transactions and on-line banking.
    3. Sensor networks.
    4. Social networking.
  7. Communications paradigms
    1. Connection-oriented v. Connectionless.
    2. Message-oriented v. Byte stream.
    3. Reliable or Unreliable.
      1. Reliable means a message sent arrives absent complete failure of the system.
      2. Unreliable means a message may be lost, delayed, duplicated or delivers out of order.
    4. Most common, traditional Internet transport protocols
      1. TCP: Connection-oriented, byte stream, reliable.
      2. UDP: Connectionless, message-oriented, unreliable.
    5. Some newer Internet protocols that don't get the respect they deserve
      1. SCTP: Connection-oriented, message-oriented, reliable. Allows multiple streams under a single connection.
      2. DCCP: Connection-oriented, message-oriented, unreliable, but with optional loss notification.
    6. Stream-oriented service seems to be out of favor. Newer protocols are almost always message-oriented.
    7. Multimedia applications often use unreliable protocols.
      1. Reliability can create unwanted delay.
      2. Much more on this later.
  8. Client-server interaction
    1. Client starts a transaction by sending a message to the server requesting some action or information.
    2. Server responds, and communication continues with any number of transmissions in either direction.
    3. At some point, the transaction completes, and communication stops until the client begins another transaction.
  9. Technically, client and server refer to software that does the networking, but the terms are often used for the machines that run them.
    1. The client typically starts a transaction at startup or user input.
    2. After a transaction, the client may exit or do something else.
    3. The server typically starts and waits for a client contact. It process the transaction then waits for another.
    4. Most server programs offer only one service, but there are exceptions.
  10. A typical client machine
    1. Has a user in front of it.
    2. Runs many network client programs.
    3. Runs many other things as well.
  11. A typical server machine
    1. Is unattended.
    2. Is able to handle many client connections at once.
    3. May run several types of client programs, or just one.
  12. Multiple servers and clients.
    1. Each Internet computer is identified by an IP address.
    2. A program connects using a port number.
    3. Communication is between endpoints. An endpoint is an IP address and a port number.
    4. A server can tell its multiple clients apart by their different endpoints (IP and port).
  13. Peer-to-Peer.
    1. In Peer-to-peer interaction, any host can begin an interaction with any other. None is distinguished as a client or server.
    2. Client-server interaction was invented for the PC.
      1. The Internet was created without the PC in mind.
      2. Assumed a computer was large, and usually running all the time.
      3. Early PCs were barely large enough to run the IP protocols.
      4. Their SOs could not run background processes, which are needed to wait for connections.
      5. PCs tend to be shut down at night, which makes it harder to receive messages.
      6. But PCs can function as clients.
    3. Servers create bottlenecks.
      1. The server machine(s) itself.
      2. The parts of the net near it.
      3. Peer-to-peer spreads out the work.
    4. Problems with Peer-to-peer.
      1. Home networks not designed for it: Assume much more download volume.
      2. Distributes control.
  14. Sockets.
    1. The default standard networking API is called sockets.
    2. Created for Berkeley Unix.
    3. Made available for other OSs.
  15. We will use a simplified interface called cleansocks.