From 8c5810bd05678ff0db22ecb11408247a7d510037 Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Tue, 3 Oct 2023 22:15:15 +0530 Subject: [PATCH 1/8] Added How a system boots up. This is corresponding to the issue 642. The file added is "OS_Boot_Process.md" in "Operating Systems" directory. --- Operating Systems/OS_Boot_Process.md | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Operating Systems/OS_Boot_Process.md diff --git a/Operating Systems/OS_Boot_Process.md b/Operating Systems/OS_Boot_Process.md new file mode 100644 index 00000000..2a846b33 --- /dev/null +++ b/Operating Systems/OS_Boot_Process.md @@ -0,0 +1,67 @@ +# How the Computer Boots Up + +### Following steps takes place when a computer boots up : +Step 1. You turn on the Desktop/Laptop + +Step 2. POST (Power On Self Test) takes place. + +Step 3. BIOS (Basic Input Output Services) program is loaded. + +Step 4. The BIOS loads the designated boot sector of the boot drive into the RAM (Random Access Memory). + +### What is POST +POST, which stands for Power-On Self-Test, is a diagnostic process that a computer's central processing unit (CPU) and motherboard go through when the computer is first powered on. Its primary purpose is to check and verify that essential hardware components, such as the CPU, RAM (Random Access Memory), storage devices, and other critical components, are functioning correctly. + +Here's an overview of how POST works: + +1. Power-On: When you turn on a computer, the power supply sends electricity to the various components, and the CPU starts executing instructions from the computer's firmware or BIOS (Basic Input/Output System). + +2. Initialization: The BIOS initializes essential system components, such as the CPU, RAM, and motherboard. It configures hardware settings and checks for the presence of peripherals like a keyboard, mouse, and storage devices. + +3. Memory Test: One of the critical tasks of POST is to perform a memory (RAM) test. It checks for errors in the system's RAM, ensuring that it is functioning correctly. Any errors detected during this phase are typically reported to the user in the form of beep codes or error messages. + +4. Hardware Detection: POST also detects and checks other hardware components, such as the hard drive or SSD, graphics card, and any connected devices. It verifies that these components are operational. + +5. POST Beep Codes: In case of errors or issues during the POST process, many motherboards are equipped with a series of beep codes that can help diagnose the problem. The number and pattern of beeps can provide information about the specific issue. + + + +6. Boot Device Detection: After successfully completing the initial checks, POST identifies the bootable storage devices, such as the hard drive or SSD, and determines the order in which they should be used for booting the operating system. + +7. Handoff to Bootloader: Once the POST process is complete and all essential hardware components are verified, the BIOS hands off control to the operating system's bootloader, which initiates the loading of the operating system itself. + +POST is an essential part of the computer startup process, as it helps ensure that the hardware components are in good working order before the operating system takes control. If POST encounters critical errors that prevent the computer from starting, it will typically provide error codes or messages to help diagnose and resolve the issue. + +### BIOS +BIOS stands for Basic Input/Output System. It is a fundamental software component that exists in a computer's motherboard firmware. BIOS serves as the interface between the computer's hardware components and the operating system (OS). Its primary role is to initialize and control hardware during the boot-up process and provide low-level functions for the operating system. + +Here are some key functions and characteristics of the BIOS: + +1. Initialization: When you turn on your computer, the BIOS is the first software that runs. It initializes essential hardware components, such as the central processing unit (CPU), memory (RAM), storage devices (hard drives or SSDs), and input/output devices (keyboard, mouse, etc.). + +2. Bootstrap Loader: The BIOS contains a small program called the "bootstrap loader" or "bootloader." This program is responsible for locating and loading the operating system's kernel from the bootable storage device (e.g., hard drive, SSD, USB drive) into memory, allowing the operating system to start running. + +3. Configuration: BIOS provides a user-accessible interface (often accessed by pressing a specific key during the boot process, like F2 or Del) that allows users to configure various hardware settings. These settings can include CPU clock speed, system time and date, boot device order, and more. + +4. Security: BIOS can also include security features, such as password protection and secure boot options, to prevent unauthorized access to the system and ensure that only trusted operating system components are loaded during startup. + +5. Error Handling: During the Power-On Self-Test (POST) phase (part of the boot process), the BIOS checks the hardware components for errors. If any critical hardware errors are detected, the BIOS may provide error codes or messages to help diagnose the problem. + +It's worth noting that in recent years, the BIOS has been largely replaced by a more modern firmware called UEFI (Unified Extensible Firmware Interface) in many computers. UEFI offers enhanced features, improved security, and a more user-friendly interface compared to traditional BIOS. However, the terms "BIOS" and "UEFI" are often used interchangeably by many people, as UEFI still serves the same fundamental purpose of initializing and controlling hardware during the boot process. + +### UEFI vs BIOS +UEFI (Unified Extensible Firmware Interface) and BIOS (Basic Input/Output System) are both firmware interfaces that serve as the bridge between a computer's hardware and its operating system. However, there are several key differences between UEFI and BIOS: + +1. Boot Process: + + **BIOS**: BIOS follows a legacy boot process that involves a Master Boot Record (MBR) and a 16-bit boot loader. It has limitations on the size of bootable drives and partitions. + + **UEFI**: UEFI uses a modern boot process that supports the GUID Partition Table (GPT), which allows for larger drive capacities and more partitions. UEFI also supports Secure Boot, which helps prevent unauthorized code from running during the boot process. + +2. Initialization: + + **BIOS**: BIOS initializes hardware sequentially, which can lead to longer boot times, especially on systems with multiple components. + + **UEFI**: UEFI can initialize hardware in parallel, reducing boot times by taking advantage of modern multi-core processors. + +Both of them serves the same purpose more or less. But UEFI is more modern and advanced than BIOS. It provides more features and better hardware compatibility than BIOS. \ No newline at end of file From eaf44af6fcc31a4981752cb6a26c5342fd464143 Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Tue, 3 Oct 2023 23:29:29 +0530 Subject: [PATCH 2/8] renamed OS_Boot_Process.md to os_boot_process.md and added its reference to readme.md --- Operating Systems/{OS_Boot_Process.md => os_boot_process.md} | 0 Operating Systems/readme.md | 3 +++ 2 files changed, 3 insertions(+) rename Operating Systems/{OS_Boot_Process.md => os_boot_process.md} (100%) diff --git a/Operating Systems/OS_Boot_Process.md b/Operating Systems/os_boot_process.md similarity index 100% rename from Operating Systems/OS_Boot_Process.md rename to Operating Systems/os_boot_process.md diff --git a/Operating Systems/readme.md b/Operating Systems/readme.md index 291a1ee0..96e88aac 100644 --- a/Operating Systems/readme.md +++ b/Operating Systems/readme.md @@ -175,6 +175,9 @@ Earliest deadline first scheduling assigns priorities dynamically according to Unlike rate-monotonic scheduling, EDF scheduling does not require that processes be periodic, nor must a process require a constant amount of CPU time per burst. The only requirement is that a process announces its deadline to the scheduler whenever it becomes runnable. The appeal of EDF scheduling is that it is theoretically optimal--theoretically, it can schedule processes so that each process meets its deadline requirements and CPU utilization is at 100 percent. In practice, however, it is impossible to achieve this level of CPU utilization due to the cost of context switching between processes and interrupt handling. +## How a system boots? +[Operating system booting process](https://github.com/shhossain/computer_science/tree/0a8a043c20a394fb8dadb6d1303c13eee2816f17/Operating%20Systems/os_boot_process.md) + ## References and related Resources [Operating System collection](https://github.com/Francesco601/BEST-Operating-System-Resources) From 730e9ca818d9074f5a1087441cb5c8a756979375 Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Tue, 3 Oct 2023 23:31:47 +0530 Subject: [PATCH 3/8] corrected the reference --- Operating Systems/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Operating Systems/readme.md b/Operating Systems/readme.md index 96e88aac..b465d3e1 100644 --- a/Operating Systems/readme.md +++ b/Operating Systems/readme.md @@ -176,7 +176,7 @@ Earliest deadline first scheduling assigns priorities dynamically according to Unlike rate-monotonic scheduling, EDF scheduling does not require that processes be periodic, nor must a process require a constant amount of CPU time per burst. The only requirement is that a process announces its deadline to the scheduler whenever it becomes runnable. The appeal of EDF scheduling is that it is theoretically optimal--theoretically, it can schedule processes so that each process meets its deadline requirements and CPU utilization is at 100 percent. In practice, however, it is impossible to achieve this level of CPU utilization due to the cost of context switching between processes and interrupt handling. ## How a system boots? -[Operating system booting process](https://github.com/shhossain/computer_science/tree/0a8a043c20a394fb8dadb6d1303c13eee2816f17/Operating%20Systems/os_boot_process.md) +[Operating system booting process](Operating Systems/os_boot_process.md) ## References and related Resources [Operating System collection](https://github.com/Francesco601/BEST-Operating-System-Resources) From cd03d59aba97073c7eb6cee689818de4bfd26a65 Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Tue, 3 Oct 2023 23:33:16 +0530 Subject: [PATCH 4/8] corrected the reference link to os_boot_process.md in readme.md --- Operating Systems/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Operating Systems/readme.md b/Operating Systems/readme.md index b465d3e1..7e756da9 100644 --- a/Operating Systems/readme.md +++ b/Operating Systems/readme.md @@ -176,7 +176,7 @@ Earliest deadline first scheduling assigns priorities dynamically according to Unlike rate-monotonic scheduling, EDF scheduling does not require that processes be periodic, nor must a process require a constant amount of CPU time per burst. The only requirement is that a process announces its deadline to the scheduler whenever it becomes runnable. The appeal of EDF scheduling is that it is theoretically optimal--theoretically, it can schedule processes so that each process meets its deadline requirements and CPU utilization is at 100 percent. In practice, however, it is impossible to achieve this level of CPU utilization due to the cost of context switching between processes and interrupt handling. ## How a system boots? -[Operating system booting process](Operating Systems/os_boot_process.md) +[Operating system booting process](os_boot_process.md) ## References and related Resources [Operating System collection](https://github.com/Francesco601/BEST-Operating-System-Resources) From f9f1f05683281f80f269ab563c57a32b48883be7 Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Tue, 3 Oct 2023 23:35:14 +0530 Subject: [PATCH 5/8] added description also to readme.md file for os bootup prcess --- Operating Systems/readme.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Operating Systems/readme.md b/Operating Systems/readme.md index 7e756da9..aee958af 100644 --- a/Operating Systems/readme.md +++ b/Operating Systems/readme.md @@ -176,6 +176,17 @@ Earliest deadline first scheduling assigns priorities dynamically according to Unlike rate-monotonic scheduling, EDF scheduling does not require that processes be periodic, nor must a process require a constant amount of CPU time per burst. The only requirement is that a process announces its deadline to the scheduler whenever it becomes runnable. The appeal of EDF scheduling is that it is theoretically optimal--theoretically, it can schedule processes so that each process meets its deadline requirements and CPU utilization is at 100 percent. In practice, however, it is impossible to achieve this level of CPU utilization due to the cost of context switching between processes and interrupt handling. ## How a system boots? +### Following steps takes place when a computer boots up : +Step 1. You turn on the Desktop/Laptop + +Step 2. POST (Power On Self Test) takes place. + +Step 3. BIOS (Basic Input Output Services) program is loaded. + +Step 4. The BIOS loads the designated boot sector of the boot drive into the RAM (Random Access Memory). + +To read more in details you can refer to the following. + [Operating system booting process](os_boot_process.md) ## References and related Resources From 2e90de8aa1f3e4f1e62cc6f45a2613cb8ab5a09a Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Wed, 4 Oct 2023 00:48:35 +0530 Subject: [PATCH 6/8] Added Cache associated with CPU section and comparison between RAM and Cache --- Registers Cache and RAM/readme.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Registers Cache and RAM/readme.md b/Registers Cache and RAM/readme.md index d4128d95..793435e1 100644 --- a/Registers Cache and RAM/readme.md +++ b/Registers Cache and RAM/readme.md @@ -37,6 +37,24 @@ When a cache client attempts to access data, it first checks the cache. If the d Requested data that isn't found in the cache -- referred to as a cache miss -- is pulled from main memory and copied into the cache. How this is done, and what data is ejected from the cache to make room for the new data, depends on the caching algorithm, cache protocols and system policies being used. +## Cache associated with CPU +Data in primary memory can be accessed faster than secondary memory but still, access times of primary memory are generally in a few microseconds, whereas the CPU is capable of performing operations in nanoseconds. Due to the time lag between accessing data and acting on data performance of the system decreases as the CPU is not utilized properly, it may remain idle for some time. In order to minimize this time gap new segment of memory is Introduced known as Cache Memory. + +### Benefits +1. **Faster access**: Faster than main memory. It resides closer to CPU , typically on same chip or in close proximity. Cache stores subset of data and instruction. +2. **Reducing memory latency**: Memory access latency refers to time taken for processes to retrieve data from memory. Caches are designed to exploit principle of locality. +3. **Lowering bus traffic**: Accessing data from main memory involves transferring it over system bus. Bus is shared resource and excessive traffic can lead to congestion and slower data transfers. By utilizing cache memory , processor can reduce frequency of accessing main memory resulting in less bus traffic and improves system efficiency. +4. **Increasing effective CPU utilization**: Cache memory allows CPU to operate at a higher effective speed. CPU can spend more time executing instruction rather than waiting for memory access. This leads to better utilization of CPU’s processing capabilities and higher overall system performance. +5. **Enhancing system scalability**: Cache memory helps improve system scalability by reducing impact of memory latency on overall system performance. + +### Types of cache +**L1 or Level 1 Cache**: It is the first level of cache memory that is present inside the processor. It is present in a small amount inside every core of the processor separately. The size of this memory ranges from 2KB to 64 KB. + +**L2 or Level 2 Cache**: It is the second level of cache memory that may present inside or outside the CPU. If not present inside the core, It can be shared between two cores depending upon the architecture and is connected to a processor with the high-speed bus. The size of memory ranges from 256 KB to 512 KB. + +**L3 or Level 3 Cache**: It is the third level of cache memory that is present outside the CPU and is shared by all the cores of the CPU. Some high processors may have this cache. This cache is used to increase the performance of the L2 and L1 cache. The size of this memory ranges from 1 MB to 8MB. + + # RAM RAM (Random Access Memory) is the hardware in a computing device where the operating system (OS), application programs and data in current use are kept so they can be quickly reached by the device's processor. RAM is the main memory in a computer. It is much faster to read from and write to than other kinds of storage, such as a hard disk drive (HDD), solid-state drive (SSD) or optical drive. @@ -113,6 +131,16 @@ With parallel tasks, such as 2D and 3D video rendering, tight access times aren' Similar to DDR, GDDR has gone through several generations of development, with each providing more performance and lower power consumption. GDDR6 is the latest generation of graphics memory. +## Ram vs. Cache +Although Cache and RAM both are used to increase the performance of the system there exists a lot of differences in which they operate to increase the efficiency of the system. + +|Ram|Cache| +|---|-----| +|RAM is larger in size compared to cache. Memory ranges from 1MB to 16GB|The cache is smaller in size. Memory ranges from 2KB to a few MB generally.| +|It stores data that is currently processed by the processor.|It holds frequently accessed data.| +OS interacts with secondary memory to get data to be stored in Primary Memory or RAM|OS interacts with primary memory to get data to be stored in Cache.| +It is ensured that data in RAM are loaded before access to the CPU. This eliminates RAM miss never.|CPU searches for data in Cache, if not found cache miss occur.| + ## RAM vs. virtual memory A computer can run short on memory, especially when running multiple programs simultaneously. Operating systems can compensate for physical memory shortfalls by creating virtual memory. @@ -137,3 +165,4 @@ The data in ROM is nonvolatile and isn't lost when the computer power is turned + From 7ea5231198fd3640b9443928d0c97cdfec3ad5ab Mon Sep 17 00:00:00 2001 From: Manav Mittal Date: Wed, 11 Oct 2023 01:15:32 +0530 Subject: [PATCH 7/8] Added information about UDP in the UDP directory in the Networking directory. Added 2 files udp.md and UDP.png in the UDP directory. Also added the reference of udp.md inside readme.md of networking. --- Networking/UDP/UDP.png | Bin 0 -> 28536 bytes Networking/UDP/udp.md | 29 +++++++++++++++++++++++++++++ Networking/readme.md | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 Networking/UDP/UDP.png create mode 100644 Networking/UDP/udp.md diff --git a/Networking/UDP/UDP.png b/Networking/UDP/UDP.png new file mode 100644 index 0000000000000000000000000000000000000000..10ee3a6f927e25c3cae39d5d36c276d399b7f289 GIT binary patch literal 28536 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…IR!FNl->AZ=I0Uqm)oI*ZI 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 literal 0 HcmV?d00001 diff --git a/Networking/UDP/udp.md b/Networking/UDP/udp.md new file mode 100644 index 00000000..50737cba --- /dev/null +++ b/Networking/UDP/udp.md @@ -0,0 +1,29 @@ +# User Datagram Protocol (UDP) + +### What is UDP? + +UDP stands for User Datagram Protocol it takes messages from the application process, attaches source and destination port number fields for the multiplexing/demultiplexing service, adds two other small fields, and passes the resulting segment to the network layer. The network layer encapsulates the transport-layer segment into an IP datagram and then makes a best-effort attempt to deliver the segment to the receiving host. If the segment arrives at the receiving host, UDP uses the destination port number to deliver the segment’s data to the correct application process. Note that with UDP there is no handshaking between sending and receiving transport-layer entities before sending a segment. For this reason, UDP is said to be connectionless. + +### Why UDP? + +Now you might be wondering why an application developer would ever choose to build an application over UDP rather than over TCP. Isn’t TCP always preferable, since TCP provides a reliable data transfer service, while UDP does not? The answer is no, as some applications are better suited for UDP for the following reasons: + +1. **Finer application-level control over what data is sent, and when**. Under UDP, as soon as an application process passes data to UDP, UDP will package the data inside a UDP segment and immediately pass the segment to the network layer. TCP, on the other hand, has a congestion- control mechanism that throttles the transport-layer TCP sender when one or more links between the source and destination hosts become excessively congested. TCP will also continue to resend a segment until the receipt of the segment has been acknowledged by the destination regardless of how long reliable delivery takes. Since real-time applications often require a minimum sending rate, do not want to overly delay segment transmission, and can tolerate some data loss TCP’s service model is not particularly well matched to these applications’ needs. As discussed below, these applications can use UDP and implement, as part of the application, any additional functionality that is needed beyond UDP’s no-frills segment-delivery service. + +2. **No connection establishment**. TCP uses a three-way handshake before it starts to transfer data. UDP just blasts away without any formal preliminaries. Thus UDP does not introduce any delay to establish a connection. This is probably the principal reason why DNS runs over UDP rather than TCP—DNS would be much slower if it ran over TCP. HTTP uses TCP rather than UDP, since reliability is critical for Web pages with text. + +3. **No connection state**. TCP maintains connection state in the end systems. This connection state includes receive and send buffers, congestion-control parameters, and sequence and acknowledgment number parameters. UDP, on the other hand, does not maintain connection state and does not track any of these parameters. For this reason, a server devoted to a particular application can typically support many more active clients when the application runs over UDP rather than TCP. + +4. **Small packet header overhead**. The TCP segment has 20 bytes of header overhead in every segment, whereas UDP has only 8 bytes of overhead. + +### UDP Segment Structure + +![](UDP.png) + +The UDP segment structure, shown in figure above, is defined in RFC 768. The application data occupies the data field of the UDP segment. The UDP header has only four fields, each consisting of two bytes. The port numbers which allow the destination host to pass the application data to the correct process running +on the destination end system (that is, to perform the demultiplexing function). The length field specifies the number of bytes in the UDP segment (header plus data). An explicit length value is needed since the size of the data field may differ from one UDP segment to the next. The checksum is used by the receiving host to check whether errors have been introduced into the segment. In truth, the checksum is also calculated over a few of the fields in the IP header in addition to the UDP segment. The length field specifies the length of the UDP segment, including the header, in bytes. + +### What is UDP Checksum and how it is computed? +The UDP checksum provides for error detection. That is, the checksum is used to determine whether bits within the UDP segment have been altered (for example, by noise in the links or while stored in a router) as it moved from source to destination. + +UDP at the sender side performs the 1s complement of the sum of all the 16-bit words in the segment, with any overflow encountered during the sum being wrapped around. This result is put in the checksum field of the UDP segment. diff --git a/Networking/readme.md b/Networking/readme.md index c1843181..4b0d1839 100644 --- a/Networking/readme.md +++ b/Networking/readme.md @@ -346,7 +346,7 @@ Internet Layer: This Internet Layer moves packets from source to destination by Network Access Layer: The Network Access Layer sees how a computer connects to a network. #### UDP(User Datagram Protocol) -UDP is a connectionless protocol that does not guarantee reliable data transfer between two devices. +UDP is a connectionless protocol that does not guarantee reliable data transfer between two devices. For more information about TCP you can refer [UDP Readme](udp.md). #### HTTP(HyperText Transfer Protocol) This protocol is used to transfer hypertexts over the internet and it is defined by the www(world wide web) for information transfer. This protocol defines how the information needs to be formatted and transmitted. And, it also defines the various actions the web browsers should take in response to the calls made to access a particular web page. Whenever a user opens their web browser, the user will indirectly use HTTP as this is the protocol that is being used to share text, images, and other multimedia files on the World Wide Web. From f347cab7a2e77abc5d817a66665d90388bf56333 Mon Sep 17 00:00:00 2001 From: sifat Date: Wed, 11 Oct 2023 11:17:23 -0700 Subject: [PATCH 8/8] Update readme.md --- Networking/readme.md | 72 ++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/Networking/readme.md b/Networking/readme.md index 4b0d1839..e7a244c3 100644 --- a/Networking/readme.md +++ b/Networking/readme.md @@ -77,15 +77,15 @@ Examples of CAN are networks that cover schools, colleges, buildings, etc. ## Metropolitan Area Network (MAN) : A MAN is larger than a LAN but smaller than a WAN. This is the type of computer network that connects computers over a geographical distance through a shared communication path over a city, town or metropolitan area. -Examples of MAN are networking in towns, cities, a single large city, large area within multiple buildings, etc. +Examples of MAN are networking in towns, cities, a single large city, a large area within multiple buildings, etc. ![](https://media.geeksforgeeks.org/wp-content/uploads/20210501222057/Screenshot215.png) - ## Network Toplogies + ## Network Topologies The physical or geographic locations of network nodes and links generally have relatively little effect on a network, but the topology of interconnections of a network can significantly affect its throughput and reliability. With many technologies, such as bus or star networks, a single failure can cause the network to fail entirely. In general, the more interconnections there are, the more robust the network is; but the more expensive it is to install. Therefore most network diagrams are arranged by their network topology which is the map of logical interconnections of network hosts. -The common Network Toplogies are : +The common Network Topologies are : - Bus Topology - P2P Topology @@ -104,16 +104,16 @@ Bus topology is a network type in which every computer and network device is con Advantages of this topology: - If N devices are connected to each other in a bus topology, then the number of cables required to connect them is 1, which is known as backbone cable, and N drop lines are required. -- Coaxial or twisted pair cables are mainly used in bus based networks that support up to 10 Mbps. +- Coaxial or twisted pair cables are mainly used in bus-based networks that support up to 10 Mbps. - The cost of the cable is less compared to other topologies, but it is used to build small networks. -- Bus topology is familiar technology as installation and troubleshooting techniques are well known. +- Bus topology is a familiar technology as installation and troubleshooting techniques are well known. Problems with this topology: -- A bus topology is quite simpler , but still it requires a lot of cabling. +- A bus topology is quite simpler, but still, it requires a lot of cabling. - If the common cable fails, then the whole system will crash down. -If the network traffic is heavy, it increases collisions in the network. To avoid this, various protocols are used in the MAC layer known as Pure Aloha, Slotted Aloha, CSMA/CD, etc. -- Adding new devices to network would slow down networks. +- Adding new devices to the network would slow down networks. - Security is very low. ## P2P Topology @@ -345,11 +345,11 @@ Transport Layer: The transport layer is responsible for the smooth transmission Internet Layer: This Internet Layer moves packets from source to destination by connecting independent networks. Network Access Layer: The Network Access Layer sees how a computer connects to a network. -#### UDP(User Datagram Protocol) -UDP is a connectionless protocol that does not guarantee reliable data transfer between two devices. For more information about TCP you can refer [UDP Readme](udp.md). +#### [UDP(User Datagram Protocol)](UDP/udp.md) +UDP is a connectionless protocol that does not guarantee reliable data transfer between two devices. #### HTTP(HyperText Transfer Protocol) -This protocol is used to transfer hypertexts over the internet and it is defined by the www(world wide web) for information transfer. This protocol defines how the information needs to be formatted and transmitted. And, it also defines the various actions the web browsers should take in response to the calls made to access a particular web page. Whenever a user opens their web browser, the user will indirectly use HTTP as this is the protocol that is being used to share text, images, and other multimedia files on the World Wide Web. +This protocol is used to transfer hypertexts over the internet and it is defined by the www(World Wide Web) for information transfer. This protocol defines how the information needs to be formatted and transmitted. And, it also defines the various actions the web browsers should take in response to the calls made to access a particular web page. Whenever a user opens their web browser, the user will indirectly use HTTP as this is the protocol that is being used to share text, images, and other multimedia files on the World Wide Web. #### HTTPS(HyperText Transfer Protocol Secure) HTTPS is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication over a computer network with the SSL/TLS protocol for encryption and authentication. So, generally, a website has an HTTP protocol but if the website is such that it receives some sensitive information such as credit card details, debit card details, OTP, etc then it requires an SSL certificate installed to make the website more secure. So, before entering any sensitive information on a website, we should check if the link is HTTPS or not. If it is not HTTPS then it may not be secure enough to enter sensitive information. @@ -367,7 +367,7 @@ Simple Mail Transfer Protocol (SMTP) is an internet standard for electronic mail Post Office Protocol 3 (POP3) is an internet standard for email retrieval. It is used by email clients to retrieve email messages from a mail server. #### IMAP(Internet Message Access Protocol) -Internet Message Access Protocol (IMAP) is an internet standard protocol for accessing email on a remote mail server. It is used by email clients to retrieve email messages from a mail server. +Internet Message Access Protocol (IMAP) is an Internet standard protocol for accessing email on a remote mail server. It is used by email clients to retrieve email messages from a mail server. #### TELNET(Terminal Network) TELNET is a standard TCP/IP protocol used for virtual terminal service given by ISO. This enables one local machine to connect with another. The computer which is being connected is called a remote computer and which is connecting is called the local computer. TELNET operation lets us display anything being performed on the remote computer in the local computer. This operates on the client/server principle. The local computer uses the telnet client program whereas the remote computer uses the telnet server program. @@ -376,25 +376,25 @@ TELNET is a standard TCP/IP protocol used for virtual terminal service given by It is a communication protocol that is used to create a direct connection between two communicating devices. This protocol defines the rules using which two devices will authenticate with each other and exchange information with each other. For example, A user connects his PC to the server of an Internet Service Provider also uses PPP. Similarly, for connecting two routers for direct communication it uses PPP. ## [OSI Model](OSI%20Model/readme.md#osi-model) -OSI stands for **Open Systems Interconnection**. It has been developed by ISO – ‘**International Organization for Standardization**‘, in the year 1984. It is a 7 layer architecture with each layer having specific functionality to perform. All these 7 layers work collaboratively to transmit the data from one person to another across the globe.  +OSI stands for **Open Systems Interconnection**. It was developed by ISO – ‘**International Organization for Standardization**‘, in the year 1984. It is a 7-layer architecture with each layer having specific functionality to perform. All these 7 layers work collaboratively to transmit the data from one person to another across the globe.  ![](OSI%20Model/img/computer-network-osi-model-layers.png) -### **1\. Physical Layer (Layer 1) :** +### **1\. Physical Layer (Layer 1):** -The lowest layer of the OSI reference model is the physical layer. It is responsible for the actual physical connection between the devices. The physical layer contains information in the form of **bits.** It is responsible for transmitting individual bits from one node to the next. When receiving data, this layer will get the signal received and convert it into 0s and 1s and send them to the Data Link layer, which will put the frame back together.   +The lowest layer of the OSI reference model is the physical layer. It is responsible for the actual physical connection between the devices. The physical layer contains information in the form of **bits.** It is responsible for transmitting individual bits from one node to the next. When receiving data, this layer will get the signal received and convert it into 0s and 1s, and send them to the Data Link layer, which will put the frame back together.   ![](OSI%20Model/img/computer-network-osi-model-layers-bits.png) The functions of the physical layer are as follows:   -1. **Bit synchronization:** The physical layer provides the synchronization of the bits by providing a clock. This clock controls both sender and receiver thus providing synchronization at bit level. +1. **Bit synchronization:** The physical layer provides the synchronization of the bits by providing a clock. This clock controls both the sender and receiver thus providing synchronization at the bit level. 2. **Bit rate control:** The Physical layer also defines the transmission rate i.e. the number of bits sent per second. 3. **Physical topologies:** Physical layer specifies the way in which the different, devices/nodes are arranged in a network i.e. bus, star, or mesh topology. -4. **Transmission mode:** Physical layer also defines the way in which the data flows between the two connected devices. The various transmission modes possible are Simplex, half-duplex and full-duplex. +4. **Transmission mode:** The Physical layer also defines the way in which the data flows between the two connected devices. The various transmission modes possible are Simplex, half-duplex, and full-duplex. -### **2\. Data Link Layer (DLL) (Layer 2) :** +### **2\. Data Link Layer (DLL) (Layer 2):** The data link layer is responsible for the node-to-node delivery of the message. The main function of this layer is to make sure data transfer is error-free from one node to another, over the physical layer. When a packet arrives in a network, it is the responsibility of DLL to transmit it to the Host using its MAC address.  Data Link Layer is divided into two sublayers:   @@ -402,7 +402,7 @@ Data Link Layer is divided into two sublayers:   1. Logical Link Control (LLC) 2. Media Access Control (MAC) -The packet received from the Network layer is further divided into frames depending on the frame size of NIC(Network Interface Card). DLL also encapsulates Sender and Receiver’s MAC address in the header.  +The packet received from the Network layer is further divided into frames depending on the frame size of the NIC(Network Interface Card). DLL also encapsulates the Sender and Receiver’s MAC address in the header.  The Receiver’s MAC address is obtained by placing an ARP(Address Resolution Protocol) request onto the wire asking “Who has that IP address?” and the destination host will reply with its MAC address.   @@ -412,11 +412,11 @@ The functions of the Data Link layer are :   1. **Framing:** Framing is a function of the data link layer. It provides a way for a sender to transmit a set of bits that are meaningful to the receiver. This can be accomplished by attaching special bit patterns to the beginning and end of the frame. 2. **Physical addressing:** After creating frames, the Data link layer adds physical addresses (MAC address) of the sender and/or receiver in the header of each frame. -3. **Error control:** Data link layer provides the mechanism of error control in which it detects and retransmits damaged or lost frames. -4. **Flow Control:** The data rate must be constant on both sides else the data may get corrupted thus, flow control coordinates the amount of data that can be sent before receiving acknowledgement. +3. **Error control:** The Data link layer provides the mechanism of error control in which it detects and retransmits damaged or lost frames. +4. **Flow Control:** The data rate must be constant on both sides else the data may get corrupted thus, flow control coordinates the amount of data that can be sent before receiving acknowledgment. 5. **Access control:** When a single communication channel is shared by multiple devices, the MAC sub-layer of the data link layer helps to determine which device has control over the channel at a given time. -### **3\. Network Layer (Layer 3) :** +### **3\. Network Layer (Layer 3):** The network layer works for the transmission of data from one host to the other located in different networks. It also takes care of packet routing i.e. selection of the shortest path to transmit the packet, from the number of routes available. The sender & receiver’s IP addresses are placed in the header by the network layer.  @@ -425,25 +425,25 @@ The functions of the Network layer are :   1. **Routing:** The network layer protocols determine which route is suitable from source to destination. This function of the network layer is known as routing. 2. **Logical Addressing:** In order to identify each device on internetwork uniquely, the network layer defines an addressing scheme. The sender & receiver’s IP addresses are placed in the header by the network layer. Such an address distinguishes each device uniquely and universally. -### **4\. Transport Layer (Layer 4) :** +### **4\. Transport Layer (Layer 4):** -The transport layer provides services to the application layer and takes services from the network layer. The data in the transport layer is referred to as Segments. It is responsible for the End to End Delivery of the complete message. The transport layer also provides the acknowledgement of the successful data transmission and re-transmits the data if an error is found. +The transport layer provides services to the application layer and takes services from the network layer. The data in the transport layer is referred to as Segments. It is responsible for the end-to-end delivery of the complete message. The transport layer also provides the acknowledgement of the successful data transmission and re-transmits the data if an error is found. -The functions of Transport layer are : +The functions of the Transport layer are : 1. **Service-point addressing:** The transport layer adds the header that contains the address known as a service-point address or port address. The responsibility of the network layer is to transmit the data from one computer to another computer and the responsibility of the transport layer is to transmit the message to the correct process. -2. **Segmentation and reassembly:** Tt divides the message into multiple segments, and each segment is assigned with a sequence number that uniquely identifies each segment. When the message has arrived at the destination, it reassembles the message based on their sequence numbers. -3. **Connection control:** Transport layer provides two services Connection-oriented service and connectionless service. A connectionless service treats each segment as an individual packet, and they all travel in different routes to reach the destination. A connection-oriented service makes a connection with the transport layer at the destination machine before delivering the packets. -4. **Flow control:** The transport layer also responsible for flow control but it is performed end-to-end rather than across a single link. -5. **Error control:** Error control is performed end-to-end rather than across the single link. The sender transport layer ensures that message reach at the destination without any error. +2. **Segmentation and reassembly:** Tt divides the message into multiple segments, and each segment is assigned a sequence number that uniquely identifies each segment. When the message has arrived at the destination, it reassembles the message based on its sequence numbers. +3. **Connection control:** The Transport layer provides two services Connection-oriented service and connectionless service. A connectionless service treats each segment as an individual packet, and they all travel in different routes to reach the destination. A connection-oriented service makes a connection with the transport layer at the destination machine before delivering the packets. +4. **Flow control:** The transport layer is also responsible for flow control but it is performed end-to-end rather than across a single link. +5. **Error control:** Error control is performed end-to-end rather than across the single link. The sender transport layer ensures that the message reaches at the destination without any error. -### **5\. Session Layer (Layer 4) :** +### **5\. Session Layer (Layer 4):** -The Session layer is used to establish, maintain and synchronizes the interaction between communicating devices. -The functions of session layer are: -1. **Dialog control:** Session layer acts as a dialog controller that creates a dialog between two processes or we can say that it allows the communication between two processes which can be either half-duplex or full-duplex. -2. **Synchronization:** Session layer adds some checkpoints when transmitting the data in a sequence. If some error occurs in the middle of the transmission of data, then the transmission will take place again from the checkpoint. This process is known as Synchronization and recovery. +The Session layer is used to establish, maintain and synchronize the interaction between communicating devices. +The functions of the session layer are: +1. **Dialog control:** The Session layer acts as a dialog controller that creates a dialog between two processes or we can say that it allows communication between two processes which can be either half-duplex or full-duplex. +2. **Synchronization:** The Session layer adds some checkpoints when transmitting the data in a sequence. If some error occurs in the middle of the transmission of data, then the transmission will take place again from the checkpoint. This process is known as Synchronization and recovery. -### **6\. Presentation Layer (Layer 5) :** +### **6\. Presentation Layer (Layer 5):** The presentation layer is also called the Translation layer. The data from the application layer is extracted here and manipulated as per the required format to transmit over the network. The functions of the presentation layer are : @@ -451,9 +451,9 @@ The functions of the presentation layer are : 2. **Encryption/ Decryption:** Data encryption translates the data into another form or code. The encrypted data is known as the ciphertext and the decrypted data is known as plain text. A key value is used for encrypting as well as decrypting data. 3. **Compression:** Reduces the number of bits that need to be transmitted on the network. -### **7\. Application Layer (Layer 7) :** +### **7\. Application Layer (Layer 7):** -At the very top of the OSI Reference Model stack of layers, we find the Application layer, also called as Desktop Layer, which is implemented by the network applications. These applications produce the data, which has to be transferred over the network. This layer also serves as a window for the application services to access the network and for displaying the received information to the user. +At the very top of the OSI Reference Model stack of layers, we find the Application layer, also called as Desktop Layer, which is implemented by the network applications. These applications produce the data, which has to be transferred over the network. This layer also serves as a window for the application services to access the network and display the received information to the user. Example: Application – Browsers, Skype Messenger, etc.