How many packets can be written into Kernel sockets per second?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users How many packets can be written into Kernel sockets per second?
# 1  
Old 04-29-2016
Power How many packets can be written into Kernel sockets per second?

Hi,

Its been a long time since i programmed a multithreaded application that can do Tx and Rx of datagrams over unix sockets.

I well remember that though the threads were efficiently designed to be independent of each other, and was writing to different sockets, there was a limitation , which i remember that only 3000 approximate datagrams/packets can be sent/received between the host application and the kernel - which i came to know from some forums, and infact, our timers used to expire due to non-reception of approx >3000 packets if it was configured - reason being the kernel to host transfer of the packets were slow.

Before i could attempt figuring out that again, wanted to ask if anyone knows a theoretical limitation seen by the linux kernels?
In other terms, what is the max data transfer rate between the Kernel space and user space through the various IPC mechanisms?

If i don't get to know that, i may end up doing an assumption.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Linux

Unload kernel module at boot time (Debian Wheezy 7.2, 3.2.0-4-686-pae kernel)

Hi everyone, I am trying to prevent the ehci_hcd kernel module to load at boot time. Here's what I've tried so far: 1) Add the following line to /etc/modprobe.d/blacklist.conf (as suggested here): 2) Blacklisted the module by adding the following string to 3) Tried to blacklist the module... (0 Replies)
Discussion started by: gacanepa
0 Replies

2. Programming

Why am i getting these strange packets while running my packet capture module written in c.?

I have made an packet capture application running on intel machine, it is capturing packets with src address- 17.0.0.0 destination ip- 66.0.0.0, source port- 0, destination port- 0, and protocol- 0 what does these packets mean ? The code written to interpreter captured bytes is given below.... (5 Replies)
Discussion started by: arunpushkar
5 Replies

3. Solaris

syslog is not getting written

hi all syslog is not getting written. i am getting following two logs snmpd.log & authlog logs. please tell what are two logs snmpd.log & authlog logs. why syslog is not written. (16 Replies)
Discussion started by: nikhil kasar
16 Replies

4. Programming

c++, raw sockets, stopping kernel write in header?

Hi, im trying to lern about raw sockets with my debian and c++. Tried to make a icmp and tcp packet and send it with sendto. Checked on wireshark and recognized that kernel changed my headers. So searched about stopping the kernel change the header and tried it with setsockopt, like said in at this... (4 Replies)
Discussion started by: sandcastle
4 Replies

5. Solaris

Which file is read by kernel to set its default system kernel parameters values?

Hi gurus Could anybody tell me which file is read by kernel to set its default system kernal parameters values in solaris. Here I am not taking about /etc/system file which is used to load kernal modules or to change any default system kernal parameter value Is it /dev/kmem file or something... (1 Reply)
Discussion started by: girish.batra
1 Replies

6. SuSE

max number of slabs per kernel module (kernel 2.6.17, suse)

Hi All, Is there a max number of slabs that can be used per kernel module? I'm having a tough time finding out that kind of information, but the array 'node_zonelists' (mmzone.h) has a size of 5. I just want to avoid buffer overruns and other bad stuff. Cheers, Brendan (4 Replies)
Discussion started by: Brendan Kennedy
4 Replies

7. IP Networking

counting the packets

there are a number of clients connected to a server.... how can i count that each clients recieve ...? how do i moniter the activity of the client..? (2 Replies)
Discussion started by: damn_bkb
2 Replies

8. Programming

Packets Getting Lost

I am working on a project, which has the following type of hardware setup. A special hardware device is receiving data from an external network interface. So we can have multiple such a hardware devices. Now these hardware devices will route the captured incoming data through the external... (4 Replies)
Discussion started by: S.P.Prasad
4 Replies

9. UNIX for Dummies Questions & Answers

File being used/written

Hello, Which command in unix can tell whether a file is being used/written by another process. e.g. If one process is copying a very big file in some directory and there is another cronjob process which checks for a new file and in this directory and process the file. I want to check, if the... (4 Replies)
Discussion started by: sanjay92
4 Replies
Login or Register to Ask a Question
IRDA(7) 						       Linux-IrDA man pages							   IRDA(7)

