Enviar pesquisa
Carregar
Linux Network Management
•
6 gostaram
•
11,539 visualizações
Anil Kumar Pugalia
Seguir
Tecnologia
Educação
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 33
Recomendados
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
Emertxe Information Technologies Pvt Ltd
Linux command ppt
Linux command ppt
kalyanineve
Course 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and Permissions
Ahmed El-Arabawy
Linux
Linux
Kevin James
Linux booting process - Linux System Administration
Linux booting process - Linux System Administration
Sreenatha Reddy K R
Linux booting procedure
Linux booting procedure
Dhaval Kaneria
Linux security
Linux security
trilokchandra prakash
Networking in linux
Networking in linux
Varnnit Jain
Recomendados
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
Emertxe Information Technologies Pvt Ltd
Linux command ppt
Linux command ppt
kalyanineve
Course 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and Permissions
Ahmed El-Arabawy
Linux
Linux
Kevin James
Linux booting process - Linux System Administration
Linux booting process - Linux System Administration
Sreenatha Reddy K R
Linux booting procedure
Linux booting procedure
Dhaval Kaneria
Linux security
Linux security
trilokchandra prakash
Networking in linux
Networking in linux
Varnnit Jain
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
Linux
Linux
Patruni Chidananda Sastry
Introduction to Linux
Introduction to Linux
Harish R
Unix operating system architecture with file structure
Unix operating system architecture with file structure
amol_chavan
Linux security introduction
Linux security introduction
Mohamed Gad
Operating System 2
Operating System 2
tech2click
User and groups administrator
User and groups administrator
Aisha Talat
Users and groups
Users and groups
Varnnit Jain
Linux file system
Linux file system
Md. Tanvir Hossain
Basic linux commands
Basic linux commands
Shakeel Shafiq
User management
User management
Mufaddal Haidermota
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Ahmed El-Arabawy
Chapter 2 - Operating System Structures
Chapter 2 - Operating System Structures
Wayne Jones Jnr
Linux commands
Linux commands
Balakumaran Arunachalam
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Linux file system
Linux file system
Burhan Abbasi
Architecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
Shell scripting
Shell scripting
Manav Prasad
Pthread
Pthread
Gopi Saiteja
Linux basics
Linux basics
Santosh Khadsare
System Calls
System Calls
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Mais conteúdo relacionado
Mais procurados
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
Linux
Linux
Patruni Chidananda Sastry
Introduction to Linux
Introduction to Linux
Harish R
Unix operating system architecture with file structure
Unix operating system architecture with file structure
amol_chavan
Linux security introduction
Linux security introduction
Mohamed Gad
Operating System 2
Operating System 2
tech2click
User and groups administrator
User and groups administrator
Aisha Talat
Users and groups
Users and groups
Varnnit Jain
Linux file system
Linux file system
Md. Tanvir Hossain
Basic linux commands
Basic linux commands
Shakeel Shafiq
User management
User management
Mufaddal Haidermota
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Ahmed El-Arabawy
Chapter 2 - Operating System Structures
Chapter 2 - Operating System Structures
Wayne Jones Jnr
Linux commands
Linux commands
Balakumaran Arunachalam
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Linux file system
Linux file system
Burhan Abbasi
Architecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
Shell scripting
Shell scripting
Manav Prasad
Pthread
Pthread
Gopi Saiteja
Linux basics
Linux basics
Santosh Khadsare
Mais procurados
(20)
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux
Linux
Introduction to Linux
Introduction to Linux
Unix operating system architecture with file structure
Unix operating system architecture with file structure
Linux security introduction
Linux security introduction
Operating System 2
Operating System 2
User and groups administrator
User and groups administrator
Users and groups
Users and groups
Linux file system
Linux file system
Basic linux commands
Basic linux commands
User management
User management
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Chapter 2 - Operating System Structures
Chapter 2 - Operating System Structures
Linux commands
Linux commands
Linux Kernel Overview
Linux Kernel Overview
Linux file system
Linux file system
Architecture Of The Linux Kernel
Architecture Of The Linux Kernel
Shell scripting
Shell scripting
Pthread
Pthread
Linux basics
Linux basics
Destaque
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
Destaque
(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
Semelhante 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
Semelhante 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
Mais 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
Mais 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
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Zilliz
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
Último
(20)
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Architecting Cloud Native Applications
Architecting Cloud Native Applications
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
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?