Explore two popular network protocols: Telnet and Secure Shell Protocol (SSH).
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 (38)
- Algorithms (26)
- OS (25)
- Security (15)
- Trees (11)
- Data Structures (9)
- Graphs (8)
- Math and Logic (7)
- Programming (6)
- Path Finding (5)
- Software Architecture (4)
- Sorting (2)
- Searching (2)
- Graph Traversal (2)
- Artificial Intelligence (2)
- Machine Learning (1)
- Core Concepts (1)
- Concurrency (1)
What Are Datagram Networks?
Filed under Networking
Learn about the datagram networks.
Network Management Principles With SNMP
Filed under Networking
Learn how Simple Network Management Protocol (SNMP) works.
Selective Repeat Protocol
Filed under Networking
Learn about a protocol used for the reliable delivery of data packets in networks: Selective Repeat Protocol (SRP).
Software Engeneering: What is a Shim?
Filed under Software Architecture
Explore the shim concept in software engineering with an example.
Wireless Disassociation Attacks
Filed under Networking, Security
Learn how an attacker could launch wireless disassociation attacks on devices connected to a network.
Switching Techniques in Computer Networks
Filed under Networking
Explore three popular network-switching techniques: circuit, packet, and message switching.
What Is the Belady’s Anomaly?
Explore Belady’s anomaly and an example demonstrating its existence in computer memory.
Graph Theory: What Is Vertex Coloring?
Filed under Graphs
Learn the vertex coloring problem.
What Are Tournament Graphs?
Filed under Data Structures, Graphs
Explore a unique graph data structure: a tournament graph.
What Is the Credit Assignment Problem?
Filed under Machine Learning
Explore the credit assignment problem in reinforcement learning with an example.
Genetic Algorithms: Order One Crossover
Filed under Algorithms
Learn about the order-one crossover operator in Genetic Algorithms.
Scheduling: Earliest Deadline First
Filed under Algorithms, OS
Explore a priority-based CPU scheduling algorithm.
Differences Between a Gateway and a Firewall
Filed under Networking
Explore two popular network security devices: gateway and firewall.
What is Functional Decomposition?
Filed under Programming, Software Architecture
Learn about functional decomposition in detail with a practical example.
Differences Between Network-level and Application-level Information Security
Filed under Security
Explore two popular information security variants: network-level and application-level security.
How Does External Fragmentation Happen?
Filed under OS
Learn about external fragmentation in the operating system with a practical example.
What is State Space Search?
Filed under Artificial Intelligence, Path Finding, Searching
Explore the state space search concept in detail with an example.
What is the Difference Between Standard VLAN and Extended VLAN?
Filed under Networking
Explore two variants of virtual local area networks (VLAN): standard and extended VLAN.
Defining Multiobjective Algorithms and Pareto Frontiers
Filed under Algorithms
Explore multiobjective algorithms and Pareto frontiers with examples.
What is the Difference Between Keyword and Reserved Word?
Filed under Programming
Explore the importance of keywords and reserved words.
Octet String: What Is it?
Filed under Networking
Explore the basics of octet string along with the applications.
What Is an Eavesdropping Attack?
Filed under Security
Explore eavesdropping attacks with a practical example.
Cryptography: Rail Fence Technique
Filed under Security
Explore the rail fence cryptography technique with an example.
Genetic Algorithms: Crossover Probability and Mutation Probability
Filed under Algorithms
Explore two crucial steps in a genetic algorithm: crossover and mutation.
What Are Replay Attacks?
Filed under Networking, Security
Explore the fundamental idea behind replay attacks with a practical example.
How Do Filesystems Handle Concurrent Read/Write?
Filed under Concurrency, OS
Explore the different strategies that file systems use to manage concurrent read and write operations.
How Does 1’s Complement Work in Error Detection?
Filed under Networking, Security
Learn how to use 1’s complement technique to detect errors in data transmission.
Difference Between Goal-based and Utility-based Agents
Filed under Artificial Intelligence
Explore two types of AI agents: goal-based and utility-based agents.
Memory Management: Inverted Paging
Filed under OS
Explore a memory management technique: inverted paging.
Differences Between Cloud, Grid and Cluster
Filed under Networking, Software Architecture
Explore the general idea of cloud, grid, and cluster from a computer networking perspective.
Understanding Piggybacking in Networks
Filed under Networking
Explore the piggybacking technique which allows data centers to connect with each other by using the existing connections of other organizations.
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 Networking
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.