Explore the piggybacking technique which allows data centers to connect with each other by using the existing connections of other organizations.

### Also find me here:

# Baeldung Author

## Subham Datta

I'm currently pursuing Ph.D. degree in Computer Engineering from the University of Cyprus. I'm also working at KIOS Research and Innovation Center of Excellence. My research area includes Cyber Security, Algorithms, Machine Learning. In my free time, I love watching cricket and movies.

## Here's what I've written (so far):

## Baeldung on Computer Science

- All
- Networking (25)
- Algorithms (22)
- OS (21)
- Trees (11)
- Security (8)
- Data Structures (8)
- Math and Logic (7)
- Graphs (6)
- Programming (4)
- Path Finding (4)
- Sorting (2)
- Graph Traversal (2)
- Software Architecture (1)
- Searching (1)
- Core Concepts (1)

### Differences Between Network Edge and Core

Filed under Networking

Explore two networking design structures: edge and core networks.

### System Call Vs. System Interrupt

Filed under OS

Explore system calls and system interrupts in detail.

### How Do DMA Controllers Work?

Filed under OS

Explore direct memory access (DMA) in detail.

### Differences Between Sequential and Random Writes of Memory

Filed under OS

Explore two writing methods for memory: sequential and random writes.

### Networking: Baseband Vs. Broadband

Filed under Networking

Explore two popular concepts in radio frequency technology: baseband and broadband.

### Differences Between Firmware and Operating System

Filed under OS

Explore the basics of firmware and operating systems.

### Differences Between Routing and Forwarding Tables

Filed under Networking

Explore the role of routing and forwarding tables in networking.

### What Is a Network File System?

Filed under Networking, Software Architecture

Explore the Network File System in detail.

### How to Determine the Entropy of a Password?

Filed under Security

Learn how to calculate the password entropy with an example.

### Differences Between Directories and Folders

Filed under OS

Explore directories and folders, which are part of a computer’s file system.

### Cryptography: What Is a Trapdoor?

Filed under Security

Learn about the trapdoor concept in cryptography.

### Routing Vs. Forwarding Vs. Switching

Filed under Networking

Explore routing, forwarding, and switching with examples.

### Networking: Stateless and Stateful Protocols

Filed under Networking

Explore two types of networking protocols: stateless and stateful.

### Remote Procedure Calls vs. Local Procedure Calls

Filed under Programming

Learn about the procedure calls in programming.

### UDP Packet Loss

Filed under Networking

Explore several reasons for packet loss in UDP.

### Differences Between Stream Cipher and Block Cipher

Filed under Security

Explore stream and block ciphers in detail.

### Private Bytes, Virtual Bytes, and Working Set

Filed under OS

Learn about some memory-related concepts in the operating system: private bytes, virtual bytes, and working sets.

### Data Compression: ZLib vs. GZip vs. Zip

Filed under Algorithms

Explore three popular data compression techniques: zlib, gzip, and ZIP.

### Socket vs. RPC

Filed under Networking

Explore two techniques that can create a channel of information flow in networking: socket and RPC.

### Which Is Faster – Hash Lookup or Binary Search?

Filed under Data Structures, Searching

Compare two searching methods: binary search and hash lookup.

### How to Redirect DNS to Different Ports

Filed under Networking

Explore several types of DNS records and learn how to use the to redirect the traffic.

### How Do Antiviruses Really Work?

Filed under Security

Learn about antivirus software.

### How Does Ransomware Infect Computers?

Filed under Security

Explore the definition and variants of ransomware.

### Memory-Mapped vs. Isolated I/O

Filed under OS

Explore various methods in I/O operations.

### Differences Between Viruses, Worms and Trojans

Filed under Security

Learn about viruses, worms, and trojans in detail.

### How to Bind to Any Available Port?

Filed under Networking

Explore the basics of socket and socket programming.

### How to Calculate Packet Time from Latency and Bandwidth

Filed under Networking

Learn the basics of network bandwidth, latency, packet time in detail.

### How to Test If a Number is a Fibonacci Number

Filed under Algorithms, Math and Logic

Learn to check if a given number is a Fibonacci number or not.

### Difference between SSL & TLS

Filed under Networking, Security

Learn about the TLS and SSL protocols.

