Networks are nodes connected to share resources and made of physical devices, media, connectors, signals, and so forth.
Data Link Layer
A link is a connection between two adjacent nodes. Point-to-point or P2P refers to the link. The Data Link layer describes the data transmission between any two nodes on a network that are connected as a link logically. The transmission over the physical media is mediated through contention (CSMA/CD), queueing (token passing, e.g., Token Ring), or polling. In brief, the data link layer deals with logical link control and media access control.
A path, or route, is the connection between two end nodes across a series of connected links. End-to-end refers to a path that connects two endpoints. Routing is the decision of path selection. A router is a node making routing decisions. Nodes and networks are uniquely identified and path selection decisions are made by routers to support transmission or transportation. The Network layer deals with addressing and routing. IPv4 uniquely identifies nodes and networks with a 32-bit address delimited by a subnet mask.
Transportation between two nodes can fail because of the network dynamics. Depending on applications and users’ needs, control mechanisms may be optionally applied to ensure the reliability of data transmission. TCP is a reliable version of the transmission, while UDP is an unreliable one. Both of them provide services for software applications to connect to each other through the so-called “ports.” A TCP Port 80 is a well-known port number reserved for applications that provide HTTP services, e.g., the web server.
Applications are, in fact, agents of users. It is the users that communicate with each other through software applications. A session is a dialog between users who use applications as agents to communicate.
User messages shall be encoded, formatted, recorded, expressed, and transmitted consistently. In other words, they shall be presented so much so readable to all machines. It may or may not compressed for performance or encrypted for security.
Applications solve problems and create values for people. They should be friendly and meaningful to users. The style of windows, scroll bars, and buttons are de facto protocols for the graphical user interface. SMTP commands, such as HELO, RCPT TO, DATA FROM, etc., can be viewed as a command-line interface (CLI). HTML and XML impose semantics and rules on data that are readable to humans.