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