TRENDING NEWS

POPULAR NEWS

As We Know For Communication Across Internet Tcp/ip Protocol Suit Is Used For Achieving Universal

Which is the best protocol to use for IOT implementation- MQTT, CoAP, XMPP, SOAP, UPnP?

Here is a quick highlight of the typical workflows suitable for a particular protocol, and some rationale. MQTT: Apart from being light weight, MQTT offers publish/subscribe semantics (on the same socket) which makes it easier to program on the IoT device side. IoT cloud service providers like AWS IoT and Evrythng and others offer MQTT based device connectivity.It requires a message broker (server) for its functioning. This makes it a good option for remote/cloud communication, since the cloud server acts as the message broker between the IoT device and other app/services. This also makes it NOT a great option for local network communication between devices, because it requires the end-user to deploy an additional broker in her system.REST API over HTTP/HTTPS/Websockets:As is already known, this is a great option for apps <-> cloud communication. Abundant support and frameworks are available for handling all the common use cases.This is also a good option for IoT device (server) <-> app (client) communication in the local network. Again the reason is that this model is abundantly supported in the app ecosystem. And most Wi-Fi enabled IoT devices already support a web server.This can (and is) also be used for device <-> cloud communication. So essentially the IoT device acts as a Web Client. The one problem that you have to work around is that HTTP is a challenge-response protocol. So the device will either have to keep polling the server for new updates, or use long polling, or use websocket.CoAP:CoAP runs on UDP and thus can be run on extremely resource constrained environments. It offers semantics parallel to HTTP for the most part. It is a good mechanism for local network communication, particularly when their is an ecosystem of other CoAP devices.

Why do we need an IP address to communicate within a LAN?

Computers on a LAN actually do communicate based on MAC addresses. Every packet that goes over Ethernet uses a MAC address. The reason why TCP/IP is used for higher-level communication (Layer 3 in the OSI model) is because it's a standard that's universally accessible and also routable between autonomous networks. It's actually simpler to use TCP/IP to communicate on a LAN, even if he LAN isn't routed anywhere, because all applications and operating systems and devices can use one method of communicating, versus designing the same program to use MAC addresses as well on the odd chance that someone would have a non-routed LAN without TCP/IP configured.Also, APIPA addressing elegantly solves the problem of not having a DHCP server or static addresses configured on a LAN. It transparently assigns a temporary address, so devices can still communicate over the LAN using IP.

How did Robert E. Kahn and Vint Cerf invent the Internet?

The real genius part was realizing there was a need for internetworking protocol stack, in order to connect menagerie of different, often vendor-specific, local area network protocols. These chaps designed what we now know as TCP/IP stack more than 40 years ago, and only features that had to be retrofitted (and that was easy because of brilliant design, simple but flexible thanks to clear layering) was security (those were naive, innocent days), Quality of service, and now IP address range expansion.ISO and CCITT (now ITU-T) tried to formally standardize internetworking protocols of their own, but ended up with overly complex, rigid suites a decade late. After some limited use (e.g. X.25 packet switched network) what survived of their work is essentially OSI model, which nicely corresponds  to TCP/IP de facto layers. As for standardization, RFC mechanism proved sufficient.Young IT people, do read some book in internetworking with TCP/IP - the beauty and elegance of this design is almost intimidating.For an overview see Internet protocol suite.

Which is the best language for network programming?

It really depends on what you mean by network programming. So I'll run through a couple possibilities. Commentators: Don't fret if I forgot "your language." The question is so open-ended. It's like asking 'What kinds of vehicles are good for getting me from New York City to Boston?'You want to write a program that participates in XML-RPC or similar.C# or JavaYou are network programming in the context of a web pageJavaScriptYou need some machines to talk to each other in some other existing protocol, and you need it done quickly.Python or PerlYou need to write a distributed program that needs to be up and running all the time, not even resting for upgradesErlangYou need to write a distributed program that is very fast and does a bunch of things at onceC (and check out ØMQ - The Guide - ØMQ - The Guide )You need to write a new network driver, for a new network protocol you thought up yourselfC, C++You just want to network some TCP sockets togetherAny serious or mainstream language Out of the top 20 here, TIOBE Index | Tiobe - The Software Quality Company PL/SQL is the only one I know of being not good at network programming.

What are the most important ideas or knowledge of humanity?

In order of my preference:The souls of literature. Souls from the Library of AlexandriaCalculus. Nathan Coppedge's Math PagePerpetual motion. Nathan Coppedge's answer to Have there been any actual demonstrations of over-unity?Good metaphysics. Statues (Metaphysics)Objective knowledge. Nathan Coppedge's answer to What is categorical deduction?General Systems Theory. Systems Theory (Formal-, applied-, rubric-, etc.)Conventional engineering.Conventional physics.Solution to paradoxes. Nathan Coppedge's answer to What is a general method for solving all paradoxes?Psychic knowledge. Forms of Psychic PredictionSemantics, teleology, etc.Multi-lingualism, etc.Analogy, etc.Note: this list may be somewhat outdated. Some of my recent work may be more important.

What are some advantages and disadvantages of combining the session, presentation, and application layers in the OSI model into one single application layer in the Internet model?

I'd say the primary advantage is less queueing. When packets are transmitted and received, they are placed in receive and transmit queues at different levels, as they are passed along the layers. This introduces additional latency, and uses more memory. This can contribute to Buffer Bloat.When more layers are combined in one, the exchange of data between each layer is controlled by the application author, and thus it's easier to tune it.The obvious drawbacks I can see would be:Less reusability: Harder for other applications to use the same code for the session and/or presentation layers for example.Harder to maintain: Without clear separation, combining different layers’ functionality can lead to the code being overly tied together, and too complex, and thus harder to maintain.

TRENDING NEWS