Computer Networking学习笔记[1]

The TCP/IP Model

Transmission Control Protocol (TCP) and the Internet Protocol (IP)

The Layers of The TCP/IP Stack

The TCP/IP model splits up a communication system into 5 abstract layers, stacked upon each other. Each layer performs a particular service and communicates with the layers above and below itself.

Here are the five layers of the TCP/IP model:

image.png

Application Layer

Key Responsibilities of the Application Layer

The main job of the application layer is to enable end-users to access the Internet via a number of applications. This involves:

  • Writing data off to the network in a format that is compliant with the protocol in use.
  • Reading data from the end-user.
  • Providing useful applications to end users.
  • Some applications also ensure that the data from the end-user is in the correct format.
  • Error handling and recovery is also done by some applications.

The Post Analogy

  • Imagine you post a package across the world.
  • Presumably, the post system would hand it off to an airplane or ship to transport it across the world.
  • However, you would take it to the post office first to be shipped off. Carrying the package to the post office is what the application layer does in networks, except that it carries messages to the transport layer!

Network Application Architectures

Client-Server Architecture

In this architecture, a network application consists of two parts: client-side software and server-side software. These pieces of software are generally called processes, and they communicate with each other through messages.

Servers

The server process controls access to a centralized resource or service such as a website.

Servers have two important characteristics:

  1. Generally, an attempt is made to keep servers online all the time, although 100% availability is impossible to achieve. Furthermore, servers set up as a hobby or as an experiment may not need to be kept online. Nevertheless, the client must be able to find the server online when needed, otherwise, communication wouldn’t take place.
  2. They have at least one reliable IP address with which they can be reached.

A good analogy is a 24/7 pizza delivery place. They are always open and have a phone number with which they can always be reached.

Clients

Client processes use the Internet to consume content and use the services. Client processes almost always initiate connections to servers, while server processes wait for requests from clients.

An Example

A good example of the client-server architecture is the web.

Take Google for instance. Google has several servers that control access to videos. So when a google.com is accessed, a client process (a browser) requests Google’s homepage from one of Google’s servers. That server was presumably online, got the request, and granted access to the page by sending it.

Data Centers

Now, you might have noticed that we mentioned that Google has servers and not one server. That’s because, as mentioned previously, when client-server applications scale, one or even two servers can’t handle the requests from a large number of clients. Additionally, servers may crash due to any reason and might stop working. Most applications have several servers in case one fails. Therefore, several machines host server processes (these machines are called servers too), and they reside in data centers.

Data centers are buildings that house servers. Facebook, for example, has “nearly 15 million square feet of data center space completed or under construction, with several million more feet in the planning stages” as of 2018.

Peer-to-Peer Architecture (P2P)

In this architecture, applications on end-systems called ‘peers’ communicate with each other. No dedicated server or large data center is involved. Peers mostly reside on PCs like laptops and desktops in homes, offices, and universities.

The key advantage of the P2P architecture is that it can scale rapidly – without the need of spending large amounts of money, time or effort.


image.png
An Example

A lot of popular applications today, like BitTorrent, are based on P2P architectures.

When a file is downloaded via BitTorrent, the downloading party accesses bits of the file on several other users’ computers and puts them together on its end. No traditional ‘server’ is involved in this scenario.

你可能感兴趣的:(Computer Networking学习笔记[1])