Chat System
Team Details:
Deepak R Shetty Karthik R Bhat Raghav Gupta
CCE, MIT Manipal, India CCE, MIT Manipal, India CCE, MIT Manipal, India
Rashmi Ronit Ghosh
CCE, MIT Manipal, India CCE, MIT Manipal, India
Guide Details:
Raghavendra Ganiga
CCE, MIT Manipal, India
Abstract:
Basically a typical chat based application does is sending or receiving message. But by using chat system, People can upload images and there is an authentication system which provides security from foreign user and does the usual chatting function. This can work under windows operating system.
The Chat system uses Windows Form Designer of Visual Studio Software; Windows Form Designer is used for designing the application like creating picture box, button, textbox, list box, tab control, link label and combo box.
The Chat system uses Socket Programming for the bottom level of network, using Application Programming Interface (API) and MYSQL database for storing user data.
Introduction
Open System Interconnection (OSI) model is a concept that describes how the data communication takes in a network. It consists of seven layers each performing a set of functions. OSI layers consist of Physical, Datalink, Network, Transport, Session, Presentation and Application layers. The Transport layer is responsible for transfer of data between end systems using the service of Network layer. Accordingly, it represents an important transition point between the hardware-associated layers below it and the layers above that are more software-oriented and abstract. In general there are two transport layer protocols TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
Related Work
Our Chat system uses User Datagram Protocol (UDP), one of the Transport layer protocols. It is a Connectionless Protocol which supports Network Application and establishes network communication. UDP has its own drawbacks because it is unreliable sometimes, but it does have an upper hand over TCP. UDP does not need the overhead required to detect reliability, it requires less processing at the transmitting and receiving hosts, it is simple to use for network, the operating system does not need to maintain UDP connections information and data transmission is faster.
UDP is more appropriate to use it on large distributed systems where each host has to communicate with many destinations at the same time. In huge data communication systems, UDP helps reduce bandwidth and in faster data transmission. For example, when UDP is used for media streaming e.g. a movie, large data, generally in GBs is transmitted. And if a tiny movie content is not transmitted (as UDP doesn't guarantee transmission) we can still understand it. Hence, Chat system can transmit data at a faster rate without any delay.
Methodology
For the current study, college students in the age group of 18 to 25 were chosen. This category was chosen on the basis of observations and available literature. Communication tools such as the Messenger, e-mail, and forums are becoming very attractive means of establishing low-cost and reliable communication across the Globe among students. It was indicated that the Live Messenger free service is the most preferred messenger by the participating students.
Application uses socket programming, Socket programming is a way of connecting two nodes on a network to communicate with each other. One socket (node) listens on a particular port at an IP, while other socket reaches out to the other to form a connection. Server forms the listener socket while client reaches out to the server.
Socket-based software usually runs on two separate computers on the network, but sockets can also be used to communicate locally on a single computer. Sockets are bidirectional, meaning that either side of the connection is capable of both sending and receiving data. Sometimes the one application that initiates communication is termed the "client" and the other application the "server," but this terminology leads to confusion in peer to peer networking and should generally be avoided.
Several libraries that implement standard application programming interfaces (APIs) exist on the Internet. The first mainstream package – the Berkeley Socket Library is still widely in use on UNIX systems. Another very common API is the Windows Sockets (WinSock) library for Microsoft operating systems. Application uses WinSock.
Socket Interfaces can be divided into 3 categories:
1) Stream Sockets, the most common type, requires that the two communicating parties first establish a socket connection, after which any data passed through that connection will be guaranteed to arrive in the same order in which it was sent – so-called connection-oriented programming model.
2) Datagram Sockets, offer "connection-less" semantics. With datagrams, connections are implicit rather than explicit as with streams. Either party simply sends datagrams as needed and waits for the other to respond; messages can be lost in transmission or received out of order, but it is the application's responsibility and not the sockets to deal with these problems. Implementing datagram sockets can give some applications a performance boost and additional flexibility compared to using stream sockets, justifying their use in some situations.
3) Raw Sockets, bypasses the library's built-in support for standard protocols like TCP and UDP. Raw sockets are used for custom low-level protocol development.
To communicate over the Internet, IP socket libraries use the IP address to identify specific computers. Many parts of the Internet work with naming services, so that the users and socket programmers can work with computers by name (example., "thiscomputer.wireless.about.com") instead of by address (example., 208.185.127.40).
Stream and datagram sockets also use IP port numbers to distinguish multiple applications from each other. For example, Web browsers on the Internet know to use port 80 as the default for socket communications with Web servers.
Application uses UDP protocol and can communicate locally on computer and is bidirectional that is can send and receive on both sides.
Results
The main functionality of the Chat System is to send and receive message without much delay. The other functionalities involves authentication system, uploading profile picture. The following images shows the implementation results of the Chat System.
figure 1.1 figure 1.2
figure 1.1 shows the Sign in window, where only authenticated users are allowed to use the Chat system. There is a link named Register which will take to the Sign Up window as shown in figure 1.2, where unauthenticated users can create an account.
figure 2.1 figure 2.2
figure 2.1 and figure 2.2 shows the profile of the user, where user can upload his/her profile picture
and the username is displayed.
figure 3.1 figure 3.2
figure 3.1 and figure 3.2 shows 2 users chatting. At first user must select the receiver in the combo box, the combo box displays all the user who are using the application. User at the receiver side must do the same and then both the users must press connect, after that they can send and receive message.
Conclusion
Chat application using UDP is cheaper and faster. It requires less processing at the transmitting and receiving hosts, it is simple to use for network. The operating system does not need to maintain UDP connections information and data transmission is faster. In huge data communication systems, UDP helps to reduce bandwidth and in faster data transmission. All these doesn t mean UDP is better than TCP or others. In terms of flow control, error control or retransmission of bad segment UDP is not efficient. Hence, we can say both of them have their own merits and demerits based on the scenario.
References
W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, UNIX Network Programming Volume 1, Third Edition, Addison Wesley, 2003.
Leon Garcia, IndraWidjaja, Communication Networks, Second Edition, Tata Mc. Graw Hill publication, 2000.
Akshit Malhotra, Vaibhav Sharma, Prateek Gandhi, Neetesh Purohit, IIT Allahabad, India
Behrouz A. Forouzan, TCP/IP Protocol Suite Fourth edition.