1. a. In order to get access to get access to the internet, all you require is a modem, a wireless router, a computer or smartphone, and an internet connection from an internet service provider. With the help of the internet, you can freely use these softwares like Outlook, Gmail, Whatsapp, Facebook, Twitter. b. 2. a. There are a number of roadblocks that companies face when developing their web applications. Some of the most common reasons are the present of slow server, poorly written code and lack of load balancing. - Slow servers: the reason for it could be your website is hosted in the platform where there are so many other websites working at the same time. You can address this issue by requesting for a dedicated server for your own. - Poorly written code: this could refer to inefficient code, memory leaks, or synchronization issues. Old versions of software or integrated legacy systems can also take a toll on your website’s performance. You can tackle this roadblock by making your developers utilize the optimal coding practice. - Lack of load balancing: When new visitors of the site are assigned incorrectly, it can drown out your server even if the system is under capacity. These issues can cause a slow response time, especially if your site is receiving too many requests. b. These are 4 types of delays: - The time taken to transmit a packet from the host to the transmission medium is called Transmission delay. - After the packet is transmitted to the transmission medium, it has to go through the medium to reach the destination. Hence the time taken by the last bit of the packet to reach the destination is called propagation delay. - Let the packet is received by the destination, the packet will not be processed by the destination immediately. It has to wait in a queue in something called a buffer. So, the amount of time it waits in queue before being processed is called queueing delay. - Now the packet will be taken for the processing which is called processing delay. 3. a. Network security encompasses all the steps taken to protect the integrity of a computer network and the data within it. Network security is important because it keeps sensitive data safe from cyber-attacks and ensures the network is usable and trustworthy. It also prevents cybercriminals from gaining access to valuable data and sensitive information. When hackers get hold of such data, they can cause a variety of problems, including identity theft, stolen assets and reputational harm. c. These are the 4 types: - DDoS (distributed denial of service) attacks involve deploying sprawling networks of botnets — malware-compromised devices linked to the internet. These bombards and overwhelm enterprise servers with high volumes of fraudulent traffic. - Man-in-the-middle attacks network attacks occur when malicious parties intercept traffic conveyed between networks and external data sources or within a network. In most cases, hackers achieve man-in-the-middle attacks via weak security protocols. - Unauthorized access refers to network attacks where malicious parties gain access to enterprise assets without seeking permission. Such incidences may occur due to weak account password protection, unencrypted networks, insider threats that abuse role privileges, and the exploitation of inactive roles with administrator rights. - Unmoderated user data inputs could place organizational networks at risk of SQL injection attacks. Under the network attack method, external parties manipulate forms by submitting malicious codes in place of expected data values. They compromise the network and access sensitive data such as user passwords. References: a. There are 5 of them: - Application layer: As suggested by its name, the application layer is responsible for communication between applications running on two different end systems. A message or data transferred from one end is readable for the corresponding application on the other end. These applications include web browsers, email clients, etc. - Transport layer: On the sending end, the transport layer is responsible for collecting the application layer message from the relevant end-point and transferring it to the network layer to be communicated over the network. The receiving end collects the message from the network layer and passes it on to the relevant end-point where the application layer can access that message. - Network layer: The network layer is responsible for transferring data from one system to another on the network. The transport layer passes a segment and the destination address to the network layer. Then, it is the responsibility of the network layer to transfer the data to the destination end-system over the network. This layer also takes care of the routing of data on intermediate routers. - - Link layer: When a packet is being transferred over the internet, several intermediate devices are between the two end systems. These devices may be routers, switches, or other computers. The link layer is responsible for communication between one device and its immediate neighbor. Physical layer: The physical layer is responsible for breaking the data frame into bits, converting it into a form that can be transmitted over the physical communication line, and transferring it. b. The reasons for it are: - Layering of protocols provides well-defined interfaces between the layers, so that a change in one layer does not affect an adjacent layer. - The protocols of a network are extremely complicated and designing them in layers makes their implementation more feasible. c. 4. a. - Throughput, sometimes called data transfer rate, is the amount of data that travels across a network, from a source to a destination, over a given period. - Bandwidth is a measure of the amount of data that could travel across a network, from a source to a destination, over a given period. In order to compare the differences between them, you need to consider these aspects: b. - Purposes: the purpose of throughput is to measure data while the purpose of bandwidth is to a measure network's capacity. Let’s see the example of water running through a tube, the width of the tube is the bandwidth and the volume of water travelling in the tube is throughput. - Actual data transmission: While both throughput and bandwidth use bits per second as a unit of measurement, throughput is a practical metric, measuring actual packet delivery. In contrast, bandwidth is a theoretical metric, measuring potential packet delivery. - Data transmission speed: A high throughput reflects a high-speed network, as it means that users are receiving large amounts of data per second. A high bandwidth enables a high-speed network, as it allows for a network to transfer large amounts of data at once. Client-Server Network: this is a network model where clients and servers are differentiated. Specific servers and clients are present all the time and servers respond to the requests made by clients. Peer-to-peer Network(P2P): there is no clear distinction between clients and servers in this model, each and every node is itself client and server. In p2p network, Each and every node can do both request and respond for the services. c. Circuit Switching: a communication method where two devices establish a path, or circuit before the data transmission begins. The circuit remains dedicated to the communication for the duration of the session, and no other devices can use it while the session is in progress. Circuit switching is commonly used in voice communication and some types of data communication. Packet Switching: a communication method where data is divided into smaller units called packets and transmitted over the network. Each packet contains the source and destination addresses, as well as other information needed for routing. d. The main difference between TCP and UDP is while TCP is a connection-based protocol, UDP is a connectionless. Moreover, TCP has a more reliable connection, the data transfers quite slow compared to UDP being less reliable. Once a message is sent, TCP makes sure all the data and its entirety are delivered. On the other hand, UDP may cost data loss during its delivery. e. The transmission delay is the amount of time required for the router to push out the packet. Transmission delay depends on the length of the packet and bandwidth of the network. The formula can be calculated as follows – L / R where L is length of the packet and R is transmission rate. The propagation delay, is the time it takes a bit to propagate from one router to the next. A propagation delay depends on the distance and propagation speed. The formula can be calculated as follows – D / S where D is the distance between sender and receiver over a link, and S is the transmission speed. f. Routing is a task of moving data from one device to another. In most cases, routing is performed by a networking device called a router. Forwarding is the process of collecting data from one device and sending it to another device. This is a difference from routing as it does not manage to moving data across devices. 6. a. The transmission delay (at source) is L/R = (30 / 10) = 3s. The transmission delay (at router) is L/R = (30 / 10) = 3s. The total transmission delay is 2L / R = 6s b. The end-to-end delay is t = N(d(t) + d(p) + d(processing) + d(q)) = 1(0.003 + D/S + 0 + 0) = 6 + (10.10^6 m)/ (2.10^8 m/s) = 6.05ms c. 9. References Delays in computer network (2023) GeeksforGeeks. Available at: https://www.geeksforgeeks.org/delays-in-computer-network/ (Last accessed: 10 May 2023). What is a network attack? (2022) Forcepoint. Available at: https://www.forcepoint.com/cyberedu/networkattack#:~:text=There%20are%20two%20main%20types,%2C%20encrypting%2C%20or% 20damaging%20data. (Last accessed: 10 May 2023). What is the five-layer internet protocol stack? (no date) Educative. Available at: https://www.educative.io/answers/what-is-the-five-layer-internet-protocol-stack (Last accessed: 12 May 2023). What is protocol layering (no date) Tutorials Point. Available at: https://www.tutorialspoint.com/what-is-protocollayering#:~:text=Reasons&text=Layering%20of%20protocols%20provides%20well,makes %20their%20implementation%20more%20feasible. (Last accessed: 22 May 2023). Difference between circuit switching and packet switching (2023) GeeksforGeeks. Available at: https://www.geeksforgeeks.org/difference-between-circuit-switching-and-packetswitching/ (Last accessed: 22 May 2023). Gorman, B. (2023) TCP VS UDP: What’s the difference and which protocol is better? Available at: https://www.avast.com/c-tcp-vs-udpdifference#:~:text=The%20main%20difference%20between%20TCP,reliable%20but%20 works%20more%20quickly. (Last accessed: 18 May 2023). baeldung, W. by: (2023) Propagation delay vs transmission delay, Baeldung on Computer Science. Available at: https://www.baeldung.com/cs/propagation-vs-transmission-delay (Last accessed: 20 May 2023). Datta, W. by: S. (2023) Routing vs. forwarding vs. switching, Baeldung on Computer Science. Available at: https://www.baeldung.com/cs/routing-vs-forwarding-vs-switching (Last accessed: 22 May 2023). Julien, J. (2023) Web application performance: 7 common problems and how to solve them, Stackify. Available at: https://stackify.com/web-application-problems/ (Last accessed: 22 May 2023).