{"id":17,"date":"2017-04-18T06:57:29","date_gmt":"2017-04-18T10:57:29","guid":{"rendered":"https:\/\/itp.nyu.edu\/networks\/?page_id=17"},"modified":"2025-01-31T10:35:18","modified_gmt":"2025-01-31T15:35:18","slug":"glossary","status":"publish","type":"page","link":"https:\/\/itp.nyu.edu\/networks\/glossary\/","title":{"rendered":"Glossary"},"content":{"rendered":"\n<p>For a more detailed explanation of many of these terms, see the <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/\">Explanations Page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A\"><\/span>A<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AES\"><\/span>AES<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>AES is short for <strong>Advanced Encryption Standard<\/strong>, and it is a symmetric <strong>128-bits (or 16 bytes)<\/strong> block cipher (A&nbsp;<em><strong>block cipher<\/strong><\/em> is a method of encrypting data in blocks to produce ciphertext using a cryptographic key and algorithm) that is widely used to encrypt the transfer of data online. It appeared commonly in VPNs, Wi-Fis, mobile applications and even programming language libraries. It takes 128-bits of a message, a file or any data that needed to be encrypted, and encrypts them into 128-bits cipher text with a key that can either be 128-bits, 192-bits or 256 bits. And more bits they key is, the more secure the data is.<\/p>\n\n\n\n<p>First, AES arranges the data (plain text that is not written in code) into the a <strong>4&#215;4 block of bytes<\/strong>, and then it relies on <strong>substitution-permutation network<\/strong> principle to operate the data with process of key expansion, adding round key, byte substitution, shifting rows, mixing columns, rinse and repeat to generate ciphertext. Although AES requires less memory and processes encryption and decryption faster, the fact that it uses single key to encrypt and decrypt the data can create a potential gateway for hackers to intercept the key.<\/p>\n\n\n\n<p><meta charset=\"utf-8\">See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cybernews.com\/resources\/what-is-aes-encryption\/\">https:\/\/cybernews.com\/resources\/what-is-aes-encryption\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/advanced-encryption-standard-aes\/\">https:\/\/www.geeksforgeeks.org\/advanced-encryption-standard-aes\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=O4xNJsjtN6E&amp;t=163s\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.youtube.com\/watch?v=O4xNJsjtN6E&amp;t=163s<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Erin Tao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ARP\"><\/span>ARP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The <strong>Address Resolution Protocol<\/strong> is the communication&nbsp;protocol used to link layers 2 and 3 of the OSI model. &nbsp; Layer 2 is the data link layer and can be associated with the MAC address of the device.&nbsp; ARP links the MAC address to layer 3 of the OSI model, the network layer, typically an IPv4 address.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ASCII\"><\/span><meta charset=\"utf-8\">ASCII<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>ASCII<\/strong> stands for&nbsp;<strong>American Standard Code for Information Interchange.&nbsp;<\/strong>It is a character encoding standard for electronic communication. This standard is used to represent text in computers, telecommunications equipment and other connected devices.&nbsp;<\/p>\n\n\n\n<p>Originally based on the&nbsp;English alphabet, ASCII encodes 128 specified&nbsp;characters into seven-bit integers.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/learn.parallax.com\/support\/reference\/ascii-table-0-127\">Current ASCII table<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/learn.parallax.com\/support\/reference\/ascii-table-0-127\"><img decoding=\"async\" src=\"https:\/\/www.asciitable.com\/asciifull.gif\" alt=\"Ascii Table - see link for text version of this table.\"\/><\/a><\/figure>\n\n\n\n<p>This table is used behind the scenes of our everyday communication when we interact with our devices, such as computers. Our devices translate \u201ccomputer text\u201d to \u201chuman text\u201d so that we can read it. Computers speak in terms of 1\u2019s and 0\u2019s, aka binary, and they use their own language, ASCII, in order to communicate as well as translate messages so that we can understand them.<\/p>\n\n\n\n<p>ASCII was was incorporated into&nbsp;<a href=\"https:\/\/unicode.org\/consortium\/consort.html\">Unicode<\/a>&nbsp;in 1991 since Unicode and the UCS support more characters by separating the concepts of unique identification (using&nbsp;natural numbers&nbsp;called&nbsp;<em>code points<\/em>) and encoding (to 8-, 16- or 32-bit binary formats, called&nbsp;UTF-8,&nbsp;UTF-16&nbsp;and&nbsp;UTF-32). ASCII characters have the same numeric codes in both sets which allows UTF-8 to be backwards-compatible with 7-bit ASCII. Forward compatibility is also ensured because software that recognizes only 7-bit ASCII characters as special and does not alter bytes with the highest bit set will not change UTF-8 data.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/ASCII\">Wikipedia<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.w3schools.com\/charsets\/ref_html_ascii.asp\">W3 Schools \u2013 ASCII<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.asciitable.com\/\">ASCII Table<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rosieresearch.com\/why-is-ascii-important\/\">Why Is ASCII Important?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/unicode.org\/consortium\/consort.html\">Unicode<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/learn.parallax.com\/support\/reference\/ascii-table-0-127\">Parallax ASCII Table chart<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Ben Moll<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Asymmetric_Encryption\"><\/span>Asymmetric Encryption<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Asymmetric Encryption<\/strong>&nbsp;-Uses a pair of related keys (a private key and a public key) to encrypt and decrypt messages. The public key is visible by everyone and can be used by anyone who wants to send a message. The private key is only known by the creator. When someone would like to send you a message they will use your public key to encrypt the message. Only your private key can decrypt the message.&nbsp;<\/p>\n\n\n\n<p>When you encrypt a message with your private key, anyone with your public key can decrypt the message, but the fact that a message has been decrypted with your public key means it must have been encrypted with your private key. Therefore the only person who could have created the message is you because you are the only one with the private key. This serves as proof that the message is \u201cdigitally signed\u201d by you.&nbsp;<\/p>\n\n\n\n<p>The most secure way to send an encrypted message would be to encrypt the message using your private key and the receiver\u2019s public key. This way only the receiver can decrypt it and it will be \u201cdigitally signed\u201d by you, ensuring that you were the person who sent the message.&nbsp;<\/p>\n\n\n\n<p>Asymmetric encryption uses complex \u201ctrapdoor\u201d one-way mathematical functions and very large random numbers to create the public and private keys.&nbsp;<\/p>\n\n\n\n<p>One-way function is a function that is easy to compute in one direction but difficult to reverse, unless you have special information.<\/p>\n\n\n\n<p>The most commonly used asymmetric encryption algorithm used today is called <a href=\"#RSA\">RSA encryption<\/a>.<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Authentication\"><\/span><strong>Authentication<\/strong> <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A cybersecurity process that confirms that a user or user device is \u2018who they say they are,\u2019 most often used in the context of the user or device asking for access to resources over a network. Typically paired with an <em>Authorization<\/em> process. See <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/authentication-and-authorization\/\">this explainer<\/a> for more.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Authorization\"><\/span><strong>Authorization<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A cybersecurity process that confirms a user or user device is allowed to access the resource they are trying to reach. Typically paired with an <em>Authentication<\/em> process. See <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/authentication-and-authorization\/\">this explainer<\/a> for more.<\/p>\n\n\n\n<p><em>&#8211; Christina Tang<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"B\"><\/span>B<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bit\"><\/span>Bit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A bit (binary digit) is the smallest unit for computational processing. It can be either on\/off, also known as 0 or 1.&nbsp;<\/p>\n\n\n\n<p><strong>R<\/strong>e<strong>ferences:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/www.techtarget.com\/whatis\/definition\/bit-binary-digit\">https:\/\/www.techtarget.com\/whatis\/definition\/bit-binary-digit<\/a><\/p>\n\n\n\n<p><em>&#8211; I-Jon Hsieh<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bitrate\"><\/span><strong>Bitrate<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Bitrate<\/strong> describes the rate at which bits are transferred from one location to another. It measures how much data is transmitted in a given amount of time. Bitrate is commonly measured in bits per second (bps), kilobits per second (Kbps), or megabits per second (Mbps).&nbsp;<\/p>\n\n\n\n<p><em>&#8211; Sihan Zhang<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bogon\"><\/span>Bogon<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A <strong>bogon<\/strong> is an informal term used to describe an illegitimate IP address. Some IP packets on public internet claim to be coming from an IP address that is in use, but has not yet been delegated by the<em>&nbsp;Internet Assigned Numbers Authority (IANA)<\/em>*. These IP address can\u2019t be associated to an actual host, which makes them&nbsp;<em>bogus<\/em>&nbsp;and unable to be geolocated.<\/p>\n\n\n\n<p>You may see these addresses pass through your router, as it does not care about a source IP address (the bogon) but only the destination IP address. These bogons aren\u2019t static either, but are dynamic and the addresses get changed over time.<\/p>\n\n\n\n<p><strong><meta charset=\"utf-8\"><strong>References<\/strong>:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ipinfo.io\/bogon\" target=\"_blank\" rel=\"noreferrer noopener\">Bogon IP Address Ranges<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/ctovision.com\/help-bogons-are-in-my-networks\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bogons: Do Not Let Them In Or Through Your Networks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.internetsociety.org\/resources\/doc\/2014\/iana-functions-the-basics\/\" target=\"_blank\" rel=\"noreferrer noopener\">IANA Functions: The Basics<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Buffer\"><\/span>Buffer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A <strong>Buffer<\/strong>, also known as <strong>data buffer<\/strong>, refers to a region of memory that temporarily holds data right before it is used. In telecommunications, buffers help to compensate for momentary delays, such as rate differences while data transferring from one device to another.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_buffer\">https:\/\/en.wikipedia.org\/wiki\/Data_buffer<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/techterms.com\/definition\/buffer\">https:\/\/techterms.com\/definition\/buffer<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211; <em>I-Jon Hsieh<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Byte\"><\/span>Byte<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A byte is a common unit of data. One byte consists of 8 bits (1 byte = 8 bits). It is used to store numbers. A single byte can represent 256 (28) numbers. It can also represent characters, such as letters or symbols, by converting numbers to ASCII code.&nbsp;<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.britannica.com\/technology\/byte\">https:\/\/www.britannica.com\/technology\/byte<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.intel.com\/content\/dam\/www\/program\/education\/us\/en\/documents\/the-journery-inside\/digital\/tji-digital-info-handout4.pdf\">https:\/\/www.intel.com\/content\/dam\/www\/program\/education\/us\/en\/documents\/the-journery-inside\/digital\/tji-digital-info-handout4.pdf<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; I-Jon Hsieh<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C\"><\/span>C<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cache\"><\/span>Cache<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p> A <strong>cache<\/strong> temporarily stores data for future requests. This enables the data to be retrieved faster and improves performance. Cache is commonly used by web browsers, as well as CPU, applications, and operating systems. When a client (ex. Chrome) tries to access data, it will first check whether the data is stored in the cache. If not, it then needs to get the data from the main memory (web server), at the same time, the data will be stored in the cache.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/www.techtarget.com\/searchstorage\/definition\/cache\">https:\/\/www.techtarget.com\/searchstorage\/definition\/cache<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Caching - Simply Explained\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/6FyXURRVmR0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>&#8211; <em>I-Jon Hsieh<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Certificate_Authority\"><\/span>Certificate Authority<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Certificate Authority&nbsp;<\/strong>\u2013 Trusted organization that validates content on the internet by authenticating public keys. See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><meta charset=\"utf-8\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ciphertext\"><\/span>Ciphertext<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A <strong>Ciphertext&nbsp;<\/strong>is the result of an encrypted message.<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cryptography\"><\/span>Cryptography<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Cryptography&nbsp;<\/strong>is a method for protecting communication and information through codes. The codes ensure that only the intended person receives, reads and processes the message. Cryptography is essential for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confidentiality<\/li>\n\n\n\n<li>Integrity<\/li>\n\n\n\n<li>Non-repudiation<\/li>\n\n\n\n<li>Authentication<\/li>\n<\/ul>\n\n\n\n<p>See also:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#Ciphertext\">Ciphertext<\/a><\/li>\n\n\n\n<li><a href=\"#Private_Key\" data-type=\"internal\" data-id=\"#Private_Key\">Private Key<\/a><\/li>\n\n\n\n<li><a href=\"#Public_Key\">Public Key<\/a><\/li>\n\n\n\n<li><a href=\"#Key_Pair\">Key pair<\/a><\/li>\n\n\n\n<li><a href=\"#Symmetric_Encryption\">Symmetric Encryption<\/a><\/li>\n\n\n\n<li><a href=\"#Asymmetric_Encryption\">Asymmetric Encryption<\/a><\/li>\n\n\n\n<li><a href=\"#Digital_Signature\">Digital Signature<\/a><\/li>\n\n\n\n<li><a href=\"#End-to-end_Encryption\">End-to-end Encryption<\/a><\/li>\n\n\n\n<li><a href=\"#Certificate_Authority\">Certificate Authority<\/a><\/li>\n\n\n\n<li><a href=\"#AES\">AES<\/a><\/li>\n\n\n\n<li><a href=\"#RSA\">RSA<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>References: <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=GSIDS_lvRv4\">Public Key Cryptography \u2013 Computerphile<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/medium.com\/@vrypan\/explaining-public-key-cryptography-to-non-geeks-f0994b3c2d5#.j44j1v14n\">Explaining public-key cryptography to non-geeks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=vgTtHV04xRI\">Gambling with Secrets: 8\/8 (RSA Encryption)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techtarget.com\/searchsecurity\/definition\/asymmetric-cryptography\">asymmetric cryptography (public key cryptography)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cheapsslsecurity.com\/blog\/what-is-asymmetric-encryption-understand-with-simple-examples\/\">What is Asymmetric Encryption? Understand with Simple Examples<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CSS\"><\/span>CSS<em> <\/em><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>CSS<\/strong> stands for <strong>Cascading Style Sheets<\/strong>. CSS dictates how the HTML elements of a website should appear in a browser. CSS communicates defines the styles of objects in the HTML DOM, and its definitions are applied to HTML elements on page load to finish the look of elements. They are like the paint, color, and facial expression printed on LEGO persons, further articulating their visual characteristics .<\/p>\n\n\n\n<p><strong>References:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\">Mozilla Development Network, DOM<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\">Mozilla Development Network, CSS<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Rockey Ke<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Checksum\"><\/span>Checksum <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A checksum is a small-sized block of data derived from a larger block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. Checksums are often used to verify data integrity but are not relied upon to verify data authenticity. A good checksum algorithm outputs a significantly different value for even the smallest change made to the input (e.g. the change of one bit). If the computed checksum for the current data input matches a stored value of a previously computed checksum, there is a very high probability that the data has not been accidentally altered or corrupted.<\/p>\n\n\n\n<p>An inconsistent checksum number can be caused by an interruption in the network connection, storage or space issues, a corrupted disk or file, or a third party interfering with data transfer.<\/p>\n\n\n\n<p>Programmers can use cryptographic hash functions like SHA-0, SHA-1, SHA-2, and MD5 to generate checksum values. Common protocols used to determine checksum numbers are <a href=\"#TCP\">TCP<\/a> and <a href=\"#UDP\">UDP<\/a>. As an example, the UDP checksum algorithm works like this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Divides the data into 16-bit chunks<\/li>\n\n\n\n<li>Add the chunks together<\/li>\n\n\n\n<li>Any carry that is generated is added back to the sum<\/li>\n\n\n\n<li>Perform the 1\u2019s complement of the sum<\/li>\n\n\n\n<li>Put that value in the checksum field of the UDP segment<\/li>\n<\/ol>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Checksum\">https:\/\/en.wikipedia.org\/wiki\/Checksum<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techtarget.com\/searchsecurity\/definition\/checksum\">https:\/\/www.techtarget.com\/searchsecurity\/definition\/checksum<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.educative.io\/answers\/how-does-checksum-work\">https:\/\/www.educative.io\/answers\/how-does-checksum-work<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Priyanka Makin<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CDN\"><\/span>CDN<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The acronym <strong>CDN<\/strong> stands for <strong>Content Distribution Network.<\/strong> A CDN is a network of proxy servers and data centers placed around the globe. Their purpose is to enable speed and efficiency of content delivery to end users. A CDN does not host content; instead its purpose is to cache content with the goal of improving website performance, prevent site interruptions, strengthen site security and reduce hosting costs.<\/p>\n\n\n\n<p>CDNs improve website speed by reducing the distance travelled between a user and website\u2019s resources. They allow a user to connect to the geographically closest data center, facilitating a reduction in travel time for the data and therefore allowing for faster load times. In order to optimize the response quality, the location best for serving content to a user might be calculated based on the fewest number of hops, lowest number of seconds for the data to travel, or most available server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><img decoding=\"async\" src=\"https:\/\/marthajanicki.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F656bc389-da63-4050-9214-2a61aeee242f%2FLearning-How-does-a-CDN-work.svg?id=6d0dd87d-3adb-4cc7-bf4c-51f5c6c7dbcf&amp;table=block&amp;spaceId=f38608d2-7695-4b62-bcdf-3b813eccf57d&amp;userId=&amp;cache=v2\" alt=\"Illustration of a CDN\u2019s distributed servers (source: Cloudflare). \" style=\"width:631px;height:421px\"\/><figcaption class=\"wp-element-caption\">Illustration of a CDN\u2019s distributed servers (source: <a href=\"https:\/\/www.cloudflare.com\/learning\/cdn\/what-is-a-cdn\/\">Cloudflare<\/a>).<\/figcaption><\/figure>\n\n\n\n<p>CDNs also balance traffic (\u201dload balancing\u201d), distributing data requests during spikes in traffic. This allows CDNs to play a significant mitigating the potency of in DDoS (Distributed Denial of Service) attacks and improving the security of websites.<\/p>\n\n\n\n<p>A CDN  also reduces the amount of data transferred between the user and the origin server (\u201dbandwidth\u201d) through reductions in file sizes (through minification or file compression). Similarly, CDNs cache the content of websites so that less data needs to travel in and out of the web host\u2019s server, therefore lowering bandwidth costs.<\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.cloudflare.com\/learning\/cdn\/what-is-a-cdn\/\">Cloudflare\u2019s explainer<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/CDN\">Mozilla MDN\u2019s explainer<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Martha Janicki<\/em><meta charset=\"utf-8\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CORS\"><\/span>CORS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Cross-Origin Resource Sharing. See this <a href=\"https:\/\/itp.nyu.edu\/networks\/an-introduction-to-cross-origin-resource-sharing-cors\/\" data-type=\"page\" data-id=\"661\">explanation<\/a>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"D\"><\/span>D<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Datagram\"><\/span>Datagram<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A&nbsp;<strong>datagram<\/strong> is a basic transfer unit associated with a&nbsp;packet-switched network. Each datagram has two components, a&nbsp;header&nbsp;and a data&nbsp;payload. The header contains the information sufficient for the packet to be delivered from its source to destination. The payload is the actual data to be transported.<\/p>\n\n\n\n<p><strong>Reference:<\/strong> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Datagram\">Wikipedia<\/a><\/p>\n\n\n\n<p><strong>&#8211; Tuan Huang<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DHCP\"><\/span>DHCP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Dynamic Host Configuration Protocol ( DHCP )<\/strong> is a protocol that allows the router to dynamically assign computers connected to the network an IP address from the pool of ones available network. &nbsp;The DHCP server keeps track of which IP address have been assigned to which devices. &nbsp;In this way, if you disconnect from the network, and rejoin it, your device will keep the same IP address.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Digital_Signature\"><\/span><meta charset=\"utf-8\">Digital Signature<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Digital Signature \u2013&nbsp;<\/strong>An encrypted message is digitally signed when an individual\u2019s private key is verified by the public key. Digital signatures offer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&nbsp;Authentication \u2013&nbsp; since the unique private key was used to apply the signature other can be sure that the person with the private key was the one who actually applied the signature<\/li>\n\n\n\n<li>&nbsp;Non-repudiation \u2013&nbsp; the individual with the private key cannot later claim that it wasn\u2019t them who applied the signature<\/li>\n\n\n\n<li>Integrity \u2013&nbsp; when the signature is verified it checks that the information in the message matches what was there when the signature was applied.&nbsp;<\/li>\n\n\n\n<li>Confidentiality \u2013 the content encrypted with a public key can only be decrypted with the matching private key. Ensuring only the individual with the private key can decrypt the message.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DOM\"><\/span>DOM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>DOM<\/strong>, or the <strong>Document Object Model<\/strong>, is a system of organizing and structuring web file content that allow other programing languages to access and manipulate them. For this purpose, it has been adopted as a standard in making web files more modular. The O(object) in DOM signify its main characteristic, which is to organize web pages into series of \u201cobjects\u201d. These  are the object building blocks for web content. Starting from more primitive ones in the core DOM, such as Document, Node, Element, Nodelist etc, DOM can be expanded and include more detailed elements such as headers, images etc. The DOM commonly integrates <a href=\"#JavaScript\" data-type=\"internal\" data-id=\"#JavaScript\">JavaScript<\/a>, <a href=\"#HTML\" data-type=\"internal\" data-id=\"#HTML\">HTML<\/a>, and Cascading Style Sheets (<a href=\"#CSS\" data-type=\"internal\" data-id=\"#CSS\">CSS<\/a>), though it can also be used to connect Javascript of other programming languages to other markup languages like XML. Consider the objects as LEGO parts, and the parts in core DOM are the smallest pieces of LEGO bricks that you cannot split further.<\/p>\n\n\n\n<p><strong>References:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\">Mozilla Development Network, DOM<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\">Mozilla Development Network, HTML<\/a><\/li>\n<\/ul>\n\n\n\n<p><meta charset=\"utf-8\"><em>&#8211; Rockey Ke<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DNS_vs_MDNS\"><\/span>DNS vs MDNS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>DNS vs MDNS&nbsp;<\/strong>&#8211; DNS protocol is Domain Name System protocol.&nbsp; Used to assign human readable domain names to IP address for easy navigation&nbsp;across the web.&nbsp; For more on DNS, see this <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/what-we-should-know-about-dns\/\">explanation<\/a>. Similarly MDNS (multicast DNS, see below) is a local net protocol used for name resolution of a smaller, usually local network.&nbsp; Local networks do not need to query a name server and all local devices have a direct address<\/p>\n\n\n\n<p><em>&#8211; Jake Sherwood<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"E\"><\/span>E<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Encapsulation\"><\/span>Encapsulation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">In a networking context, the method of nesting the data payload in a packet with a header is known as &#8216;encapsulation&#8217;.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"End-to-end_Encryption\"><\/span>End-to-end Encryption<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>End-to-end Encryption<\/strong>&nbsp;\u2013 For two devices to communicate with each other they need an intermediate server. With end-to-end encryption the server will not encrypt or decrypt the messages, they will only pass the encrypted messages along. Each user will encrypt and decrypt the messages on their devices using public and private keys.&nbsp;<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ethernet_Frame\"><\/span>Ethernet Frame<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>An Ethernet Frame is a message used in the data link layer. See Jingyuan\u2019s definition of&nbsp;<a href=\"#P\" data-type=\"internal\" data-id=\"#P\">Packet vs. Frame<\/a>.<\/p>\n\n\n\n<p><em>&#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Evil_bit\"><\/span>Evil bit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>An Evil bit is a fictional IPv4 packet header field proposed to a Request for Comments (RFC) publication for April Fool\u2019s in 2003. The RFC recommended that the last unused bit, the \u201cReserved bit\u201d in the IPv4 packet header be used to indicate whether a packet had been sent with malicious intent, thus simplifying internet security.<\/p>\n\n\n\n<p>The RFC states that benign packets will have this bit set to 0; those that are used for an attack will have the bit set to 1. Firewalls must drop all inbound packets that have the evil bit set and packets with the evil bit off must not be dropped. The RFC also suggests how to set the evil bit in different scenarios:<\/p>\n\n\n\n<p>Attack applications may use a suitable API to request that the bit be set.<\/p>\n\n\n\n<p>Packet header fragments that are dangerous must have the evil bit set.<\/p>\n\n\n\n<p>If a packet with the evil bit set is fragmented by a router and the fragments themselves are not dangerous, the evil bit can be cleared in the fragments but reset in the reassembled packet.<\/p>\n\n\n\n<p>Applications that hand-craft their own packets that are part of an attack must set the evil bit.<\/p>\n\n\n\n<p>Hosts inside the firewall must not set the evil bit on any packets. (<a rel=\"noreferrer noopener\" href=\"https:\/\/www.rfc-editor.org\/rfc\/pdfrfc\/rfc3514.txt.pdf\" target=\"_blank\">RFC 3514<\/a>)<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RFC Editor, <meta charset=\"utf-8\"><\/meta><a href=\"https:\/\/www.rfc-editor.org\/rfc\/pdfrfc\/rfc3514.txt.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">RFC 3514<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Evil_bit\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/en.wikipedia.org\/wiki\/Evil_bit<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Priyanka Makin<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"F\"><\/span>F<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Firewall\"><\/span>Firewall<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>What is a firewall?<\/strong> A firewall is a network security device that controls and monitors incoming and outing network traffic based on a series of security rules that have been predetermined. It can be hardware, software, software-as-a service, public cloud, or private cloud. It filters and blocks unauthorized traffic to prevent attacks. The first published paper on firewall technology was in 1987 by engineers from Digital Equipment Corporation. It was called as a packet filter firewall at that time.<\/p>\n\n\n\n<p><strong>What is a hardware firewall?<\/strong>It has basically the same functions as a software firewall but is deployed as a physical appliance. It can provide consistent security to all devices that it protects without varying configurations for each device. It can also improve security because it runs on its own dedicated hardware independently instead of relying on resources of the device where it is installed.<\/p>\n\n\n\n<p>Example of a hardware firewall: <a href=\"https:\/\/www.cisco.com\/c\/en\/us\/products\/security\/firepower-4100-series\/index.html\">Cisco Firepower 4100 Series &#8211; NGFW Appliances<\/a><\/p>\n\n\n\n<p><strong>How does a firewall work?<\/strong> Firewalls control the network traffic by allowing or denying requests at specific ports. The predetermined rules will specify which port number allows what kind of source addresses to go through.<\/p>\n\n\n\n<p><a href=\"https:\/\/itp.nyu.edu\/networks\/setting-up-a-firewall-on-an-embedded-linux-device\/\"><strong>How to set up a firewall on a linux device?<\/strong><\/a><\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.forcepoint.com\/cyber-edu\/firewall\">https:\/\/www.forcepoint.com\/cyber-edu\/firewall<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/itp.nyu.edu\/networks\/setting-up-a-firewall-on-an-embedded-linux-device\/\">https:\/\/itp.nyu.edu\/networks\/setting-up-a-firewall-on-an-embedded-linux-device\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.checkpoint.com\/cyber-hub\/network-security\/what-is-firewall\/what-is-a-hardware-firewall\/\">https:\/\/www.checkpoint.com\/cyber-hub\/network-security\/what-is-firewall\/what-is-a-hardware-firewall\/<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Lily Yu<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Front-End_vs_Back-End\"><\/span>Front-End vs. Back-End<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Front-end developers work on what end users on the web can see, while back-end developers build the infrastructure that supports it.<\/p>\n\n\n\n<p><strong>Front-end development <\/strong>focuses on the user-facing side of a website. Front-end developers design and construct the user experience elements&nbsp;on the web page or app including buttons, menus, pages, links, graphics and more.<\/p>\n\n\n\n<p>The three primary front end languages in use are <a href=\"#HTML\">HTML<\/a>, <a href=\"#CSS\">CSS<\/a>, and <a href=\"#JavaScript\">Javascript<\/a>. HTML provides the structure of the website, while CSS provides the visual look, and Javascript provides the interactivity. Any front-end programming code runs on the client&#8217;s machine (e.g. HTML, CSS, and JavaScript).<\/p>\n\n\n\n<p>The <strong>back-end<\/strong>, also called the <strong>server-side<\/strong>,&nbsp;consists of the <a href=\"#Server\">server<\/a> which provides data on request, the application that channels it, and the database which organizes the information.<\/p>\n\n\n\n<p>The most popular languages for the back-end are PHP, Ruby, Python, SQL, and Java. The purpose of these languages is to interact with the websites database. These languages are intended to store, retrieve, and change specific information stored in the data files. Any back-programming code runs on the server&#8217;s machine.<\/p>\n\n\n\n<p><strong>References\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.conceptatech.com\/blog\/difference-front-end-back-end-development\">What Is the Difference Between Front-End and Back-End Development?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.computerscience.org\/bootcamps\/resources\/frontend-vs-backend\/\">The Difference Between Front-End vs. Back-End<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/letsgodojo.com\/front-end-vs-back-end\/\">FRONT END VS BACK END OF YOUR WEBSITE: EVERYTHING YOU NEED TO KNOW<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Michelle Xu<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"FTP_SFTP\"><\/span>FTP &amp; SFTP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>What is FTP?<\/strong> FTP stands for <strong>File Transfer Protocol<\/strong>. It is a network protocol for transmitting files between a client and a server. It makes transferring larger or multiple files more efficient. A client will be able to upload or download files after they successfully connect to the FTP server.<\/p>\n\n\n\n<p><strong>What is a network protocol?<\/strong> A network <a href=\"#Protocol\">protocol<\/a> is a set of rules to predetermine how to format, transmit, and receive data for devices in computer networks to communicate with each other.<\/p>\n\n\n\n<p><strong>What is SFTP?<\/strong> SFTP stands for <strong>Secure File Transfer Protocol<\/strong> or <strong>SSH File Transfer Protocol<\/strong>. It uses secure shell encryption (the SSH protocol) to provide security for file transmission.<\/p>\n\n\n\n<p><strong>What is SSH?<\/strong> The SSH protocol, also called as Secure Shell, provides strong authentication and encryption to increase security in network communications.<\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Original sources:\n<ul class=\"wp-block-list\">\n<li>FTP: <a href=\"https:\/\/www.rfc-editor.org\/pdfrfc\/rfc114.txt.pdf\">https:\/\/www.rfc-editor.org\/pdfrfc\/rfc114.txt.pdf<\/a> (developed in 1971)<\/li>\n\n\n\n<li>SFTP: <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-secsh-filexfer-00\">https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-secsh-filexfer-00<\/a> (developed in 2006)<\/li>\n\n\n\n<li>SSH: <a href=\"https:\/\/www.rfc-editor.org\/pdfrfc\/rfc4250.txt.pdf\">https:\/\/www.rfc-editor.org\/pdfrfc\/rfc4250.txt.pdf<\/a> (developed in 2006)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/File_Transfer_Protocol\">https:\/\/en.wikipedia.org\/wiki\/File_Transfer_Protocol<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techtarget.com\/searchnetworking\/definition\/File-Transfer-Protocol-FTP\">https:\/\/www.techtarget.com\/searchnetworking\/definition\/File-Transfer-Protocol-FTP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.precisely.com\/glossary\/sftp\">https:\/\/www.precisely.com\/glossary\/sftp<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ssh.com\/academy\/ssh\/protocol\">https:\/\/www.ssh.com\/academy\/ssh\/protocol<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Lily Yu<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"G\"><\/span>G<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gateway\"><\/span>Gateway<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Broadly, a <strong>gateway<\/strong> is a computer that sits between different networks or applications. The gateway converts information, data or other communications from one protocol or format to another.<\/p>\n\n\n\n<p>To be more specific, a Network Gateway is designed to translate traffic and transmission protocols between different networks. This is called <a href=\"#NAT\" data-type=\"internal\" data-id=\"#NAT\">Network Address translation (NAT)<\/a>.  The two key features of a network gateway are multi-protocol support and visibility. They are typically designed to support multiple protocols, making it easier to setup interfaces between different networks. And since gateways are deployed at networks boundaries, giving them unmatched visibility into the traffic crossing these boundaries allows us to differentiate a public Internet and private internal networks.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.checkpoint.com\/cyber-hub\/network-security\/what-is-a-network-gateway\/\">What is a network gateway?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techtarget.com\/iotagenda\/definition\/gateway\">What is a gateway?<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Tuan Huang<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gif\"><\/span>gif<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A gif is an image format, using the Lempel-Ziv-Welch (LZW) lossless compression technique to reduce file size without degrading the visual quality. It uses up to 8 bits per pixel and maximum of 256 colors from the 24-bit color space and allows a separate palette of 256 colors for each frame. Gifs are often used for animations or emotional reactions on social media.<\/p>\n\n\n\n<p>Disagreement over the pronunciation of the word. Steven Wilhite, the creator of the format, <a href=\"https:\/\/archive.nytimes.com\/bits.blogs.nytimes.com\/2013\/05\/21\/an-honor-for-the-creator-of-the-gif\/?smid=tw-nytimes\">told the New York Times in 2013<\/a> that the word should be pronounced using a soft g like in Jif the peanut butter brand. However, <a href=\"https:\/\/mashable.com\/archive\/mispronounced-words-tech\">polling has found<\/a> that pronouncing the word with a hard g is more prevalent.<\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/gif\">Mozilla MDN\u2019s definition<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/GIF\">Thorough explainer on Wikipedia<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Martha Janicki<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"H\"><\/span>H<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Host\"><\/span>Host<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A host is simply a computer system attached to the internet. It could be a single physical device running its own operating system, or it could be a virtual instance of an operating system, hosted along with many other instances on a computer elsewhere in the world. All hosts on the internet have IP addresses, either public or private.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"HSRP\"><\/span>HSRP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>HSRP &#8211;&nbsp;<\/strong>Hot Standby Redundancy&nbsp;Protocol, as the name states is a redundancy protocol.&nbsp; Developed by CISCO it creates a series of virtual&nbsp;routers all sharing a single MAC address and IP. &nbsp; The &#8220;active&#8221; router is the gateway to the local network and should it fail a &#8220;standby&#8221; router will become active and begin to forward traffic. &nbsp;<\/p>\n\n\n\n<p><em>&#8211; Jake Sherwood<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Hypertext_Transfer_Protocol_HTTP\"><\/span>Hypertext Transfer Protocol (HTTP)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Hypertext Transfer Protocol (HTTP)<\/strong> is a request-response application-level protocol based on the client-server model. HTTP is a TCP\/IP based communication protocol that&#8217;s used to deliver data (HMTL files, images, query results etc.) between computers in a standardized way. Basically, it&#8217;s responsible for transporting most of the data across the world wide web. The connection defaults to TCP port 80. HTTP is both connectionless and stateless. This means that once an HTTP request is made, the client disconnects from the server and waits for a response. When the server responds, it re-establishes the connection in order to send the response. The fact that HTTP is stateless refers to the fact that the clients are only aware of each other during the current request. Once it&#8217;s over, they forget about each other. Any kind of data can be sent by HTTP, provided the client and server both know how to handle the data. An HTTP request does exactly what it sounds like, as in it is requesting information\/data from a specific server. A basic request, or response, is made up of a header and an optional message body.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Unlike regular HTTP, <strong>HTTPS<\/strong> transmits data over an encrypted connection. &nbsp;This is done using Transport Layer Security (TLS) or the older Secure Sockets Layer (SSL). &nbsp;HTTPS allows for the authentication of the website you\u2019re visiting, to make sure it\u2019s actually the site you intend to visit, thus protecting your privacy and the data being exchanged. &nbsp;It also allows you to send data securely across a network.<\/span><\/p>\n\n\n\n<p>For more on HTTP and HTTPS, see <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/a-gentle-introduction-to-http\/\">this explainer<\/a> article.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"HTML\"><\/span>HTML<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p> <em><strong>HTML:<\/strong><\/em> stands for <strong>HyperText Markup Language<\/strong>. Unlike a programming language which uses to perform functions, a markup language like HTML uses tags define types of content and their intended purpose. For example, the headers, texts or tables in a web page are HTML elements. To represent new and less primitive \u201cobjects\u201d to the core <a href=\"#DOM\">DOM<\/a>, programming languages like JavaScript can add, modify, or remove objects using the HTML DOM API. In the analogy to LEGO parts (see <a href=\"#DOM\">DOM<\/a>), HTML elements can be seen as more \u201cstructural\u201d LEGO parts like a person, a car, or a wall, while JavaScript defines the behaviors of those objects, like when they are clicked on, edited, etc.<\/p>\n\n\n\n<p><strong>References:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\">Mozilla Development Network, DOM<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\">Mozilla Development Network, HTML<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211; <em>Rockey Ke<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"I\"><\/span>I<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"I2C\"><\/span>I2C<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>I2C is a type of synchronous serial protocol. The acronym stands for Inter-Integrated Circuit and its official written form is I<sup>2<\/sup>C. is There are only two connections between the controller device and secondary devices. I2C is composed only of a Serial Clock (SCL) connection and a Serial Data (SDA) connection. In an SCL connection, the controller sends the clock signal. In the SDA connection, the controller and secondary devices exchange data in both directions. The figure below shows the connections between a primary device and several secondaries.<\/p>\n\n\n<div class=\"wp-block-image is-resized is-style-default\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/marthajanicki.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0050f35a-f38e-474e-af2a-ef8a9c122183%2FI2C_bus.png?id=ec9c4b02-13be-4f3b-9972-3f3aa7e8fdfe&amp;table=block&amp;spaceId=f38608d2-7695-4b62-bcdf-3b813eccf57d&amp;width=480&amp;userId=&amp;cache=v2\" alt=\"Diagram of serial I2C synchronous serial communication. Downloaded from the webpage for Intro to Physical Computing\u2019s I2C explainer website. \"\/><figcaption class=\"wp-element-caption\">Figure. Diagram of serial I2C synchronous serial communication. Downloaded from <a href=\"https:\/\/itp.nyu.edu\/physcomp\/lessons\/synchronous-serial-communication-the-basics\/#Inter-Integrated_Circuit_I2C_or_Two-Wire_Interface_TWI\">the webpage<\/a> for Intro to Physical Computing\u2019s I2C explainer website.<\/figcaption><\/figure><\/div>\n\n\n<p>Output of bits is synchronized by a clock signal which is shared by both the primary and secondary devices. The clock signal is controlled by the primary device.<\/p>\n\n\n\n<p>Data is transferred in messages, which are broken up into frames of data, as shown in the Figure below. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/marthajanicki.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F37e5c0ab-9f53-4d55-9b10-aacc089423ed%2FIntroduction-to-I2C-Message-Frame-and-Bit-2.png?id=7d97439b-f986-4bc0-81c7-43d0a2e74a5f&amp;table=block&amp;spaceId=f38608d2-7695-4b62-bcdf-3b813eccf57d&amp;width=2000&amp;userId=&amp;cache=v2\" alt=\"Illustration of the contents of each I2C message\u2019s contents. Downloaded from the I2C explainer circuitbasics.com \"\/><figcaption class=\"wp-element-caption\">Figure. Illustration of the contents of each I2C message\u2019s contents. Downloaded from the <a href=\"https:\/\/www.circuitbasics.com\/basics-of-the-i2c-communication-protocol\/\">I2C explainer<\/a> <a href=\"http:\/\/circuitbasics.com\/\">circuitbasics.com<\/a><\/figcaption><\/figure>\n\n\n\n<p>Each message contains:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>start condition<\/strong>: SDA switches from high voltage to low voltage. This occurs before SCL switches from high to low.<\/li>\n\n\n\n<li><strong>address frame<\/strong>: a sequence of 7 to 10 bits identifying the secondary device to which the primary device talks.<\/li>\n\n\n\n<li><strong>read\/write bit<\/strong>: a single bit which indicates whether the primary device is sending data to the primary device (low voltage) or receiving data (high voltage)<\/li>\n\n\n\n<li><strong>ACK\/NACK bit<\/strong>: stands for acknowledgement\/no acknoledgement. This bit indicates whether hte message was sent successfully or not.<\/li>\n\n\n\n<li><strong>data frames 1 and 2<\/strong>: each data frame is 8 frames long. It is always followed by an ACK\/NACK, which must be received before the next data frame is sent.<\/li>\n\n\n\n<li><strong>stop condition<\/strong>: the SDA line switches from low voltage to high voltage after SCL line switches from low to high.<\/li>\n<\/ul>\n\n\n\n<p><strong>Serial communication:<\/strong> data is streamed, one bit at a time, over as little as one wire<em>.<\/em><\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/itp.nyu.edu\/physcomp\/lessons\/synchronous-serial-communication-the-basics\/#Inter-Integrated_Circuit_I2C_or_Two-Wire_Interface_TWI\">I2C explainer from Intro to Physical Computing at NYU<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.circuitbasics.com\/basics-of-the-i2c-communication-protocol\/\">I2C explainer on circuitbasics.com<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/learn.sparkfun.com\/tutorials\/serial-communication\/all\">Explainer of serial communication more generally on SparkFun<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>Note: I have chosen to use the terms \u201cprimary\u201d and \u201csecondary\u201d instead of the standard terms \u201cmaster\u201d and \u201cslave\u201d respectively.<\/em><\/p>\n\n\n\n<p><em>&#8211; Martha Janicki<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ICE\"><\/span>ICE<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Interactive connectivity estalishment<\/strong> &#8211; An ICE candidate is a public IP address and port that could potentially be an address that receives data. Each user will typically have multiple ICE candidates that are gathered by making a series of requests to a STUN server. It is used as part of the WebRTC protocol.<\/p>\n\n\n\n<p>&#8211;<em> Vesper Guo<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"IMAP\"><\/span>IMAP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Internet Message Access Protocol(IMAP) is an internet application protocol that allows email clients to retrieve email messages from a mail server over internet connection from multiple devices.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comparison_of_POP3_and_IMAP\"><\/span>Comparison of POP3 and IMAP<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>The design of <a href=\"#POP\" data-type=\"internal\" data-id=\"#POP\">POP<\/a> was driven by the need of users having only temporary Internet connections, such as dial-up access, allowing users to retrieve e-mail when connected. It can be only used on one computer, and can\u2019t be synchronized between multiple devices.<\/p>\n\n\n\n<p>IMAP was designed to leave all messages on the server and allow simultaneous access by multiple clients.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.microsoft.com\/en-us\/office\/what-are-imap-and-pop-ca2c5799-49f9-4079-aefe-ddca85d5b1c9\">Microsoft Support: What are IMAP and POP?<\/a> <\/li>\n<\/ul>\n\n\n\n<p>&#8211; <em>Yan Shao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Internet_Assigned_Numbers_Authority_IANA\"><\/span>Internet Assigned Numbers Authority (IANA)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Internet Assigned Numbers Authority (IANA)<\/strong>: An organization that manages IP address allocation, domain names, and protocol parameters.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.internetsociety.org\/resources\/doc\/2014\/iana-functions-the-basics\/\" target=\"_blank\" rel=\"noreferrer noopener\">IANA Functions: The Basics<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Internet_Group_Management_Protocol_IGMP\"><\/span><strong>I<\/strong>nternet Group Management Protocol (IGMP)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>IGMP<\/strong> is a&nbsp;communications protocol used by&nbsp;hosts and&nbsp;routers on&nbsp;IPv4 networks to establish multicast group memberships.<\/p>\n\n\n\n<p>Reference: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Internet_Group_Management_Protocol\">Wikipedia<\/a><\/p>\n\n\n\n<p><em>&#8211; Tuan Huang<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"IP_address\"><\/span>IP address<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>An <strong>IP address<\/strong>, aka <strong>Internet Protocol address<\/strong>, is a label given to every device connected to a network that uses the internet protocol (<a rel=\"noreferrer noopener\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/IP_Address\" target=\"_blank\">MDN<\/a>). It can consist of numbers and\/or hexadecimal letters representing the number. The 2 main formats for IP addresses are IPv4 (32-bit) and IPv6 (128-bit). An IPV4 address consists of 4 bytes (32 bits) and an IPV6 address of 6 bytes (128 bits). For example, here is one of Google&#8217;s IP addresses:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Google IPv4 address:<\/td><\/tr><tr><td>216.58.216.164<\/td><\/tr><tr><td>Google IPv6 address:<\/td><\/tr><tr><td>2607:f8b0:4005:805::200e<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><a rel=\"noreferrer noopener\" href=\"https:\/\/www.google.com\/url?sa=i&amp;url=https%3A%2F%2Fwww.computerhope.com%2Fissues%2Fch000784.htm&amp;psig=AOvVaw2QAQ7tk4N_x8AX1tjr1q9u&amp;ust=1606932592162000&amp;source=images&amp;cd=vfe&amp;ved=0CAIQjRxqFwoTCLiFyMqwre0CFQAAAAAdAAAAABAD\" target=\"_blank\">Source<\/a><\/figcaption><\/figure>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/IP_Address\">https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/IP_Address<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Julie Lizardo<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"J\"><\/span>J<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"JavaScript\"><\/span>JavaScript<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>JavaScript<\/strong> is a programming language that can be used to modify website content elements to make them responsive to a user\u2019s action. The HTML DOM API is a standard for how to get, change, add, or delete HTML elements. JavaScript modifies the objects of the DOM according to its scripted logic. In the LEGO analogy, JavaScript works like the mechanical parts like gears or batteries to make things <a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=9aVhDLLMcuE\" target=\"_blank\">move<\/a>.<\/p>\n\n\n\n<p><em><strong>CSS:<\/strong><\/em> stands for Cascading Style Sheets. CSS dictates how the HTML elements of a website should appear on the frontend of the page. CSS communicate with DOM by declaring that it is the style element, and it was applied to HTML elements to finish the look of elements. They are like the paint, color, and facial expression printed on LEGO persons, further articulating their visual characteristics .<\/p>\n\n\n\n<p><strong>JavaScript<\/strong>: JavaScript is a programming language that can be used to modify website content make them responsive to a user\u2019s action. Since the HTML DOM API is a standard for how to get, change, add, or delete HTML elements, JavaScript utilize these function according to its scripted logic. In the LEGO analogy, JavaScript works like the mechanical parts like gears or batteries to make things <a href=\"https:\/\/www.youtube.com\/watch?v=9aVhDLLMcuE\">move<\/a>, as shown in the Figure below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/spring-walrus-12c.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9540c59a-3a27-4d2c-b0bc-976d09c3a29d%2FUntitled.png?id=c260d9eb-0d54-4748-96f8-72119679a0f6&amp;table=block&amp;spaceId=e9f2cc7c-0b77-48da-9daa-4d94ff1c2cfb&amp;width=2000&amp;userId=&amp;cache=v2\" alt=\"Explaining DOM in LEGO,  picture screenshot from Beyond The Brick , illustrative text added by Rockey Ke\"\/><figcaption class=\"wp-element-caption\">Figure. Explaining DOM in LEGO, picture screenshot from <a href=\"https:\/\/www.youtube.com\/watch?v=9aVhDLLMcuE\">Beyond The Brick<\/a> , illustrative text added by Rockey Ke<\/figcaption><\/figure>\n\n\n\n<p><strong>References:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\">Mozilla Development Network, DOM<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\">Mozilla Development Network, HTML DOM API<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Xiaoyu (Rockey) Ke<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"K\"><\/span>K<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kernel\"><\/span>Kernel<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A <strong>Kernel<\/strong> is the core of an operating system which constantly performs multitasking from physical hardware to application software. Its goal is to maintain and manages resources by providing access to CPU, memory, disk I\/O, and networking as efficient as possible. You can think of the kernel as the main loop of an operating system. The Figure below shows the relationship between the kernel and user software  and the hardware of a computer.<\/p>\n\n\n\n<figure class=\"wp-block-image is-style-default\"><img decoding=\"async\" src=\"https:\/\/erintao.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F98667e07-2995-44b5-a674-ba6ddd7983db%2FUntitled.png?id=d84fb3ef-aa03-449e-9f5a-49b7dd731654&amp;table=block&amp;spaceId=c8b87ad7-76a5-4b15-b993-144f01e00c4f&amp;width=960&amp;userId=&amp;cache=v2\" alt=\"Diagram of an operating system. The kernel manages the traffic between user apps and the processor and drivers for memory, disks, and devices.\"\/><figcaption class=\"wp-element-caption\">Figure. Image from <a href=\"https:\/\/www.javatpoint.com\/what-is-kernel\">Javapoint, What is Kernel in Operating System?<\/a><\/figcaption><\/figure>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.ionos.com\/digitalguide\/server\/know-how\/what-is-a-kernel\/\">https:\/\/www.ionos.com\/digitalguide\/server\/know-how\/what-is-a-kernel\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/what-is-a-kernel\">https:\/\/www.digitalocean.com\/community\/tutorials\/what-is-a-kernel<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.javatpoint.com\/what-is-kernel\">https:\/\/www.javatpoint.com\/what-is-kernel<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Erin Tao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Key_Pair\"><\/span><meta charset=\"utf-8\">Key Pair<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Key pair<\/strong>&nbsp;\u2013&nbsp; Two keys, a public key and a private key. See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"L\"><\/span>L<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Local_Area_Network_LAN\"><\/span>Local Area Network (LAN)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Local Area Network (LAN)<\/strong> is a group of computers or other IoT devices that are in the same place geographically and share the same physical network.<\/p>\n\n\n\n<p><em>&#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"M\"><\/span>M<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Multicast_Domain_Name_System_MDNS\"><\/span>Multicast Domain Name System (MDNS)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>mDNS <\/strong>is short for<strong>Multicast Domain Name System.<\/strong> It is named as such because it is for sharing IP addresses within small local networks that don&#8217;t have their own DNS. When queried to identify itself through mDNS, a machine will <a href=\"#Multicast\" data-type=\"internal\" data-id=\"#Multicast\">multicast<\/a> a message that any other machine in the subnet can use to identify it. mDNS could be used to connect your computer to your wireless printer, or to use your phone to play Spotify on your gaming console.&nbsp;<br><strong>References:<\/strong>&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.ionos.com\/digitalguide\/server\/know-how\/multicast-dns\/\" target=\"_blank\">Ionos.com<\/a>,&nbsp;<a rel=\"noreferrer noopener\" href=\"http:\/\/multicastdns.org\/\" target=\"_blank\">multicastdns.org<\/a><\/p>\n\n\n\n<p><em>&#8211; Christina Dacanay<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"MAC_Address\"><\/span>MAC Address<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Key points &#8211;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>identifies a device on a network<\/li>\n\n\n\n<li>hardware address<\/li>\n\n\n\n<li>assigned by device manufacturers<\/li>\n<\/ol>\n\n\n\n<p>A Media Access Control (MAC) address is a string of characters that identifies a device on a network. It\u2019s tied to a key connection device in your computer called the network interface card, or NIC. The NIC is essentially a computer circuit card that makes it possible for your computer to connect to a network. A NIC turns data into an electrical signal that can be transmitted over the network.<\/p>\n\n\n\n<p>Every NIC has a hardware address that\u2019s known as a MAC address. Whereas IP addresses are associated with a networking software called&nbsp;<a href=\"https:\/\/whatismyipaddress.com\/tcpip-simplified\">TCP\/IP<\/a>, MAC addresses are linked to the hardware of network adapters.<\/p>\n\n\n\n<p>MAC addresses are primarily assigned by device manufacturers, and are therefore often referred to as the&nbsp;<strong>burned-in address<\/strong>, or as an&nbsp;<strong>Ethernet hardware address<\/strong>,&nbsp;<strong>hardware address<\/strong>, or&nbsp;<strong>physical address<\/strong>. Manufacturers assign a MAC address to a network adapter when it is produced. It is hardwired or hard-coded onto your computer\u2019s NIC and is unique to it. Something called the Address Resolution Protocol (ARP) translates an IP address into a MAC address. Think of the ARP as a passport that takes data from an IP address through an actual piece of computer hardware.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mac_Address_Spoofing\"><\/span>Mac Address Spoofing<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p><strong>MAC spoofing<\/strong>&nbsp;is a technique for changing a factory-assigned&nbsp;Media Access Control (MAC) address&nbsp;of a&nbsp;network interface&nbsp;on a&nbsp;networked&nbsp;device. Changing the assigned MAC address may allow the user to bypass&nbsp;access control lists&nbsp;on&nbsp;servers&nbsp;or&nbsp;routers, either hiding a computer on a network or allowing it to impersonate another network device. MAC spoofing is done for legitimate and illicit purposes alike.<\/p>\n\n\n\n<p>MAC address spoofing is limited to the local&nbsp;broadcast domain. Unlike&nbsp;IP address spoofing, where senders spoof their IP address in order to cause the receiver to send the response elsewhere, in MAC address spoofing the response is usually received by the spoofing party if MAC filtering is not turned on making the spoofer able to impersonate a new device.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/whatismyipaddress.com\/mac-address\">https:\/\/whatismyipaddress.com\/mac-address<\/a><\/li>\n\n\n\n<li>ifconfig &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Ifconfig\">https:\/\/en.wikipedia.org\/wiki\/Ifconfig<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.iana.org\/assignments\/ethernet-numbers\/ethernet-numbers.xml\">https:\/\/www.iana.org\/assignments\/ethernet-numbers\/ethernet-numbers.xml<\/a><\/li>\n\n\n\n<li>Identity Masking &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/MAC_spoofing#Identity_masking\">https:\/\/en.wikipedia.org\/wiki\/MAC_spoofing#Identity_masking<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211;<em> Suraj Selvabarathy<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Memory_stacks_and_heaps\"><\/span>Memory stacks and heaps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Memory stacks and heaps<\/strong> &#8211; In computer memory, the&nbsp;<strong>stack<\/strong>&nbsp;is a temporary area of computer memory that stores the variables created by methods. During runtime, local variables are declared, stored and initialized in the stack. Once the computation is finished, and the variables have been called and used, they will be automatically deleted by the compiler. Stacks have a linear data structure that is in a contiguous block. Refer to heaps for comparison.<\/p>\n\n\n\n<p>The <strong>heap<\/strong> is an area of computer memory that stores global variables. Heaps are based on hierarchical structure using trees and arrays. Unlike the stack, de-allocation of variables is not automatic and needs to be specially addressed by the programmer. Also, each block of memory is allocated in random order. Refer to stacks for more comparison.<\/p>\n\n\n\n<p>This is the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.guru99.com\/stack-vs-heap.html#:~:text=Stack%20is%20a%20linear%20data,you%20to%20access%20variables%20globally.\" target=\"_blank\">link<\/a>&nbsp;to the reference.<\/p>\n\n\n\n<p><em>&#8211; Cy Kim<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Multicast\"><\/span>Multicast<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To deliver a packet, there are three kinds of methods &#8211;<\/p>\n\n\n\n<p><strong>Unicast<\/strong>, where the packet is sent to a single destination (one-to-one). <strong>Broadcast<\/strong>, where the packet is sent to everyone on the network (one-to-all). <strong>Multicast<\/strong>, where the packet is sent to a set of hosts that can be on different networks (one-to-many \/ many-to-many)<\/p>\n\n\n\n<p>The <strong>IP Multicast <\/strong>protocol is a method for&nbsp;one-to-many and&nbsp;many-to-many real-time communication over an IP infrastructure, sending datagrams* to a group of interested receivers in a single transmission. It is commonly used in applications such as online streaming video and gaming.<\/p>\n\n\n\n<p>Key concepts in IP multicast include an IP multicast address, a multicast distribution tree and receiver driven tree creation. To join the multicast group as a receiver, it uses the IGMP protocol.<\/p>\n\n\n\n<p>For an IP multicasting to work, on the data link layer (Ethernet) you need a multicasting MAC address to identify a host&#8217;s network interface hardware, and a multicasting IP group address on the network layer (IP) for the computer to receive the multicast message and see it as a multicast datagram. These  two addresses (IP address and MAC address) are mapped to each other through a specific calculation.<\/p>\n\n\n\n<p>With the addresses mapped to each other, the multicast process happens as follows: A hardware with receive a multicast datagram on a multicast MAC address. It strips the MAC addresses off and send the rest to the above layer, which is the Network Layer. At that point, the Network Layer needs to be able to understand it&#8217;s dealing with a multicast, so the IP address is set in a way that allows the computer to see it as a multicast datagram.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.firewall.cx\/networking-topics\/general-networking\/107-network-multicast.html\">MULTICAST &#8211; UNDERSTAND HOW IP MULTICAST WORKS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.catchpoint.com\/network-admin-guide\/ip-multicast\">IP Multicast Introduction and Examples<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Tuan Huang<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"N\"><\/span>N<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Network_Latency\"><\/span>Network Latency<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Key points &#8211;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>delays in communication over a network<\/li>\n\n\n\n<li>low (latency) is good and high (latency) is bad<\/li>\n<\/ol>\n\n\n\n<p><a href=\"https:\/\/www.keycdn.com\/support\/network-latency\">Network latency<\/a>, or lag, is the term used to describe delays in communication over a network. In networking, it is best thought of as the amount of time taken for a packet of data to travel through multiple devices, then be received at its destination and decoded.<\/p>\n\n\n\n<p>Low latency is good, meaning there is little or no delay.<\/p>\n\n\n\n<p>High latency is bad, meaning it takes a long time for the requested resource to reach its destination.<\/p>\n\n\n\n<p>Long delays that occur in high-latency networks create bottlenecks in communication. In the worst cases, it\u2019s like traffic on a four-lane highway trying to merge into a single lane. High latency decreases communication bandwidth, and can be temporary or permanent, depending on the source of the delays.<\/p>\n\n\n\n<p>References &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.ir.com\/guides\/what-is-network-latency#anchor1\">https:\/\/www.ir.com\/guides\/what-is-network-latency#anchor1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Latency\">https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Latency<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_delay\">https:\/\/en.wikipedia.org\/wiki\/Network_delay<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Suraj <em>Selvabarathy<\/em><\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"NAT\"><\/span>NAT<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Network Address Translation <\/strong>&#8211; is a service that operates on a router or edge platform to connect private networks to public networks like the internet. For instance, you can can install a software with a NAT device to a server that sits in the private subnet, which has no internet access directly.<\/p>\n\n\n\n<p><em>&#8211; Vesper Guo<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O\"><\/span>O<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"OCSP\"><\/span>OCSP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>OCSP<\/strong>&nbsp;&#8211; <strong>Online Certificate Status Protocol<\/strong> is used in the handshake of setting up an SSL connection.&nbsp; When visiting a secure website a user&#8217;s browser sends a OCSP request to a CA (Certificate Authority) to confirm if the certificate is valid.&nbsp; Specifically checking the revocation status of a X.509 digital certificate.<\/p>\n\n\n\n<p><em>&#8211; Jake Sherwood<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Octet\"><\/span>Octet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">An &#8216;<strong>octet<\/strong>&#8216; and a &#8216;byte&#8217; are essentially the same thing ( 8 bits of data ). However, the term &#8216;octet&#8217; is used mainly within the context of networks<\/span>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"OSI\"><\/span>OSI<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>The Open Systems Interconnect (OSI) model<\/strong> defines telecommunications networking in terms of a vertical stack of seven layers. <\/span><i><span style=\"font-weight: 400;\">Upper layers<\/span><\/i><span style=\"font-weight: 400;\"> of the OSI model represent software that implements network services like encryption and connection management. <\/span><i><span style=\"font-weight: 400;\">Lower layers<\/span><\/i><span style=\"font-weight: 400;\"> of the OSI model implement more primitive, hardware-oriented functions like routing, addressing, and <\/span><a href=\"https:\/\/www.lifewire.com\/operating-systems-unix-vs-windows-2180225\"><span style=\"font-weight: 400;\">flow control<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Data communication in the OSI model starts with the top layer of the stack at the sending side, travels down the stack to the sender&#8217;s lowest (bottom) layer, then traverses the physical network connection to the bottom layer on the receiving side, and up its OSI model stack.<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Layer 1: Application Layer<\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 2: Presentation Layer<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 3: Session Layer<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 4: Transport Layer<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 5: Network Laye<\/span>r<\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 6: Data Link Layer<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Layer 7: Physical Layer<\/span><\/li>\n<\/ul>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wikiedia&#8217;s <a href=\"https:\/\/en.wikipedia.org\/wiki\/OSI_model\">page on the OSI model<\/a><\/li>\n\n\n\n<li>A nice <a href=\"https:\/\/community.fs.com\/blog\/tcpip-vs-osi-whats-the-difference-between-the-two-models.html\">comparison of the OSI and TCP\/IP stack models<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Open_Sound_Control_OSC\"><\/span>Open Sound Control (OSC)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Open Sound Control<\/strong> or <strong>OSC<\/strong> &#8211; see this <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/open-sound-control\/\">explanation<\/a>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"P\"><\/span>P<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Packet\"><\/span>Packet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Packet<\/strong>: In&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-the-network-layer\/\" target=\"_blank\">networking<\/a>, a packet is a small segment of a larger message. Data sent over computer networks, such as the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.cloudflare.com\/network-layer\/how-does-the-internet-works\/\" target=\"_blank\">Internet<\/a>, is divided into packets. These packets are then recombined by the computer or device that receives them.<br><br>The structure of the network packet consists of three parts; <a href=\"#Packet_Header\">header<\/a>, payload, and trailer. The header includes instructions about the data carried by the packet. The payload is the body of a packet, which is the actual data that the packet is delivering to the destination. Finally, the trailer contains a couple of bits that tell the receiving device that it has reached the end of the packet.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><br><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-packet\/\" target=\"_blank\">https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-packet\/<\/a><\/p>\n\n\n\n<p><em>&#8211; Sihan Zhang<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Packet_vs_Frame\"><\/span>Packet vs. Frame<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Network layer:<\/strong> This layer organizes and transmits data between multiple networks.<\/li>\n\n\n\n<li><strong>Data link layer:<\/strong> This layer concerns data transmission between the nodes within a network and manages the connections between physically connected devices such as switches.<\/li>\n<\/ul>\n\n\n\n<p>Framing is used in a point-to-point connection between two computers or between a computer and a router. Data is transmitted as a stream of bits. The frame header contains the source and destination MAC addresses. When a router receives a frame from one computer, it will compose another frame with the content of the first frame but update the source MAC address.<\/p>\n\n\n\n<p>There are two types of frames: <strong>fixed-length<\/strong> and <strong>variable-length frames<\/strong>. In fixed-length framing, the size of the framework is the delimiter; if you know the frame size, you know how many bytes to count until the end of the frame. So there is no need to set a boundary for the frame. In variable-length framing, it\u2019s difficult to determine the start and end of a frame,  so it\u2019s essential to define the start and end of a frame.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/sites\/4\/2021\/02\/frame-1.png\" alt=\"Untitled\"\/><\/figure>\n\n\n\n<p><em>Figure. The parts of an Ethernet Frame. Image credit: https:\/\/www.baeldung.com\/cs\/networking-packet-fragment-frame-datagram-segment<\/em><\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.bmc.com\/blogs\/osi-model-7-layers\/\">https:\/\/www.bmc.com\/blogs\/osi-model-7-layers\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.baeldung.com\/cs\/networking-packet-fragment-frame-datagram-segment#:~:text=The\">https:\/\/www.baeldung.com\/cs\/networking-packet-fragment-frame-datagram-segment<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211;<em> Jingyuan Li<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Packet_header\"><\/span>Packet header<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Data sent over computer networks, such as the internet, is divided into packets. A <strong>packet header<\/strong> is a \u201clabel\u201d which provides information about the packet\u2019s contents, origin, and destination. Network packets include a header so that the device that receives them knows where the packets come from, what they are for, and how to process them.<\/p>\n\n\n\n<p>Packets actually have more than one header and each header is used in a different part of the networking process. Packet headers are attached by certain types of networking protocols. At a minimum, most packets that traverse the internet will include a Transmission Control Protocol (TCP) header and an Internet Protocol (IP) header.<\/p>\n\n\n\n<p>For example, the IPv4 packet header consists of 20 bytes of data that are divided into the following fields:<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized is-style-default\" id=\"yui_3_17_2_1_1672692174886_203\"><a href=\"https:\/\/erg.abdn.ac.uk\/users\/gorry\/course\/inet-pages\/ip-packet.html\"><img decoding=\"async\" src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/5ff0d53278965c3d27c3e12c\/dbcf1e6c-bd9f-4a4c-927e-faaaf4a2f212\/Screen+Shot+2022-12-07+at+5.12.21+PM.png?format=1500w\" alt=\"Diagram of an IPv4 packet header. the details can be found at https:\/\/erg.abdn.ac.uk\/users\/gorry\/course\/inet-pages\/ip-packet.html \" style=\"width:630px;height:255px\"\/><\/a><figcaption class=\"wp-element-caption\">Diagram of a packer header. Image source: <a href=\"https:\/\/erg.abdn.ac.uk\/users\/gorry\/course\/inet-pages\/ip-packet.html\">Gorry Fairhurst, <em>&#8220;IPv4 Packet Header&#8221;<\/em><\/a><\/figcaption><\/figure>\n\n\n\n<p><strong>References:<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-packet\/\">https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-packet\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/erg.abdn.ac.uk\/users\/gorry\/course\/inet-pages\/ip-packet.html\">https:\/\/erg.abdn.ac.uk\/users\/gorry\/course\/inet-pages\/ip-packet.html<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Priyanka Makin<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Packet_Switching\"><\/span>Packet Switching<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>When a host wants to send data to another host through the internet, the data (e.g. a video, audio, picture, text, etc) will split into smaller chunks of data which are called <strong>packets<\/strong>. The packet will be received by a router which will then send it to the destination host. At the destination, all these small chunks (packets) have to be reassembled to recreate the data.<\/p>\n\n\n\n<p>The router receives the whole packet and pass it to the next router or the host. This is called <strong>store-and-forward transmission<\/strong>. Dividing a file into packets helps to raise the efficiency of network transformation, because it allows the router to receive and send the packet at the same time, and to send different packets via different routes, if one route becomes congested mid-transmission.  More than one user, application, and\/or node may take turns sending and receiving data through a router without permanently retaining the underlying medium\/channel, as in a circuit-switched network.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=k8rJFgeuZRw&amp;t=336s\">Packet switching | Packet switched network | Switching technology | TechTerms (YouTube video)<\/a><\/p>\n\n\n\n<p><em>&#8211; Jingyuan Li<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PEM\"><\/span>PEM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>PEM<\/strong> stands for Privacy Enhanced mail, and was originally intended for use to secure email communication through the internet, but has since become a standard for internet security. It is used as a file type in&nbsp;<em>Public Key Infrastructure (PKI)<\/em>*, as a file format that stores cryptographic keys, such as SSL certificated along with their associated private keys.<\/p>\n\n\n\n<p>A PEM file is created in four steps.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The email message is converted into a standard depending on the operating systems of the sending and receiving parties.<\/li>\n\n\n\n<li>The&nbsp;<em>message digest<\/em>* of the email in addition to the sender\u2019s private key is then encrypted together to create a <a href=\"#Digital_Signature\">digital signature<\/a>, as shown in the figure below.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image is-style-default\"><img decoding=\"async\" src=\"https:\/\/bgan328789767.files.wordpress.com\/2022\/12\/236.png?w=857\" alt=\"A diagram of a key exchange. A message digest goes through an encryption process, which outputs a digital signature and the sender's private key.\" class=\"wp-image-3438\"\/><figcaption class=\"wp-element-caption\">Figure. A message digest being fed into an encryption routine. For more, see <a href=\"https:\/\/www.geeksforgeeks.org\/privacy-enhanced-mail-pem-and-its-working\/\">https:\/\/www.geeksforgeeks.org\/privacy-enhanced-mail-pem-and-its-working\/<\/a><\/figcaption><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Then the message digest along with the digital signature is encrypted with the symmetric key to create the encrypted message, as shown in the figure below.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image is-style-default\"><img decoding=\"async\" src=\"https:\/\/bgan328789767.files.wordpress.com\/2022\/12\/332.png?w=915\" alt=\"Diagram. The message digest and digital signature are both fed into an encryption function, along with a symmetric key, The output is an encrypted result.\" class=\"wp-image-3440\"\/><figcaption class=\"wp-element-caption\">Figure. The next step in the PEM encryption scheme. <a href=\"https:\/\/www.geeksforgeeks.org\/privacy-enhanced-mail-pem-and-its-working\/\">https:\/\/www.geeksforgeeks.org\/privacy-enhanced-mail-pem-and-its-working\/<\/a><\/figcaption><\/figure>\n\n\n\n<p>Lastly the binary encrypted message goes through&nbsp;<em>base-64 encoding<\/em>* process that outputs a message containing characters.<\/p>\n\n\n\n<p>References:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Also see,&nbsp;<a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/vpn-beginners-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">VPN: Beginner\u2019s Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.microfocus.com\/SM\/9.51\/Hybrid\/Content\/security\/concepts\/what_are_pem_files.htm\" target=\"_blank\" rel=\"noreferrer noopener\">What Are PEM Files?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/privacy-enhanced-mail-pem-and-its-working\/\" target=\"_blank\" rel=\"noreferrer noopener\">Privacy Enhanced Mail (PEM) and Its Working<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.howtogeek.com\/devops\/what-is-a-pem-file-and-how-do-you-use-it\/\" target=\"_blank\" rel=\"noreferrer noopener\">What Is A PEM File? And How Do You Use It?<\/a><\/li>\n<\/ul>\n\n\n\n<p> &#8211;<em> Bianca Gan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Pointer\"><\/span>Pointer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A pointer is a variable that stores the memory location of data. Using pointers helps improve performance by reducing repetitive operation (copying and accessing data).<\/p>\n\n\n\n<p><strong>references:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Pointer_(computer_programming)\">https:\/\/en.wikipedia.org\/wiki\/Pointer_(computer_programming)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/beginnersbook.com\/2014\/01\/c-pointers\/\">https:\/\/beginnersbook.com\/2014\/01\/c-pointers\/<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/lidia-js.kis.p.lodz.pl\/ITCS\/theory\/CPointers.php\">http:\/\/lidia-js.kis.p.lodz.pl\/ITCS\/theory\/CPointers.php<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211;<em>I-Jon Hsieh<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PKTGEN\"><\/span>PKTGEN<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>PKTGEN<\/strong>&nbsp; &#8211; Is a Linux kernel&nbsp;tool for generating packets.&nbsp; In addition to being a tool PKTGEN is a protocol used to define the format of the test packets. It is typically used for testing and measuring latency, packet arrival and delay, throughput and other user defined rates.<\/p>\n\n\n\n<p><em>&#8211; Jake Sherwood<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Private_Key\"><\/span><meta charset=\"utf-8\">Private Key<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Private Key \u2013&nbsp;<\/strong>A long randomly (or pseudo-randomly) generated sequence of bits that cannot be easily guessed. It is only known by the generator\/originator and can encrypt and decrypt data. The complexity and length of a private key determines how secure it is. Private keys are stored in the software or operating system you use.<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Public_Key\"><\/span><meta charset=\"utf-8\">Public Key<strong> <\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Public Key \u2013&nbsp;<\/strong>A key that can be exchanged with anybody and is freely shared to anyone. It is used to encrypt messages for a specific recipient with the matching private key. Public keys are stored on digital certificates for secure transport and sharing and can be published on the internet.&nbsp;<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"POP\"><\/span>POP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Post Office Protocol(POP) version 3(POP3) is an application layer protocol provides an email client to retrieve email messages, store on the client computer, and delete them from the server.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.microsoft.com\/en-us\/office\/what-are-imap-and-pop-ca2c5799-49f9-4079-aefe-ddca85d5b1c9\">Microsoft Support: What are IMAP and POP? <\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Post_Office_Protocol\">Wikipedia: Post Office Protocol<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Yan Shao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Protocol\"><\/span>Protocol<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">&nbsp;A communication <strong>protocol<\/strong> is a system of rules in telecommunications that allow two or more entities to transmit information to each other. &nbsp;A protocol can be implemented in hardware, software, or a combination of both.<\/span><\/p>\n\n\n\n<p>Reference: Wikipedia&#8217;s <a href=\"https:\/\/en.wikipedia.org\/wiki\/Communications_protocol\">page on protocols<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Proxy_Server\"><\/span>Proxy Server<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A <strong>proxy server<\/strong> is a middleman between client (you) and server (the web). It functions as a firewall and web filter, provides shared network connections, and speeds up common requests by caching data. Proxy server provides high level of privacy since it can hide your IP address when you do any request, and encrypt your data for secure transition, and can block access to certain web pages based on IP address.<\/p>\n\n\n\n<p><strong><em>Reference:<\/em><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.varonis.com\/blog\/what-is-a-proxy-server\/\">what is a proxy server<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.pcmag.com\/encyclopedia\/term\/proxy-server\">proxy server<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Yiting Liu<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Public_Key_Infrastructure_PKI\"><\/span>Public Key Infrastructure (PKI)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Public Key Infrastructure (PKI)<\/strong>: Is the system of using a private and public key for encryption<\/p>\n\n\n\n<p><em> &#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Q\"><\/span>Q<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"QUIC\"><\/span>QUIC<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>QUIC is a low-latency Internet transportation protocol designed by Google in 2012. Combining features from <a href=\"#TCP\" data-type=\"internal\" data-id=\"#TCP\">TCP<\/a> and <a href=\"#UDP\" data-type=\"internal\" data-id=\"#UDP\">UDP<\/a>, it aims to reduce latency primarily by improving two behaviours of <a href=\"#HTTP\" data-type=\"internal\" data-id=\"#HTTP\">HTTP<\/a> traffic.<\/p>\n\n\n\n<p>First, it simplifies the process of secure connection setup, combining together multiple steps into a single request-response. On the other hand, using UDP as its basis, QUIC is inherently a lighter weight transmission protocol, but it also involves some TCP features such as congestion control and loss recovery. Meaning data are streamed through UDP, and if single packets are loss, they could be checked and retransmitted by QUIC individually. This allows data to flow freely even when error occurs and all of its data wouldn\u2019t be blocked.<\/p>\n\n\n\n<p>In short, QUIC allows the transmission to have the speed and efficiency of a UDP connection, while having the security and accuracy of a TCP connection.<\/p>\n\n\n\n<p><strong>Reference:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.chromium.org\/quic\/\">https:\/\/www.chromium.org\/quic\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/nordvpn.com\/blog\/what-is-quic-protocol\/\">What is QUIC protocol?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/levelup.gitconnected.com\/will-googles-quic-protocol-replace-tcp-6ed991a0ca1e\">Will Google\u2019s QUIC Protocol Replace TCP?<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Tuan Huang<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"R\"><\/span>R<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Regular_Expressions_regex\"><\/span>Regular Expressions (regex)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Regular Expressions<\/strong>, or <strong>regexes<\/strong>, are &#8220;specially encoded text strings used as patterns for matching sets of strings.&#8221; (<a href=\"https:\/\/www.oreilly.com\/library\/view\/introducing-regular-expressions\/9781449338879\/ch01.html\">Fitzgerald<\/a>). When you&#8217;re using a search tool, sometimes you want to search for patterns of text rather than a specific text.  Here are a few examples of regular expression patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>^ &#8211; the start of a string, or start of a line in multi-line text<\/li>\n\n\n\n<li>$- the end of a string, or end of a line in multi-line text<\/li>\n\n\n\n<li>\\s &#8211; any whitespace character (spaces, tabs, linefeeds, etc)<\/li>\n\n\n\n<li>\\S  &#8211; any character that&#8217;s not whitespace<\/li>\n\n\n\n<li>\\d &#8211; any numeric (digit) character<\/li>\n\n\n\n<li>\\D &#8211; any character that&#8217;s non-numeric<\/li>\n\n\n\n<li>\\w -any word character (letters or numbers, but not punctuation or whitespace)<\/li>\n\n\n\n<li>\\W &#8211; any non-word character<\/li>\n\n\n\n<li>\\x &#8211; any hexade\u00adcimal digit (0-9 and a-f or A-F)<\/li>\n<\/ul>\n\n\n\n<p>Regular expressions can be combined to create complex searches.  For example, perhaps you want every day in the month of August, formatted like this: &#8220;August 23&#8221;. You&#8217;re searching for the word &#8220;August&#8221; followed by one or more spaces, followed by one or more numeric characters. The regular expression might be <code>August\\s+\\d+<\/code> . Or if you&#8217;ll take any word that starts with &#8220;Aug&#8221;, followed by any whitespace or punctuation,  it would be <code>Aug\\w<em>[\\s<\/em>|\\W*]\\d+<\/code>. This pattern would match &#8220;August 23&#8221;, &#8220;Aug 23&#8221;, &#8220;Aug-23&#8221;,  or &#8220;Aug.23&#8221;, or any other numeric date in August.<\/p>\n\n\n\n<p>Regular expressions have been used in programming as patterns for text searches for decades, and despite the name, there are some variations in the patterns. Different programming engines use slightly different variations on regular expression patterns. There are numerous guides and cheat sheets to regular expressions available on the web. When you&#8217;re looking for one, it helps to search for the context in which you want to use them, for example &#8220;regular expressions in JavaScript&#8221; or in C\/C++, or in Python, or on the Linux command line, and so forth.  <\/p>\n\n\n\n<p>Here are a few useful regex explainers and cheat cheets:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/introducing-regular-expressions\/9781449338879\/ch01.html\">Introducing Regular Expressions<\/a> online book by Michael Fitzgerald (O&#8217;Reilly)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.regexpal.com\/\">regexpal<\/a>, a regular expression tester<\/li>\n\n\n\n<li><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/using-grep-regular-expressions-to-search-for-text-patterns-in-linux\">Using Grep &amp; Regular Expressions to Search for Text Patterns in Linux<\/a> by Justin Ellingwood and Brian Hogan (Digital Ocean)<\/li>\n\n\n\n<li>Mozilla Developer Network (MDN) <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Regular_Expressions\/Cheatsheet\">regular expression syntax cheat sheet<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.regular-expressions.info\/\">Regular-Expressions.info<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cheatography.com\/davechild\/cheat-sheets\/regular-expressions\/\">Regular Expressions Cheat Sheet<\/a> by DaveChild<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"REST\"><\/span>REST<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>REST<\/strong> &#8211; REST stands for Representational State Transfer. It&#8217;s an architectural style for developing web systems, though it is also used in other systems like OSC and MQTT.It was first theorized by Roy Fielding in his 2000 <a href=\"https:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style.htm\">Ph.D dissertation <\/a>. Web servers provide HTTP endpoints that return data formats like JSON or CSV are referred to as REST APIs  For more on REST, see:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/rest\/\">REST explainer<\/a> by Youming Zhang<\/li>\n\n\n\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Representational_State_Transfer\" target=\"_blank\" rel=\"noreferrer noopener\">Understanding REST<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.xfront.com\/REST-Web-Services.html\" target=\"_blank\" rel=\"noreferrer noopener\">Building Web Services the REST way<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Routing\"><\/span>Routing<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/tidy-piper-d12.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F828a5c7f-4603-4aaa-8a5c-3dee3142e2a4%2FScreenshot_20221204_055208.png?id=b8d0c610-f8f8-4021-9215-e73db3cf31a9&amp;table=block&amp;spaceId=df997a14-62fe-44e5-9f8b-df366d21fbdb&amp;width=2000&amp;userId=&amp;cache=v2\" alt=\" A portion of the Earth's surface as seen from space, overlaid with a network of data traffic.\"\/><figcaption class=\"wp-element-caption\">Figure. A portion of the Earth&#8217;s surface as seen from space, overlaid with a network of data traffic. <meta charset=\"utf-8\">Screenshot from <a href=\"https:\/\/www.youtube.com\/watch?v=gQtgtKtvRdo&amp;ab_channel=Lesics\">Lesics, Understanding Routing! | ICT#8 (YouTube)<\/a><\/figcaption><\/figure>\n\n\n\n<p>Routing is the process by which packets are transported from the source to the destination through routers in between the two.  The route that a packet takes depends on the state of the network and <strong>routers<\/strong>. Routers will plan the shortest route time from their location to the destination based on traffic conditions.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>A router is a device that connects two or more packet-switched networks or subnetworks. It serves two primary functions: managing traffic between these networks by forwarding&nbsp;<a href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-packet\/\">data packets<\/a>&nbsp;to their intended&nbsp;<a href=\"https:\/\/www.cloudflare.com\/learning\/dns\/glossary\/what-is-my-ip-address\/\">IP addresses<\/a>, and allowing multiple devices to use the same Internet connection.<\/em><\/p>\n<cite>Source: Cloudflare, &#8220;<a href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-router\/\">What is a router?<\/a>&#8220;<\/cite><\/blockquote>\n\n\n\n<p>There are two types of routing: Static &amp; Dynamic.  <strong>Static routing<\/strong> is programmed into routers manually. Therefore, if a connection breaks between a given router and other routers on the route, the packet cannot reach the destination.<\/p>\n\n\n\n<p>In <strong>Dynamic routing<\/strong>, the routing is set by each router&#8217;s routing table and the decision of which route to take depends on what the router knows of the current network state. One of the most common routing algorithms, <meta charset=\"utf-8\">Dijkstra&#8217;s algorithim, was created and published by Dr. Edsger W. Dijkstra. It aims to find the shortest path from one node to another.<\/p>\n\n\n\n<p>We could see from the figure below, the network is divided into different areas and one backbone area which shares at least one router from local areas. These routers are called <strong>border routers<\/strong>. If the packet needs to transfer to another local area, they have to go through a backbone area.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/tidy-piper-d12.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fe139f992-ff81-4221-91fe-d6129a5048a1%2FScreenshot_20221204_080442.png?id=0bbbe455-a98e-4c40-9059-78af3df79cac&amp;table=block&amp;spaceId=df997a14-62fe-44e5-9f8b-df366d21fbdb&amp;width=2000&amp;userId=&amp;cache=v2\" alt=\"A network divided into different areas. One backbone area which shares at least one router from local areas.\"\/><figcaption class=\"wp-element-caption\">Figure. Screenshot from <a href=\"https:\/\/www.youtube.com\/watch?v=gQtgtKtvRdo&amp;ab_channel=Lesics\">Lesics, Understanding Routing! | ICT#8 (YouTube)<\/a><\/figcaption><\/figure>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.freecodecamp.org\/news\/dijkstras-shortest-path-algorithm-visual-introduction\/\">https:\/\/www.freecodecamp.org\/news\/dijkstras-shortest-path-algorithm-visual-introduction\/<\/a><\/li>\n\n\n\n<li><meta charset=\"utf-8\"><\/meta><a href=\"https:\/\/www.youtube.com\/watch?v=gQtgtKtvRdo&amp;ab_channel=Lesics\">Understanding Routing! | ICT#8 (YouTube)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-router\/\">https:\/\/www.cloudflare.com\/learning\/network-layer\/what-is-a-router\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Shortest_Path_First\">https:\/\/en.wikipedia.org\/wiki\/Open_Shortest_Path_First<\/a><\/li>\n<\/ul>\n\n\n\n<p> &#8211;<em> Jingyuan Li<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"RSA\"><\/span>RSA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>RSA is short for <strong>Rivest\u2013Shamir\u2013Adleman<\/strong>, the name comes from the combined surnames of its creators. It is an <a href=\"#Asymmetric_Encryption\">asymmetric encryption<\/a> algorithm for secure data transmission widely used in many products and services. It differs from <a href=\"#AES\">AES<\/a> in that it uses a public-key cryptosystem which the encryption and decryption works on two different keys, a public key and private key. For example, a client sends its public key (accessible to anyone) to the server to request some data, and this data will be encrypted by the server using the public key that the client sent, finally the client received this data and decrypt it with the private key (only the client knows).<\/p>\n\n\n\n<p>In RSA, the public key is generated by multiplying two <strong>large<\/strong> prime numbers <em><strong>p<\/strong><\/em> and <em><strong>q<\/strong><\/em> together, and and the private key is generated through a different process involving <em><strong>p<\/strong><\/em> and <em><strong>q<\/strong><\/em>. Then the <strong>user A<\/strong> can distribute his public key, which is <em><strong>pq,<\/strong><\/em> and if another user wishes to send message to <strong>user A,<\/strong> they can encrypt the message using <em><strong>pq.<\/strong><\/em><\/p>\n\n\n\n<p>The implementation of RSA makes heavy use of modular arithmetic, <strong>Euler&#8217;s theorem<\/strong>, and <strong>Euler&#8217;s totient function<\/strong> (also known as the <strong>Phi function<\/strong>), but overall the idea of RSA is to utilize the difficulty of prime factorization, and RSA keys commonly tend to be 1024 or 2048 bits in length. Therefore the longer an RSA key, the more secure it is.<\/p>\n\n\n\n<p><meta charset=\"utf-8\">See also <a href=\"#Cryptography\">Cryptography<\/a>.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/rsa-algorithm-cryptography\/\">https:\/\/www.geeksforgeeks.org\/rsa-algorithm-cryptography\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=ZPXVSJnDA_A\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.youtube.com\/watch?v=ZPXVSJnDA_A<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.encryptionconsulting.com\/education-center\/what-is-rsa\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.encryptionconsulting.com\/education-center\/what-is-rsa\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/brilliant.org\/wiki\/rsa-encryption\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/brilliant.org\/wiki\/rsa-encryption\/<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Erin Tao<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"S\"><\/span>S<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Server\"><\/span>Server<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A server is software or hardware that provides resources, data, services, or programs to other computers (called clients) over a network. This structure is called the client-server model. In theory, <strong>whenever computers share resources with client machines they are considered servers.<\/strong> This can include the most advanced computers right down to the most simple (microcontrollers). Any networked device that can share resources is acting as a server. <\/p>\n\n\n\n<figure class=\"wp-block-image is-style-default\"><img decoding=\"async\" src=\"https:\/\/marred-tarn-05f.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb7f7dab5-c982-4908-b608-661fb09e3fc1%2FClient-server-model.svg?id=8df39cce-e4cb-42f3-9505-0fedfcccd7de&amp;table=block&amp;spaceId=8ca3ddbc-5d48-4453-ba47-031fa1c0900a&amp;userId=&amp;cache=v2\" alt=\"A computer network diagram of client computers communicating with a server computer via the Internet.\"\/><figcaption class=\"wp-element-caption\">Figure. A computer network diagram of client computers communicating with a server computer via the Internet. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Server_(computing)#\/media\/File:Client-server-model.svg\">Image by David Vignoni, from Wikipedia<\/a><\/figcaption><\/figure>\n\n\n\n<p>Server hardware consists of physical devices that are responsible for holding data. They include all internal server components, including processors, chassis, network cards, memory, hard drives, storage and power supplies. The figures below show typical server rooms featuring rows of hardware in racks.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/marred-tarn-05f.notion.site\/image\/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F2fc4b05e-b247-44ff-b27d-2c5f7c03211c%2F%25E6%2588%25AA%25E5%25B1%258F2022-12-04_23.37.11.png?id=a71ad20c-8cbb-4d1a-831f-1a7102941bc0&amp;table=block&amp;spaceId=8ca3ddbc-5d48-4453-ba47-031fa1c0900a&amp;width=770&amp;userId=&amp;cache=v2\" alt=\"Photo of a Server Hardware Room.\" style=\"width:298px;height:193px\"\/><figcaption class=\"wp-element-caption\">Figure. Photo of a Server Hardware Room Image from  <a href=\"https:\/\/analyticsindiamag.com\/union-budget-indian-govt-confers-infrastructure-status-to-data-centres\/\">Analytics India<\/a><\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/n6host.com\/blog\/wp-content\/uploads\/2022\/09\/what-is-server-hardware.webp\" alt=\"Photo of a Server Hardware Room.\" style=\"width:303px;height:212px\"\/><figcaption class=\"wp-element-caption\"><meta charset=\"utf-8\">Figure. Photo of a Server Hardware Room. Image from <a href=\"https:\/\/n6host.com\/blog\/what-is-server-hardware\/\">N6 Host Blog<\/a><\/figcaption><\/figure><\/div>\n\n\n<p>Server software is a type of software that is designed to be used, operated and managed on a computing server. Server software is primarily built to interact with a server\u2019s hardware infrastructure, including the processor, memory, storage, input\/output (I\/O) and other communication ports. Depending on the type or usage of the server, server software may be classified into various forms, such as the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web server software<\/li>\n\n\n\n<li>Application server software<\/li>\n\n\n\n<li>Database server software<\/li>\n\n\n\n<li>Cloud computing server software<\/li>\n\n\n\n<li>File server software<\/li>\n<\/ul>\n\n\n\n<p>Each of the above types of server software utilizes the server for different functions and services, but all focus their primary objective on using inherent computer capacity and resources. Moreover, server software may be for a physical or virtual\/cloud server built on a physical server.<\/p>\n\n\n\n<p><strong>References\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.paessler.com\/server_monitoring_software#server-definition\">Why is server monitoring important?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Server_(computing)#cite_note-1\">Server\uff08Computing\uff09<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/n6host.com\/blog\/what-is-server-hardware\/\">Types of server hardware<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techopedia.com\/definition\/23735\/server-software\">Serversoftware<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloud.google.com\/learn\/what-is-a-virtual-private-server\">What is a Virtual Private Server (VPS)?<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Michelle Xu<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SMTP\"><\/span>SMTP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Simple Mail Transfer Protocol(SMTP) is a connection-oriented, text-based internet communication protocol for sending and receiving emails.<\/p>\n\n\n\n<p>In the SMTP process model, an email is submitted by a mail client (mail user agent, 0r MUA) to a mail server (mail submission agent, or MSA), typically on TCP port 587 (formerly on port 25). The MSA delivers the mail to its mail transfer agent(MTA). Mail Transfer Agents (MTAs) transfer messages between each other using SMTP.<\/p>\n\n\n\n<p>User-level email clients typically use SMTP only for sending messages, and uses <a href=\"#IMAP\">IMAP<\/a> or <a href=\"#POP\">POP3<\/a> for retrieving messages.<\/p>\n\n\n\n<p><strong>References:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Simple_Mail_Transfer_Protocol\">Wikipedia: Simple Mail Transfer Protocol<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/postmarkapp.com\/guides\/everything-you-need-to-know-about-smtp\">Postmark: Everything you need to know about SMTP (Simple Mail Transfer Protocol)<\/a> <\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Yan Shao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SSID\"><\/span>SSID<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">A WiFi network&#8217;s <strong>Service Set Identifier ( SSID )<\/strong> is commonly referred to as the network name. &nbsp;When you\u2019re selecting a network to join, the names you see are the SSIDs of all the available networks. &nbsp;These names are associated with an 802.11 WLAN (Wireless Local Area Network). &nbsp;802.11 is just a generic name of a family of standards for wireless networking related to Wi-Fi. Client devices, like your computer or smartphone, use this SSID to identify and join wireless networks. &nbsp;Routers broadcast this name to help wireless clients find the network.<\/span> For more on WiFi see this <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/wifi-how-it-works\/\" data-type=\"page\" data-id=\"186\">explanation<\/a> of WiFi and this <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/802-11-what-our-wifi-standards-allow\/\" data-type=\"page\" data-id=\"415\">explanation<\/a> of the 802.11 protocol. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SDP\"><\/span>SDP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Session description protocol<\/strong> &#8211; it is an object that contains information about the session connection such as the codec, address, media type, and so on. Both peers will exchange SDP\u2019s so they can understand how to connect to each other. One in the form of an SDP Offer and another as an SDP Answer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SIP\"><\/span>SIP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Session Initiation Protocol is the protocol of&nbsp;the application layer. It runs on UDP or TCP. SIP describes the way to establish Internet telephone calls, video conferences and other multimedia connections, manage them and terminate them. It can establish two way party session, multiparty session and even multicast session.<\/p>\n\n\n\n<p>In SIP, the sender and receiver are often identified by an email address, an IP address, or a phone number.<\/p>\n\n\n\n<p>SIP uses messages in ASCII text; each message features a header and a body; the message types includes ACK (acknowlegement) as mentioned before.<\/p>\n\n\n\n<p>SIP requires a three-way handshake: The caller sends an INVITE message. The callee then sends back a reply message. To verify that a reply code is received, the caller sends an ACK message. After the session is established, the caller and callee communicate using two temporary ports. To terminate the session, either caller or callee can send out a BYE message.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Streaming\"><\/span><strong>Streaming<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Streaming<\/strong> refers to the continual transmission of audio and video files from a<strong>&nbsp;<\/strong>server to a client. Just like other data that&#8217;s sent over the Internet, audio and video data is broken down into <a href=\"#Packet\">packets<\/a>. Each packet contains a small piece of the file, and an audio or video player in the browser on the client device takes the flow of data packets and interprets them as video or audio. Some streaming methods use&nbsp;<a href=\"#UDP\">UDP<\/a>, and some use <a href=\"#TCP\">TCP<\/a>. &nbsp;UDP is used when speed takes precedence over reliability, while TCP is used when reliability takes precedence.<\/p>\n\n\n\n<p>&#8211;<em> Sihan Zhang<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"STUN\"><\/span>STUN<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Session Traversal Utilities for NAT<\/strong> &#8211; it defines a systematic way of finding possible communication options between a peer and the Video Gateway (<a href=\"#WebRTC\" data-type=\"internal\" data-id=\"#WebRTC\">WebRTC<\/a>). It allows clients to discover their public IP address and the type of NAT they are behind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Socket\"><\/span><meta charset=\"utf-8\">Socket<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Socket (TCP)<\/strong> A connection between two computers uses a&nbsp;<strong>socket.<\/strong> TCP socket is a connection-oriented socket that uses the <strong>Transmission Control Protocol<\/strong>. TCP socket is defined by the IP address of the machine and the port it uses: the IP address identifies a specific network destination; the port number identifies the specific application or service on that device to connect to. The combination of IP address and the port is called an endpoint.<\/p>\n\n\n\n<p>For instance, we have our browser open, trying to connect to the website at IP address 8.8.8.8 at its port number 80 (a well known one). By doing this, we are sending an HTTP request from our client at IP address 120.1.1.1. with port number 3022 for the web browser. In this scenario, the server socket is 8.8.8.8:80, and the the client socket is 120.1.1.1:3022. The overall connection between these two can be described using this socket pair: (8.8.8.8:80, 120.1.1.1:3022).<\/p>\n\n\n\n<p>Unlike UDP which doesn\u2019t need a connection, the TCP socket guarantees that all data is received and acknowledged.<\/p>\n\n\n\n<p>Note that TCP socket is not the same as Websocket, though the Websocket protocol is based on TCP socket.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>reference\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.howtouselinux.com\/post\/tcp-socket\">Understanding TCP Socket With Examples<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/fundamentals\/networking\/sockets\/socket-services\">Use Sockets to send and receive data over TCP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/winsock\/tcp-ip-raw-sockets-2\">TCP\/IP raw sockets<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.steves-internet-guide.com\/tcpip-ports-sockets\/\">TCP\/IP Ports and Sockets Explained<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/WebSockets_API\">The WebSocket API (WebSockets)<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Vesper Guo<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Symmetric_Encryption\"><\/span><meta charset=\"utf-8\">Symmetric Encryption<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Symmetric Encryption<\/strong>&nbsp;\u2013 Uses one distinct private key to encrypt and decrypt messages. Both the sender and receiver use the identical key when communicating with each other. With Symmetric Encryption everyone you want to communicate with needs a distinct key and you must manage all of those keys.&nbsp;<\/p>\n\n\n\n<p>Symmetric Encryption is nice and simple and it works, but both parties need to know what the key is, need to agree on a key that nobody will be able to guess, and have to share it with one another. This can be hard to do safely unless people are physically in the same place or requires extra communications overhead using something like the&nbsp;&nbsp;<a href=\"https:\/\/www.youtube.com\/watch?v=NmM9HA2MQGI\">Deffie-Helman Key Exchange<\/a>.<\/p>\n\n\n\n<p>See also <a href=\"#Cryptography\">Cryptography<\/a>, <a href=\"#AES\">AES<\/a><\/p>\n\n\n\n<p><em>&#8211; Gracy Welihan<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"T\"><\/span>T<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TCP\"><\/span>TCP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Transmission Control Protocol (TCP<\/strong>) and <\/span><a href=\"https:\/\/www.lifewire.com\/definition-of-internet-protocol-817974\"><span style=\"font-weight: 400;\"><strong>Internet Protocol (IP)<\/strong><\/span><\/a><span style=\"font-weight: 400;\"> are two distinct computer network protocols. TCP and IP are commonly used together and are often simply referred to as <strong>TCP\/IP<\/strong>. IP forms part of the Network layer in the <\/span><a href=\"https:\/\/www.lifewire.com\/open-systems-interconnection-model-816290\"><span style=\"font-weight: 400;\">OSI model<\/span><\/a><span style=\"font-weight: 400;\">, whereas TCP forms part of the Transport layer.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">TCP\/IP technically applies to network communications where the TCP transport is used to deliver data across IP networks. Being a &#8220;connection-oriented&#8221; protocol, TCP works by establishing a virtual connection between two devices via a series of request and reply messages sent across the physical network.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Traceroute\"><\/span>Traceroute<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>What is Traceroute?<\/strong> Traceroute is a command line tool which can be used to trace the path that packets take to reach a destination through networks. It examines how data moves through the Internet by showing how packets hop from one stop to another along the route. It is useful for diagnose problems in computer networks.<\/p>\n\n\n\n<p><strong>How does Traceroute work?<\/strong> Traceroute works by sending packets with a short time-to-live (TTL) to routers involved in transferring the data. When these packets expire, the routers will produce a message that identifies themselves. Traceroute will then return these messages to the sender, and thus revealing the hops in the route.<\/p>\n\n\n\n<p>Pros and cons<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pros:\n<ul class=\"wp-block-list\">\n<li>Every router is able to send TTL exceeded messages. Therefore, no special code is required for that.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Cons:\n<ul class=\"wp-block-list\">\n<li>The number of packets generated in the process is twice the number of routers.<\/li>\n\n\n\n<li>The path may change during the process.<\/li>\n\n\n\n<li>The return path is not traced, which may be different from the outbound path.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Original source: <a href=\"https:\/\/www.rfc-editor.org\/pdfrfc\/rfc1393.txt.pdf\">https:\/\/www.rfc-editor.org\/pdfrfc\/rfc1393.txt.pdf<\/a> (developed in 1993)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudns.net\/blog\/traceroute-command-tracert\/#What_is_the_Traceroute_command\">https:\/\/www.cloudns.net\/blog\/traceroute-command-tracert\/#What_is_the_Traceroute_command<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.varonis.com\/blog\/what-is-traceroute\">https:\/\/www.varonis.com\/blog\/what-is-traceroute<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.fortinet.com\/resources\/cyberglossary\/traceroutes\">https:\/\/www.fortinet.com\/resources\/cyberglossary\/traceroutes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-traceroute-and-mtr-to-diagnose-network-issues\">https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-traceroute-and-mtr-to-diagnose-network-issues<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Lily Yu<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"U\"><\/span>U<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"UDP\"><\/span>UDP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>UDP<\/strong> stands for <strong>User Datagram Protocol.<\/strong> It is a data transport protocol. To send some data via UDP, all that is required is a <strong>destination port<\/strong> and <strong>IP address<\/strong>. When using UDP your data is wrapped into a &#8220;packet&#8221; with a header that indicates the destination address and some other information, and then you send out the packet.<\/p>\n\n\n\n<p>UDP is fast and lightweight. As a compromise, it does not provide any feedback on the status of the packet after it has been sent. Neither does it guarantees that the packets you send to another host will arrive in the order that they were sent. Therefore, UDP is sometimes known as the&nbsp;<strong><em>Unreliable<\/em>&nbsp;Data Protocol<\/strong>.<\/p>\n\n\n\n<p>UDP and TCP are the two dominant protocols that computers use to communicate in today&#8217;s networks.<\/p>\n\n\n\n<p>The difference between UDP and TCP is that TCP (<strong>Transmission Control Protocol<\/strong>) sends data with extra information embedded in the packet headers to help the protocol track the packets it has sent. When a computer receives a TCP packet, it sends back a small acknowledgement packet to the compuer that sent the packet. This allows the TCP to track which packets have been received successfully by the sender. If an acknowledgement (ACK) packet is not received within a certain time of sending a packet, the packet is re-sent. Because each packet is labelled in a timingly manner, the TCP on the receiving computer is able to sort the incoming packets into the proper order even if they were received out-of-order.<\/p>\n\n\n\n<p>To think about their difference in short:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UDP is a one-way communication, fast but might lacks accuracy and certainty;<\/li>\n\n\n\n<li>TCP is a two-way communication, its data delivery is more stable and accurate.<\/li>\n<\/ul>\n\n\n\n<p><strong>Reference<\/strong><a href=\"https:\/\/www.khanacademy.org\/computing\/computers-and-internet\/xcae6f4a7ff015e7d:the-internet\/xcae6f4a7ff015e7d:transporting-packets\/a\/user-datagram-protocol-udp\"><\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.khanacademy.org\/computing\/computers-and-internet\/xcae6f4a7ff015e7d:the-internet\/xcae6f4a7ff015e7d:transporting-packets\/a\/user-datagram-protocol-udp\">User Datagram Protocol (UDP)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.freecodecamp.org\/news\/tcp-vs-udp\/\">TCP vs. UDP \u2014 What&#8217;s the Difference and Which Protocol is Faster?<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Vesper Guo<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"URL\"><\/span>URL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>URL<\/strong>, or <strong>Uniform Resource Locator<\/strong>, is an address to where a specific resource lives on the web. It works in the same way that your home address dictates where you live in your neighborhood.<\/p>\n\n\n\n<p>The basic anatomy of a URL consists of 8 main parts. Take, for example, the URL:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">http:\/\/www.example.com:3000\/path\/resource?id=123#section-id<\/pre>\n\n\n\n<p>It can be broken into the following parts:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td><code>http:\/\/<\/code><\/td><td><code>www.<\/code><\/td><td><code>example.<\/code><\/td><td><code>com<\/code><\/td><td><code>:3000\/<\/code><\/td><td><code>path\/resource<\/code><\/td><td><code>?id=123<\/code><\/td><td><code>#section-id<\/code><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><a rel=\"noreferrer noopener\" href=\"https:\/\/cascadingmedia.com\/assets\/images\/insites\/2015\/02\/url-anatomy\/url-anatomy-55598c24.png\" target=\"_blank\">Source<\/a><\/figcaption><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Scheme \u2013 refers to the protocol. It is the set of rules the browser must use to access and exchange data on the web. The 2 most common protocols for websites are HTTP and HTTPS, but there are many others.<\/li>\n\n\n\n<li>Subdomain,<\/li>\n\n\n\n<li>Domain, and <\/li>\n\n\n\n<li>Top-level Domain \u2013 These 3 parts make up what is generally known as the domain name. Computers need to constantly communicate with each other to perform various actions. All devices connected to the internet have a unique identifier that consists of a series of numbers and letters called an IP Address. Since IP addresses can be long and hard to remember, domain names were made so that websites could be easier to type and access.<\/li>\n\n\n\n<li>Port \u2013 indicates what door a browser should use when it arrives at a resource\u2019s location (<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Learn\/Common_questions\/What_is_a_URL\" target=\"_blank\" rel=\"noreferrer noopener\">MDN<\/a>)<\/li>\n\n\n\n<li>Path \u2013 provides a more specific location to a specific resource<\/li>\n\n\n\n<li>Query String \u2013 allows users to communicate and send small amounts of data to the server side<\/li>\n\n\n\n<li>Fragment Identifier- is a an anchor. It identifies a specific location on a HTML page.<\/li>\n<\/ol>\n\n\n\n<p>References:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Learn\/Common_questions\/What_is_a_URL\">https:\/\/developer.mozilla.org\/en-US\/docs\/Learn\/Common_questions\/What_is_a_URL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.verisign.com\/en_US\/website-presence\/online\/what-is-a-url\/index.xhtml\">https:\/\/www.verisign.com\/en_US\/website-presence\/online\/what-is-a-url\/index.xhtml<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.hubspot.com\/marketing\/parts-url\">https:\/\/blog.hubspot.com\/marketing\/parts-url<\/a><\/li>\n<\/ul>\n\n\n\n<p>See also <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/a-gentle-introduction-to-http\/\">A Gentle Introduction to HTTP<\/a>&nbsp;by Maria del pilar Gomez ruiz<\/p>\n\n\n\n<p>&#8211; <em>Julie Lizardo<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"V\"><\/span>V<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Virtual_Private_Server_VPS\"><\/span>Virtual Private Server (VPS)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A VPS is basically a <a href=\"#Server\">server<\/a> running within a server. One physical server hosts multiple virtual servers, each isolated from the others. This is accomplished with software, called a hypervisor, that segments the physical server and keeps each segment separate from the rest.<\/p>\n\n\n\n<p>Traditional servers dedicated one computer and its operating system to running one server program. Multiple users might be allowed access to that server, as the server program was performing the same service for them all (e.g. an HTTP server like nginx serving everyone&#8217;s content from different user directories). Since that is wasteful of hardware and energy, and a potential security risk, virtual private servers were created in response. A VPS is a software instance of all of that.<\/p>\n\n\n\n<p><strong>References\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.paessler.com\/server_monitoring_software#server-definition\">Why is server monitoring important?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Server_(computing)#cite_note-1\">Server\uff08Computing\uff09<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/n6host.com\/blog\/what-is-server-hardware\/\">Types of server hardware<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.techopedia.com\/definition\/23735\/server-software\">Serversoftware<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloud.google.com\/learn\/what-is-a-virtual-private-server\">What is a Virtual Private Server (VPS)?<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Michelle Xu<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VLAN\"><\/span>VLAN<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>VLAN<\/strong> stands for virtual local a<strong>rea network<\/strong>. It is a layer in a network that groups devices together that share a physical&nbsp;<em>LAN*<\/em>&nbsp;(a group of computers or other IoT devices that are in the same place geographically that share the same physical network), which groups the traffic of these devices.<\/p>\n\n\n\n<p>Main reasons to implement VLANs is to improve performance of some devices, as an organization tool for many devices, tighten security, ease administration in a network. By grouping traffic of some devices, this reduces the traffic going through one device in order to improve its performance. Grouping certain devices together, can also give people control of the access devices have to one another. And in an administration example, devices that can be grouped together in a logical form, i.e. all security devices on one VLAN, all accounting devices on another.<\/p>\n\n\n\n<figure class=\"wp-block-image is-style-default\"><img decoding=\"async\" src=\"https:\/\/bgan328789767.files.wordpress.com\/2022\/12\/how_a_virtual_lan_works-f.png?w=1024\" alt=\"Diagram: Four computers form the bottom row. The first two are connected to a switch (switch 1). The second two are connected to another switch (switch 2). Both switches are connected to the same router. The router actually routes two different LANs, even though it is all connected together as one physical network. \" class=\"wp-image-3546\"\/><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/tidy-piper-d12.notion.site\/Definition-Packet-Packet-Switch-Routing-bf89ef907e4943eeb120cbc502a67257\">https:\/\/tidy-piper-d12.notion.site\/Definition-Packet-Packet-Switch-Routing-bf89ef907e4943eeb120cbc502a67257<\/a><\/figcaption><\/figure>\n\n\n\n<p>VLANs work by assigning \/inserting an ID to the header data of an&nbsp;<em><a href=\"#E\" data-type=\"internal\" data-id=\"#E\">Ethernet Frame<\/a><\/em> incoming through a network switch. Network switches can then pass through these tagged frames to their associated destination.<\/p>\n\n\n\n<p><strong>Resources:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.techtarget.com\/searchnetworking\/definition\/virtual-LAN#:~:text=A%20virtual%20LAN%20(VLAN)%20is,share%20the%20same%20physical%20network.\" target=\"_blank\" rel=\"noreferrer noopener\">VLAN (Virtual LAN)<\/a><\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Bianca Gan<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Virtual_Private_Networks_VPN\"><\/span>Virtual Private Networks (VPN)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Virtual Private Networks<\/strong> &#8211; see this <a href=\"https:\/\/itp.nyu.edu\/networks\/explanations\/vpn-beginners-guide\/\" data-type=\"page\" data-id=\"251\">explanation<\/a>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VoIP\"><\/span>VoIP <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Key points &#8211;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>used for delivery of voice messages over the internet<\/li>\n\n\n\n<li>digital transmission<\/li>\n\n\n\n<li>cost efficient<\/li>\n\n\n\n<li>facetime audio, whatsapp audio, skype audio<\/li>\n<\/ol>\n\n\n\n<p><strong>Voice over Internet Protocol<\/strong>&nbsp;(<strong>VoIP<\/strong>), also called&nbsp;<strong>IP telephony and broadband telephony<\/strong>, is a group of technologies for the delivery of&nbsp;voice messages&nbsp;and&nbsp;multimedia&nbsp;sessions over&nbsp; the Internet. It lets users make and receive phone calls over the Internet instead of the traditional landline Public Switched Telephone Network (PSTN.)<\/p>\n\n\n\n<p>Everything transferred through VoIP is digital. The main reason for using VoIP technology is because of cost. Usually, telephone calls over the Internet do not incur further charges beyond what the user is paying for Internet access, much in the same way that the user doesn&#8217;t pay for sending individual emails over the Internet.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quality_of_VoIP\"><\/span>Quality of VoIP<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Communication on the IP network is perceived as less reliable in contrast to the circuit-switched public telephone network because it does not provide a network-based mechanism to ensure that data packets are not lost, and are delivered in sequential order. Voice, and all other data, travels in packets over IP networks with fixed maximum capacity. This system may be more prone to data loss in the presence of congestion&nbsp;than traditional&nbsp;circuit switched&nbsp;systems; a circuit switched system of insufficient capacity will refuse new connections while carrying the remainder without impairment, while the quality of real-time data such as telephone conversations on packet-switched networks degrades dramatically.&nbsp;Therefore, VoIP implementations may face problems with&nbsp;latency, packet loss, and&nbsp;jitter.<\/p>\n\n\n\n<p>Network routers on high volume traffic links may introduce latency that exceeds permissible thresholds for VoIP. Excessive load on a link can cause congestion and associated&nbsp;queueing delays&nbsp;and&nbsp;packet loss. This signals a transport protocol like&nbsp;TCP&nbsp;to reduce its transmission rate to alleviate the congestion. But VoIP usually uses&nbsp;UDP&nbsp;not TCP because recovering from congestion through retransmission usually entails too much latency.<\/p>\n\n\n\n<p>References &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/VoIP\">https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/VoIP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Voice_over_IP#India\">https:\/\/en.wikipedia.org\/wiki\/Voice_over_IP#India<\/a><\/li>\n\n\n\n<li>PSTN &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_switched_telephone_network\"><\/a><a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_switched_telephone_network\">https:\/\/en.wikipedia.org\/wiki\/Public_switched_telephone_network<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.fcc.gov\/general\/voice-over-internet-protocol-voip\">https:\/\/www.fcc.gov\/general\/voice-over-internet-protocol-voip<\/a><\/li>\n<\/ul>\n\n\n\n<p>&#8211; <em>Suraj <em>Selvabarathy<\/em><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"W\"><\/span>W<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"WebSockets\"><\/span><meta charset=\"utf-8\">WebSockets<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The <strong>WebSocket API<\/strong>, or Websockets, is a communications protocol that establishes a persistent, two-way connection between a user\u2019s browser and a server. The connection is run over a single TCP connection, and with this API, messages and event-driven responses can be sent and received without having to poll the server for a reply. The protocol uses HTTP as the first transport mechanism but then switches to a bidirectional binary protocol when the WebSocket connection is established. This allows for \u2018real-time\u2019 applications and is distinct from HTTP, which is strictly unidirectional.<\/p>\n\n\n\n<p>For a more detailed explanation, see this <a href=\"https:\/\/itp.nyu.edu\/networks\/an-introduction-to-websocket\/\" data-type=\"page\" data-id=\"537\">explanation<\/a>.<\/p>\n\n\n\n<p>Sources:<br><a rel=\"noreferrer noopener\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/WebSockets_API\" target=\"_blank\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/WebSockets_API<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/WebSocket\" target=\"_blank\">https:\/\/en.wikipedia.org\/wiki\/WebSocket<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/medium.com\/@tfarguts\/websockets-for-beginners-part-1-10796106e207\" target=\"_blank\">https:\/\/medium.com\/@tfarguts\/websockets-for-beginners-part-1-10796106e207<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/sookocheff.com\/post\/networking\/how-do-websockets-work\/\" target=\"_blank\">https:\/\/sookocheff.com\/post\/networking\/how-do-websockets-work\/<\/a><\/p>\n\n\n\n<p><em>&#8211; Emily Zhao<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"WebRTC\"><\/span><meta charset=\"utf-8\">WebRTC<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>WebRTC<\/strong> stands for <strong>Web Real-Time Communication.<\/strong> It is an open-source project that allows us to add real-time communication capabilities to our web applications via application programming interfaces. The technologies behind WebRTC are implemented in all major browsers as JavaScript APIs. With WebRTC, we can do things like streaming audio and video content to other people on the browser by allowing direct peer-to-peer communication, without the need to install plugins or download native apps.<\/p>\n\n\n\n<p>WebRTC uses <a href=\"#UDP\" data-type=\"internal\" data-id=\"#UDP\">UDP<\/a> and it doesn\u2019t rely on a server for data flow like websocket does. However, WebRTC does require third-party signaling services, like websockets, to begin with. This is a process called signaling, where peers are brought into a channel or room to exchange <strong><a href=\"#SDP\" data-type=\"internal\" data-id=\"#SDP\">session description protocol<\/a><\/strong> (SDP) and<a href=\"#ICE\" data-type=\"internal\" data-id=\"#ICE\"> <strong>ICE candidates<\/strong><\/a><strong> i<\/strong>n order to build a connection.<\/p>\n\n\n\n<p>The two peers exchange their SDPs to get connected first, but they can yet to transmit data. To proceed, they need to \u2018find\u2019 the optimal path for the data to flow \u2014 this is because most devices sit behind firewalls and NAT devices nowadays, so peers have to coordinate the discovery of their public IP addresses, and this is a process called ICE, <strong>I<a href=\"#ICE\" data-type=\"internal\" data-id=\"#ICE\">nteractive Connectivity Establishment<\/a><\/strong>.<\/p>\n\n\n\n<p>When exchanging SDP, a series of requests are sent to a <a href=\"#STUN\" data-type=\"internal\" data-id=\"#STUN\">STUN<\/a> server which will generate a list of ICE candidates. When peer A gets these ICE candidates back from the server, they will send them over to peer B; the network will then determine the best candidate to use. Peer B will do the same vice versa. When the candidates are exchanged, a path is discovered between the two peers and now they can start a data flow in between.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/s3.us-west-2.amazonaws.com\/secure.notion-static.com\/38a5b4fa-125a-43e8-b24e-f30903d6a1ba\/how-does-webrtc-work-4.gif?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&amp;X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20230102%2Fus-west-2%2Fs3%2Faws4_request&amp;X-Amz-Date=20230102T204326Z&amp;X-Amz-Expires=86400&amp;X-Amz-Signature=0c0d436d2ee237368ca195f99e8dc130689b85203568a3e99b7da4c58b582bf8&amp;X-Amz-SignedHeaders=host&amp;x-id=GetObject\" alt=\"Diagram: process from signaling to session establishment\"\/><figcaption class=\"wp-element-caption\">Figure. process from signaling to session establishment<\/figcaption><\/figure>\n\n\n\n<p>WebRTC, like <strong><a href=\"#SIP\" data-type=\"internal\" data-id=\"#SIP\">SIP (Session Initiation Protocol)<\/a><\/strong>, is a <strong>VoIP (<a href=\"#VoIP\" data-type=\"internal\" data-id=\"#VoIP\">Voice over Internet Protocol<\/a>)<\/strong> technology and it integrates SIP functionality.<\/p>\n\n\n\n<p>We have learned that WebRTC has a premise of establishing a session before one can communicate with another peer. The function of SIP lies in this process of setting up a session \u2014 SIP operates on a session, finds the other user, sets up the session, manages the session, and ends the session.<\/p>\n\n\n\n<p>While WebRTC requires SIP, SIP doesn\u2019t rely on WebRTC because SIPs can use multimedia systems on a computer without a browser. For example, users can use SIP with a VoIP provider and softphone software. However, WebRTC makes SIPs easier to use since it works on a browser, so that we don\u2019t need to download an app for the communication.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>reference\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/webrtc.org\/\">https:\/\/webrtc.org\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.w3.org\/TR\/webrtc\/#introduction\">WebRTC 1.0: Real-Time Communication Between Browsers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudiofy.com\/what-is-a-nat-device\/\">What is a NAT device<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudiofy.com\/amazon-vpc-subnets\/\">Amazon VPC Subnets<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/session-initiation-protocol\/\">Session Initiation Protocol<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/getvoip.com\/blog\/2013\/02\/27\/sip-webrtc-is-there-a-difference\/\">SIP &amp; WebRTC: Is There a Difference?<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><em>&#8211; Vesper Guo<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Terms_Yet_to_be_Defined\"><\/span>Terms Yet to be Defined<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">MIME<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Port forwarding<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">telnet<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">datagram<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">chunk<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">NAT<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">UTF<\/span> &#8211; taken<\/p>\n\n\n\n<p>netcat &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">NTP<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Runtim<\/span>e &#8211; taken<\/p>\n\n\n\n<p>SSH &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">SSL<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">DMX<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Serial<\/span> (Uart) &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">ASI<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">event loop<\/span> &#8211; taken<\/p>\n\n\n\n<p>peer-to-peer &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">REPL (read-eval-print)<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Async<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Blob<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Blocking vs. non-blocking<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Twos complement<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Kernel<\/span><\/p>\n\n\n\n<p>hashtable &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Driver<\/span><\/p>\n\n\n\n<p>mesh network &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">routing protocols<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Logic gate<\/span> &#8211; taken<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Deterministic vs. non-deterministic<\/span><\/p>\n\n\n\n<p>client<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">RSSI<\/span><\/p>\n\n\n\n<p>DTLS<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For a more detailed explanation of many of these terms, see the Explanations Page. A AES AES is short for Advanced Encryption Standard, and it is a symmetric 128-bits (or 16 bytes) block cipher (A&nbsp;block cipher is a method of encrypting data in blocks to produce ciphertext using a cryptographic key and algorithm) that is &hellip; <a href=\"https:\/\/itp.nyu.edu\/networks\/glossary\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Glossary&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/pages\/17"}],"collection":[{"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":129,"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":1362,"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/pages\/17\/revisions\/1362"}],"wp:attachment":[{"href":"https:\/\/itp.nyu.edu\/networks\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}