Author name: Anamika

From Fork to Select: Mastering TCP Server-Client Communication in C πŸŒπŸ’»

Β  Hello folks! πŸŽ‰ Have you ever wondered how data travels over the internet? 🌐 How do servers and clients communicate? πŸ“‘ If you have, then you’re in for a treat! 🍬 Today, we are diving deep into the fascinating world of network programming. We’ll explore a TCP server-client model built entirely in C, designed …

From Fork to Select: Mastering TCP Server-Client Communication in C πŸŒπŸ’» Read More »

IPMaths-Toolkit

Decoding the Magic Behind IP Addressing: A Deep Dive Into Network Programming 🌐✨ πŸ”— [Link to the GitHub Repository] Hello, fellow tech enthusiasts! πŸš€ Β  Ever wondered about the nitty-gritty details behind the IP addresses we so casually use? Well, buckle up because today, I’ll unveil my latest project, which I fondly named: The Wizardry …

IPMaths-Toolkit Read More »

πŸš€ Journeying Through the TCP/IP Stack: An Adventure in Moving House! 🏑

πŸš€ Journeying Through the TCP/IP Stack: An Adventure in Moving House! 🏑 Β  Β  Β  Β  Hello, digital explorers! 🌍 Dive with us into the deep trenches of networking with a delightful twist. Ever made the leap and shifted houses πŸ“¦? Ever thought it might be strikingly similar to how data travels across our beloved …

πŸš€ Journeying Through the TCP/IP Stack: An Adventure in Moving House! 🏑 Read More »

Synchronizing Processes with Unix Domain Sockets and Shared Memory in Linux Systems πŸ–₯πŸŒπŸ”—

Introduction πŸ“œ When diving deep into the world of Linux and system programming, one can’t overlook the intricacies of how different processes talk to each other. This dance of communication and coordination is executed via a mechanism called inter-process communication (IPC). In this article, we shall explore an innovative approach that synchronizes data across processes …

Synchronizing Processes with Unix Domain Sockets and Shared Memory in Linux Systems πŸ–₯πŸŒπŸ”— Read More »

Unraveling the Intricacies of UNIX Domain Socket Programming πŸš€

Welcome back, dear readers! πŸ™Œ Today, we dive deep into the mesmerizing world of UNIX Domain Sockets. For those already in the know, buckle up for some advanced twists and turns. If you’re just setting sail in these waters, you’re in for an exhilarating journey. 🌊 UNIX Domain Sockets: Beyond the Basics πŸŽ“ UNIX Domain …

Unraveling the Intricacies of UNIX Domain Socket Programming πŸš€ Read More »

Signal-based Inter-Process Communication (IPC): Unlocking the Mysteries of OS-Level Dialogue πŸŒπŸ”

// by Anamika The harmonious concert of operations within an operating system is often marred by miscommunications and lags. How do processes within this intricate system speak to each other? Signals, an age-old mechanism in the annals of Unix-like systems, offer a solution. Let’s decode the mysteries of signals and their pivotal role in IPC. …

Signal-based Inter-Process Communication (IPC): Unlocking the Mysteries of OS-Level Dialogue πŸŒπŸ” Read More »

DEMYSTIFYING SHARED MEMORY IN IPC: A DEEP DIVE! 🌊

Shared Memory in IPC: An In-depth Analysis Hello tech enthusiasts! Let’s embark on an analytical journey, exploring the intricacies of Inter-Process Communication (IPC) via Shared Memory. We’ll further dissect the trio that makes it possible: mmap, munmap, and msync. 1. What is Shared Memory? Shared memory is a method of IPC where multiple processes share …

DEMYSTIFYING SHARED MEMORY IN IPC: A DEEP DIVE! 🌊 Read More »

Socket Programming Essentials in C

Table of Contents β€œSocket Programming Essentials in C” is your ultimate guide to gaining the foundational knowledge necessary for proficient network programming. In this blog, we delve into the intricacies of socket programming, exploring key concepts, techniques, and tools essential for building robust network applications using the C programming language sock_common The structΒ sock_commonΒ structure represents a …

Socket Programming Essentials in C Read More »

kretprobe

connect() static __always_inline int trace_ret_generic(u32 id, struct pt_regs *ctx, u64 types, u32 scope) { if (skip_syscall()) return 0; sys_context_t context = {}; args_t args = {}; if (ctx == NULL) return 0; if (load_args(id, &args) != 0) return 0; init_context(&context); context.event_id = id; context.argnum = get_arg_num(types); context.retval = PT_REGS_RC(ctx); // skip if No such file/directory …

kretprobe Read More »

Kprobe

Read IP Function to extract addrress of the socket using connect() system call func readSockaddrFromBuff(buff io.Reader) (map[string]string, error) { res := make(map[string]string, 3) family, err := readInt16FromBuff(buff) if err != nil { return nil, err } res[“sa_family”] = getSocketDomain(uint32(family)) switch family { case 1: // AF_UNIX /* http://man7.org/linux/man-pages/man7/unix.7.html struct sockaddr_un { sa_family_t sun_family; // AF_UNIX …

Kprobe Read More »

Scroll to Top