RFC 3117:On the Design of Application Protocols
RFC-Ref

application protocol


Click on the red underlined text to get to the source

... SMTP [1] is close to being the perfect application protocol: it solves a large, important problem in a minimalist way. It's simple enough for an entry-level implementation to fit on one or two screens ...
... oddities (e.g., SAML), the design is well conceived and the resulting specification is well-written and largely self-contained. There is very little about good application protocol design that you can't learn by reading the SMTP specification. ...
... Unfortunately, there's one little problem: SMTP was originally published in 1981 and since that time, a lot of application protocols have been designed for the Internet, but there hasn't been a lot of ...
... have been designed for the Internet, but there hasn't been a lot of reuse going on. You might expect this if the application protocols were all radically different, but this isn't the case: most are surprisingly similar in their functional behavior, even though the ...
... architecture, we realized that we needed to have a protocol for exchanging Blocks. The conventional wisdom is that when you need an application protocol, there are four ways to proceed: 1. find an existing exchange protocol that (more or less) does what ...
... The most appealing option is to find an existing protocol and use that. (In other words, we'd rather "buy" than "make".) So, we did a survey of many existing application protocols and found that none of them were a good match for the semantics of the protocol we needed. ...
... semantics of the protocol we needed. For example, most application protocols are oriented toward client/server behavior, and emphasize the client ...
... stringent than most, could fit inside a framework suitable for a large number of future application protocols. The trick is to avoid the kitchen-sink approach. (Dave Clark has a saying: "One of the roles ...


... ...if you're willing to make the problem small enough. Our most important step is to limit the problem to application protocols that exhibit certain features: o they are connection-oriented ...
... First, we're only going to consider connection-oriented application protocols (e.g., those that work on top of TCP [7]). Another branch ...
... reliability service above the transport layer in the application protocol itself. Second, we're only going to consider message-oriented application protocols ...
... application protocol itself. Second, we're only going to consider message-oriented application protocols. A "message" -- in our lexicon -- is simply structured data exchanged between loosely-coupled systems. Another branch in the taxonomy ...
... one function.) Finally, we're going to consider the needs of application protocols that exchange messages asynchronously. The classic client/server model ...
... client/server model is a proper subset of the peer-to-peer model: it's acceptable for a particular application protocol to dictate that the peer that establishes the connection always acts as the client ...


... The next step is to look at the tasks that an application protocol must perform and how it goes about performing them. Although an exhaustive exposition might identify a dozen (or so) areas, the ones ...
... An application protocol needs a mechanism for conveying error information between peers. The first formal method for doing this ...
... occur in the second and third positions. Virtually all of the application protocols we've discussed thus far use the three-digit reply codes, although there is less coordination ...
... use the three-digit reply codes, although there is less coordination between the designers of different application protocols than most would care to admit. (A variation on the theory of reply codes is ...
... In addition to conveying a reply code, most application protocols also send a textual diagnostic suitable for human, not machine, consumption. (More accurately, the textual diagnostic is suitable ...
... accompanying positive responses, e.g., prayer wheels [39]. Regardless, some of the more modern application protocols include a language localization parameter for the diagnostic text. ...
... o a reply code is used both to signal the outcome of an operation and a change in the application protocol's state; and, ...
... Few application protocols today allow independent exchanges over the same connection. In fact, the more widely implemented approach is to ...
... Perhaps for historical (or hysterical) reasons, most application protocols don't do authentication. That is, they don't authenticate ...
... TLS [22], is available to all application protocols, e.g., SMTP and ACAP [23 ...
... traffic and the other for secured traffic); in contrast, by today's conventions, a server implementing an application protocol that is specified as TLS-enabled (e.g., [24 ...
... Let's briefly compare the properties of the three main connection- oriented application protocols in use today: Mechanism ESMTP ...


... When we design an application protocol, there are a few properties that we should keep an eye on. ...
... A well-designed protocol is scalable. Because few application protocols support asynchrony, a common trick is for a program to open multiple simultaneous connections to a ...
... and the server view each connection as an independent instance of the application protocol, and this causes problems. In terms of the transport layer ...
... connection, the program still sees additional latency. To deal with the fact that a lack of asynchrony in application protocols causes implementors to make sloppy use of the transport layer ...
... more important than efficiency. Of course, if we were designing a network protocol instead of an application protocol, then we'd make the trade-offs using a razor with a different edge. ...
... A well-designed protocol is simple. Here's a good rule of thumb: a poorly-designed application protocol is one in which it is equally as "challenging" to do something basic as it is to do something complex. Easy things should be easy to do ...
... pain should be proportional to the gain. Another rule of thumb is that if an application protocol has two ways of doing the exact same thing, then there's a problem somewhere in the architecture ...
... of doing the exact same thing, then there's a problem somewhere in the architecture underlying the design of the application protocol. Hopefully, simple doesn't mean simple-minded ...
... A well-designed protocol is extensible. As clever as application protocol designers are, there are likely to be unforeseen problems that the application protocol will be asked to ...
... As clever as application protocol designers are, there are likely to be unforeseen problems that the application protocol will be asked to solve. So, it's important to provide the hooks that can be used to add functionality or customize behavior. This means that the ...


... Finally, we get to the money shot: here's what we did. We defined an application protocol framework called BXXP (the Blocks eXtensible eXchange Protocol). The reason it's a "framework ...
... Blocks eXtensible eXchange Protocol). The reason it's a "framework" instead of an application protocol is that we provide all the mechanisms discussed earlier without actually specifying the kind of messages that get exchanged. So, when someone else needs an application protocol ...
... application protocol is that we provide all the mechanisms discussed earlier without actually specifying the kind of messages that get exchanged. So, when someone else needs an application protocol that requires connection-oriented, asynchronous ...
... interactions, they can start with BXXP. It's then their responsibility to define the last 10% of the application protocol, the part that does, as we say, "the useful work". ...
... We purposefully excluded two things that are common to most application protocols: naming and authorization. ...
... framework for naming things. To our view, this remains a domain-specific problem for each application protocol. Maybe URIs are appropriate in the context of a ...
... context of a particularly problem domain, maybe not. So, when an application protocol designer defines their own profile to do "the useful work", they'll have to deal with naming issues themselves. BXXP provides a ...
... authorization. Of course, application protocols do have to deal with naming and authorization -- those are two of the issues addressed by the ...
... TCP connection. For a complete example of an application protocol defined using BEEP, look at reliable syslog [37 ...
... 37]. This document exemplifies the formula: application protocol = BEEP + 1 or more profiles ...



Google
Web
RFC-Ref