diff --git a/Content/20231227162344-computer_networks.org b/Content/20231227162344-computer_networks.org index f294670..42be612 100644 --- a/Content/20231227162344-computer_networks.org +++ b/Content/20231227162344-computer_networks.org @@ -5,7 +5,7 @@ #+filetags: :cs:programming: * Abstract -The notion of communication between Computers. Theoretically captured by the [[https://en.wikipedia.org/wiki/OSI_model][7-layered OSI (open systems Interconnection)]] model. +The notion of communication between Computers. Theoretically captured by [[id:2deb95d6-5474-4096-85fc-bd568031cc33][the OSI model]] The OSI Layers: 1. Hardware diff --git a/Content/20240215121050-kubernetes.org b/Content/20240215121050-kubernetes.org index 401fa19..ecc4657 100644 --- a/Content/20240215121050-kubernetes.org +++ b/Content/20240215121050-kubernetes.org @@ -8,6 +8,18 @@ see [[id:f822f8f6-89eb-4aa8-ac8f-fdcff3f06fb9][Orchestration]] * Stream +** 0x22E2 +- reading https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/ +** 0x22E1 + - the /kubernetes/hack/ is useful + - charting the kubernetes source code +** 0x22DF +*** Netshoot + - for debugging purposes: + - definitely checkout netshoot + - recommend using as a plugin with krew + - am locally using on my minikube dev setup via krew as of now + - https://github.com/nicolaka/netshoot ** 0x22D6 *** Open Container Initiative - https://opencontainers.org/ @@ -17,7 +29,7 @@ see [[id:f822f8f6-89eb-4aa8-ac8f-fdcff3f06fb9][Orchestration]] - https://kubernetes.io/docs/concepts/architecture/cri/ **** Container Network Interface **** Container Storage Interface -** 0x22D6 +** 0x22D5 - some quick indexes from container.training - internal dynamic dns: https://qconuk2019.container.training/#46 - how the master node avoids running workloads: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ diff --git a/Content/20240305152640-web_application_firewall.org b/Content/20240305152640-web_application_firewall.org index bf65bf3..cc4b495 100644 --- a/Content/20240305152640-web_application_firewall.org +++ b/Content/20240305152640-web_application_firewall.org @@ -1,7 +1,7 @@ :PROPERTIES: :ID: 49fee858-eb36-4230-8eb0-881df964aec8 :END: -#+title: Web Application Firewall +#+title: Firewall #+filetags: :sec:web: An agent between requests from the web and a server that acts as a to avoid exploits. diff --git a/Content/20240501185858-load_balancing.org b/Content/20240501185858-load_balancing.org index 2f4ccff..beab9f5 100644 --- a/Content/20240501185858-load_balancing.org +++ b/Content/20240501185858-load_balancing.org @@ -2,7 +2,7 @@ :ID: 0d7c2dea-a250-4380-b826-ad4d2547d8d6 :END: #+title: Load Balancing -#+filetags: :web: +#+filetags: :network:web: * Abstract - Revolves around the idea of balancing requests over a pool of resources to avoid the over-"load"ing of any single point of service. diff --git a/Content/20240502085158-linux.org b/Content/20240502085158-linux.org index 17ccd7c..44275b3 100644 --- a/Content/20240502085158-linux.org +++ b/Content/20240502085158-linux.org @@ -2,7 +2,7 @@ :ID: d43f2ef3-6eb4-4f8d-89ed-095fedd7d7f9 :END: #+title: Linux -#+filetags: :cs: +#+filetags: :linux:cs: * Abstract - this a fairly vast umbrella node that helps pedagogically cover several concepts in computer science. diff --git a/Content/20240810072451-quectel_wwan.org b/Content/20240810072451-quectel_wwan.org index 2514e6d..be69e75 100644 --- a/Content/20240810072451-quectel_wwan.org +++ b/Content/20240810072451-quectel_wwan.org @@ -1,7 +1,17 @@ :PROPERTIES: :ID: 051ff645-bf0b-4229-add9-56da0caa5654 :END: -#+title: quectel-wwan +#+title: quectel EM05G #+filetags: :hardware: -facing some issues with the EM05G post-suspension wake, tried some recommendations cause nmtui shows hardware missing +* [[id:f9002f5f-f8b8-4064-8af4-dabcc145668d][Modem Manager]] + +* FCC Unlocking +- https://mobile-broadband.pages.freedesktop.org/docs/modemmanager/fcc-unlock/ +- the module isn't detectable readily on boots (on a couple of linuces so far: Fedora 40, OpenSuse TW (2024+)) +- for Fedora 40, see https://foundata.com/en/blog/2024/quectel-em05-g-thinkpad-t14-gen4-fedora-linux/ + + + +* Resources + - https://www.quectel.com/product/lte-em05-series/ diff --git a/Content/20241012070314-modemmanager.org b/Content/20241012070314-modemmanager.org new file mode 100644 index 0000000..4eca9a1 --- /dev/null +++ b/Content/20241012070314-modemmanager.org @@ -0,0 +1,8 @@ +:PROPERTIES: +:ID: f9002f5f-f8b8-4064-8af4-dabcc145668d +:END: +#+title: ModemManager +#+filetags: :hardware: + +* Resources +- https://mobile-broadband.pages.freedesktop.org/ diff --git a/Content/20241013061220-internet_protocol_address.org b/Content/20241013061220-internet_protocol_address.org new file mode 100644 index 0000000..c85b5d6 --- /dev/null +++ b/Content/20241013061220-internet_protocol_address.org @@ -0,0 +1,39 @@ +:PROPERTIES: +:ID: d799bc90-5032-4a69-9806-83145297a335 +:END: +#+title: IP (Internet Protocol) Address +#+filetags: :network: + +* Definition + - a unique numeric label assigned to each device connected to a [[id:a4e712e1-a233-4173-91fa-4e145bd68769][computer network]] that uses the IP for communication. + - two primary functions: + - identifying a host or network interface + - providing the location of the host in the network [[id:6bb5e976-0619-4a6e-8c6b-adb39d5dcc8c][topology]] + +* Types of IP Addresses +** [[id:f3fda9d4-bfde-4672-8b51-a41700c0cd98][IPv4]] + - Consists of 32 bits. + - Forms over 4.3 billion unique addresses. + - Format: four octets separated by dots (e.g., 192.168.1.1). +** [[id:1a3d2a4c-bfad-4e5a-ab97-4db4531e7bd2][IPv6]] + - Developed due to the exhaustion of IPv4 addresses. + - Consists of 128 bits. + - Can support about 340 undecillion addresses. + - Format: eight groups of four hexadecimal digits separated by colons (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334). + +** [[id:1c4b02bf-2597-4e2d-9e85-1be4993dcb31][IPv5 Lore]] +* Static vs. Dynamic IP Addresses + - Static IP Addresses + - Permanently assigned to a computer by an ISP. + - Dynamic IP Addresses + - Temporarily assigned from a pool by the [[id:dd743d7a-7e96-45a7-9894-13f79b351681][DHCP (Dynamic Host Configuration Protocol)]]. + +* IP-related Concepts and Connections +** [[id:c1875db1-be4d-43fe-9c88-bf5fc7a95df3][DNS (Domain Name System)]] + - Translates human-readable domain names to IP addresses. +** [[id:e6f902bf-c138-4d79-85cc-98f1165ef761][IP Subnetting]] + - Divides a large network into smaller, manageable segments. +** [[id:2db5d39c-8f0d-4bcb-ba73-c5d4e22c4d03][NAT (Network Address Translation)]] + - Allows multiple devices on a local network to share a single public IP address. + +** [[id:74055437-5557-4a21-9b7a-a3b5df3a8a24][IPVS (IP Virtual Server)]] diff --git a/Content/20241013061617-ipv5_lore.org b/Content/20241013061617-ipv5_lore.org new file mode 100644 index 0000000..0d2d7a8 --- /dev/null +++ b/Content/20241013061617-ipv5_lore.org @@ -0,0 +1,57 @@ +:PROPERTIES: +:ID: 1c4b02bf-2597-4e2d-9e85-1be4993dcb31 +:END: +#+title: IPv5 Lore +#+filetags: :network: + +* Overview + +- IPv5, officially known as the Internet Stream Protocol (ST) + - Developed in the late 1970s and early 1980s as an experimental protocol. + - Intended to support voice and video streaming. + +- Historical Context + - Appeared after [[id:f3fda9d4-bfde-4672-8b51-a41700c0cd98][IPv4]], around the time networking demands started to exceed existing capabilities. + - Primarily focused on addressing multicast traffic requirements. + +- Reasons for Lack of Adoption + - [[id:1a3d2a4c-bfad-4e5a-ab97-4db4531e7bd2][IPv6]] development eventually overshadowed IPv5 due to its more comprehensive improvements. + - The Stream Protocol was not intended to replace IPv4 but to work alongside it for specific use cases. + - Limited deployment and lack of backward compatibility. + +- Connections + - IPv5 influenced future transport and streaming protocols by highlighting the need for real-time data transmission capabilities. + - Lessons from IPv5 partially informed design choices in subsequent protocols like RTP (Real-time Transport Protocol). + +- Critique + - IPv5's role as a standalone protocol was limited; thus, its practical applications were marginal. + - The protocol's compartmentalized vision indicates a lack of foresight for overarching internet scalability needs, something IPv6 addressed more robustly. + +- Connections and Historical Context + - The invention of IPv5 revealed early intentions to handle real-time communications, which laid groundwork concepts for later technologies. + - Key ideas from IPv5 can be seen in the development of [[id:11c09e36-bdef-4977-9142-6d8ec0e697ba][Quality of Service]] (QoS) mechanisms to prioritize data packages effectively. + - There is a progression of protocol evolution, from IPv4 addressing limitations, to IPv5 experimentation, culminating in IPv6, which provides a vastly larger address space and enhanced functionalities. + +- Critique + - IPv5 was limited by its integer-based versioning, as the number "5" was an interim step rather than a full-fledged protocol version; this highlights the complexity of protocol version transitions. + - The major critique of IPv5 was a lack of foresight concerning the explosion of internet-connected devices, which IPv6 primarily aimed to address with its larger address pool. + +- Ideation Strategies + - Understanding the failures and limitations of previous technologies like IPv5 can guide innovative thinking in protocol development and network infrastructure improvements. + - Encourage critical analysis of current network demands and potential future trends to preemptively design adaptable protocol systems. + - Foster interdisciplinary collaboration, as real-time data implications span fields like telecommunications, multimedia services, and IoT development. + +- Questions for Further Exploration + - What specific elements from IPv5 were integrated into later protocols? + - How has real-time data transmission evolved from early attempts like IPv5 to modern broadband technologies? + - Can the limitations of IPv5 provide insights into potential pitfalls for future network protocol developments? + + +- It seems there was no specific context provided in the previous interaction. +- To assist effectively, here are some questions to help guide the discussion: + - What domain or topic are you interested in exploring? + - Are you looking to understand a specific concept or historical development in network protocols? + - Is there a particular challenge or problem you are aiming to solve with the information? +- Filling in these details will allow for more precise and helpful insights. +* Resources +- https://en.wikipedia.org/wiki/Internet_Stream_Protocol diff --git a/Content/20241013061841-ipv6.org b/Content/20241013061841-ipv6.org new file mode 100644 index 0000000..02480ee --- /dev/null +++ b/Content/20241013061841-ipv6.org @@ -0,0 +1,7 @@ +:PROPERTIES: +:ID: 1a3d2a4c-bfad-4e5a-ab97-4db4531e7bd2 +:END: +#+title: IPv6 +#+filetags: :network: + +see [[id:d799bc90-5032-4a69-9806-83145297a335][Internet Protocol Address]] diff --git a/Content/20241013061908-ipv4.org b/Content/20241013061908-ipv4.org new file mode 100644 index 0000000..256562f --- /dev/null +++ b/Content/20241013061908-ipv4.org @@ -0,0 +1,7 @@ +:PROPERTIES: +:ID: f3fda9d4-bfde-4672-8b51-a41700c0cd98 +:END: +#+title: IPv4 +#+filetags: :network: + +see [[id:d799bc90-5032-4a69-9806-83145297a335][Internet Protocol Address]] diff --git a/Content/20241013062206-quality_of_service.org b/Content/20241013062206-quality_of_service.org new file mode 100644 index 0000000..3fa5250 --- /dev/null +++ b/Content/20241013062206-quality_of_service.org @@ -0,0 +1,30 @@ +:PROPERTIES: +:ID: 11c09e36-bdef-4977-9142-6d8ec0e697ba +:END: +#+title: Quality of Service +#+filetags: :cs:network: + +* Definitions +- Quality of Service (QoS) refers to the overall performance of a network or internet service, particularly the ability to guarantee a certain level of bandwidth, latency, and error rates. +* Components +- [[id:8d65e292-30f3-41c3-9611-d4a9acc173fb][Bandwidth]]: The maximum rate of data transfer across a network. +- [[id:aa3f4461-08f4-4a3d-ae4b-5704d1f3dd23][Latency]]: The delay before a transfer of data begins following an instruction for its transfer. +- [[id:e1ccd5f4-2431-457d-b823-334e767a29b3][Jitter]]: The variation in the time between packets arriving. +- [[id:91792611-56f9-472c-acf1-c8402bda2de6][Error Rates]]: The frequency of errors in data transmission or processing. +* Importance +- Ensures reliable and predictable communication performance. +- Crucial for applications requiring high data integrity and low latency, such as video conferencing and online gaming. +- Connections +- High QoS is generally correlated with enhanced user experience in digital services. +- Implementation of QoS requires careful network planning and sometimes additional resources or infrastructure. +- Critiques & Considerations +- Measuring true QoS can be challenging due to variability in internet traffic and external factors. +- Implementation may introduce complexity and overhead, potentially affecting performance in systems with constrained resources. +- Improvement Strategies +- Prioritize network traffic based on application needs. +- Constant monitoring and adaptive algorithms to dynamically manage resources. +- Investing in infrastructure upgrades to support higher performance standards. +- Engaging in load balancing to distribute traffic effectively. +- Areas for Further Inquiry +- What are the best practices for implementing QoS in a large-scale network? +- How can QoS be effectively measured and monitored in real-time? diff --git a/Content/20241013062322-bandwidth.org b/Content/20241013062322-bandwidth.org new file mode 100644 index 0000000..3abf358 --- /dev/null +++ b/Content/20241013062322-bandwidth.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: 8d65e292-30f3-41c3-9611-d4a9acc173fb +:END: +#+title: Bandwidth +#+filetags: :cs:network: diff --git a/Content/20241013062359-latency.org b/Content/20241013062359-latency.org new file mode 100644 index 0000000..7985f03 --- /dev/null +++ b/Content/20241013062359-latency.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: aa3f4461-08f4-4a3d-ae4b-5704d1f3dd23 +:END: +#+title: Latency +#+filetags: :network:cs: diff --git a/Content/20241013062413-jitter.org b/Content/20241013062413-jitter.org new file mode 100644 index 0000000..036e9a0 --- /dev/null +++ b/Content/20241013062413-jitter.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: e1ccd5f4-2431-457d-b823-334e767a29b3 +:END: +#+title: Jitter +#+filetags: :cs:network: diff --git a/Content/20241013062429-error_rates.org b/Content/20241013062429-error_rates.org new file mode 100644 index 0000000..87db124 --- /dev/null +++ b/Content/20241013062429-error_rates.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: 91792611-56f9-472c-acf1-c8402bda2de6 +:END: +#+title: Error Rates +#+filetags: :network:cs: diff --git a/Content/20241013062614-dhcp_dynamic_host_configuration_protocol.org b/Content/20241013062614-dhcp_dynamic_host_configuration_protocol.org new file mode 100644 index 0000000..194a026 --- /dev/null +++ b/Content/20241013062614-dhcp_dynamic_host_configuration_protocol.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: dd743d7a-7e96-45a7-9894-13f79b351681 +:END: +#+title: DHCP (Dynamic Host Configuration Protocol) +#+filetags: :cs:network: diff --git a/Content/20241013062649-dns_domain_name_system.org b/Content/20241013062649-dns_domain_name_system.org new file mode 100644 index 0000000..d4c2fae --- /dev/null +++ b/Content/20241013062649-dns_domain_name_system.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: c1875db1-be4d-43fe-9c88-bf5fc7a95df3 +:END: +#+title: DNS (Domain Name System) +#+filetags: :network:cs: diff --git a/Content/20241013062709-nat_network_address_translation.org b/Content/20241013062709-nat_network_address_translation.org new file mode 100644 index 0000000..f97df9f --- /dev/null +++ b/Content/20241013062709-nat_network_address_translation.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: 2db5d39c-8f0d-4bcb-ba73-c5d4e22c4d03 +:END: +#+title: NAT (Network Address Translation) +#+filetags: :cs:network: diff --git a/Content/20241013062853-ip_subnetting.org b/Content/20241013062853-ip_subnetting.org new file mode 100644 index 0000000..f7abbbc --- /dev/null +++ b/Content/20241013062853-ip_subnetting.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: e6f902bf-c138-4d79-85cc-98f1165ef761 +:END: +#+title: IP Subnetting +#+filetags: :network:cs: diff --git a/Content/20241013062954-ipvs_ip_virtual_server.org b/Content/20241013062954-ipvs_ip_virtual_server.org new file mode 100644 index 0000000..3af113a --- /dev/null +++ b/Content/20241013062954-ipvs_ip_virtual_server.org @@ -0,0 +1,22 @@ +:PROPERTIES: +:ID: 74055437-5557-4a21-9b7a-a3b5df3a8a24 +:END: +#+title: IPVS (IP Virtual Server) +#+filetags: :cs:network: + +* Overview + - *Definition*: IPVS ([[id:d799bc90-5032-4a69-9806-83145297a335][IP]] Virtual Server) is a transport-layer [[id:0d7c2dea-a250-4380-b826-ad4d2547d8d6][load balancing]] tool implemented within the [[id:d43f2ef3-6eb4-4f8d-89ed-095fedd7d7f9][Linux]] Kernel. + - It is part of the [[id:b8797396-4551-4a54-84ea-80b8f1a5b086][LVS (Linux Virtual Server)]] project. + - Operates at Layer 4 of the [[id:2deb95d6-5474-4096-85fc-bd568031cc33][OSI model]] (Transport Layer). + + - *Purpose*: Distributes network traffic across multiple servers. + - Used for scaling services by spreading client requests. + - Ensures high availability and reliability of applications. + + - *Use Cases*: + - Commonly used for load balancing web servers. + - Supports both TCP and UDP protocols. + + - *Implementation*: + - Kernel module: Requires appropriate configuration of kernel and network settings. + - Works in conjunction with iptables for packet filtering. diff --git a/Content/20241013063203-lvs_linux_virtual_server.org b/Content/20241013063203-lvs_linux_virtual_server.org new file mode 100644 index 0000000..396d592 --- /dev/null +++ b/Content/20241013063203-lvs_linux_virtual_server.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: b8797396-4551-4a54-84ea-80b8f1a5b086 +:END: +#+title: LVS (Linux Virtual Server) +#+filetags: :linux: diff --git a/Content/20241013063317-the_osi_model.org b/Content/20241013063317-the_osi_model.org new file mode 100644 index 0000000..db2fab5 --- /dev/null +++ b/Content/20241013063317-the_osi_model.org @@ -0,0 +1,5 @@ +:PROPERTIES: +:ID: 2deb95d6-5474-4096-85fc-bd568031cc33 +:END: +#+title: OSI (Open Systems Interconnection) Model +#+filetags: :network:cs: diff --git a/Content/20241013071303-conntrack.org b/Content/20241013071303-conntrack.org new file mode 100644 index 0000000..af0ed86 --- /dev/null +++ b/Content/20241013071303-conntrack.org @@ -0,0 +1,29 @@ +:PROPERTIES: +:ID: a5c1f909-fffb-4afb-af50-5c546820dd7c +:END: +#+title: conntrack +#+filetags: :network:cs: + +* Overview +** Definition +- conntrack is a system used for [[id:a4e712e1-a233-4173-91fa-4e145bd68769][network connection]] tracking. +- Integral to many firewall software setups, especially in Linux-based systems. + +** Functionality +- Monitors state of active connections. +- Manages connection state information for network protocols such as TCP, UDP. +- Utilizes a state table for tracking connections. + +** Importance +- Enhances security by helping to filter and manage network traffic. +- Allows for more complex and dynamic firewall rules. +- Important for network performance tuning and understanding traffic patterns. + +** Key Components +- conntrack-tools: a suite of user-space utilities to manage the active connections. +- nf_conntrack: a kernel module handling the connection tracking functionality. + +** Connection to [[id:49fee858-eb36-4230-8eb0-881df964aec8][Firewalls]] +- Used extensively in iptables/netfilter frameworks. +- Provides stateful inspection capabilities, allowing decisions based on connection states. +