CG Report Draft Final
CG Report Draft Final
Chapters Page no
Chapter 1: Introduction 01
Chapter 6: Implementation 12
Chapter 8 : Conclusion 17
Chapter 10 : References 19
CHAPTER 1
INTRODUCTION
The exchange of messages between the client and server is in the form of data packets . Bytes
are grouped together to form a data packet. Apart from the actual message the data packets
also contain additional information such as source and destination address, protocol and its
version, error control information, etc.
1.2 MOTIVATION :
Simulation of any process helps in better understanding of it. This project will demonstrate
the internal working of a client-server architecture model. It would help in visualizing how
connection between a client and server is established. This system can be used for
educational purposes to teach and explain the working of client and server and network
programming.
1.3 SCOPE :
The existing system of displaying a simulated system of client server simulations has always
been flawed because of its inability to display a simulated GUI. It has always been unable to
convey a convincing display about the packet transfer and the receiving party and also to
know where the packets and data is being sent to the server.
Our system covers the existing in the way that only the necessary and essential transfers are
noted and also the actual details of the packets being sent are noted. The details about what is
in the packets is not noted down and only the simulations of the working packets is clearly
shown. This will help a person understand what is happening in a network without
understanding the technical details in the network. This system can be used for educational
purposes to teach and explain the working of client and server and network programming.
Our system provides insight into data being sent across client and server and how exactly
communication happens. While the packet transfer to the different components of the client
and server is shown, this does not show what exactly is contained inside the packets and how
the packets are routed. It does not explain how the data is encapsulated inside a data packet or
what exactly the commands are and the internet protocol used is also left unexplained for
now.
CHAPTER 2
LITERATURE SURVEY
Graphics provides one of the most natural means of communicating within a computer, since
our highly developed 2D and 3D pattern-recognition abilities allow us to perceive process
pictorial data rapidly and effectively. Interactive computer graphics is the most important
means of producing pictures since the invention of photography and television. It has the
added advantage that, with the computer, we can make pictures not only of concrete real
world objects but also of abstract, synthetic objects, such as mathematical surfaces and of
data that have no inherent geometry, such as survey results. Computer graphics started with
the display of data on hardcopy plotters and cathode ray tube screens soon after the
introduction of computers themselves. It has grown to include the creation, storage, and
manipulation of models and images of objects. These models come from a diverse and
expanding set of fields, and include physical, mathematical, engineering, architectural, and
even conceptual structures, natural phenomena, and so on. Computer graphics today is
largely interactive. The user controls the contents, structure, and appearance of the objects
and of their displayed images by using input devices, such as keyboard, mouse, or touch-
screen. Due to close relationships between the input devices and the display, the handling of
such devices is included in the study of computer graphics. The advantages of the interactive
graphics are many in number. Graphics provides one of the most natural means of
communicating with a computer, since our highly developed 2D and 3D patter-recognition
abilities allow us to perceive and process data rapidly and efficiently. In many design,
implementation, and construction processes today, the information pictures can give is
virtually indispensable. Scientific visualization became an important field in the 1980s when
the scientists and engineers realized that they could not interpret the prodigious quantities of
data produced in supercomputer runs without summarizing the data and highlighting trends
and phenomena in various kinds of graphical representations.
2.2 OPENGL INTERFACE :
1. Main GL: Library has names that begin with the letter gl and are stored in a library usually
referred to as GL.
2. OpenGL Utility Library (GLU): This library uses only GL functions but contains code for
creating common objects and simplifying viewing.
3. OpenGL Utility Toolkit (GLUT): This provides the minimum functionality that should be
accepted in any modern windowing system.
OpenGL (Open Graphics Library) is the interface between a graphic program and
graphics hardware. It is streamlined. In other words, it provides low-level
functionality. For example, all objects are built from points, lines and convex
polygons. Higher level objects like cubes are implemented as six four-sided polygons.
OpenGL supports features like 3-dimensions, lighting, anti-aliasing, shadows,
textures, depth effects, etc.
It is system-independent. It does not assume anything about hardware or operating
system and is only concerned with efficiently rendering mathematically described
scenes. As a result, it does not provide any windowing capabilities.
It is a state machine. At any moment during the execution of a program there is a
current model transformation.
It is a rendering pipeline. The rendering pipeline consists of the following steps:
o Defines objects mathematically.
o Arranges objects in space relative to a viewpoint.
o Calculates the color of the objects.
o Rasterizes the objects.
Graphics provides one of the most natural means of communicating with a computer, since
our highly developed 2D and 3D pattern-recognition abilities allow us to perceive and
process pictorial data rapidly and efficiently. Interactive computer graphics is the most
important means of producing pictures since the invention of photography and television. It
has the added advantage that, with the computer, we can make pictures not only of concrete
real world objects but also of abstract, synthetic objects, such as mathematical surfaces and of
data that have no inherent geometry, such as survey results.
OpenGL (open graphics library) is a standard specification defining a cross language cross
platform API for writing applications that produce 2D and 3D computer graphics. OpenGL
was developed by silicon graphics Inc. (SGI) in 1992 and is widely used in CAD, virtual
reality, scientific visualization, information visualization and flight simulation. It is also used
in video games.
A server may receive requests from many distinct clients in a short period of time. A
computer can only perform a limited number of tasks at any moment, and relies on
a scheduling system to prioritize incoming requests from clients to accommodate them. To
prevent abuse and maximize availability, server software may limit the availability to
clients. Denial of service attacks are designed to exploit a server's obligation to process
requests by overloading it with excessive request rates.
The client–server model does not dictate that server-hosts must have more resources than
client-hosts. Rather, it enables any general-purpose computer to extend its capabilities by
using the shared resources of other hosts. Centralized computing, however, specifically
allocates a large amount of resources to a small number of computers. The more computation
is offloaded from client-hosts to the central computers, the simpler the client-hosts can be.
CHAPTER 3
REQUIREMENTS SPECIFICATION
Non – Functional requirements support the functioning of the system. They have a check on
the entire system as a whole. Non – functional requirements of the system are -
1. Reliability : How reliable is the system to deliver the system its service.
2. Safety : The ability of the system to perform without failure.
3. Availability : The ability of the system to render its services at all times
whenever requested by the user.
4. Dependability : This is a property of a software / system that establishes a
confidence about the system to the user.
5. Security : The system is secure such that no outside attacker can intercept the
system.
CHAPTER 4
SYSTEM ANALYSIS
In general, a service is an abstraction of computer resources and a client does not have to
be concerned with how the server performs while fulfilling the request and delivering the
response. The client only has to understand the response based on the well-known application
protocol, i.e. the content and the formatting of the data for the requested service.
SYSTEM DESIGN
5.1 ARCHITECTURE DESIGN :
The system consists of a client and server which send commands over a network and a
resulting handshaking occurs. After a handshake there is an exchange of packets that occurs.
The client and server consist of several functions before handshaking, these functions
determine the connections and the commands sent between the client and server.
5.3 BEHAVIOURAL DESIGN :
The client server typically follows the TCP/IP model where the socket is above the transport
layer in both client and server. This helps in sending commands over a network.
CHAPTER 6
IMPLEMENTATION
OpenGL :
Open Graphics Library (OpenGL) is a cross-language, cross-platform application
programming interface (API) for rendering 2D and 3D vector graphics. The API is typically
used to interact with a graphics processing unit (GPU), to achieve hardware-
accelerated rendering. OpenGL has become the industry's most widely used and supported
2D and 3D graphics application programming interface (API), bringing thousands of
applications to a wide variety of computer platforms. OpenGL fosters innovation and speeds
application development by incorporating a broad set of rendering, texture mapping, special
effects, and other powerful visualization functions. Developers can leverage the power of
OpenGL across all popular desktop and workstation platforms, ensuring wide application
deployment.
Code Blocks :
START -
The client sends a command to the server, the server in turn responds to the client with a
response, i.e, the acknowledgement. This means that a three-way handshake has taken place
between the client and server. This only tells us that client and server know and authenticate
each other.Now the client send the data or files to the server in the form of data packets
through the network.
RETRIVE –
The client sends a retrieve command (RETR) to the server to retrieve or fetch a data or file it
wants. The server responds back to the client by sending the data packet requested by it.
STORE –
When the client wants to store some data in the server it sends STR command to the server.
This lets the server know that the data it receives has to be saved. Then the client sends the
data to be stored as a data packet to the server, the server on receiving it saves it as it knows it
has to be saved.
LIST –
When the client wants to know to information about its data stored in the server, it sends a
LIST command to the server. The server responds with the list data packets of the client that
it has been stored.
EXIT –
This exits and closes the client – server simulation running.
CHAPTER 7
INTERPRETATION OF RESULTS
SCREENSHOTS :
Client sends command to server for authentication and three - way handshake.
Server sends a response to client after authenticating it.
The users of this client server simulation will be able to view content as it takes place in the client –
server network. The fully functional system as per the functional requirements is ready for
deployment. It will be used share study materials at the institutional level and later will be made
open for public to use. Testing of the application is done to ensure its integrity and reliability.
The simulation serves to provide a simulation where the users can see the data packets as they
move between the client and server within a given network. This can be used for educational
purposes where the students can learn about what exactly happens in TCP communication. This also
saves work for the professor or faculty who have an interest or work in computer networks in
general. The simulation allows users to visualize the many aspects of network communication
including the different functions such retrieve, store and list which cannot be explained very easily to
first timers.
A graphical representation with different colors used to explain the various aspects of the
components and their working saves several hours of time and effort spent in explaining the
concepts and improves the overall lecture instead of explaining it on a board or paper. This helps the
user or student understand networks and how the PC connects to the internet in general.
FUTURE ENHANCEMENTS
1. https://www.opengl.org/
2. https://stackoverflow.com/
3. https://www.britannica.com/technology/client-server-architecture
4. https://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_Introduction.html
5. Donald Hearn & Pauline Baker: Computer Graphics with OpenGL Version, 3 rd
Edition, Pearson Education,201.
6. Edward Angel: Interactive Computer Graphics- A Top Down approach with
OpenGL, 5th edition Pearson Education, 2008.