Analysis of NDN Messenger Using Chrono Sync Library

Named Data Networking (NDN) is an Internet Architecture which is designed to network computing devices by naming data instead of the conventional data containers used in Internet Protocols today.The main purpose is to evolve the Internet’s host-based packet delivery model. The Named Data Networking service uses the name as the object to retrieve the data in the most secure, reliable and efficient way. Chrono chat is based on NDN (Named Data Networking) which is the future, depicting the ways messages will be sent and received. Chrono chat, being a multi-user chat room, runs over an NDN server. In this paper we propose the functioning of the Chrono Sync Library to achieve synchronization which aids in the transmission of information in real time implementation of the application functioning over the Named Data Network. This paper proposes an implementation of chrono sync library to provide a better alternative using C++, Java, JavaScript and python languages for Linux and Windows based operating systems.


Introduction
There is significant evidence of increasing drawbacks of CDN (Content Distribution Networks) due to the failure rate in data transmission and slower transmission speeds thereby creating a need for a better method for data delivery which being more secure and faster thereby resulting in a creation of a better model being NDN (Named Data Networking) NDN is changing the way IT networks are controlled and managed. The NDN perspective relies on using the name of the object to retrieve information in the most secure way possible. Unlike the traditional method NDN (Named Data Networking) does not require middle boxes like TLS as TLS does not have the functionality to encrypt at the data level but encrypts at the channel level NDN takes the security of data transmission to another level by encrypting at the data level securing the data from the User rather than securing the channel like the conventional method. In NDN all the work is done in a single software stack enabling it to run everywhere making it leaps and bounds better than the traditional methods.
The NDN  . The paper concludes that the NDN routing through its usage of TCP protocol simulation choses a path for sending the packets in line with the smallest RTT. The results indicate that the RTT estimation has an important role in determining the NDN network's selected route. This is different from IP routing mechanism where the selected route is chosen by performing based on the routing table. This can be attributed to the NDN router maintaining its paths depending on the information which are brought by packets across it. The IP network has a better performance than the NDN network in a normal condition which is no hijacked node. The NDN network performs several drop packets which is different from the IP network. It can be attributed to the drop packets happening on several nodes. Whenever there is a hijacked node, the IP network fails to provide a solution. This is so because the IP-based network cannot get SYN packets to the destination node. Therefore, the destination cannot understand if there is a node which executes a request to it. Then this condition generates no data packets that can be performed in the simulation as a request by the sender. The NDN network still can be performed even if there is the hijacked node. There are still drop packets, however, they are not data packets. They are only the Interest packets which are dropped by facing the existence of the hijacked node. All data packets on the NDN network simulation have received by the destination An Overview of Security Support in Named Data Networking, IEEE Communications Magazine, November [4] [2018] presents an overview of the security mechanisms in the Named Data Networking (NDN) architecture that have been developed over the past several years. NDN changes the network communication model from the delivery of packets between hosts identified by IP addresses to the retrieval of named and secured data packets.
Consequently, NDN also fundamentally changes the approaches to network security Opportunities and Challenges for Named Data Networking to Increase the Agility of Military Coalitions Proceedings of Workshop on Distributed Analytics Infrastructure and Algorithms for Multiorganization Federations (DAIS), [5] [2017] The fundamental aim of this paper is to position the opportunities and challenges for adopting Named Data Networking (NDN) Schematizing Trust in Named Data Networking, ACM Information Centric Networking Conference [6][7][8] [2015] talks about Securing communication in network applications involves many complex tasks that can be daunting even for security experts. The Named Data Networking (NDN) architecture builds data authentication into the network layer by requiring all applications to sign and authenticate every data packet. The purpose of the network is to allow reliable communication between all the nodes that are connected to the network. IP is a method to achieve this and is currently the mostly widely adopted method to achieve communication between the nodes connected to the network.

Limitations of Traditional Networks
IP uses point to point packet delivery, the network here is a collection of links between the nodes. To enable data transmission from one node to another the IP chains multiple links and nodes for packets to move between one point to another. Packets travel through the chain created with all the nodes in between being operational. IP being the most used protocol has its drawbacks the major of which being 1.Link Fails.

