Enviar búsqueda
Cargar
Linux Network Management
•
6 recomendaciones
•
11,506 vistas
Anil Kumar Pugalia
Seguir
Tecnología
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 33
Recomendados
Linux security
Linux security
trilokchandra prakash
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
Dns ppt
Dns ppt
Mauood Hamidi
Chapter07 Advanced File System Management
Chapter07 Advanced File System Management
Raja Waseem Akhtar
Systems Administration
Systems Administration
Mark John Lado, MIT
An Introduction To Linux
An Introduction To Linux
Ishan A B Ambanwela
Security and Linux Security
Security and Linux Security
Rizky Ariestiyansyah
Understanding the Windows Server Administration Fundamentals (Part-1)
Understanding the Windows Server Administration Fundamentals (Part-1)
Tuan Yang
Recomendados
Linux security
Linux security
trilokchandra prakash
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
Dns ppt
Dns ppt
Mauood Hamidi
Chapter07 Advanced File System Management
Chapter07 Advanced File System Management
Raja Waseem Akhtar
Systems Administration
Systems Administration
Mark John Lado, MIT
An Introduction To Linux
An Introduction To Linux
Ishan A B Ambanwela
Security and Linux Security
Security and Linux Security
Rizky Ariestiyansyah
Understanding the Windows Server Administration Fundamentals (Part-1)
Understanding the Windows Server Administration Fundamentals (Part-1)
Tuan Yang
User and groups administrator
User and groups administrator
Aisha Talat
Linux
Linux
Gouthaman V
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Chinthaka Deshapriya (RHCA)
Disk and File System Management in Linux
Disk and File System Management in Linux
Henry Osborne
Introduction to LDAP and Directory Services
Introduction to LDAP and Directory Services
Radovan Semancik
Linux Operating System Vulnerabilities
Linux Operating System Vulnerabilities
Information Technology
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Md. Abdul Barek
Registry Forensics
Registry Forensics
Somesh Sawhney
Linux Directory Structure
Linux Directory Structure
Kevin OBrien
Common Network Services
Common Network Services
ŐŔaṉģ Zaib
1 introduction to windows server 2016
1 introduction to windows server 2016
Hameda Hurmat
Linux file system
Linux file system
Md. Tanvir Hossain
Linux
Linux
dwarfyray
Introduction to Linux
Introduction to Linux
Harish R
Linux
Linux
Kevin James
Active directory
Active directory
deshvikas
Windows Security in Operating System
Windows Security in Operating System
Meghaj Mallick
Linux command ppt
Linux command ppt
kalyanineve
Introduction to linux ppt
Introduction to linux ppt
Omi Vichare
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
Emertxe Information Technologies Pvt Ltd
System Calls
System Calls
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Más contenido relacionado
La actualidad más candente
User and groups administrator
User and groups administrator
Aisha Talat
Linux
Linux
Gouthaman V
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Chinthaka Deshapriya (RHCA)
Disk and File System Management in Linux
Disk and File System Management in Linux
Henry Osborne
Introduction to LDAP and Directory Services
Introduction to LDAP and Directory Services
Radovan Semancik
Linux Operating System Vulnerabilities
Linux Operating System Vulnerabilities
Information Technology
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Md. Abdul Barek
Registry Forensics
Registry Forensics
Somesh Sawhney
Linux Directory Structure
Linux Directory Structure
Kevin OBrien
Common Network Services
Common Network Services
ŐŔaṉģ Zaib
1 introduction to windows server 2016
1 introduction to windows server 2016
Hameda Hurmat
Linux file system
Linux file system
Md. Tanvir Hossain
Linux
Linux
dwarfyray
Introduction to Linux
Introduction to Linux
Harish R
Linux
Linux
Kevin James
Active directory
Active directory
deshvikas
Windows Security in Operating System
Windows Security in Operating System
Meghaj Mallick
Linux command ppt
Linux command ppt
kalyanineve
Introduction to linux ppt
Introduction to linux ppt
Omi Vichare
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
Emertxe Information Technologies Pvt Ltd
La actualidad más candente
(20)
User and groups administrator
User and groups administrator
Linux
Linux
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Sa1 chapter-5-managing-local-linux-users-and-groups-v2 (4)
Disk and File System Management in Linux
Disk and File System Management in Linux
Introduction to LDAP and Directory Services
Introduction to LDAP and Directory Services
Linux Operating System Vulnerabilities
Linux Operating System Vulnerabilities
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Presentation On Group Policy in Windows Server 2012 R2 By Barek-IT
Registry Forensics
Registry Forensics
Linux Directory Structure
Linux Directory Structure
Common Network Services
Common Network Services
1 introduction to windows server 2016
1 introduction to windows server 2016
Linux file system
Linux file system
Linux
Linux
Introduction to Linux
Introduction to Linux
Linux
Linux
Active directory
Active directory
Windows Security in Operating System
Windows Security in Operating System
Linux command ppt
Linux command ppt
Introduction to linux ppt
Introduction to linux ppt
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
Destacado
System Calls
System Calls
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Embedded C
Embedded C
Anil Kumar Pugalia
Threads
Threads
Anil Kumar Pugalia
Synchronization
Synchronization
Anil Kumar Pugalia
Signals
Signals
Anil Kumar Pugalia
Inter Process Communication
Inter Process Communication
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
References
References
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
Interrupts
Interrupts
Anil Kumar Pugalia
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
Functional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
Board Bringup
Board Bringup
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Destacado
(20)
System Calls
System Calls
Timers
Timers
Embedded C
Embedded C
Threads
Threads
Synchronization
Synchronization
Signals
Signals
Inter Process Communication
Inter Process Communication
Network Drivers
Network Drivers
References
References
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Introduction to Linux Drivers
Introduction to Linux Drivers
Character Drivers
Character Drivers
Interrupts
Interrupts
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Embedded Software Design
Embedded Software Design
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Functional Programming with LISP
Functional Programming with LISP
Board Bringup
Board Bringup
Bootloaders
Bootloaders
Shell Scripting
Shell Scripting
Similar a Linux Network Management
Basic socket programming
Basic socket programming
Kristian Arjianto
Sockets
Sockets
Gopaiah Sanaka
اسلاید اول جلسه یازدهم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه یازدهم کلاس پایتون برای هکرهای قانونی
Mohammad Reza Kamalifard
lab04.pdf
lab04.pdf
SaidiCalala
Raspberry pi Part 23
Raspberry pi Part 23
Techvilla
Programming TCP/IP with Sockets
Programming TCP/IP with Sockets
elliando dias
Basics of sockets
Basics of sockets
AviNash ChaVhan
Np unit2
Np unit2
vamsitricks
Sockets intro
Sockets intro
AviNash ChaVhan
Network Sockets
Network Sockets
Peter R. Egli
Sockets
Sockets
babu4b4u
sockets
sockets
AbhinavRapartiwar
Application Layer and Socket Programming
Application Layer and Socket Programming
elliando dias
Socket Programming TCP:IP PPT.pdf
Socket Programming TCP:IP PPT.pdf
PraveenKumar187040
Socket System Calls
Socket System Calls
Avinash Varma Kalidindi
Net Programming.ppt
Net Programming.ppt
EloAcubaOgardo
Network Prog.ppt
Network Prog.ppt
EloOgardo
03 sockets
03 sockets
Pavan Illa
Socket programming
Socket programming
Rajivarnan (Rajiv)
sockets_intro.ppt
sockets_intro.ppt
AnilGupta681764
Similar a Linux Network Management
(20)
Basic socket programming
Basic socket programming
Sockets
Sockets
اسلاید اول جلسه یازدهم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه یازدهم کلاس پایتون برای هکرهای قانونی
lab04.pdf
lab04.pdf
Raspberry pi Part 23
Raspberry pi Part 23
Programming TCP/IP with Sockets
Programming TCP/IP with Sockets
Basics of sockets
Basics of sockets
Np unit2
Np unit2
Sockets intro
Sockets intro
Network Sockets
Network Sockets
Sockets
Sockets
sockets
sockets
Application Layer and Socket Programming
Application Layer and Socket Programming
Socket Programming TCP:IP PPT.pdf
Socket Programming TCP:IP PPT.pdf
Socket System Calls
Socket System Calls
Net Programming.ppt
Net Programming.ppt
Network Prog.ppt
Network Prog.ppt
03 sockets
03 sockets
Socket programming
Socket programming
sockets_intro.ppt
sockets_intro.ppt
Más de Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Playing with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
Power of vi
Power of vi
Anil Kumar Pugalia
gcc and friends
gcc and friends
Anil Kumar Pugalia
"make" system
"make" system
Anil Kumar Pugalia
Hardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
RPM Building
RPM Building
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Linux Memory Management
Linux Memory Management
Anil Kumar Pugalia
Linux File System
Linux File System
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Más de Anil Kumar Pugalia
(17)
File System Modules
File System Modules
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Processes
Processes
System Calls
System Calls
Introduction to Linux
Introduction to Linux
Playing with R L C Circuits
Playing with R L C Circuits
Audio Drivers
Audio Drivers
Video Drivers
Video Drivers
Power of vi
Power of vi
gcc and friends
gcc and friends
"make" system
"make" system
Hardware Design for Software Hackers
Hardware Design for Software Hackers
RPM Building
RPM Building
Processes
Processes
Linux Memory Management
Linux Memory Management
Linux File System
Linux File System
Introduction to Linux
Introduction to Linux
Último
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Nicole Novielli
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
BkGupta21
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Último
(20)
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
How to write a Business Continuity Plan
How to write a Business Continuity Plan
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Linux Network Management
1.
© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Linux Network Management
2.
2© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? W's of Networking Introduction to Sockets Addressing at the Layers Programming the Sockets Client-Server Concepts
3.
3© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. W's of Networking Communication is the Key User Space & User Space Signals, IPC, Shared Address Space Kernel Space & User Space System Calls, Signals Kernel Space & Kernel Space Kernel Communication & Synchronization Mechanisms Hardware Space & Kernel Space Interrupts, Device Access Mechanisms What's common in all of these? All within the same system Networking extends a hand outside the system
4.
4© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Network Stack & Sockets Physical Data Link Network Transport Session Presentation Application Stream Socket Interface Datagram Socket Interface Raw Socket Interface IP Application Program 7 Layers TCP UDP Interface Layer (Ethernet, SLIP, loopback, etc) Media
5.
5© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. System I Inter System Communication User Space ...Process Process Socket Interface Kernel Space Hardware Space System II User Space ...Process Process Socket Interface Kernel Space Hardware Space Network Link D
6.
6© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Examples Network Daemons (Servers) with default socket numbers ftpd (Port 21) sshd (Port 22) telnetd (Port 23) smtp (Port 25) httpd (Port 80) Network Applications (Clients) ftp ssh telnet Mail Clients (pine, mutt, ...) Web Browsers (firefox, ...)
7.
7© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. System Dependence Wire Transmission – Bit-wise MSB first System Data – Word-wise Which end first? Depends on the Processor Two prevalent Endians Little Endian (x86 systems, PPC, ...) Big Endian (Sun systems, PPC, ...)
8.
8© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Little Endian 00101000 01111100 00101110 00101010 Data MS Byte LS Byte Memory A A+1 A+2 A+3 00101010 00101110 01111100 00101000
9.
9© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Big Endian 00101000 01111100 00101110 00101010 00101010 00101110 01111100 00101000 Memory Data MS Byte LS Byte A A+1 A+2 A+3
10.
10© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Trivial functions uint16_t htons(uint16_t host_short); uint16_t ntohs(uint16_t network_short); uint32_t htonl(uint32_t host_long); uint32_t ntohl(uint32_t network_long); Header: <arpa/inet.h>
11.
11© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Addressing at Layers Physical Data Link Network Transport Session Presentation Application IP TCP UDP Application Program Physical Networks Physical Address (MAC Address) IP Address Port Address (Socket Address) User-specific
12.
12© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Socket Address Basic Structure (16 bytes) struct sockaddr { sa_family_t sa_family; // Protocol Family char sa_data[14]; // Protocol Address } typedef unsigned short sa_family_t;
13.
13© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Socket Address ... With Internet Address struct sockaddr_in { sa_family_t sin_family; // Protocol Family in_port_t sin_port; // Port Number / Socket Address struct in_addr sin_addr; // IP Protocol Address unsigned char sin_zero[8]; // Pad to sizeof(struct sockaddr) } typedef uint16_t in_port_t; struct in_addr { in_addr_t s_addr; } typedef uint32_t in_addr_t;
14.
14© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Socket Programming Usage Socket Creation: socket() Attaching with an address: bind() Preparing for accepting connections: listen() Waiting for & Accepting connections: accept() Setting up the connection: connect() Sending data: send(), sendto(), sendmsg() Receiving data: recv(), recvfrom(), recvmsg() Cleaning up: close() Example Pairs Connection-oriented (TCP based): sock_server.c, sock_client.c Connection-less (UDP based): sock_dgram_*.c
15.
15© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Creating a socket fd = socket(family, type, protocol); Family AF_UNIX / AF_LOCAL, AF_INET, AF_INET6, ... Type SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, ... Can be or'ed with SOCK_NONBLOCK, SOCK_CLOEXEC Protocol Typically one per family. So, pass zero Returns file descriptor of the new socket on success -1 on error (and sets errno)
16.
16© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Attaching an address Done by a server status = bind(fd, addresssp, addrlen); fd: File descriptor returned by socket() addressp: Pointer to address structure addrlen: Size of address structure Returns 0 on success -1 on error (and sets errno)
17.
17© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Preparing for connections Done by a server for transport connections status = listen(fd, qlen); fd: File descriptor returned by socket() qlen Length of the pending connection queue Returns 0 on success -1 on error (and sets errno)
18.
18© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Accepting new connections Done by a server for connection based sockets newfd = accept(fd, addresssp, addrlen); fd: File descriptor returned by socket() addressp (Could be NULL) Pointer to structure of address of the connected peer addrlen: Value-result address structure size Blocking call (by default), waiting for new connections Returns File descriptor of the new accepted socket connection -1 on error (and sets errno)
19.
19© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Connecting to server Done by a client for connection based sockets status = connect(fd, addresssp, addrlen); fd File descriptor returned by socket() to be connected addressp Pointer to structure of address to connect to addrlen: Size of address structure Returns 0 on success -1 on error (and sets errno)
20.
20© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Connection Establishment Server Application socket() bind() listen() accept() Physical Layer Transport / Network Layer Client Application socket() connect() Transport / Network Layer
21.
21© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Sending Data Could be done by both server and client sent = send(fd, buf, len, flags); fd: File descriptor of the connected socket buf: Buffer of Data to be sent len: Length of the data to be sent flags: MSG_DONTWAIT, MSG_NOSIGNAL, ... Returns Bytes of data sent on success -1 on error (and sets errno) Other APIs: write(), sendto(), sendmsg()
22.
22© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Receiving Data Could be done by both server and client received = recv(fd, buf, len, flags); fd: File descriptor of the connected socket buf: Buffer to receive Data into len: Length of the Buffer flags: MSG_DONTWAIT, MSG_PEEK, MSG_WAITALL, ... Returns Bytes of data received on success -1 on error (and sets errno) Other APIs: read(), recvfrom(), recvmsg()
23.
23© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Closing sockets To be done by both server and client On all the not-needed socket file descriptors Unless they were opened with SOCK_CLOEXEC Terminates both directions of data transfer Reading and Writing Cleans up all the socket related resources shutdown(fd, how); fd: File descriptor of the socket to be closed how: SHUT_RD, SHUT_WR, SHUT_RDWR Returns 0 on success -1 on error (and sets errno) Other API: close()
24.
24© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Non-blocking Options Typical blocking system calls accept() send*(), write() recv*(), read() Achieving non-blocking behaviour Non-blocking: Socket opened with SOCK_NONBLOCK Multiplexing: Use select() or poll() or epoll() on socket fd Signal driven: Set socket to deliver SIGIO on activity Using FIOSETOWN cmd of fcntl, Or Using SIOCSPGRP cmd of ioctl
25.
25© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. System Call 'select' Header File: <sys/select.h> int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout ); File Descriptor Set APIs void FD_ZERO(fd_set *set); void FD_SET(int fd, fd_set *set); void FD_CLR(int fd, fd_set *set); int FD_ISSET(int fd, fd_set *set); Select Usage Example: pipe_window.c → pipe_window0, pipe_window1 Server-Client Pair: sock_server_select.c, sock_client.c
26.
26© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. System Call 'poll' Header File: <poll.h> int poll( struct pollfd *array_fds, nfds_t nfds, struct timespec *timeout ); struct pollfd int fd; short events /* requested events */ short revents /* returned events */ Events: POLLIN, POLLOUT, POLLPRI Additional returned Events: POLLERR, POLLHUP, POLLNVAL
27.
27© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Socket related Information cat /proc/sys/net/core/ rmem_default: Default receive buffer size rmem_max: Maximum receive buffer size wmem_default: Default send buffer size wmem_max: Maximum send buffer size … man 7 socket
28.
28© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Client-Server Concepts Types of Connections Control connections Data connections Types of Servers Iterative servers (Single Process) Concurrent servers (Multi-Process)
29.
29© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Iterative Servers Client Server Client Ephemeral Port Well-known Port Example: sock_server_select.c(, sock_client.c)
30.
30© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Concurrent Servers Client Server Client Child Server Ephemeral Port Well-known Port Example: sock_server_concurrent.c(, sock_client.c) Child Server
31.
31© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Miscellaneous Examples Named (AF_UNIX / AF_LOCAL) Sockets named_socket_server.c named_socket_client.c Multicast Operations mcast_recv.c mcast_send.c
32.
32© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? W's of Networking Introduction to Sockets Networking with 'Endian' Addressing at the Layers Programming the Sockets Client-Server Concepts
33.
33© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?