Innovation... driven by intelligence and logic

Networking and Network Programming using Sockets and Network Protocols

Abstract:

Every Device communicates with other devices now. So we need some communication mechanism between devices and applications. This prompts us to learn about Sockets. Sockets is a method for communication between a client program and a server program in a network. A socket is defined as "the endpoint in a connection." Sockets are created and used with a set of programming requests or "function calls" sometimes called the sockets application programming interface (API). A network socket is an endpoint of an inter-process communication flow across a computer network. Today, most communication between computers is based on the Internet Protocol; therefore, most network sockets are Internet sockets. A socket API is an application programming interface (API), usually provided by the operating system, that allows application programs to control and use network sockets. Internet socket APIs are usually based on the Berkeley sockets standard.


Training Topics in brief:

  • Introduction to TCP/IP, The Transport Layer: UDP, SCTP
  • Introduction to Sockets, TCP Sockets
  • Advanced Family Protocols: AF_UNIX, AF_INET
  • IO Multiplexing and Socket Options
  • UDP Sockets, SCTP Sockets
  • Name and Address Conventions
  • IPv4 and IPv6 Interoperatibility, Daemon, inetd Superserver
  • Adv IO functions and Unix Domain Protocols
  • Non Blocking IO and ioctl Operations
  • Routing and Key Management Sockets
  • Broadcasting and Multicasting
  • Out of Band Data and Signal Driven IO
  • Raw Sockets, DataLink Access

Salient Features of Training Program

Training Objective:

  • This project is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world linux system programming and network programming and associated protocols / technologies to meet the needs of industries both today and in the future
  • The trainee should be comfertible in using sockets for communication
  • The course considers linux based network programming and communication techniques which can help to ensure that such techniques are reliable and act as a stable platform for networking and communication
  • The course is taught mainly using the Linux, C, gcc, gdb and PC emulated as a host or network device in a LAN.

Pre-requisite:

  • Good Programming skills in C is asumed.
  • Knowledge of Shell Scripting is a must.
  • General understanding about operating system concepts will be helpful
  • should be well versed with
    • ipc techniques, synchronization using semaphores and threads

Agenda:

The Duration of Training would be:
  • The Duration of training would be 10 working days.
  • There would be
    • 5 Classroom Sessions of 2 hours each
    • 10 Lab Sessions of 4 hours each
    • 50 hours of training.
Training Methodology:
  • Hands on approach to training, behaviorial model of training would be practiced.
  • During the training, the Trainee would implement a projects related to respective modules.
  • Comitment to Individual growth and constant evaluation.
  • Implementation of programming techniques through a Project.

Deliverables:

After the training is over, the Trainee should be able to:-

  • Understand the concepts of network sockets
  • Implement sockets in any Domain, of any type
  • implement and setup TCP, IP, UDP, SCTP protocols.
  • do Non Blocking IO and ioctl Operations
  • use the concept absorbed in the real world situation
  • implement knowledge absorbed in their commercial / live projects
  • create a multithreaded server and establish communication with several clients across the network

EmbLogic would issue/provide the following:-

  • Project Report for Submitting into their college.
  • Project presentation and demonstration assistance.
  • Completed Project (by the trainee).
  • Certificate of Completion for the training and Project as mentioned above.

Introduction:

An Internet socket is the communication endpoint. it is used to establish communication between processes on different machines. it is characterized by a unique combination of the following:

  • Local socket address: Local IP address and port number
  • Remote socket address: Only for established TCP sockets. As discussed in the client-server section below, this is necessary since a TCP server may serve several clients concurrently. The server creates one socket for each client, and these sockets share the same local socket address from the point of view of the TCP server.
  • Protocol: A transport protocol (e.g., TCP, UDP, raw IP, or others). TCP port 53 and UDP port 53 are consequently different, distinct sockets.

Within the operating system and the application that created a socket, a socket is referred to by a unique integer value called a socket descriptor. The operating system forwards the payload of incoming IP packets to the corresponding application by extracting the socket address information from the IP and transport protocol headers and stripping the headers from the application data. "the socket is specified as a 32 bit number with even sockets identifying receiving sockets and odd sockets identifying sending sockets." Today, however, socket communications are bidirectional.


Project Synopsys:

FTP based Client Server project using sockets and threads



Sockets are the fundamental technology for programming software to communicate on TCP/IP networks. A socket provides a bidirectional communication endpoint for sending and receiving data with another socket. Socket connections normally run between two different computers on a LAN or across the Internet, but they can also be used for inter-process communication on a single computer.
It involves the use of Socket Programming. Client creates a local TCP socket specifying the IP and port 
number of server process , the client’s TCP establishes connection to server’s TCP. When contacted by a client, server creates a new socket for server process to communicate with client. Client sends a request to the Server and then  Server responds to the client . Data Transmission is over TCP/ IP protocol. Data exchanging protocol is build by creating our own network protocol stack over the socket stack.

Training and projects Resources   Click here...


EmbLogicTM is an ISO 9001:2008(QMS) (Quality Management System) Certified Company

 

 

 

Go to Top ^