2.Node Movement 3.Change in connectivity
To overcome these drawbacks NDN (Named Data Networking was used in the project to achieve reliable message transfer.

Input
The first step after the user launches the application Input from the user is the first step. Input from the User consists of a screen name, a chatroom name, and an NDN prefix for chatroom data.

Processing
•Chrono Chat consists of Activities and a Service as its primary components.
•The central component is the component that is launched when the user first opens Chrono Chat and which generally coordinates tasks is Main Activity.
•When first launched, Main Activity will discover that no login information has been set, and launch Login Activity to request it from the user.
•When the user signs in, Login Activity will return the information to Main Activity, which will then display the chatroom screen.
•Network tasks are handled by the Chrono Chat Service component.

•Communication between Main Activity and
Chrono Chat Service consists of Intents, which are the usual means of inter process (and "intercomponent") communication.
•When Main Activity signals Chrono Chat-Service to send a message, the service starts up, establishes a connection to the chatroom, and publishes the data via Chrono Sync.
•It remains running as a foreground service to prevent the OS from killing the Chrono Chat process whenever the user is not interacting with it.
•The service maintains its connection to the chatroom and relays any received messages to Main Activity via Intents, while also keeping track of the chatroom roster and periodically sending "heartbeat" messages to the chatroom.

Output
•After login, the user enters the chatroom.
•After Chrono Chat connects to the chatroom, other connected clients will appear to "join" the chat.
•The user can send messages using the field at the bottom of the chatroom window.
•The toolbar at the top may be used to leave the chatroom, view the roster, or quit the app.
•Chrono Chat displays an ongoing notification while connected to a chatroom This helps prevent the OS from terminating the app while it is running in the background.
•The app will also alert the user via a notification when messages are received while the app is running in the background.

2.6Specifications and System Architecture
The specifications and the technical details of the proposed systems are discussed in this part.
The project performed is a software-based project and the specifications required include a Linux Based Operating System, NS3 Tool, Python, JavaScript and C++ languages and modules and also required is the chrono sync library.

The Inner Operations of How the application functionsis explained as follows
•Chrono Chat consists of Activities and a Service as its primary components.
•The central component is the component that is launched when the user first opens Chrono Chat and which generally coordinates tasks is Main Activity.
•When first launched, Main Activity will discover that no login information has been set, and launch Login Activity to request it from the user.
•When the user signs in, Login Activity will return the information to Main Activity, which will then display the chatroom screen.
•Network tasks are handled by the Chrono Chat Service component.

•Communication between Main Activity and
Chrono Chat Service consists of Intents, which are the usual means of inter process (and "intercomponent") communication.
•When Main Activity signals Chrono Chat-Service to send a message, the service starts up, establishes a connection to the chatroom, and publishes the data via Chrono Sync.
•It remains running as a foreground service to prevent the OS from killing the Chrono Chat process whenever the user is not interacting with it.
•The service maintains its connection to the chatroom and relays any received messages to Main Activity via Intents, while also keeping track of the chatroom roster and periodically sending "heartbeat" messages to the chatroom.

Results
The Observation and the functioning of the application are made on various tools which include NS3 Tool, Python, C++, Java and JavaScript and for various platforms like Windows, Android and Linux.
The simulation of the environment occurs in the NS3 tool and the chatroom is created using Python and its basic functionality is tested using the same, further development of the application is done in Java and the Graphical User Interface for the following is created using JavaScript. Fig. 7 shows the raw implementation of Chrono Chat using Python and Fig. 8 and Fig. 9 shows the finished application with its respective GUI which acts as the end product for final users.

Fig 6. The following is the emulation of starting NFD to run as a background service
The user is able to join the chat room and send messages successfully. And the messages are synchronized in real-time to reduce the time delay for the communication to occur.

Fig 7. Implementation of Chrono Chat using Python Conclusion
Secure Message Transmission and receiving is one of the most important aspects in today's life but the current methods for message delivery not only put the user at risk but also have slower data delivery speeds when compared to Chrono Chat which uses NDN.
The Proposed Design for the Chat room achieves excellent performance with a modest number of users within the chatroom providing good service and legitimate data delivery between the users using the chatroom.
The Chatroom makes it possible to deliver data at faster speeds and with high security. Which is the main purpose we want to achieve so that the user doesn't get annoyed by the delays is sending messages and giving them the highest data security as much as possible.
NDN, an emerging technology implemented in Chrono Chat limits the user to access only a single chat room every use and does not provide the functionality to switch between different chat rooms.
Conclusion we drew from this project is that NDN based networks are more secure and faster compared to the conventional network and thus are the future internet architecture to be used to send and receive information and media. Although NDN promises faster Data Delivery time and better security than the traditional methods it does not offer the ability to switch between chat rooms nor does it offer the user the ability to communicate with a person existing in a different chat room until the user quits the current chatroom and joins an another chatroom which consists of the node that the user is trying to communicate with.
A Further Attempt to diversify the abilities of the chatroom can be made enabling the user to seamlessly send data to users existing on different chat rooms.
We can also enable the delivery of Media Transfer which can include jpeg Images and video files or documents within the chatroom which is currently only restricted to messages. With the current trend of having customization within the application we can also add customization features which may include changing the theme of the application and various other aspects of the application.
The application can also be modified for peer-topeer file sharing app or file sharing from one node to many nodes i.e., broadcasting using WIFI. Hence reduce the reliance on internet connectivity to share files and reduce the usage of internet bandwidth.
To increase security of the application we may also use end-to-end encryption techniques while transferring data. By encrypting the data the we can make the data readable for only the sender and the receiver and avoid and unwanted data misuse