Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

Related

Package

Manual

Manual Pages

References

Conformance

Performance

Documentation

Design

Status

FAQ

IP Transport

SCTP

TCP

UDP

SSCOP

IP

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Transmission Control Protocol (TCP)

Description: OpenSS7 Project Manual Pages Internet Protocol IP Transport


TCP

Section: OpenSS7 INET Networking Devices (4)
Updated: 2008-10-31
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_INETSOCK_STREAMIPPROTO_TCP/dev/tcptpicots_ord
PF_INET6SOCK_STREAMIPPROTO_TCP/dev/tcptpicots_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 OpenSS7 INET Networking 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


OpenSS7 INET Networking: Package strinet version 0.9.2.7 released 2008-10-31.

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: 18:25:48 GMT, November 14, 2024
Last modified: Sun, 05 Mar 2006 08:34:24 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.