big data
complexity and tractability
network communication protocols.
The use of chatbots, generative AI, paraphrasing tools, or other tools that can automatically generate content is not permitted and material generated by these tools should not be submitted as part of the candidate’s work.
Resources (case studies and / or other information) will be provided, and the questions will refer to these. Candidates may use words, numerical workings, and diagrams in their responses to show their reasoning.
For network communication protocols, questions may cover:
the internet protocol suite and its four abstraction layers (application, transport, internet, and link)
application layer protocols - (HTTP / HTTPS)
transport layer protocols (TCP and UDP)
traffic analysis
network optimisation (e.g. queuing theory, predictive maintenance, patterns, anomalies, security threats)
encapsulation and de-encapsulation
security (SSL / TLS).
Teachers are encouraged to help their students to develop answering techniques to ensure they are able to respond clearly and concisely within the total recommended word limit.
Teachers are strongly encouraged to prepare students to be able to apply their understanding of computer science to unfamiliar contexts.
Teachers should prepare students to identify and articulate instances where overlap with various areas of computer science occurs, e.g. with artificial intelligence.
The Internet Engineering Task Force (IETF) is an open standards organization, which develops and promotes voluntary Internet standards, in particular the standards that comprise the Internet protocol suite (TCP/IP).
The International Standards Organisation (OSI) is a multinational organization that tries to standardize network communication protocols at the international level. OSI (Open System Interconnection) is a model that ISO put together as a networking communication standard.
The Internet Consortium for Assigned Names and Numbers (ICANN) controls the DNS hierarchy and the allocation of IP addresses
Application Layer: Manages communication between software applications and network services.
Transport Layer: Ensures reliable data transfer and manages data segmentation.
Network Layer: Handles routing data packets across networks using IP addresses.
Link Layer: Manages physical connections, local network communication, and hardware-level error handling.
TCP/IP Protocol Suite: The foundation of internet communication, including protocols like TCP, IP, UDP, and ICMP, ensuring reliable data transmission, addressing, and error handling.
DNS (Domain Name System): Resolves domain names to IP addresses, using protocols like UDP and TCP, and algorithms like iterative and recursive querying.
SSL/TLS (Secure Sockets Layer/Transport Layer Security): Encryption protocols that secure data transmitted over the internet, using algorithms like RSA and AES.
TCP
UDP
http/https
Also known as Transmission Control Protocol, breaking up data sent over networks into small container of data known as packets.
Packets can be as large as 1500 bytes. They contain many items of metadata, or data that contains information about other data. Items include sequence numbers, checksums, etc. [min 20B TCP header]
Sequence numbers allow packets that arrive out of order to be ordered correctly.
Checksums are like a unique fingerprint, used to verify that a received packet and a sent packet are the same.
Email commonly uses TCP. This is because TCP is reliable and secure, whilst sacrificing speed. Email does not require high speed, but reliability and security are important for ensuring the email is sent and that it is hard to read for attackers.
UDP (User Datagram Protocol)
Connectionless (No need to establish a connection prior to data transfer)
Relies on the receiver to sort out the data
Packets can be duplicated or out of order
Minimum security (only using checksums)
Has a larger byte capacity (65535B) [min 8B UDP header]
UDP is used for streaming softwares such as video games, and live online communication services, such as zoom and discord voice chats since they require larger packets to be sent.
There are advantages and disadvantages of connectionless (eg UDP) and connection-oriented (eg TCP) protocols. The difference between connectionless and connection-oriented communication breaks down as follows:
Stream-Based: In connection-based protocols, like TCP (Transmission Control Protocol), data is transmitted as a continuous stream of bytes. This means the protocol does not inherently define a structure for the data it transports; it simply delivers bytes in the same order they were sent.
No Message Boundaries: Because the data is treated as a stream, the receiving application must define how to interpret and separate this data into meaningful chunks (e.g., messages, records). The protocol does not inherently preserve or enforce any boundaries between different pieces of data.
Example - TCP: TCP, as a connection-based protocol, establishes a connection before data transmission, providing a reliable, ordered stream of bytes. This is useful for applications that need data to arrive in the correct order and without loss, like web browsing, email, and file transfers.
Message-Based: In connectionless protocols, such as UDP (User Datagram Protocol), data is sent in discrete units called messages or datagrams. Each datagram is self-contained and includes all the information needed to deliver it to the destination.
Message Boundaries: Each message or datagram is a separate, distinct unit of data, and the protocol preserves the boundaries between these units. This means that each datagram is delivered in its entirety and independently of others.
Example - UDP: UDP is a connectionless protocol where each packet of data is sent individually and independently. It does not guarantee delivery, order, or error correction, making it suitable for applications like live video streaming or online gaming, where speed is more critical than reliability.
From Quora:
Streaming apps implement their own end-to-end control on top of UDP. They need more than just packet order; they need timing control (obviously). One of the possible solutions is the Real Time Transport protocol, to be used on top of UDP. But there are other mechanisms, like HTTP Streaming, adaptive streaming (DASH), and a lot of proprietary solutions.
According to my knowledge if an internet application has to be designed, we should use either a connection-oriented service or connection-less service, but not both.
Internet's connection oriented service is TCP and connection-less service is UDP, and both resides in the transport layer of Internet Protocol stack.
Internet's only network layer is IP, which is a connection-less service. So it means whatever application we design it eventually uses IP to transmit the packets.
Connection-oriented services use the same path to transmit all the packets, and connection-less does not.
Therefore my problem is
if a connection oriented application has been designed, it should transmit the packets using the same path. But IP breaks that rule by using different routes.So how do both TCP and IP work together in this sense? It totally confuses me.
You, my friend, are confusing the functionality of two different layers.
TCP is connection oriented in the sense that there's a connection establishment, between the two ends where they may negotiate different things like congestion-control mechanism among other things.
The transport layer protocols' general purpose is to provide process-to-process delivery meaning that it doesn't know anything about routes; how your packets reach the end system is beyond their scope, they're only concerned with how packets are being transmitted between the two end PROCESSES.
IP, on the other hand, the Network layer protocol for the Internet, is concerned with data-delivery between end-systems yet it's connection-less, it maintains no connection so each packet is handled independently of the other packets.
Leaving your system, each router will choose the path that it sees fit for EACH packet, and this path may change depending on availability/congestion.
How does that answer your question?
TCP will make sure packets reach the other process, it won't care HOW they got there.
IP, on the other hand, will not care if they reach the other end at all, it'll simply forward each different packet according to what it sees most fit for a particular packet.
To overcome TCP and UDP limitations, a combined approach is utilized.
TCP secures connections for tasks like retrieving graphical data (websites).
UDP serves real-time functions such as voice calls and live updates (e.g., Discord).
As networks grow, scalability becomes challenging, straining protocols designed for smaller scales.
Solutions like CIDR improve IP address allocation, and IPv6 adoption expands address space.
Security vulnerabilities can lead to breaches and unauthorized access.
Protocols like TLS and IPSec provide encryption and authentication, while updates address vulnerabilities.
Different protocols may not seamlessly work together, causing communication issues.
Standardization and gateways bridge gaps between protocols, ensuring compatibility.
High data traffic causes network congestion, leading to performance degradation.
Quality of Service (QoS) prioritizes critical traffic, and load balancing prevents overloads.
Protocols must ensure reliable data transmission despite network failures.
Redundancy and failover mechanisms like BGP ensure fault tolerance.
Configuring protocols, especially in large networks, can be complex.
Automated tools like DHCP simplify IP allocation, while SDN centralizes management.
Real-time applications like VoIP face latency challenges.
QoS mechanisms minimize latency for critical applications.
IoT devices' diverse requirements necessitate accommodating various device types and data.
IoT-specific protocols like MQTT and CoAP facilitate lightweight communication.
Evolving technology demands adaptable protocols.
Ongoing research leads to new protocols and enhancements.
Balancing the advantages and challenges of network communication protocols is essential for optimizing modern communication. Integrating the strengths of protocols like TCP and UDP, while addressing issues like security and scalability, contributes to efficient and effective data transmission across diverse contexts.
TCP breaks data into packets to prevent congestion in a single lane.
DOS attacks flood clients with packets, overwhelming the receiver and disabling it.
TCP operates through a three-way handshake, susceptible to SYN flood attacks.
TCP's larger packet size leads to latency in real-time applications like videoconferencing.
UDP is not designed for reliability, but its smaller packets make it more suitable for fast communication.
Using UDP for email communication risks information leakage and Man-in-the-Middle attacks.
UDP's lower security measures and lack of ordered packets can compromise email security.
Unordered packets in UDP can result in unintelligible messages.
UDP's lack of packet expectations allows visual observation of packet loss in videoconferencing.
Audio and image cuts in videoconferencing indicate packet loss.
TCP addresses security but struggles with latency.
Combining the strengths of both protocols could lead to more effective communication strategies.
In gaming environments, network communication protocols play a crucial role.
Low latency and real-time responsiveness are critical for online gaming.
Protocols like UDP are favored for gaming due to their speed, but reliability concerns exist.
The 5 layer network model is the TCP/IP model.
Goes into detail with UDP and TCP protocols.
From: APNIC - Internet protocols are changing
When the Internet started to become widely used in the 1990s, most traffic used just a few protocols: IPv4 routed packets, TCP turned those packets into connections, SSL (later TLS) encrypted those connections, DNS named hosts to connect to, and HTTP was often the application protocol using it all.
For many years, there were negligible changes to these core Internet protocols.
As a result, network operators, vendors, and policymakers that want to improve (and sometimes, control) the Internet have adopted a number of practices based upon the official protocol to tweak things, whether intended to debug issues, improve quality of service, or impose policy.
Now, significant changes to the core Internet protocols are underway. While they are intended to be compatible with the Internet at large (since they won’t get adoption otherwise), they might be disruptive to those who have taken liberties with undocumented aspects of protocols or made an assumption that things won’t change.
There are a number of factors driving these changes.
The limits of the core Internet protocols have become apparent, especially regarding performance. Because of structural problems in the application and transport protocols, the network was not being used as efficiently as it could be, leading to end-user perceived performance (in particular, latency).
This translates into a strong motivation to evolve or replace those protocols because there is a large body of experience showing the impact of even small performance gains.
The ability to evolve Internet protocols — at any layer — has become more difficult over time, largely thanks to the unintended uses by networks discussed above. For example, HTTP proxies that tried to compress responses made it more difficult to deploy new compression techniques; TCP optimization in middleboxes made it more difficult to deploy improvements to TCP.
Finally, we are in the midst of a shift towards more use of encryption on the Internet. Encryption is one of best tools we have to ensure that protocols can evolve and many protocols have been developed to insist on encryption.
You can read about these further by going to the APNIC site referenced above.
A possible improvement of the UDP and TCP protocols would be the creation of something save, reliable, good carrying capacity and that is fast. Realistically speaking this would be almost impossible to achieve with the current technology.
Figuratively speaking we could create a protocol based in UDP in which the header would be heavier, but allowing for a greater security and stability, and the total amount of bytes carried would probably decrease, but if balanced correctly we could find a middle ground where we could have a good reliability and delivery of packets, decent speed and a good amount of bytes stored. This could be used for things that require packets to arrive uncorrupted and in order yet maintaining a relatively good speed.
A problem of UDP is done incorrectly is that since it has a lack of security protocols it means it could be spoofed easier than some other protocols. One example of such forms of illegal activity is the UDP denial-of-service attack (DDoS) more specifically called a UDP flood.
Since the UDP does not require a handshake process this means that the hacker can send a great amount of packets to a device to overwhelm it. Leading to a forced “server shutdown” as it can't process that much information quickly.
Therefore, by the creation of a less secure yet faster method of package transfer it also created a breeding ground for exploitation of mechanics.
From NIST - The University of Delhi
Determining the best path involves the evaluation of multiple paths to the same destination network and selecting the optimum or shortest path to reach that network. Whenever multiple paths to the same network exist, each path uses a different exit interface on the router to reach that network.
The best path is selected by a routing protocol based on the value or metric it uses to determine the distance to reach a network. A metric is the quantitative value used to measure the distance to a given network. The best path to a network is the path with the lowest metric.
Dynamic routing protocols typically use their own rules and metrics to build and update routing tables. The routing algorithm generates a value, or a metric, for each path through the network. Metrics can be based on either a single characteristic or several characteristics of a path. Some routing protocols can base route selection on multiple metrics, combining them into a single metric.
The following lists some dynamic protocols and the metrics they use:
Routing Information Protocol (RIP): Hop count
Open Shortest Path First (OSPF): Cisco routers use a cost based on cumulative bandwidth from source to destination
Enhanced Interior Gateway Routing Protocol (EIGRP): Bandwidth, delay, load, reliability