Network Protocols

Connecting devices and
users over the network

Network protocols define the end-to-end processes of timely, secure and managed data or network communication. Read all network protocols related articles here.

HTTP: The internet king

The Hypertext Transfer Protocol, known as HTTP, is an application protocol for transmitting hypermedia documents and resources. HTTP was designed within the framework of the Internet protocol suite, and it is the foundation of any data communication on the web. If you’re watching an online video, sharing photos with friends, or you’re just surfing the web, you’re using HTTP.

However, as internet users, we are more familiar with HTTPS (Hypertext Transfer Protocol Secure), which is basically the secure version of HTTP, where the communications between the browser (or any other client) and the server are encrypted using TLS.

HTTP has been evolving over time. First, there was HTTP/1.1 that introduced persistent connections, caching and chunked transfers. Those added features improved significantly the performance of HTTP/1.0 when compared with previous versions. This performance improvement was largely caused by reusing connections between HTTP requests to avoid a 3-way handshake of TCP every call.

Then HTTP/2 arrived, bringing along multiplexing, header compression and server push capabilities. It was not expected that multiplexing would dramatically improve performance. Instead, it causes a substantial reduction in the number of connections in the server, which is an imperative factor to scale. 

HTTP/3 will soon become the third official version of the HTTP protocol. Although very similar to HTTP/2, it offers some significant advancements and changes to the underlying method of utilization. In particular, HTTP/3 is based on a new transport protocol, QUIC, which ensures faster connection establishment between client and server.

Still, HTTP has a fundamental problem for mobile apps (and wireless communication, in general): it fails to cope with the natural instability of wireless links, like WiFi, 3G, 4G or even the upcoming 5G. Learn here why.

TCP & UDP: The standards for transport

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite, alongside the Internet Protocol (IP). The entire suite is commonly referred to as TCP/IP.

TCP/IP specifies how data is exchanged over the internet by providing end-to-end communications that identify how it should be broken into packets, addressed, transmitted, routed and received at the destination (source).

TCP also provides reliable and error-checked delivery, guaranteeing that all packets received will be identical and in the same order as those sent.

standardprotocolsThe User Datagram Protocol (UDP) is an alternative communications protocol to TCP, although it also runs on top of Internet Protocol (IP). 

In contrast with TCP, UDP just sends the packets, which means that it deals with much lower bandwidth overhead and latency - but packets may take different paths between sender and receiver, which means that some packets may even be lost or received out of order. 

In addition, while TCP provides error and flows control, UDP does not support such mechanisms.

These are some of the reasons why UDP is seen as a non-reliable protocol or even an insecure connection, even though we do not quite agree. UDP can be really useful for establishing low-latency and loss-tolerating connections between applications on the internet, such as gaming, for example.

QUIC: The new radical protocol

QUIC is a new transport which reduces latency compared to that of TCPOn the surface, QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP.

gcp-cloud-cdn-performance-2

In a nutshell, QUIC aims to be nearly equivalent to a TCP connection but with much-reduced latency. Does QUIC achieve this goal? We believe it does, but just with incremental impact. Learn here why QUIC is not the next big thing.

As a context: QUIC was born from “Google QUIC” (known as “gQUIC”), which was originally designed by Google engineers in 2012. Three years later it was adopted by the IETF (Internet Engineering Task Force) for standardization.

Since then, it has been highly improved in open collaboration by many organizations and individuals. In fact, QUIC has already diverged so much from gQUIC that it is now seen as a separate protocol.

Bolina: A new protocol for wireless communication

Bolina is a new end-to-end protocol specially designed for wireless communication, by Codavel. It maintains high speed irrespective of latency and packet loss since it controls the network end-to-end.

performance-thumbWhat makes Bolina unique is that it was built on top of network coding techniques, which mixes original data packets into coded transmissions. This approach enables revisiting the role of feedback information. You can learn more about it here.

Bolina, currently on its beta version, can be up to 2 times faster than standard protocols. See the performance report here or evaluate it yourself.

TLS 1.3: The security king

tls1.3

TLS stands for Transport Layer Security and it is the successor of the SSL - Secure Sockets Layer. This protocol was designed to provide communications security over a network (yes, it is the S in HTTPS!). Every time we access Gmail, access our bank account or check our friends’ Instagram photos, we are using the security provided by TLS.

TLS 1.3 is the latest version of this protocol and brings major benefits and some vulnerabilities that every developer or project manager should be aware of. We have explored here TLS 1.3 major benefits and vulnerabilities, take a look!

However, it is undeniable that TLS 1.3, besides providing high privacy improvements, ensures better performance for HTTPS, making it faster for every user and every device. In theory, TLS 1.3 makes page load times significantly faster for mobile devices. Here's our experience measuring TLS 1.3 performance.

Discover Bolina protocol

Bolina is a new end-to-end protocol specially designed for wireless communication. It can make mobile apps up to 2 times faster.

Learn more