So, guys, going forward now, let us discuss what exactly system call interface is and what exactly
system calls are.
So system calls are nothing, but these are the APIs or functions which are exposed by the operating
system to user space applications.
That is, user space applications interact and invoke or use the operating system services through these
system calls.
So if you have ever written a single C program, you must have used malloc and free.
So malloc and free are the most commonly used system calls which is provided by the Linux operating
system to be used by userspace applications.
That is, your userspace application requests the operating system to allocate a memory using malloc
system call and it requests the operating system to reclaim the memory using free system calls.
So you can see that system calls are nothing, but these are the bunch of APIs or functions which is
provided by the operating system to be used by userspace applications.
So you can say that user space applications actually make use of the system calls in order to interact
or use the services of the operating system.
Now remember our old favorite diagram?
That is our diagram of the TCP IP stack.
Now, there are a bunch of system calls which are actually related to only networking related functionality.
So it is those system call which I have shown here.
So all the networking related system calls are actually placed in between the application layer and
the transport layer of the TCP IP stack.
So you can see that we have a system call interface, which is actually a very thin layer which is sandwiched
between the application layer and the transport layer of the TCP IP stack.
And you can see that in this system call interface, you can find all the system calls which are actually
related to networking functionality.
So if you are writing or developing a networking application, you will make use of these system calls,
which is provided by the system call interface layer of the TCP IP stack.
So you can see that these APIs, these APIs means the system calls that is socket, accept, connect,
send to receive from close and select.
And there are many other networking system calls which is provided by the Linux operating system.
So these APIs are used to send or receive the packets to or from the underlying operating system or
TCP IP stack.
So you can see that these APIs are used for writing network applications.
So if you ever write a network applications or you develop a software which has networking functionality,
it is very much probable that you will make use of these networking related system calls in your application
in order to interact with the networking subcomponent of the underlying operating system.
So socket programming is all about making use of the system calls by the application to harness the
networking features provided by the underlying operating system.
That is TCP IP stack.
Also, you can see that this system call interface layer is also a part of the operating system.
So you can see that it comes under the TCP IP suit, right?
Also, if you see the system calls, for example, socket system call is used to create a network socket,
then connect system call is used to connect to a remote server, then send to and receive from system.
Calls are used to send or receive a packet.
Then select system call or close system calls are also used in the context of network related functionality.
So when you will be writing socket programming based applications, you will make use of all these system
calls that I have listed here.
So I hope you understand what exactly system call interface are and what are the system calls and what
exactly is the purpose of system calls?
So going forward now, let us summarize what we have learned in this module.
We are finished with the routing and main theoretical concepts which captures the essence of entire
routing.
We learned the significance of port number in this module.
That is what IP addresses are to network.
Layer is what port numbers are to the transport layer, right?
So at the network layer, the source and destination machines are identified using IP addresses at the
transport layer, the source and destination processes not machines, but processes are identified using
port numbers.
Also, you must read about TCP congestion control mechanisms and three way handshake of the TCP from
textbook.
So these are the two areas of the TCP protocol which I have excluded from this course.
We learnt about header stacking also.
Networking is all about placing one header after the other.
We do this all the time.
Receiving machine delivers the TCP and UDP packet to an application which is registered for port number
specified as destination port number in TCP UDP header of the packet.
And this is the one of the main point that we have learnt here that the destination port number field
in the TCP and UDP header of the packet helps the operating system of the receiving machine to determine
the correct recipient application which is interested in receiving that particular packet.
So that is all about transport layer.