Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 525

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- Introduction</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/diameter-1.3.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Diameter</strong><br><strong>User's Guide</strong><br><small>Version 1.3</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Chapters</strong></small></p>
<ul class="flipMenu" imagepath="../../../../doc/js/flipmenu">
<li id="loadscrollpos" title="Introduction" expanded="true">Introduction<ul><li><a href="diameter_intro.html">
              Top of chapter
            </a></li></ul>
</li>
<li id="no" title="Usage" expanded="false">Usage<ul><li><a href="diameter_using.html">
              Top of chapter
            </a></li></ul>
</li>
<li id="no" title="Examples" expanded="false">Examples<ul><li><a href="diameter_examples.html">
              Top of chapter
            </a></li></ul>
</li>
<li id="no" title="Standards Compliance" expanded="false">Standards Compliance<ul>
<li><a href="diameter_soc.html">
              Top of chapter
            </a></li>
<li title="RFC 6733"><a href="diameter_soc.html#id60952">RFC 6733</a></li>
<li title="RFC 3539"><a href="diameter_soc.html#id61761">RFC 3539</a></li>
</ul>
</li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<h1>1 Introduction</h1>


<p>
The diameter application is an implementation of the Diameter protocol
as defined by RFC 6733.
It supports arbitrary Diameter applications by way of a
<strong>dictionary</strong> interface that allows messages and AVP's to be
defined and input into diameter as configuration.
It has support for all roles defined in the RFC: client, server and
agent.
This chapter provides a short overview of the application.</p>

<p>
A Diameter node is implemented by configuring a <strong>service</strong> and
one or more <strong>transports</strong> using the interface module
<span class="bold_code"><a href="diameter.html">diameter</a></span>.
The service configuration defines the Diameter applications to be
supported by the node and, typically, the capabilities that it should
send to remote peers at capabilities exchange upon the establishment
of transport connections.
A transport is configured on a service and provides protocol-specific
send/receive functionality by way of a transport interface defined by
diameter and implemented by a transport module.
The diameter application provides two transport modules: <span class="bold_code"><a href="diameter_tcp.html">diameter_tcp</a></span> and <span class="bold_code"><a href="diameter_sctp.html">diameter_sctp</a></span> for transport over TCP
(using <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','kernel','gen_tcp.html');">gen_tcp</a></span>) and SCTP
(using <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','kernel','gen_sctp.html');">gen_sctp</a></span>) respectively.
Other transports can be provided by any module that implements
diameter's <span class="bold_code"><a href="diameter_transport.html">transport
interface</a></span>.</p>

<p>
While a service typically implements a single Diameter node (as
identified by an Origin-Host AVP), transports can themselves be
associated with capabilities AVP's so that a single service can be
used to implement more than one Diameter node.</p>

<p>
Each Diameter application defined on a service is configured with a
callback module that implements the <span class="bold_code"><a href="diameter_app.html">application interface</a></span> through which
diameter communicates the connectivity of remote peers, requests peer
selection for outgoing requests, and communicates the reception of
incoming Diameter request and answer messages.
An application using diameter implements these application callback
modules to provide the functionality of the Diameter node(s) it
implements.</p>

<p>
Each Diameter application is also configured with a
dictionary module
that provide encode/decode functionality for outgoing/incoming
Diameter messages belonging to the application.
A dictionary module is generated from a <span class="bold_code"><a href="diameter_dict.html">dictionary file</a></span> using the <span class="bold_code"><a href="diameterc.html">diameterc</a></span> utility.
Dictionaries for the RFC 6733 Diameter Common Messages, Base
Accounting and Relay applications are provided with the diameter
application.</p>

</div>
<div class="footer">
<hr>
<p>Copyright © 2011-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>