Protocols and standards on the web

From Computer Science Wiki
Networks[1]

In a digital network, protocols are necessary because they provide a set of rules that govern how devices in the network communicate with each other. Without protocols, it would be difficult for devices to exchange information and data in a meaningful way, because there would be no standard way for them to encode, transmit, and interpret that data.

Protocols are necessary for a number of reasons, including:

  1. Ensuring interoperability: Protocols ensure that devices from different manufacturers and operating systems can communicate with each other, regardless of their underlying hardware and software differences.
  2. Facilitating error detection and correction: Protocols often include mechanisms for detecting and correcting errors that may occur during data transmission, which helps to ensure the integrity of the data being transmitted.
  3. Ensuring security: Protocols can include measures to protect against unauthorized access and data tampering, which is important in today's digital world where security is a top concern.
  4. Allowing for efficient communication: Protocols can optimize the way that devices communicate with each other, helping to minimize delays and maximize the speed at which data can be transmitted.

Overall, protocols are essential for enabling digital devices to communicate with each other in a reliable, secure, and efficient manner.

Difference between standard and protocol[edit]

In the context of digital networks, a standard is a document that specifies a set of requirements, specifications, or guidelines that must be followed in order to achieve a certain level of quality or compatibility. Standards are often developed by industry organizations, committees, or other groups, and are intended to be adopted and used by a wide range of individuals or organizations.

A protocol, on the other hand, is a set of rules or guidelines that define how devices or systems should communicate with each other. Protocols are used to establish a common language or framework for communication, and may include specifications for encoding and decoding messages, transmission and reception of messages, error detection and correction, and other aspects of communication.

Standards and protocols are often related to each other in the context of digital networks. For example, a standard might specify the physical characteristics of a network, such as the types of cables and connectors that can be used, the maximum distances between devices, and the maximum data rates that can be achieved. A protocol, on the other hand, might define how devices on the network should encode and transmit data, and how they should interpret and respond to data received from other devices.

In summary, a standard is a set of guidelines or requirements that define how something should be done, while a protocol is a set of rules that define how devices should communicate with each other. In the context of digital networks, standards and protocols work together to ensure that devices can communicate with each other effectively and efficiently.


IP protocol[edit]

Some characteristics of IP are [2]:

  • Connectionless - No connection with the destination is established before sending data packets.
  • Best Effort (unreliable) - Packet delivery is not guaranteed.
  • Media Independent - Operation is independent of the medium carrying the data.

TCP protocol[edit]

For a practical hands-on look at open TCP connections on your Mac, type the following command in terminal:

lsof -i | grep -E "(LISTEN|ESTABLISHED)"

and also:

nettop (push "c" and "e" and "p" for different views)

Characteristics of TCP are [3]:

  • Stream Data transfer: Applications working at the Application Layer transfers a contiguous stream of bytes to the bottom layers. It is the duty of TCP to pack this byte stream to packets, known as TCP segments, which are passed to the IP layer for transmission to the destination device. The application does not have to bother to chop the byte stream data packets.
  • Reliability: The most important feature of TCP is reliable data delivery. In order to provide reliability, TCP must recover from data that is damaged, lost, duplicated, or delivered out of order by the Network Layer. TCP assigns a sequence number to each byte transmitted, and expects a positive acknowledgment (ACK) from the receiving TCP layer. If the ACK is not received within a timeout interval, the data is retransmitted. The receiving TCP uses the sequence numbers to rearrange the TCP segments when they arrive out of order, and to eliminate duplicate TCP segments.
  • Flow control: Network devices operate at different data rates because of various factors like CPU and available bandwidth. It may happen a sending device to send data at a much faster rate than the receiver can handle. TCP uses a sliding window mechanism for implementing flow control. The number assigned to a segment is called the sequence number and this numbering is actually done at the byte level. The TCP at the receiving device, when sending an ACK back to the sender, also indicates to the TCP at the sending device, the number of bytes it can receive (beyond the last received TCP segment) without causing serious problems in its internal buffers.
  • Multiplexing: Multitasking achieved through the use of port numbers.
  • Connections: Before application processes can send data by using TCP, the devices must establish a connection. The connections are made between the port numbers of the sender and the receiver devices. A TCP connection identifies the end points involved in the connection. A socket number is a combination of IP address and port number, which can uniquely identify a connection.
  • Full duplex: TCP provides for concurrent data streams in both directions

A deeper dive[edit]

This video is a little on the dry side, but the level of detail is excellent:

Explain the importance of protocols[edit]

Without protocols and standards we wouldn't be able to achieve interoperability. That is, if my website used a totally different protocol for storing data (non-html) your browser would not be able to parse it, and you as a user wouldn't be able to understand it.

Protocols are important because they:

  • Ensure data integrity (overall completeness, accuracy and consistency of data[4])
  • Regulate flow control (In data communications, flow control is the process of managing the rate of data transmission between two nodes to prevent a fast sender from overwhelming a slow receiver.[5])
  • Manage deadlock (A condition that occurs when two processes are each waiting for the other to complete before proceeding [6])
  • Manage congestion (Network congestion in data networking is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle.[7])
  • Manage error checking (techniques that enable reliable delivery of digital data over unreliable communication channels.[8])

Why standards are important[edit]

Value of Creating Standards at W3C[9] W3C continues to evolve to provide the community a productive environment for creating Web standards. W3C standards:

  • are created following a consensus-based decision process;
  • consider aspects of accessibility, privacy, security, and internationalization;
  • reflect the views of diverse industries and global stakeholders;
  • balance speed, fairness, public accountability, and quality;
  • benefit from Royalty-Free patent licensing commitments from participants;
  • are stable (and W3C seeks to ensure their persistence at the published URI);
  • benefit from wide review from groups inside and outside W3C;
  • are downloadable at no cost;
  • are maintained in a predictable fashion;
  • are strengthened through interoperability testing;

See Also[edit]

Standards[edit]

These standards are used from the IB Computer Science Subject Guide[10]

  • Explain the importance of protocols and standards on the web.
  • Explain why protocols are necessary.

References[edit]