Symbian3/SDK/Source/GUID-A9640739-462C-5D95-8DCC-D273CD8439AE.dita
changeset 7 51a74ef9ed63
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-A9640739-462C-5D95-8DCC-D273CD8439AE.dita	Wed Mar 31 11:11:55 2010 +0100
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A9640739-462C-5D95-8DCC-D273CD8439AE" xml:lang="en"><title>TCP/IP</title><shortdesc>This section describes the TCP/IP concepts as implemented by the
+Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The TCP/IP is a plug-in architecture. Clients access its services through
+the generic Sockets Server Client API, and specify protocol-specific behaviour
+through TCP/IP specific utility types and constants. </p>
+<p>The TCP/IP API has the following three key concepts: </p>
+<ul>
+<li id="GUID-7D1C1EC3-87D6-5C30-9671-63CDF8CDC05A"><p>TCP/IP Socket </p> </li>
+<li id="GUID-1412D36F-1834-56E7-A904-8C5577BFD841"><p>Domain Name Resolver </p> </li>
+<li id="GUID-A2A04887-0E9E-5A94-BD78-CAD2CB720343"><p>Internet Addresses </p> </li>
+</ul>
+<section id="GUID-6EDFE283-E780-4A9B-93B4-5E1FEA0EE906"><title>TCP/IP Socket</title> <p>The TCP/IP protocol module (tcpip.prt)
+provides TCP/IP communication services to client applications. This module
+provides the following four fundamental transport and network layer protocols: </p> <ul>
+<li id="GUID-4EE43C12-9065-5B5A-8DA1-C1D299408E41"><p>Internet Protocol (IP) <xref href="http://www.ietf.org/rfc/rfc791.txt" scope="external">RFC791</xref>  </p> </li>
+<li id="GUID-8219260F-D83C-575B-B92B-A9FF30E06100"><p>Internet Control Message
+Protocol (ICMP) <xref href="http://www.ietf.org/rfc/rfc792.txt" scope="external">RFC792</xref> and <xref href="http://www.ietf.org/rfc/rfc950.txt" scope="external">RFC950</xref>  </p> </li>
+<li id="GUID-18E9FDB7-EB17-5DEB-B075-6840F72B9F11"><p>Transmission Control
+Protocol (TCP) <xref href="http://www.ietf.org/rfc/rfc793.txt" scope="external">RFC793</xref>  </p> </li>
+<li id="GUID-509BB14D-7EF9-5768-A992-4A08B23204A5"><p>User Datagram Protocol
+(UDP) <xref href="http://www.ietf.org/rfc/rfc768.txt" scope="external">RFC768</xref>  </p> </li>
+</ul> <p>Clients do not access the protocol module directly. Clients use the
+protocol module through the Sockets Server Client API. The module also provides
+a DNS service that can be accessed through the Sockets Server Client API standard
+host name resolution interface, <xref href="GUID-5442E589-1BFB-39A0-98B3-3744E51F8386.dita"><apiname>RHostResolver()</apiname></xref>. Socket
+services are provided through the generic interface <xref href="GUID-66497E39-6A48-3B2C-BE17-5826210505AB.dita"><apiname>RSocket()</apiname></xref>.
+It is possible for TCP/IP services to be used over many types of network interface.
+To enable access to TCP/IP networks through a dial-up serial connection, Point-to-Point
+protocol (PPP) is provided. </p> </section>
+<section id="GUID-DCC92F00-9743-48D5-B93D-6CD61872F428"><title>Domain Name Resolver</title> <p>Domain name resolver is a
+program that extracts the information from name servers in response to client
+requests. The domain name resolution service uses the normal sockets API,
+for example, UDP and TCP to communicate with the name servers. Resolvers must
+access at least one name server and uses its information to answer a query
+directly. A resolver is a system procedure that is accessible to the user
+programs, for example, mail programs, TELNET and FTP. This indicates that
+the protocol is not required between the resolver and the user programs. </p> <p>A
+very important goal of the resolver is to eliminate the network delay and
+the load on the name server. </p> </section>
+<section id="GUID-62DA50B4-EA55-4975-9F35-D9C5F572E002"><title>Internet Addresses</title> <p>The TCP/IP program uses a socket
+address encapsulated in a <codeph>TInetAddr</codeph> object. The <codeph>TInetAddr</codeph> object
+stores the IP address and port of a socket. This is the expected form for
+passing address information when using <codeph>RSocket()</codeph> and <codeph>RHostResolver()</codeph> for
+TCP/IP. </p> <p>The TCP/IP program also handles IP addresses represented in
+the following formats: </p> <ul>
+<li id="GUID-0310B249-26DE-53E6-AA50-BEE114EA6E53"><p>As a dotted-decimal
+string, For example, 194.129.2.54 stored in a descriptor. </p> </li>
+<li id="GUID-D5BCC6F8-954D-564C-B9D6-032FED950F8F"><p>As an unsigned 32-bit
+integer - the usual binary representation of an IP address. This can be used
+to initialise a <codeph>TInetAddr</codeph> through the relevant constructor. </p> </li>
+<li id="GUID-C683FEEC-C3F5-5542-8AAA-2E1A76F3E1C5"><p>The 4 integers forms
+a dotted-decimal address and the macro INET_ADDR is used to convert this into
+integer format in the appropriate byte-order. </p> </li>
+</ul> <p> <b>Note:</b> All addresses are handled in the native byte order.
+It means the user do not need to use byte-order conversion functions, for
+example, BSD’s <xref href="GUID-1E24E920-D34A-38D4-98B1-6AE44B98113C.dita"><apiname>htonl()</apiname></xref> or <xref href="GUID-013170BC-E395-3887-8EE1-BBDBE5AD8C31.dita"><apiname>htons()</apiname></xref>. </p> </section>
+<section id="GUID-3D557650-275B-4359-8A61-03A345EEF947"><title>Routes and Interfaces</title> <p>The TCP/IP protocol must
+establish the following information to communicate with a remote host through
+a socket: </p> <ul>
+<li id="GUID-F9ABF503-6687-5B87-A082-C0844A36C0E6"><p>the IP address and port
+of the socket </p> </li>
+<li id="GUID-D3423B61-CBE1-58A4-83EF-9AD18BB018EE"><p>a route to the remote
+host </p> </li>
+<li id="GUID-85BA7CE9-93E0-58A7-A9D1-5E15FBF523FF"><p>a network interface
+by which to access that route </p> </li>
+</ul> <p>The actions to do this are performed when: </p> <ul>
+<li id="GUID-FA6AD28F-3EC9-5429-B5DE-CAEAF1633CDA"><p>A TCP socket is connected
+with <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-AC5A49E9-337D-334A-9CD0-DB8226372306"><apiname>RSocket::Connect()</apiname></xref>  </p> </li>
+<li id="GUID-02FA2CD0-AD09-5E9F-AF10-6018AA9D6001"><p>a UDP socket is written
+to with <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-ADE2383D-3075-30B4-8F63-6D837EB75AEF"><apiname>RSocket::Send()</apiname></xref>, <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-29825F33-D844-358A-8CCA-791AE167CDCE"><apiname>RSocket::Write()</apiname></xref> or <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-F948E0A6-DC1A-3FCD-A391-0FEE0F673D36"><apiname>RSocket::SendTo()</apiname></xref>  </p> </li>
+<li id="GUID-53FC4772-8A69-5514-A3F1-48E0FF1CC305"><p>A UDP socket is connected
+with <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita#GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0/GUID-AC5A49E9-337D-334A-9CD0-DB8226372306"><apiname>RSocket::Connect()</apiname></xref>  </p> </li>
+</ul> </section>
+</conbody><related-links>
+<link href="GUID-B8DEA3EE-7BA7-5A29-9A27-B87EE0EB254F.dita"><linktext>Accessing
+TCP/IP Sockets</linktext></link>
+<link href="GUID-182A7A60-80BD-5E54-917A-8F4C26BB94CB.dita"><linktext> Connecting
+and                 Disconnecting a remote host</linktext></link>
+<link href="GUID-3AAE78A4-75C5-5607-8775-43DFB43DCFE8.dita"><linktext> Getting
+and Setting IP                 Addresses</linktext></link>
+<link href="GUID-95C166C3-2A25-55FB-88BD-62B7EFED2F8E.dita"><linktext> Using Domain
+Name                 Resolution</linktext></link>
+</related-links></concept>
\ No newline at end of file