QUIC is a new transport protocol developed by Google to replace TCP+TLS. It aims to reduce latency by eliminating OSI layers and supporting features like 0-RTT handshakes. The document provides a high-level overview of QUIC including its architecture, use of TLS 1.3, streams for multiplexing data, and support for features like connection migration through the use of connection IDs. It also discusses QUIC's current implementation status and adoption. Examples are given of QUIC packets and the handshake process.
QUIC is a new transport protocol developed by Google that aims to solve issues with TCP and TLS by multiplexing streams over UDP. It includes features like stream multiplexing, connection migration, 0-RTT connection establishment, and forward error correction. The document provides technical details on QUIC including its version history, wire format specifications, frame types, cryptographic handshake process, and examples of 0-RTT, 1-RTT, and 2-RTT connection establishment.
QUIC is Google's new multiplexing protocol that runs over UDP instead of TCP. It inherits features from SPDY like stream multiplexing and header compression. QUIC aims to reduce latency through techniques like 0-RTT connection establishment and bypassing head-of-line blocking. It supports pluggable congestion control algorithms and provides resilience to packet loss through FEC and running over UDP.
TCP and UDP are transport layer protocols used for data transfer in the OSI model. TCP is connection-oriented, requiring a three-way handshake to establish a connection that maintains data integrity. It guarantees data will reach its destination without duplication but is slower than UDP. UDP is connectionless and used for applications requiring fast transmission like video calls, but does not ensure packet delivery and order. Both protocols add headers to packets with TCP focused on reliability and UDP on speed.
The document discusses various MAC protocols for ad hoc wireless networks. It begins by outlining key issues in designing MAC protocols, such as bandwidth efficiency, QoS support, and handling hidden and exposed terminal problems. It then classifies MAC protocols as contention-based, contention-based with reservation, or contention-based with scheduling. Several contention-based protocols are described in detail, including MACA, MACAW, FAMA, BTMA, DBTMA, RI-BTMA, and MACA-BI. The protocols differ in how they handle medium access, use of control packets like RTS and CTS, and approaches to problems like hidden terminals. MARCH is also introduced as a protocol that reduces handshake overhead compared
Synthesis & gate-level simulation is introduced. The key topics covered include basic concepts of logic synthesis using Design Compiler, including logic level optimization, mapping, boundary optimization, and static timing analysis. Simulation of the gate-level netlist generated after synthesis is also discussed. An example lab is outlined to synthesize a simple 8-bit microprocessor and simulate the gate-level netlist.
Daniel Stenberg explains HTTP/3 and QUIC at GOTO 10, January 22, 2019. This is the slideset, see https://daniel.haxx.se/blog/2019/01/23/http-3-talk-on-video/ for the video.
HTTP/3 is the designated name for the coming next version of the protocol that is currently under development within the QUIC working group in the IETF.
HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.
Why the new protocols are deemed necessary, how they work, how they change how things are sent over the network and what some of the coming deployment challenges will be.
As you will see in this film, there are a lot of questions from an interested and educated audience.
Daniel Stenberg is the founder and lead developer of the curl project. He has worked on HTTP implementations for over twenty years. He has been involved in the HTTPbis working group in IETF for ten years and he worked with HTTP in Firefox for years before he left Mozilla. He participates in the QUIC working group and is the author of the widely read documents ”HTTP2 explained” and ”HTTP/3 explained”.
Access lists are used in routers to identify and control traffic by applying permit and deny conditions to IP addresses or protocols. There are standard and extended IP access lists. Standard lists filter based on source IP while extended lists can filter on source/destination IP, protocol, and port information. Wildcard masking allows filtering for groups of addresses by specifying which IP bits to check or ignore.
The QUIC protocol was developed by Google to improve performance over TCP for web applications by reducing latency. QUIC sits on top of UDP rather than TCP, allowing it to establish an encrypted connection in one round trip rather than the multiple round trips required by TCP. This reduces latency compared to HTTPS which uses TCP. QUIC also allows for multiplexed streams that can continue independently if one stream experiences packet loss, avoiding the head-of-line blocking that can occur with TCP connections. Major uses of QUIC include web browsing, video streaming, cloud services, and gaming.
A VLAN (virtual LAN) is a logical grouping of devices on a network that are not restricted by their physical location. VLANs allow network administrators to segment networks for security and performance reasons. The document defines a VLAN, explains how VLANs are created using switch ports, and discusses trunk ports for carrying traffic between VLANs. It also covers when VLANs are needed and how devices in different VLANs communicate via a router or Layer 3 switch.
This document discusses IP addressing and classful addressing in TCP/IP networking. It covers the following key points:
- IP addresses are 32-bit addresses that uniquely identify devices on the Internet. They are organized into classes A, B, C, D and E based on the binary pattern of the address.
- Classful addressing allocates address blocks to organizations based on these classes. However, this led to inefficient address usage and rapid depletion of available addresses.
- Subnetting and supernetting were introduced to allow better allocation of addresses within the original classful blocks through the use of subnet and supernet masks. However, classful addressing is now mostly obsolete.
HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.
HTTP/3 is the designated name for the coming next version of the protocol that is currently under development within the QUIC working group in the IETF.
HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.
Daniel Stenberg does a presentation about HTTP/3 and QUIC. Why the new protocols are deemed necessary, how they work, how they change how things are sent over the network and what some of the coming deployment challenges will be.
SOLUTION MANUAL OF OPERATING SYSTEM CONCEPTS BY ABRAHAM SILBERSCHATZ, PETER B...vtunotesbysree
Here are three major complications that concurrent processing adds to an operating system:
1. Resource allocation and scheduling becomes more complex. The OS must allocate CPU time, memory, file descriptors, etc. among multiple concurrent processes and ensure all processes receive adequate resources. It must also schedule which process runs at what time on what CPU core.
2. Synchronization and communication between processes is more difficult. The OS must provide mechanisms for processes to synchronize their actions when accessing shared resources and to allow inter-process communication. This introduces challenges around things like race conditions and deadlocks.
3. Reliability and fault tolerance is harder. If one process crashes or hangs, it should not affect other processes. The OS must be able to
The document discusses various Ethernet protocols and standards including:
- IEEE 802.3u and 802.3z which define Fast Ethernet and Gigabit Ethernet transmission rates.
- IEEE 802.1D, 802.1s, and 802.1w which relate to Spanning Tree Protocol (STP) and its variants for avoiding loops.
- IEEE 802.1Q for VLAN tagging to logically separate traffic on a physical LAN infrastructure.
- IEEE 802.3ad for Link Aggregation to combine multiple network links into a single logical trunk to increase bandwidth and redundancy.
This document discusses RISC and CISC computer architectures. RISC aims to minimize cycles per instruction by using a small set of simple instructions, while CISC aims to minimize instructions per program by using a more complex set of instructions. Both were developed to help bridge the semantic gap between high-level programming languages and machine-level execution. RISC uses a pipeline of 5 stages - fetch, decode, execute, access memory, write back - to efficiently process instructions. It has advantages like simple decoding, faster execution times, and reduced code size. CISC allows for more complex operations that can simplify compiler design and potentially improve performance, though at the cost of slower execution and more complex decoding.
The selective repeat protocol allows the receiver to accept and buffer frames following a damaged or lost one. Both the sender and receiver maintain a window of outstanding and acceptable sequence numbers. The receiver has a buffer for each sequence number within its fixed window. Whenever a frame arrives within the receiver's window, it is accepted and stored without regard to expected sequence. This protocol has fewer retransmissions than go-back-n but is more complex, as each frame must be acknowledged individually and the receiver may receive frames out of order.
The OSI model defines a standard framework for how applications can communicate over a network through 7 layers of abstraction: Physical, Data Link, Network, Transport, Session, Presentation, and Application. Each layer has a specific purpose and set of protocols to convert data between layers, establish connections, route packets, ensure reliable and secure delivery of data, and interface with applications. The layers work together to take a message from an application, convert it to bits for transmission over a physical medium, and reconstruct it back to a message at the destination.
RPL - Routing Protocol for Low Power and Lossy NetworksPradeep Kumar TS
RPL is a distance vector routing protocol designed for low power and lossy networks. It forms a Destination Oriented Directed Acyclic Graph (DODAG) topology with the root node at the top. Nodes in the RPL network are assigned a rank based on their position relative to the DODAG root, with downward routes following increasing ranks and upward routes following decreasing ranks. RPL uses DIO, DIS, DAO, DAO-ACK and CC control messages to construct and maintain the DODAG topology as well as advertise routes and ensure consistency.
This document discusses subnetting, supernetting, and classless addressing. It defines subnetting as dividing a network into smaller subnetworks, and supernetting as aggregating multiple network blocks into a larger block. The key points are:
- Subnetting allows a network to have multiple hierarchical levels and partitions addresses into subnets. Supernetting combines multiple blocks into a larger block.
- The subnet or supernet mask is used with the address to determine the network or block boundaries.
- Subnets and supernet blocks must have a size that is a power of 2, and the starting address must be divisible by the block size.
- Classless addressing uses CIDR notation of an address
IPv6 is the next generation Internet protocol that replaces IPv4. It features a vastly larger 128-bit address space to avoid future address exhaustion. IPv6 addresses are written as eight groups of four hexadecimal digits separated by colons and supports stateless autoconfiguration of hosts and other improvements over IPv4.
The document discusses IPv6 addressing and summarizes:
- IPv6 addresses are 128-bit hexadecimal addresses consisting of 8 sections separated by colons, with the first 3 sections making up the prefix or network portion and the last 4 sections being the interface ID.
- Addressing hierarchies are defined, with the first bits identifying the registry and subsequent bits identifying the ISP and site.
- Methods for compressing zeros, representing loopback addresses, and defining link-local and multicast addresses are covered.
- IPv6 enhances IPv4 by allowing larger addresses and more efficient routing while introducing features like built-in encryption.
This document discusses different types of file sharing semantics for shared files in distributed file systems. It describes four main types: UNIX semantics, which ensures all read operations see the effects of previous writes; immutable shared-file semantics, which treats shared files as immutable so changes create new versions; transaction-like semantics, which controls concurrent access using transactions; and session semantics, where changes in a session are only visible to the client's processes until the session closes.
This document summarizes key topics related to data link control and protocols. It discusses framing methods like fixed-size and variable-size framing. It also covers flow control, error control, and protocols for both noiseless and noisy channels. Specific protocols described include the Simplest Protocol, Stop-and-Wait Protocol, Stop-and-Wait ARQ, Go-Back-N ARQ, and Selective Repeat ARQ. The document provides details on their design, algorithms, and flow diagrams to illustrate how each protocol handles framing, flow control, and error control.
The document discusses three classical synchronization problems: the dining philosophers problem, the readers-writers problem, and the bounded buffer problem. For each problem, it provides an overview of the problem structure, potential issues like deadlock, and example semaphore-based solutions to coordinate access to shared resources in a way that avoids those issues. It also notes some applications where each type of problem could arise, like processes sharing a limited number of resources.
This document discusses various application layer protocols. It begins with an agenda that lists OSI models, encapsulation processes, application protocol design, and specific protocols including HTTP, DNS, FTP, Telnet, DHCP, and SMTP. For each protocol, it provides details on how the protocol functions, message formats, and roles of clients and servers. The document is intended to describe key application layer protocols and their basic operations.
TCP/IP model with their 4 layer
1. Network access layer.
2. Internet layer
3. Transport layer
4. Application layer
and each layer has its own protocols.
The document discusses several networking concepts:
- Classless Inter-Domain Routing (CIDR) allows ISPs to allocate blocks of IP addresses to organizations in a more efficient manner than previous methods.
- Network Address Translation (NAT) allows a local network to use private IP address ranges behind a NAT-enabled router that maps the private addresses to a single public IP address for communication with external networks.
- Subnetting and Variable Length Subnet Masking (VLSM) allow networks to be divided into subnets to better utilize limited IP address blocks and assign addresses based on subnet needs.
- Supernetting combines multiple classful network blocks into larger supernets to more efficiently use address space.
routing table ,What is routing ? , what is static routing , what is dynamic routing , types of routing , routing protocols , routing strategy , Download Routing pdf , Download routing ppt , download routing notes , paper on routing
To Download Complete Documentation Visit My Blog
http://studyofcs.blogspot.com/2015/06/what-is-routerwhat-is-routing.html
Download completer BS Computer Science Degree Study Data
http://studyofcs.blogspot.com/p/bs.html
Presented at LISA18: https://www.usenix.org/conference/lisa18/presentation/babrou
This is a technical dive into how we used eBPF to solve real-world issues uncovered during an innocent OS upgrade. We'll see how we debugged 10x CPU increase in Kafka after Debian upgrade and what lessons we learned. We'll get from high-level effects like increased CPU to flamegraphs showing us where the problem lies to tracing timers and functions calls in the Linux kernel.
The focus is on tools what operational engineers can use to debug performance issues in production. This particular issue happened at Cloudflare on a Kafka cluster doing 100Gbps of ingress and many multiple of that egress.
Palestra realizada por Toronto Garcez aka torontux durante a 3a. edição da Nullbyte Security Conference em 26 de novembro de 2016.
Resumo:
O objetivo da apresentação é demonstrar de forma prática, o passo-a-passo para criar uma botnet com roteadores wi-fi e/ou embarcados em geral. Será demonstrado o desenvolvimento de um comando e controle e a utilização de firmwares "backdorados" para tornar dispositivos em bots.
The QUIC protocol was developed by Google to improve performance over TCP for web applications by reducing latency. QUIC sits on top of UDP rather than TCP, allowing it to establish an encrypted connection in one round trip rather than the multiple round trips required by TCP. This reduces latency compared to HTTPS which uses TCP. QUIC also allows for multiplexed streams that can continue independently if one stream experiences packet loss, avoiding the head-of-line blocking that can occur with TCP connections. Major uses of QUIC include web browsing, video streaming, cloud services, and gaming.
A VLAN (virtual LAN) is a logical grouping of devices on a network that are not restricted by their physical location. VLANs allow network administrators to segment networks for security and performance reasons. The document defines a VLAN, explains how VLANs are created using switch ports, and discusses trunk ports for carrying traffic between VLANs. It also covers when VLANs are needed and how devices in different VLANs communicate via a router or Layer 3 switch.
This document discusses IP addressing and classful addressing in TCP/IP networking. It covers the following key points:
- IP addresses are 32-bit addresses that uniquely identify devices on the Internet. They are organized into classes A, B, C, D and E based on the binary pattern of the address.
- Classful addressing allocates address blocks to organizations based on these classes. However, this led to inefficient address usage and rapid depletion of available addresses.
- Subnetting and supernetting were introduced to allow better allocation of addresses within the original classful blocks through the use of subnet and supernet masks. However, classful addressing is now mostly obsolete.
HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.
HTTP/3 is the designated name for the coming next version of the protocol that is currently under development within the QUIC working group in the IETF.
HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.
Daniel Stenberg does a presentation about HTTP/3 and QUIC. Why the new protocols are deemed necessary, how they work, how they change how things are sent over the network and what some of the coming deployment challenges will be.
SOLUTION MANUAL OF OPERATING SYSTEM CONCEPTS BY ABRAHAM SILBERSCHATZ, PETER B...vtunotesbysree
Here are three major complications that concurrent processing adds to an operating system:
1. Resource allocation and scheduling becomes more complex. The OS must allocate CPU time, memory, file descriptors, etc. among multiple concurrent processes and ensure all processes receive adequate resources. It must also schedule which process runs at what time on what CPU core.
2. Synchronization and communication between processes is more difficult. The OS must provide mechanisms for processes to synchronize their actions when accessing shared resources and to allow inter-process communication. This introduces challenges around things like race conditions and deadlocks.
3. Reliability and fault tolerance is harder. If one process crashes or hangs, it should not affect other processes. The OS must be able to
The document discusses various Ethernet protocols and standards including:
- IEEE 802.3u and 802.3z which define Fast Ethernet and Gigabit Ethernet transmission rates.
- IEEE 802.1D, 802.1s, and 802.1w which relate to Spanning Tree Protocol (STP) and its variants for avoiding loops.
- IEEE 802.1Q for VLAN tagging to logically separate traffic on a physical LAN infrastructure.
- IEEE 802.3ad for Link Aggregation to combine multiple network links into a single logical trunk to increase bandwidth and redundancy.
This document discusses RISC and CISC computer architectures. RISC aims to minimize cycles per instruction by using a small set of simple instructions, while CISC aims to minimize instructions per program by using a more complex set of instructions. Both were developed to help bridge the semantic gap between high-level programming languages and machine-level execution. RISC uses a pipeline of 5 stages - fetch, decode, execute, access memory, write back - to efficiently process instructions. It has advantages like simple decoding, faster execution times, and reduced code size. CISC allows for more complex operations that can simplify compiler design and potentially improve performance, though at the cost of slower execution and more complex decoding.
The selective repeat protocol allows the receiver to accept and buffer frames following a damaged or lost one. Both the sender and receiver maintain a window of outstanding and acceptable sequence numbers. The receiver has a buffer for each sequence number within its fixed window. Whenever a frame arrives within the receiver's window, it is accepted and stored without regard to expected sequence. This protocol has fewer retransmissions than go-back-n but is more complex, as each frame must be acknowledged individually and the receiver may receive frames out of order.
The OSI model defines a standard framework for how applications can communicate over a network through 7 layers of abstraction: Physical, Data Link, Network, Transport, Session, Presentation, and Application. Each layer has a specific purpose and set of protocols to convert data between layers, establish connections, route packets, ensure reliable and secure delivery of data, and interface with applications. The layers work together to take a message from an application, convert it to bits for transmission over a physical medium, and reconstruct it back to a message at the destination.
RPL - Routing Protocol for Low Power and Lossy NetworksPradeep Kumar TS
RPL is a distance vector routing protocol designed for low power and lossy networks. It forms a Destination Oriented Directed Acyclic Graph (DODAG) topology with the root node at the top. Nodes in the RPL network are assigned a rank based on their position relative to the DODAG root, with downward routes following increasing ranks and upward routes following decreasing ranks. RPL uses DIO, DIS, DAO, DAO-ACK and CC control messages to construct and maintain the DODAG topology as well as advertise routes and ensure consistency.
This document discusses subnetting, supernetting, and classless addressing. It defines subnetting as dividing a network into smaller subnetworks, and supernetting as aggregating multiple network blocks into a larger block. The key points are:
- Subnetting allows a network to have multiple hierarchical levels and partitions addresses into subnets. Supernetting combines multiple blocks into a larger block.
- The subnet or supernet mask is used with the address to determine the network or block boundaries.
- Subnets and supernet blocks must have a size that is a power of 2, and the starting address must be divisible by the block size.
- Classless addressing uses CIDR notation of an address
IPv6 is the next generation Internet protocol that replaces IPv4. It features a vastly larger 128-bit address space to avoid future address exhaustion. IPv6 addresses are written as eight groups of four hexadecimal digits separated by colons and supports stateless autoconfiguration of hosts and other improvements over IPv4.
The document discusses IPv6 addressing and summarizes:
- IPv6 addresses are 128-bit hexadecimal addresses consisting of 8 sections separated by colons, with the first 3 sections making up the prefix or network portion and the last 4 sections being the interface ID.
- Addressing hierarchies are defined, with the first bits identifying the registry and subsequent bits identifying the ISP and site.
- Methods for compressing zeros, representing loopback addresses, and defining link-local and multicast addresses are covered.
- IPv6 enhances IPv4 by allowing larger addresses and more efficient routing while introducing features like built-in encryption.
This document discusses different types of file sharing semantics for shared files in distributed file systems. It describes four main types: UNIX semantics, which ensures all read operations see the effects of previous writes; immutable shared-file semantics, which treats shared files as immutable so changes create new versions; transaction-like semantics, which controls concurrent access using transactions; and session semantics, where changes in a session are only visible to the client's processes until the session closes.
This document summarizes key topics related to data link control and protocols. It discusses framing methods like fixed-size and variable-size framing. It also covers flow control, error control, and protocols for both noiseless and noisy channels. Specific protocols described include the Simplest Protocol, Stop-and-Wait Protocol, Stop-and-Wait ARQ, Go-Back-N ARQ, and Selective Repeat ARQ. The document provides details on their design, algorithms, and flow diagrams to illustrate how each protocol handles framing, flow control, and error control.
The document discusses three classical synchronization problems: the dining philosophers problem, the readers-writers problem, and the bounded buffer problem. For each problem, it provides an overview of the problem structure, potential issues like deadlock, and example semaphore-based solutions to coordinate access to shared resources in a way that avoids those issues. It also notes some applications where each type of problem could arise, like processes sharing a limited number of resources.
This document discusses various application layer protocols. It begins with an agenda that lists OSI models, encapsulation processes, application protocol design, and specific protocols including HTTP, DNS, FTP, Telnet, DHCP, and SMTP. For each protocol, it provides details on how the protocol functions, message formats, and roles of clients and servers. The document is intended to describe key application layer protocols and their basic operations.
TCP/IP model with their 4 layer
1. Network access layer.
2. Internet layer
3. Transport layer
4. Application layer
and each layer has its own protocols.
The document discusses several networking concepts:
- Classless Inter-Domain Routing (CIDR) allows ISPs to allocate blocks of IP addresses to organizations in a more efficient manner than previous methods.
- Network Address Translation (NAT) allows a local network to use private IP address ranges behind a NAT-enabled router that maps the private addresses to a single public IP address for communication with external networks.
- Subnetting and Variable Length Subnet Masking (VLSM) allow networks to be divided into subnets to better utilize limited IP address blocks and assign addresses based on subnet needs.
- Supernetting combines multiple classful network blocks into larger supernets to more efficiently use address space.
routing table ,What is routing ? , what is static routing , what is dynamic routing , types of routing , routing protocols , routing strategy , Download Routing pdf , Download routing ppt , download routing notes , paper on routing
To Download Complete Documentation Visit My Blog
http://studyofcs.blogspot.com/2015/06/what-is-routerwhat-is-routing.html
Download completer BS Computer Science Degree Study Data
http://studyofcs.blogspot.com/p/bs.html
Presented at LISA18: https://www.usenix.org/conference/lisa18/presentation/babrou
This is a technical dive into how we used eBPF to solve real-world issues uncovered during an innocent OS upgrade. We'll see how we debugged 10x CPU increase in Kafka after Debian upgrade and what lessons we learned. We'll get from high-level effects like increased CPU to flamegraphs showing us where the problem lies to tracing timers and functions calls in the Linux kernel.
The focus is on tools what operational engineers can use to debug performance issues in production. This particular issue happened at Cloudflare on a Kafka cluster doing 100Gbps of ingress and many multiple of that egress.
Palestra realizada por Toronto Garcez aka torontux durante a 3a. edição da Nullbyte Security Conference em 26 de novembro de 2016.
Resumo:
O objetivo da apresentação é demonstrar de forma prática, o passo-a-passo para criar uma botnet com roteadores wi-fi e/ou embarcados em geral. Será demonstrado o desenvolvimento de um comando e controle e a utilização de firmwares "backdorados" para tornar dispositivos em bots.
Best practices for catalyst 4500 4000, 5500-5000, and 6500-6000 series switch...abdenour boussioud
This document provides best practices for configuring Cisco Catalyst 4500/4000, 5500/5000, and 6500/6000 series switches running CatOS. It discusses protocols like CDP, DTP, STP, EtherChannel and VLAN Trunking Protocol that are used for switch-to-switch communication. It also covers management topics such as SNMP, syslog, NTP and security configurations using features like TACACS+. The document is divided into sections on basic configuration, management, security and a configuration checklist.
The document discusses reverse engineering the firmware of Swisscom's Centro Grande modems. It identifies several vulnerabilities found, including a command overflow issue that allows complete control of the device by exceeding the input buffer, and multiple buffer overflow issues that can be exploited to execute code remotely by crafting specially formatted XML files. Details are provided on the exploitation techniques and timeline of coordination with Swisscom to address the vulnerabilities.
This document provides a summary of common Linux network tools including ifconfig, netstat, route, ping, traceroute, iptables, netcat, rinetd, tcpdump, and tcpreplay. It describes what each tool is used for at a high level, such as configuring network interfaces, displaying network status, manipulating network routes, testing network connectivity, implementing firewalls, and capturing/replaying network traffic. The document also provides basic introductions to IPv4 and IPv6 addressing and routing concepts.
Handy Networking Tools and How to Use ThemSneha Inguva
Linux networking tools can be used to analyze network connectivity and performance. Tools like ifconfig show interface configurations, route displays routing tables, arp shows the ARP cache, dig/nslookup resolve DNS, and traceroute traces the network path. Nmap scans for open ports, ping checks latency, and tcpdump captures traffic. Iperf3 and wrk2 can load test throughput and capacity, while tcpreplay replays captured traffic. These CLI tools provide essential network information and testing capabilities from the command line.
The document provides an introduction to computer networks and GNU/Linux. It discusses network models including OSI and TCP/IP models. Common network protocols like Ethernet, IP, TCP and UDP are explained. Standard organizations that develop network standards like IETF, IEEE and ITU are presented. Network hardware components like network interface cards and switches are described. The document is intended as a lecture on basic computer networking concepts.
OSTU - Sake Blok on Packet Capturing with TsharkDenny K Miu
Sake Blok, a Wireshark/Ethereal devotee since 1999, works as a Research & Development Engineer for ion-ip in the Netherlands (http://www.ionip.com) . His company provides solutions to customers who want to deliver their applications to users in a fast, secure, efficient and scalable manner. Sake\'s main focus is to take new products for a spin in their test environment, design custom solutions for customers and troubleshoot the problems customers might encounter while using ion-ip solutions. Two years ago (2006), Sake started to add the functionality he was missing to Wireshark. He also started to fix Wireshark-bugs that were reported on Bugzilla. This work on Wireshark resulted in an invitation from Gerald Combs to join the Wireshark Core Development Team in 2007.
This document provides an outline for Lecture 4 on UNIX OS networking. It discusses TCP/IP and the OSI model, IP and MAC addressing, networking commands like ping, traceroute, arp, ifconfig and route. It also gives an overview of common UNIX command line tools like cut, diff, grep, strings, tr and uniq along with examples of using each tool.
Varnish is an HTTP accelerator that acts as a reverse proxy and cache. It is very fast due to being open source and outsourcing tasks to kernel functions. It relies on a massively multithreaded architecture that is partly event driven. It maps the cache store into memory using mmap and writes directly from mapped memory for maximum performance. Logging includes all request headers. Wikia uses Varnish across 4 datacenters with rapid cache invalidations and a RabbitMQ queue to handle invalidations. SSDs and tuning help optimize performance.
Free LIX is an open source firewall and load balancer software that runs on Linux. It provides stateful packet inspection firewall capabilities and uses Netfilter, LVS, and Keepalived to provide high availability and load balancing. The document discusses Free LIX's command syntax, configuration options, virtualization support, and prototype hardware implementations using low-cost devices.
OSSNA 2017 Performance Analysis Superpowers with Linux BPFBrendan Gregg
Talk by Brendan Gregg for OSSNA 2017. "Advanced performance observability and debugging have arrived built into the Linux 4.x series, thanks to enhancements to Berkeley Packet Filter (BPF, or eBPF) and the repurposing of its sandboxed virtual machine to provide programmatic capabilities to system tracing. Netflix has been investigating its use for new observability tools, monitoring, security uses, and more. This talk will be a dive deep on these new tracing, observability, and debugging capabilities, which sooner or later will be available to everyone who uses Linux. Whether you’re doing analysis over an ssh session, or via a monitoring GUI, BPF can be used to provide an efficient, custom, and deep level of detail into system and application performance.
This talk will also demonstrate the new open source tools that have been developed, which make use of kernel- and user-level dynamic tracing (kprobes and uprobes), and kernel- and user-level static tracing (tracepoints). These tools provide new insights for file system and storage performance, CPU scheduler performance, TCP performance, and a whole lot more. This is a major turning point for Linux systems engineering, as custom advanced performance instrumentation can be used safely in production environments, powering a new generation of tools and visualizations."
The document summarizes 6 network packets captured between different IP addresses. The packets used various protocols including HTTP, TLS, NBNS, SSDP, DHCPv6, and LLMNR. The most common protocols observed were HTTP, TLS, and DHCPv6 which were used to establish secure connections and request network configuration settings.
The document summarizes 6 network packets captured between different IP addresses. The packets utilize various protocols including HTTP, TLS, NBNS, SSDP, DHCPv6, and LLMNR. The most common protocols observed are HTTP, TLS, and DHCPv6 which are used to establish secure connections and dynamically configure host devices on the network.
Upon reading the document, the key steps in a router's start-up process can be summarized as follows:
1. When power is applied, the router performs a power-on self-test and loads the bootstrap code from ROM to initialize hardware and find the IOS image.
2. The IOS image is then loaded from flash memory or another source such as TFTP into RAM where it is decompressed and executed.
3. The startup configuration is loaded, typically from NVRAM. If no configuration is present, the router enters setup mode to configure initial settings.
This document provides an overview and agenda for the Splunk App for Stream, including:
- The architecture of the Stream Forwarder for capturing wire data and routing it to Splunk.
- The architecture of the App for Stream for analyzing wire data in Splunk.
- Examples of deployment architectures for ingesting wire data.
- A customer use case where wire data from the network helped provide visibility that log data could not due to access restrictions.
This document provides information on various debugging and profiling tools that can be used for Ruby including:
- lsof to list open files for a process
- strace to trace system calls and signals
- tcpdump to dump network traffic
- google perftools profiler for CPU profiling
- pprof to analyze profiling data
It also discusses how some of these tools have helped identify specific performance issues with Ruby like excessive calls to sigprocmask and memcpy calls slowing down EventMachine with threads.
DevNexus - Building 10x Development Organizations.pdfJustin Reock
Developer Experience is Dead! Long Live Developer Experience!
In this keynote-style session, we’ll take a detailed, granular look at the barriers to productivity developers face today and modern approaches for removing them. 10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method, we invent to deliver products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches works? DORA? SPACE? DevEx? What should we invest in and create urgency behind today so we don’t have the same discussion again in a decade?
Transform Your Future with Front-End Development TrainingVtechlabs
Kickstart your career in web development with our front-end web development course in Vadodara. Learn HTML, CSS, JavaScript, React, and more through hands-on projects and expert mentorship. Our front-end development course with placement includes real-world training, mock interviews, and job assistance to help you secure top roles like Front-End Developer, UI/UX Developer, and Web Designer.
Join VtechLabs today and build a successful career in the booming IT industry!
30B Images and Counting: Scaling Canva's Content-Understanding Pipelines by K...ScyllaDB
Scaling content understanding for billions of images is no easy feat. This talk dives into building extreme label classification models, balancing accuracy & speed, and optimizing ML pipelines for scale. You'll learn new ways to tackle real-time performance challenges in massive data environments.
The Future of Repair: Transparent and Incremental by Botond DénesScyllaDB
Regularly run repairs are essential to keep clusters healthy, yet having a good repair schedule is more challenging than it should be. Repairs often take a long time, preventing running them often. This has an impact on data consistency and also limits the usefulness of the new repair based tombstone garbage collection. We want to address these challenges by making repairs incremental and allowing for automatic repair scheduling, without relying on external tools.
This is session #4 of the 5-session online study series with Google Cloud, where we take you onto the journey learning generative AI. You’ll explore the dynamic landscape of Generative AI, gaining both theoretical insights and practical know-how of Google Cloud GenAI tools such as Gemini, Vertex AI, AI agents and Imagen 3.
Computational Photography: How Technology is Changing Way We Capture the WorldHusseinMalikMammadli
📸 Computational Photography (Computer Vision/Image): How Technology is Changing the Way We Capture the World
Heç düşünmüsünüzmü, müasir smartfonlar və kameralar necə bu qədər gözəl görüntülər yaradır? Bunun sirri Computational Fotoqrafiyasında(Computer Vision/Imaging) gizlidir—şəkilləri çəkmə və emal etmə üsulumuzu təkmilləşdirən, kompüter elmi ilə fotoqrafiyanın inqilabi birləşməsi.
FinTech - US Annual Funding Report - 2024.pptxTracxn
US FinTech 2024, offering a comprehensive analysis of key trends, funding activities, and top-performing sectors that shaped the FinTech ecosystem in the US 2024. The report delivers detailed data and insights into the region's funding landscape and other developments. We believe this report will provide you with valuable insights to understand the evolving market dynamics.
copy & paste 👉 🟠➤➤🡇 https://filedownloadx.com/download-link/
Wondershare Dr.Fone Crack is a comprehensive mobile phone management and recovery software designed to help users recover lost data, repair system issues, and manage mobile devices. It supports both Android and iOS platforms, offering a wide range of features aimed at restoring files, repairing software problems, and backing up or transferring data.
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (平山毅)Tsuyoshi Hirayama
DAO UTokyo 2025
東京大学情報学環 ブロックチェーン研究イニシアティブ
https://utbciii.com/2024/12/12/announcing-dao-utokyo-2025-conference/
Session 1 :DLT mass adoption
IBM Tsuyoshi Hirayama (平山毅)
DevOps iş təhlükəsizliyi sizi maraqlandırır? İstər developer, istər təhlükəsizlik mühəndisi, istərsə də DevOps həvəskarı olun, bu tədbir şəbəkələşmək, biliklərinizi bölüşmək və DevSecOps sahəsində ən son təcrübələri öyrənmək üçün mükəmməl fürsətdir!
Bu workshopda DevOps infrastrukturlarının təhlükəsizliyini necə artırmaq barədə danışacayıq. DevOps sistemləri qurularkən avtomatlaşdırılmış, yüksək əlçatan və etibarlı olması ilə yanaşı, həm də təhlükəsizlik məsələləri nəzərə alınmalıdır. Bu səbəbdən, DevOps komandolarının təhlükəsizliyə yönəlmiş praktikalara riayət etməsi vacibdir.
UiPath Automation Developer Associate Training Series 2025 - Session 1DianaGray10
Welcome to UiPath Automation Developer Associate Training Series 2025 - Session 1.
In this session, we will cover the following topics:
Introduction to RPA & UiPath Studio
Overview of RPA and its applications
Introduction to UiPath Studio
Variables & Data Types
Control Flows
You are requested to finish the following self-paced training for this session:
Variables, Constants and Arguments in Studio 2 modules - 1h 30m - https://academy.uipath.com/courses/variables-constants-and-arguments-in-studio
Control Flow in Studio 2 modules - 2h 15m - https:/academy.uipath.com/courses/control-flow-in-studio
⁉️ For any questions you may have, please use the dedicated Forum thread. You can tag the hosts and mentors directly and they will reply as soon as possible.
Understanding Traditional AI with Custom Vision & MuleSoft.pptxshyamraj55
Understanding Traditional AI with Custom Vision & MuleSoft.pptx | ### Slide Deck Description:
This presentation features Atul, a Senior Solution Architect at NTT DATA, sharing his journey into traditional AI using Azure's Custom Vision tool. He discusses how AI mimics human thinking and reasoning, differentiates between predictive and generative AI, and demonstrates a real-world use case. The session covers the step-by-step process of creating and training an AI model for image classification and object detection—specifically, an ad display that adapts based on the viewer's gender. Atulavan highlights the ease of implementation without deep software or programming expertise. The presentation concludes with a Q&A session addressing technical and privacy concerns.
TrustArc Webinar - Building your DPIA/PIA Program: Best Practices & TipsTrustArc
Understanding DPIA/PIAs and how to implement them can be the key to embedding privacy in the heart of your organization as well as achieving compliance with multiple data protection / privacy laws, such as GDPR and CCPA. Indeed, the GDPR mandates Privacy by Design and requires documented Data Protection Impact Assessments (DPIAs) for high risk processing and the EU AI Act requires an assessment of fundamental rights.
How can you build this into a sustainable program across your business? What are the similarities and differences between PIAs and DPIAs? What are the best practices for integrating PIAs/DPIAs into your data privacy processes?
Whether you're refining your compliance framework or looking to enhance your PIA/DPIA execution, this session will provide actionable insights and strategies to ensure your organization meets the highest standards of data protection.
Join our panel of privacy experts as we explore:
- DPIA & PIA best practices
- Key regulatory requirements for conducting PIAs and DPIAs
- How to identify and mitigate data privacy risks through comprehensive assessments
- Strategies for ensuring documentation and compliance are robust and defensible
- Real-world case studies that highlight common pitfalls and practical solutions
THE BIG TEN BIOPHARMACEUTICAL MNCs: GLOBAL CAPABILITY CENTERS IN INDIASrivaanchi Nathan
This business intelligence report, "The Big Ten Biopharmaceutical MNCs: Global Capability Centers in India", provides an in-depth analysis of the operations and contributions of the Global Capability Centers (GCCs) of ten leading biopharmaceutical multinational corporations in India. The report covers AstraZeneca, Bayer, Bristol Myers Squibb, GlaxoSmithKline (GSK), Novartis, Sanofi, Roche, Pfizer, Novo Nordisk, and Eli Lilly. In this report each company's GCC is profiled with details on location, workforce size, investment, and the strategic roles these centers play in global business operations, research and development, and information technology and digital innovation.
Just like life, our code must evolve to meet the demands of an ever-changing world. Adaptability is key in developing for the web, tablets, APIs, or serverless applications. Multi-runtime development is the future, and that future is dynamic. Enter BoxLang: Dynamic. Modular. Productive. (www.boxlang.io)
BoxLang transforms development with its dynamic design, enabling developers to write expressive, functional code effortlessly. Its modular architecture ensures flexibility, allowing easy integration into your existing ecosystems.
Interoperability at Its Core
BoxLang boasts 100% interoperability with Java, seamlessly blending traditional and modern development practices. This opens up new possibilities for innovation and collaboration.
Multi-Runtime Versatility
From a compact 6MB OS binary to running on our pure Java web server, CommandBox, Jakarta EE, AWS Lambda, Microsoft Functions, WebAssembly, Android, and more, BoxLang is designed to adapt to any runtime environment. BoxLang combines modern features from CFML, Node, Ruby, Kotlin, Java, and Clojure with the familiarity of Java bytecode compilation. This makes it the go-to language for developers looking to the future while building a solid foundation.
Empowering Creativity with IDE Tools
Unlock your creative potential with powerful IDE tools designed for BoxLang, offering an intuitive development experience that streamlines your workflow. Join us as we redefine JVM development and step into the era of BoxLang. Welcome to the future.
A Framework for Model-Driven Digital Twin EngineeringDaniel Lehner
Slides from my PhD Defense at Johannes Kepler University, held on Janurary 10, 2025.
The full thesis is available here: https://epub.jku.at/urn/urn:nbn:at:at-ubl:1-83896
2. Tempesta Technologies
Custom software development in:
●
high performance network traffic processing
e.g. WAF mentioned in Gartner magic quadrant
https://www.ptsecurity.com/ww-en/products/af/
●
Databases
e.g. MariaDB SQL System-Versioned Tables
https://mariadb.com/kb/en/library/system-versioned-tables/
https://mariadb.com/conference/session/querying-data-previous-
point-time
Developing Tempesta FW – open source Linux
Application Delivery Controller (ADC)
3. Tempesta FW:
Application Delivery Controller (ADC)
https://www.netdevconf.org/2.1/session.html?krizhanovsky
HTTP(S) reverse proxy
filtering
●
HTTP DDoS mitigation
●
Web Application Firewall
built into the TCP/IP stack
up to 1.8M HTTP RPS
on 4 cores
4. Disclamer
We’re sceptic about QUIC…
https://github.com/tempesta-tech/tempesta/issues/724
...but I did my best to figure out why QUIC is good
The talk isn’t about QUIC benefits, there are many other talks (see
references)
...instead it’s about how does it work
Not a comprehensive description…
...instead, just how to learn and debug the protocol
5. Why QUIC?
QUIC is ~7% of Internet traffic, 98% of them to Google
Has QUIC: Google, Amazon, Fastly, LiteSpeed Technologies
Adopting: CloudFlare, Mellanox (UDP offload on NICs)
https://www.netdevconf.org/0x12/session.html?udp-segmentation-offload
Middleboxes slowly learn about QUIC
Highlights:
●
Performance: no OSI layers - each layer knows about each other
●
A UDP-based TCP replacement
●
no head-of-line blocking
●
0-RTT handshakes
6. Current state
Still in draft state (IETF meeting 103, Nov 6-7, 2018)
$ grep TBD *.txt|wc -l
23
Several server implementations
Chrome seems the only usable client
Wireshark knows about QUIC
7. Head-of-line blocking (the long story)
HTTP/2 solves HTTP/1 HoL blocking
...so no need many TCP connections
...so 1 TCP connection introduces HoL
blocking
...so multi-stream QUIC replaces TCP
BTW: SCTP solves HoL problem for 11 years
https://en.wikipedia.org/wiki/Stream_Control_Tr
ansmission_Protocol#Features
SCTP is implemented by many libraries and OS
kernels
8. Why not SCTP and/or DTLS?
QUIC FAQ for Geeks
https://docs.google.com/document/d/1lmL9EF6qKrk7gbazY8bIdvq3Pno2
Xj_l_YShP40GLQE/edit
SCTP and DTLS were not designed to minimize latency, and this is
significantly apparent even during the connection establishment phases.
Several of the techniques that QUIC is experimenting with would be
difficult technically to incorporate into existing standards. As an
example, each of these other protocols require several round trips to
establish a connection, which is at odds with our target of 0-RTT
connectivity overhead.
Middleboxes alre also against updating standards
9. Why not TCP Fast Open + TLS 1.3?
TLS 1.3 (used by QUIC anyway): 0/1-RTT handshakes
TCP Fast Open (RFC 7413, default in Linux): 0-RTT
●
does not detect duplicate SYN segments (RFC 7413 6.1)
●
1st
data segment size <= MSS (RFC 7413 6.2)
●
TCP HoL blocking still exists
source: https://lwn.net/Articles/508865/
11. QUIC & TLS 1.3
draft-ietf-quic-applicability-03.txt
draft-ietf-quic-tls-16.txt: ”Rather than a strict layering,
these two protocols are co-dependent”
TLS record = QUIC packet (no need for TLS dynamic records)
12. QUIC in the wild
Chrome, ver. >= 63
google-chrome
--enable-quic
# tcpdump -i wlp1s0 -X -s0 -nn -vvv
udp port 443 and host www.google.com
17. Connection upgrade: HTTP header Alt-Svc
draft-ietf-quic-http-16.txt, RFC 7838
ALTSVC HTTP/2 frame also can be used
Format seems changing
"headers": [
":status: 200",
"accept-ranges: bytes",
"content-type: image/png",
...
"alt-svc: quic=":443"; ma=2592000; v="44,43,39,35""
],
18. Fallback to TCP
Some middleboxes frop UDP (draft-ietf-quic-applicability-03.txt)
# iptables -A OUTPUT -p udp --dport 443 -j DROP
# tcpdump -i wlp1s0 -nn -q host www.google.com
192.168.1.67.54512 > 64.233.165.103.443: tcp 78
192.168.1.67.54512 > 64.233.165.103.443: tcp 46
…
19. Packet headers
Long header – to establish connection contexts
●
Initial, handshake, retry
Short header – after that
Version negotiation – for unsupported version in ClientHello
20. QUIC long header
{D,S}CIL = {Destination,Source} Connection ID Length
Version=0: version negotiation w/ list of supported versions
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|1| type(7) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|DCIL(4)|SCIL(4)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Connection ID (0/32..144) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Connection ID (0/32..144) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Packet Number (8/16/32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
21. QUIC short header
Connection ID
●
Survive NAT rebindings of UDP ports
●
Connection migration (draft-deconinck-quic-multipath-01.txt)
Bits description: “this section should be removed”
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|0|K|1|1|0|R R R|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Connection ID (0.144) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Packet Number (8/16/32) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24. QUIC handshake
Crypto tags
●
CCS – Common Certificate Set
●
AEAD – authentication & encryption algorithm
●
KEXS – key exchange method
●
…and many others
25. QUIC: 0-RTT resumption
draft-ietf-quic-applicability-03.txt: 2 data copies are possible (~TFO)
0-RTT (draft-ietf-quic-tls-16.txt)
●
Protection with earlier or handshake keys
ClientHello
(0-RTT Application Data) -------->
ServerHello
{EncryptedExtensions}
{Finished}
<-------- [Application Data]
{Finished} -------->
[Application Data] <-------> [Application Data]
26. Streams
A “message” abstraction
Separate control streams from application data streams
A packet may include frames for different streams
A UDP datagram may include several packets
Length-encoded integers (in most significant bits)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|Stream Type (8)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (8) | Frame Payload (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27. Stream life
Somewhat close to TCP connections
RST → RST_STREAM frame
FIN → CONNECTION_CLOSE or
APPLICATION_CLOSE frames
PING → keepalive probe
BLOCKED,STREAM_BLOCKED →
zero window announcement
o
| Create Stream (Sending)
| Create Bidirectional Stream (Receiving)
v
+-------+
| Ready | Send RST_STREAM
| |-----------------------.
+-------+ |
| |
| Send STREAM / |
| STREAM_BLOCKED |
| |
| Create Bidirectional |
| Stream (Receiving) |
v |
+-------+ |
| Send | Send RST_STREAM |
| |---------------------->|
+-------+ |
| |
| Send STREAM + FIN |
v v
+-------+ +-------+
| Data | Send RST_STREAM | Reset |
| Sent |------------------>| Sent |
+-------+ +-------+
| |
| Recv All ACKs | Recv ACK
v v
+-------+ +-------+
| Data | | Reset |
| Recvd | | Recvd |
+-------+ +-------+
29. HTTP headers compression
QPACK (~HPACK in HTTP/2, draft-ietf-quic-qpack-03.txt)
●
Shares Huffman encoding tables among asynchronous streams
●
Static & dynamic tables
●
Uses designated stream for the synchronization
30. QUIC: packet loss
draft-ietf-quic-recovery-16.txt
RTO, TLP, Fast & early retransmit, {S,F}ACK loss
recovery
ACK frames: for packets, retransmitted packet has a
new number
●
retransmitted frames with the same offset and
length (like TCP)
●
like TCP: delayed piggybacked ACKs
●
Like SACK: ACK blocks (no reneging)
Explicit Congestion Notification (ECN) [RFC3168]
32. QUIC: congestion control
Chromium is a monster: BBR, CUBIC, PRR, slow start etc.
draft-ietf-quic-recovery-16.txt
NewReno (cwnd in bytes), slow start
Packets pacing
●
Packetization delays to bundle multiple frames
Frames
MAX_DATA, MAX_STREAM_DATA
33. Security considerations
Volumetric DDoS: opaque UDP traffic just like UDP flood
●
Middlebox filtration: ClientHello + Connection ID tracking
Aplification DDoS: minimal packet length for ClientHello
Stream fragmentation & reassembly → memory overcommit
34. QUIC in the kernel
User-space for rapid prototyping
The sendfile() problem (solved by kTLS for TLS)
● setsockopt(sd, SOL_UDP, UDP_ULP, "quic", sizeof("quic") - 1);
setsockopt(sd, SOL_QUIC, QUIC_CTX, &quic_ctx, sizeof(quic_ctx));
●
recvmsg() / sendmsg() - read/write frames vector
High CPU usage (ACK & Ko copies to user-space)
System wide memory accounting for all processes and connections
NIC acceleration (crypto offload, UDP segmentation offload)
First simple implementation (TBD): handshakes are in user-space
36. References: documents
Current IETF drafts: https://datatracker.ietf.org/wg/quic/
QUIC Working Group: https://quicwg.org/
Discussions & open issues: https://github.com/quicwg/base-drafts/issues
Known implementations:
https://github.com/quicwg/base-drafts/wiki/Implementations
37. References: good to read & watch
“The QUIC Transport Protocol:Design and Internet-Scale Deployment”,
https://static.googleusercontent.com/media/research.google.com/en//pubs/archiv
e/46403.pdf
“QUIC: Developing and Deploying a TCP Replacement for the Web”,
https://www.netdevconf.org/0x12/session.html?quic-developing-and-deploying-a-
tcp-replacement-for-the-web
QUIC FAQ for Geeks,
https://docs.google.com/document/d/1lmL9EF6qKrk7gbazY8bIdvq3Pno2Xj_l_Y
ShP40GLQE/edit
https://en.wikipedia.org/wiki/QUIC
Thoughts on how to support QUIC in (lib)curl,
https://github.com/curl/curl/wiki/QUIC