Skip to content

Protocol Discussion

DevashishDhyani edited this page Jun 10, 2019 · 3 revisions

Peer-to-peer methods

While the peer-to-peer idea is theoretically strong, I believe its usage in our system may cause many flaws. Since the brief specified scalability to around 88 people, it is very likely that not enough people are online at the time you wish to message someone who is offline. Therefore, this increases the chances of your intended recipient not being able to retrieve the necessary message or broadcast. For example, you wish to offline message someone while only two other people are online on the server. If these two people now go offline before anyone else can fetch the messages from them, then this information is lost and can cause discrepancies in the database between users. I feel this system would only by truly successful if it has a higher usage between its clients. Peer-to-peer would have surely worked if the system only allowed online messaging. Then, no loss of messages is possible. However, that would make the system unpopular and not really useful.

Protocol Suitability

Privacy and Trust have a significant implementation in my design due to the use of API-keys, retrieving private data from Login Server and separate sessions per user. In terms of the protocol implemented, while the major requirements of Trust, Privacy and Consent are fulfilled, I believe more attention to databasing should have been given in the protocol definitions. The idea of fetching messages from all available users once a user logs in can have several downsides. For starters, the database will grow significantly on a daily basis as we must store message that are intended for other users (as they were offline when the message was sent, and it is now saved on our database too). Another flaw I believe that existed was the use of ping_check. Many users just call ping_check in an infinite loop and this slows down the whole network. I have purposely used ping_check only during broadcasting and private messaging to ensure that the other user is currently running their web-app. This way, a health check is being achieved without unnecessarily overloading the network.

Link to next Page

https://github.com/uoa-cs302/2019-Python-ddhy609/wiki/Security-of-Network-Discussion

Clone this wiki locally