NAME
irda - The Linux-IrDA protocol stack SYNOPSIS
#include <linux/irda.h> stream_s = socket(PF_INET, SOCK_STREAM, 0); seqpkt_s = socket(PF_INET, SOCK_SEQPACKET, 0); dgram_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_UNITDATA); ultra_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_ULTRA); DESCRIPTION
Linux-IrDA is a complete implementation of the various IrDA protocols and IrDA drivers for Linux. The configuration of the low level of the IrDA stack (IrDA ports) and the various IrDA drivers are described in irattach(8). The usage of the higher layers of the IrDA stack (IrCOMM, IrLPT, IrNET, IrLAN, OBEX...) are described in their respective man pages. The core of the Linux-IrDA protocol stack is composed of the IrLAP, IrLMP, IrTTP and IrIAS protocols and is implemented as a kernel module. The programmer's interface for the IrDA stack is socket based. For more information on sockets, see socket(7). Note that higher level IrDA protocols may offer a different programmer's interface. For example IrCOMM offers a TTY based interface and OBEX is available through a user space library. SOCKETS TYPE
The Linux-IrDA socket interface offers 4 types of sockets: Stream socket - SOCK_STREAM, 0 Stream sockets provides a reliable, stream oriented, full duplex connection between two sockets on top of IrTTP, similar to TCP sockets. IrTTP guarantees that the data arrives in order and manages flow contol, IrLAP retransmits lost packets. Stream sockets does not preserve record boundaries. SeqPacket socket - SOCK_SEQPACKET, 0 SeqPacket sockets provides a reliable, datagram oriented, full duplex connection between two sockets on top of IrTTP. IrTTP guaran- tees that the data arrives in order and manages flow contol, IrLAP retransmits lost packets. SeqPacket sockets preserve record boundaries. Large datagrams will be fragmented as needed. Datagram socket - SOCK_DGRAM, IRDAPROTO_UNITDATA SeqPacket sockets provides a reliable, datagram oriented, full duplex connection between two sockets on top of IrLMP. There is no guarantees that the data arrives in order and there is no flow contol, however IrLAP retransmits lost packets. Datagram sockets preserve record boundaries. No fragmentation is provided, datagrams larger than the IrDA link MTU are truncated or discarded. Ultra socket - SOCK_DGRAM, IRDAPROTO_ULTRA Ultra sockets provides a connectionless, unreliable datagram packet service on top of IrLAP-Ultra. Ultra datagrams are sent and receive only when no IrLAP connection is established and otherwise discarded. They are always transmitted at 9600 bauds. Datagrams may be lost, reordered, and there is no flow control. Ultra sockets preserve record boundaries. No fragmentation is provided, datagrams larger than the Ultra MTU (382 bytes) are trun- cated or discarded. ADDRESS FORMAT
An IrDA socket address is defined as a combination of an IrDA interface address and a service name. Service names are automatically resolved to lsap through the IrIAP protocol. struct sockaddr_irda { sa_family_t sir_family; /* AF_IRDA */ __u8 sir_lsap_sel; /* LSAP selector */ __u32 sir_addr; /* Device address */ char sir_name[25]; /* Usually <service>:IrDA:TinyTP */ }; sin_family is always set to AF_IRDA. sir_lsap_sel is usually not used. sir_addr is the address of the peer and optional (and that case the first peer discoverd will be used). sir_name is the service name of the socket. SOCKET OPTIONS
IrDA sockets supports some protocol specific socket options that can be set with setsockopt(2) and read with getsockopt(2). The socket option level for IrDA is SOL_IRLMP. Options that can be set: IRLMP_IAS_SET Set an entry in the local IAS database. IRLMP_IAS_DEL Delete an entry from the local IAS database. IRLMP_MAX_SDU_SIZE Set maximum receive MTU for SeqPacket sockets. IRLMP_HINTS_SET Set IrDA hint bits to be advertised to peers. IRLMP_HINT_MASK_SET Set IrDA hint bits filter to be used when performing discovery. Options that can be get: IRLMP_ENUMDEVICES Perform link level discovery and return the content of the discovery log. IRLMP_MAX_SDU_SIZE Get maximum receive MTU. IRLMP_IAS_GET Get an entry from the local IAS database. IRLMP_IAS_QUERY Query an entry in IAS database of a peer using IrIAP. IRLMP_WAITDEVICE Block until a new device is discovered. Experimental feature, use with caution. AUTHOR
Jean Tourrilhes - jt@hpl.hp.com SEE ALSO
irattach(8), irdadump(8), irnet(4), irnetd(8). irda-utils 2 May 2003 IRDA(7)