### Red-Black Tree vs. AVL Tree

Filed under Data Structures, Trees

Explore AVL and red-black tree data structures.

### Can TCP and UDP Sockets Use the Same Port?

Filed under Networking

Explore a general overview of the ports used by TCP and UDP sockets.

### Valid Characters of a Hostname

Filed under Networking, Security

Explore the basic concept of hostname in networking.

### Network: Longest Prefix Matching

Filed under Networking

Learn about the IP prefix concept in computer networking.

### Binary Tree vs. Binary Search Tree

Filed under Data Structures, Trees

Explore two tree data structures: binary tree and binary search tree.

### What Is the Maximum Length of a URL in Different Browsers?

Filed under Networking, OS

Learn about the maximum length of a URL in different browsers.

### What is a Random Walk?

Filed under Algorithms, Math and Logic

Explore the concept of random walk in detail.

### Determining Network and Broadcast Address Using IP Address and Subnet Mask

Filed under Networking

Explore IP address, broadcast address, network address, and subnet mask thoroughly.

### Graph Density

Filed under Graphs

Explore graph density in detail.

### B-tree Data Structure

Filed under Data Structures, Trees

Learn about a self-balancing tree data structure: B-tree.

### Types of Operating Systems

Filed under OS

Learn about five variations of the operating systems: batch, distributed, time-sharing, network, real-time operating system.

### Internal Fragmentation vs. External Fragmentation in Paging

Filed under OS

Explore fragmentation and its variations: internal and external.

### Flow Control vs. Congestion Control in TCP

Filed under Networking

Explore flow and congestion control mechanisms in TCP.

### Segmented Paging vs. Paged Segmentation

Filed under OS

Explore two memory allocation techniques: segmented paging and paged segmentation.

### What is Abstract Data Type?

Filed under Data Structures

Explore three popular ADTs: list, queue, stack.

### Instructions and Programs

Filed under Programming

Explore the fundamentals of computer programs and instructions with examples.

### Knight’s Shortest Path on Chessboard

Filed under Algorithms

Explore the knight’s shortest path problem on a chessboard.

### How Is a Minimum Bottleneck Spanning Tree Different from a Minimum Spanning Tree?

Filed under Trees

Compare two very close yet different graph concepts in graph theory: minimum spanning tree, minimum bottleneck spanning tree.

### Program Counter and Instruction Register

Filed under OS

Explore two CPU units in a computer: program counter and instruction register.

### Greedy Vs. Heuristic Algorithm

Filed under Programming

Explore the general idea of greedy and heuristic algorithms.

### Linked List / Double Linked List

Filed under Data Structures, Math and Logic

Explore the linked list data structure and its variations.

### OSI Model: Transport Layer vs. Networking Layer

Filed under Networking

Explore two important layers in the OSI model: the transport and network layer.

### What Is the Difference Between Trap and Interrupt?

Filed under OS

Learn about two popular types of events in the OS: trap and interrupt

### The Difference Between Virtual Memory and Swap Space

Filed under OS

Explore the fundamentals of virtual memory and swap space in the OS.

### Deadlock: What it is, How to Detect, Handle and Prevent?

Filed under OS

Explore the concept of deadlock in OS thoroughly

### Time Complexity vs. Space Complexity

Filed under Algorithms, Core Concepts

Explore the theory behind time and space complexity.

### Divide and Conquer vs. Dynamic Programming

Filed under Algorithms

Explore the basic idea of divide and conquer and dynamic programming paradigms.

### Why Do We Need Virtual Memory?

Filed under OS

Learn about Virtual Memory and its importance in modern Operating Systems.

### Difference Between IP Address and Port Number

Filed under Networking

Learn about the IP addresses and networking ports in detail.

### Bit Stuffing

Filed under Networking

Learn about bit stuffing in detail.

### Definition of Network Units: Packet, Fragment, Frame, Datagram, and Segment

Filed under Networking

Explore various data units in computer networking.

### The Difference Between a Port and a Socket

Filed under Networking, OS

Learn about ports and sockets in networking.

### What Is the Time Complexity of Tree Traversal?

Filed under Algorithms, Data Structures, Graph Traversal, Trees

Learn about the time complexity of the tree traversal algorithms.

