Reputation: 116980
I am not very clear about the idea of wire-level protocols. I heard BitTorrent uses it and read that a wirelevel protocol can be considered an opposite of API. I read RMI calls can be considered wirelevel protocols but am still a little confused. Can someone explain this in a better way?
Upvotes: 41
Views: 18776
Reputation: 3364
A wire-level protocol defines the rules of how to write to a pre-established network connection. In other words, setting up the communication channel (= connecting the wire) is not part of the protocol. What you put on "the wire" is. As such this is pretty synonymous with OSI Layer 7 protocols ("Application").
Imagine a terminal session that is synchronized between two machines. You sit on one machine, your friend on the other. Whatever each of you types into the terminal shows up on both machines. The channel is already established. Now, the wire-level protocol defines these rules of communication: how to write to this common channel? These protocols are often similar to a radio protocol, defining structure and sequence of messages. Note that you can also have two terminals, one each for receiving and sending. Also, you don't necessarily need to communicate in ASCII characters, but could send predefined or negotiated binary data.
Upvotes: 0
Reputation: 421
Quoting from wikipedia:
In computer networking, a wire protocol refers to a way of getting data from point to point: A wire protocol is needed if more than one application has to interoperate. In contrast to transport protocols at the transport level (like TCP or UDP), the term 'wire protocol' is used to describe a common way to represent information at the application level.
Upvotes: 0
Reputation: 319
Quoting the answer posted here
A wire-level protocol can be thought of as the complement of an API. Instead of defining functions and creating libraries, you define the conversational byte sequences that pass over a network to make things happen.
When a protocol is specified at the wire-level and published, most technologies can use it, or be made to use it. Compare this to an API, where the actual implementation is specific to the platform.
JMS is an API. HTTP is a protocol. AMQP delivers the middleware equivalent of HTTP while leaving it up to others to provide implementations.
Upvotes: 4
Reputation: 29301
I googled and found the following:
Examples:
Did you try this yourself? If so, what don't you understand?
Upvotes: 3
Reputation: 1503090
I wouldn't say that something uses a wire-level protocol or doesn't - I'd talk about which wire-level protocol it uses.
Basically, if something's communicating with a remote machine (even conceptually) then there's some data going across the network connection (the wire). The description of that data is the "wire-level protocol". Even within that, you would often stop short of describing individual network packets - so the wire protocol for a TCP-based protocol would usually be defined in terms of opening a connection, the data streams between the two computers, and probably details of when each side would be expected to close the connection.
Upvotes: 28