If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

Open protocol development

The many protocols powering the Internet are standardized and open. But what does that actually mean, and why is it so important?

The need for standardization

Networking protocols describe how computers can communicate with each other.
Let's imagine a world before the Internet protocols existed, a world where one computer wants to send a message to another computer.
Computer A sends this 2-byte message:
01001000 01101001
That message represents the two letters "Hi" encoded into binary using the UTF-8 standard.
Unfortunately, computer B thinks that it's receiving a number and it interprets the message as the decimal number 18537.
Each of the computers may be following a protocol about how to communicate, but they are not following the same protocol, so their attempt at communication fails. 🙁
That's why standardization is so important for the technologies powering the Internet. When computers agree about the way in which they'll send messages to each other, they can understand the messages they receive.
For example, the two computers could agree to follow a simple protocol where first byte indicates the type of data that's being sent. A first byte of 00000000 indicates a number and a first byte of 00000001 indicates a string of letters.
Computer A can now send this message:
00000001 01001000 01101001
Computer B receives the message, checks the first byte to discover what type of data is in the message, and then successfully decodes the rest of the message.
The computers successfully communicate! 😀
Once this protocol is written up in a document and other network administrators agree that it is a sensible protocol, that protocol is considered a standard. Any two computers could follow that standard to communicate with each other, not just the original two computers.
The Internet protocols are quite a bit more complicated than that simple protocol, of course, as there are many details to document about the complex process of communication across different types of devices.

The importance of being open

An open (nonproprietary) protocol is one that is not owned by any particular company and not limited to a particular company's products.
The protocols in the Internet stack are open so that any computing device can follow the protocol to join the global network. You don't need to ask for permission to follow the protocols, you don't have to buy particular hardware to , and you don't need to pay money to the company that created the protocol. You simply need to read the standard and make sure the computing device follows that standard correctly.
By contrast, some communication protocols are proprietary. As an example, Skype is a voice calling application which uses its own proprietary protocol to send and receive voice calls. The Skype protocol is not publicly described anywhere and the Skype application is closed-source. That makes it very hard for anyone besides Microsoft (the owner of Skype) to develop applications that can send or receive Skype calls. 1
The creators of the Internet made the protocols open on purpose. Vint Cerf, co-author of the TCP/IP protocols, said this about their development:
"The theory we had is that if we just specify what the protocols would look like and what software you needed to write, anybody who wanted to build a piece of internet would do that and find somebody who would be willing to connect to them. Then the system would grow organically because it didn't have any central control. And that's exactly what happened." 2

Open standard specifications

For every protocol that is both standardized and open, there is publicly viewable document describing the protocol (often called a "specification").
🔍 Visit this 88-page-long HTTP specification and skim a few sections.
Was that specification as overwhelming for you as it was for me? Specifications are not written for the average web user. They're not even written for the average software developer. They are written for engineers that are developing new applications built on top of the protocol and need a deep understanding of how things should work.
Specifications can change over time. Sometimes there are minor errors that need to be fixed, but other times, major updates are needed to further clarify a behavior or describe a new feature. The official TCP specification was written in 1981, and has since accumulated 39 corrections and 4 multi-page specifications clarifying the protocol.
These days, the specifications for the Internet protocols are maintained by the Internet Engineering Task Force (IETF). The IETF is an open standards committee that comes up with refinements to existing protocols and proposes entirely new protocols. The committee is made up of representatives across the Internet industry and is open to participation by anyone who has opinions about how the Internet should work.
The languages of the World Wide Web are also open standards with online specifications. The HTML living standard is maintained by the WhatWG community. CSS has many specifications and is maintained by the W3C. JavaScript is based on the ECMAScript standard.
The Internet standards communities aim to create standards that reflect the diverse needs of the applications running on top of the Internet and document those standards in clear specifications that allow any computing device to communicate and collaborate online.
🤔 If you've developed webpages in HTML/CSS/JavaScript, what do you find difficult to do? If you could propose an extension to those languages that would make web development easier, what would it be?
🙋🏽🙋🏻‍♀️🙋🏿‍♂️Do you have any questions about this topic? We'd love to answer—just ask in the questions area below!

