Transmission Control Protocol (TCP)
Description: OpenSS7 Project Manual Pages Internet Protocol IP Transport
TCP
Section: The OpenSS7 Project Devices (4)
Updated: Tue, 18 Nov 2008 20:30:15 GMT
Index
Return to Main Contents
NAME
tcp
- Transmission Control Protocol (TCP)
SYNOPSIS
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <sys/tpi_tcp.h>
#include <sys/xti_tcp.h>
-
int tcp_stream = open(/dev/tcp, flags);
-
int tcp_xtistr = t_open(/dev/tcp, flags);
-
int tcp_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
DESCRIPTION
TCP
is an implementation of the Transmission Control Protocol
(TCP)
defined in RFC 793[1],
RFC 1122[2]
and RFC 2001[3]
with the NewReno and SACK extensions.
It provides a reliable, stream oriented, full duplex connection between two
transport endpoints on top of
ip(7).
TCP
guarantees that the data arrives in order and retransmits lost packets. It
generates an checks a per-packet checksum to catch transmission errors.
TCP
does not preserve record boundaries.
TCP
is implemented as a
STREAMS(4)
pseudo-driver using the
INET(4)
strinet
package for
Linux Fast-STREAMS[4].
The
strinet
package translates Linux native
tcp(7)
sockets into TPI[5]
transport provider streams suitable for use with XTI[6, 7],
(see
xti(3)).
TCP
provides one TPI connection-oriented stream type with orderly release. To select the stream,
tcp_device
can be one of the following:
- /dev/tcp or /dev/inet/tcp.
- This device provides the
TCP
protocol services using the T-primitives of the Transport Provider Interface[5],
tpi(7),
used for the Transmission Control Protocol, as described in
tpi_tcp(7).
The
tpi(7)
interface provided on a stream opening this device is suitable for use with
the
xnet(3)
or
xti(3)
library and provides
TCP
interface using XTI[6, 7]
as described in
xti_tcp(3).
TCP
provides one socket type for use by the
sockets(3)
library
socket(7)
calls.
TCP
provides sockets in the protocol families
PF_INET and PF_INET6
using the protocol number
IPPROTO_TCP.
The
socket_type
argument can be one of the following:
- SOCK_STREAM
- A standard
SOCK_STREAM
socket that does not preserve message boundaries, Nagles at the transport
connection level, and provides ordered and out-of-band unacknowledged delivery
on a single stream. This socket uses the underlying Linux socket
implementation,
tcp(7),
directly. See
tcp(7)
for more information.
The following entires in /etc/protosw provides the information for
socksys(4)
to use the devices:
PF_INET | SOCK_STREAM | IPPROTO_TCP | /dev/tcp | tpi | cots_ord
|
PF_INET6 | SOCK_STREAM | IPPROTO_TCP | /dev/tcp | tpi | cots_ord
|
For additional information, see
socksys(4)
and
protosw(5).
IOCTLS
All interfaces support a set of management IO controls using
ioctl(2)
and
streamio(7)
I_STR
system calls on the
tcp_stream, tcp_xtistr or tcp_socket.
These management controls are described in
timod(4), sockmod(4) and socksys(4).
See also
tcp(7)
for sockets.
NOTICES
TCP
has several implementations. This manpage is for the
INET(4)
implementation that provides
tpi(7)
access to the Linux NET4 version of
TCP.
For more information on the Linux NET4 version, see
tcp(7).
FILES
<sys/socket.h>,
<netinet/tcp.h>,
<sys/tpi.h>,
<sys/tpi_ip.h>,
<sys/tpi_tcp.h>,
<sys/xti.h>,
<sys/xti_ip.h>,
<sys/xti_tcp.h>.
DEVICES
/dev/tcp,
/dev/inet/tcp.
SEE ALSO
INET(4),
ioctl(2),
ip(7),
STREAMS(9),
protosw(5),
socket(7),
sockets(3),
sockmod(4),
socksys(4),
STREAMS(4),
tcp(7),
tcp_ioctl(4),
timod(4),
tpi(7),
tpi_ip(7),
tpi_tcp(7),
xnet(3),
xti(3),
xti_ip(3),
xti_tcp(3).
BUGS
TCP
has no known bugs.
COMPATIBILITY
The
The OpenSS7 Project
implementation of
TCP
for
STREAMS
is largely compatible with
STREAMS-based
implementations such as Lachman or Mentat TCP/IP stacks and
Solaris®
documentation[8].
CONFORMANCE
XNS 5.2[7].
Conformance is validated using the
test-inet_tcp(8)
validation test suite executable.
HISTORY
strinet 0.8.2
was released in 2002 and was since part of the Linux STREAMS (LiS)[9]
package, and is now part of
Linux Fast-STREAMS[4].
A second generation driver was started in 2006 but not completed.
The first generation driver was upgraded significantly in
strinet 0.9.2.7
release in 2008.
REFERENCES
- [1]
- RFC 793/STD 7,
Transmission Control Protocol, DARPA Internet Program, Protocol Specification, September 1981, J. Postel, ed., The Internet Society.
(Also STD0007) (Updated by RFC 3168) (Status: STANDARD)
<http://www.ietf.org/rfc/rfc0793.txt>
- [2]
- RFC 1122,
Requirements for Internet Hosts -- Communication Layers, October 1989, Robert Braden, ed., The Internet Society.
<http://www.ietf.org/rfc/rfc1122.txt>
- [3]
- RFC 2001,
TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, January 1997, W. Richard Stevens, ed., The Internet Society.
<http://www.ietf.org/rfc/rfc2001.txt>
- [4]
- streams-0.9.2,
Linux Fast-STREAMS (LfS) 0.9.2 Source Code, Brian Bidulock, ed., OpenSS7 Corporation.
<http://www.openss7.org/>
- [5]
- TPI Revision 2.0.0,
Open Group CAE Specification:
Transport Provider Interface (TPI) Specification, Revision 2.0.0, Draft 2, 1999, (Berkshire, UK), OpenGroup, Open Group Publication.
<http://www.opengroup.org/onlinepubs/>
- [6]
- XTI/TLI Revision 1.0,
Open Group CAE Specification:
XOpen Transport Interface, Revision 1, n.d., (Berkshire, UK), XPG, X Programmer's Group.
<http://www.opengroup.org/onlinepubs/>
- [7]
- XNS,
Open Group CAE Specification:
Technical Standard: Network Services (XNS), Issue 5.2, Draft 2, 1999, (Berkshire, UK), OpenGroup, Open Group Publication.
[ISBN 1-85912-241-8]
<http://www.opengroup.org/onlinepubs/>
- [8]
- Solaris® 8,
Solaris 8 Docmentation, 2001, (Santa Clara, California), Sun Microsystems, Inc., Sun.
<http://docs.sun.com/>
- [9]
- LIS 2.18,
Linux STREAMS (LiS) 2.18.6 Source Code, Brian Bidulock, ed., OpenSS7 Corporation.
<http://www.openss7.org/>
TRADEMARKS
- OpenSS7tm
- is a trademark of OpenSS7 Corporation.
- Linux®
- is a registered trademark of Linus Torvalds.
- UNIX®
- is a registered trademark of The Open Group.
- Solaris®
- is a registered trademark of Sun Microsystems.
Other trademarks are the property of their respective owners.
IDENTIFICATION
-
The OpenSS7 Project: Package OpenSS7 version 0.9.2 released Tue, 18 Nov 2008 20:30:15 GMT.
Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
(See roff source for permission notice.)
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- IOCTLS
- NOTICES
- FILES
- DEVICES
- SEE ALSO
- BUGS
- COMPATIBILITY
- CONFORMANCE
- HISTORY
- REFERENCES
- TRADEMARKS
- IDENTIFICATION
This document was created by
man2html,
using the manual pages.
Time: 20:30:15 GMT, November 18, 2008