### Using Min/Max Within an Integer Linear Program

Filed under Math and Logic, Programming

Learn about integer linear programming (ILP).

### Minimum Cut on a Graph Using a Maximum Flow Algorithm

Filed under Graph Traversal, Graphs

Learn how to find a minimum cut by calculating the maximum flow value of a graph.

### Process Lifecycle

Filed under OS

Learn about the lifecycle of a process in an operating system.

### Complexity of Inserting N Numbers into a Binary Search Tree

Filed under Algorithms, Trees

Explore the insertion process of the binary search tree in detail.

### Popular Network Protocols

Filed under Networking

Explore 12 network protocols that are most widely used.

### Time Complexity of Sieve of Eratosthenes Algorithm

Filed under Algorithms

Explore the Sieve of Eratosthenes algorithm in detail.

### Sum of Digits in Factorial

Filed under Algorithms, Math and Logic

Learn how to find the sum of digits of a factorial.

### Backtracking Algorithms

Filed under Algorithms

Explore the general idea of the backtracking technique.

### OSI Model

Filed under OS

Explore the OSI model in detail.

### Calculating the Height of a Binary Tree

Filed under Algorithms, Trees

Learn how to calculate the height of a binary tree.

### Time Complexity of Inserting into a Heap

Filed under Algorithms, Data Structures, OS

Explore the heap insertion algorithm.

### Max-Heapify A Binary Tree

Filed under Algorithms, Trees

Learn about the process of max-heapify in a binary heap.

### Traveling Salesman Problem – Dynamic Programming Approach

Filed under Path Finding

A guide to a dynamic approach for solving the Traveling Salesman Problem.

### Matrix Multiplication Algorithm Time Complexity

Filed under Algorithms, Math and Logic

Explore two algorithms for matrix multiplication: the naive approach and the Solvay Strassen method.

### Minimum Spanning Tree: The Cut Property

Filed under Trees

Learn about the cut property in a minimum spanning tree.

### Complete Binary Tree Vs Almost Complete Binary Tree

Filed under Trees

Explore the concept of a complete and almost complete binary tree.

### How Does FIFO Page Replacement Work?

Filed under OS

Learn about the FIFO page replacement in detail.

### Branch and Bound Algorithm

Filed under Algorithms

Explore the branch and bound method in detail.

### Quicksort Worst Case Time Complexity

Filed under Sorting

Discuss the worst-case scenario for time complexity of the Quicksort algorithm.

### Computing Bubble Sort Time Complexity

Filed under Algorithms, Sorting

Analyze the pseudocode of the bubble sort algorithm and its time complexity.

### How to Find Total Number of Minimum Spanning Trees in a Graph?

Filed under Algorithms, Trees

Learn how to find the total number of spanning trees and minimum spanning trees in a graph.

### Floyd-Warshall Algorithm: Shortest Path Finding

Filed under Path Finding

Learn about the Floyd-Warshall algorithm to find all pair shortest distance in a weighted directed graph.

### Finding Articulation Points of a Graph

Filed under Algorithms, Graphs

A quick and practical overview of finding articulation points of a graph.

### SAT and 3-SAT – Cook-Levin Theorem

Filed under Math and Logic

Discuss the Cook-Levin theorem to show SAT is an NP-Complete problem.

### What Is an Incident Edge?

Filed under Graphs

Learn about the concept of incident edges and vertices in both directed and undirected graphs.

### Determine Maximum Number of Edges in a Directed Graph

Filed under Algorithms, Graphs

Learn how to calculate the maximum number of edges in a directed graph.

### 0-1 Knapsack: A Problem With NP-Completeness and Solvable in Pseudo-Polynomial Time

Filed under Algorithms

Learn about the 0-1 Knapsack problem, why it is NP-Complete, and how it is solvable in pseudo-polynomial time.

### How to Find If a Graph Is Bipartite?

Filed under Algorithms, Graphs

Learn about the bipartite graphs in detail.

### Hamiltonian vs Euler Path

Filed under Path Finding

Learn the key differences between Hamiltonian and Euler paths.

### Bellman Ford Shortest Path Algorithm

Filed under Path Finding

Learn about the Bellman Ford algorithm to find the shortest path in a weighted graph.