Want to join the conversation?

  • blobby green style avatar for user Gerard Havercroft
    HI guys. I will be posting this same question a few times. I'm someone with a history in agriculture looking to up/reskill myself as part of my own recovery from job loss and huge change of circumstance as a result of the pandemic. I'm self studying AP comuter science as I feel I'm out of touch with the rapid advance of technology and its role in everything we do. I won't necessarily take any exams pursue a direct career in the field. I'm just broadening my knowledge (also relearning algebra from the beginning and probably some other fields that khan academy offers). My question is: how are you guys looking to make the most out of khan academy? What online resources or books that expand on khan academy lessons do you find most useful. Are there sources for tests and exercises that help you reinforce what you learn. I'm computer literate at a very basic level so I feel I probably need all the additional help I can get. There's no bad suggestions!any help will be great. Thanks guys! happy studies.
    (27 votes)
    Default Khan Academy avatar avatar for user
    • leaf green style avatar for user Shane McGookey
      It is awesome to hear that you are pursuing continual learning Gerard, keep it up! When it comes to improving your technical skills, Khan Academy is a great place to start. Additional resources that I would recommend to supplement your learning are:

      1. YouTube
      2. MIT OpenCourseWare
      3. Publicly accessible university resources*
      4. Textbooks (more useful than you might imagine!)
      5. https://schoolhouse.world
      6. Desmos (for mathematics)

      * search a topic of interest and look for .edu sites from reputable universities.

      These are great resources to start with. The advent of the Internet has brought with it a myriad of new resources for education, which is fantastic for new learners and for those who want to return to learning.

      You had mentioned wanting exercises and practice questions to reinforce your learning; generally, textbooks will cover topics in digestible parts, followed by numerous end-of-chapter questions. Don't let those questions go unused! They are there for a reason, and can be a great way to reinforce your knowledge.
      (27 votes)
  • leaf red style avatar for user layaz7717
    What's the difference between different programming languages? Do they all do the same thing, just in different ways, or do they all have different purposes?
    (9 votes)
    Default Khan Academy avatar avatar for user
    • starky ultimate style avatar for user KLaudano
      Many programming languages excel at certain tasks. For example, C is good for low-level programming, Matlab is great for data manipulation and calculations, and Javascript is often used for website development. Certain programming languages are designed to be more powerful, (they can do a wider variety of things), whereas other languages are made to be more user-friendly.
      (21 votes)
  • blobby green style avatar for user JCbecker17
    How do new laptops, tablets, phones, etc., automatically know these protocols when we buy them? Do the manufacturers (Apple, Dell, Lenovo, Samsung, etc.) somehow preload them onto the devices? Also, if a protocol is updated/changed, how do all of the devices that use the protocol become aware of the change and behave accordingly?
    (11 votes)
    Default Khan Academy avatar avatar for user
    • leaf green style avatar for user Shane McGookey
      Protocol software commonly comes bundled with the Operating System when new devices are produced and distributed, as such software is considered essential to modern-day computing devices.

      If there is a change to the protocol (and thus the protocol software), then the protocol software will need to be updated - in a similar fashion to updating any other software when it sees changes, whether that be operating systems, games, or other application programs.
      (13 votes)
  • stelly blue style avatar for user aniketprasad123
    i think there is disadvantage with using open protocol since it is open, sending a personal data can stolen by someone else
    (1 vote)
    Default Khan Academy avatar avatar for user
    • leaf green style avatar for user sp
      the protocol is open, but that doesnt mean the data being sent is open. it only means anyone can access and can use the protocol instead of having to pay a company to use it. personal data sent over the internet can be encrypted using the HTTP/TLS protocols in the upper layers
      (27 votes)
  • blobby green style avatar for user Pipi
    What’s the consequence if someone does not follow the Internet protocol rules?
    (6 votes)
    Default Khan Academy avatar avatar for user
    • starky ultimate style avatar for user EmeraldMasterXD
      Other computers and servers will have a hard time communicating with your device. Internet protocol is how to specify binary numbers. Take a look at the example in the text. 01001000 01101001is the decimal number 18537, but the computer which is sending the message is trying to write the message 'hi'
      hope this helps
      (15 votes)
  • blobby green style avatar for user grothben000
    88 padges. wow.
    (6 votes)
    Default Khan Academy avatar avatar for user
    • male robot hal style avatar for user Abdelrahman
      Indeed, the HTML protocol specifications website provides a comprehensive and detailed resource for understanding the intricacies of the HTML protocol. With 88 pages of valuable information, this website is a testament to the complexity and sophistication of the technology that powers the web. Kudos to the developers and contributors for creating such a comprehensive and useful resource for web developers and enthusiasts alike. :)
      (4 votes)
  • leaf red style avatar for user layaz7717
    For lack of better words, how can a person "use" or "join" a network protocol? Are all network protocols set by ISPs? Or are some just defaults set by ISPs? Can an individual change which network protocol their router uses?
    (5 votes)
    Default Khan Academy avatar avatar for user
  • leafers tree style avatar for user Sean O'Connor
    This is pretty dope
    (5 votes)
    Default Khan Academy avatar avatar for user
  • winston default style avatar for user Jcim Grant
    Does the Open protocol development be used to help us with sending text messages?
    (3 votes)
    Default Khan Academy avatar avatar for user
    • male robot hal style avatar for user Abdelrahman
      Yes, open protocol development can certainly be used to help with sending text messages. In fact, there are already several open protocols that have been developed specifically for this purpose. One such protocol is the Short Message Peer-to-Peer (SMPP) protocol, which is widely used in the telecommunications industry for sending and receiving SMS messages.

      Open protocols like SMPP allow for interoperability between different systems and networks, making it easier for users to send text messages across different platforms and devices. Additionally, open protocols can provide greater flexibility and customization options, allowing developers to create more sophisticated messaging applications with features like group messaging, multimedia messaging, and message delivery tracking.
      (4 votes)
  • sneak peak yellow style avatar for user just coding coding coding
    can I delete all data and programs on my computer then create my own programs and protocols?
    (4 votes)
    Default Khan Academy avatar avatar for user