• 1.摘要
  • 2.基本信息
  • 3.发展历程
  • 3.1.基本简介
  • 3.2.发展过程
  • 4.主要内容
  • 4.1.服务类型
  • 4.2.数据格式
  • 4.3.相关词汇
  • 4.4.连接建立
  • 4.5.连接终止
  • 4.6.服务流程
  • 4.7.服务特点
  • 4.8.端口号
  • 4.9.序列号
  • 4.10.重传策略
  • 4.11.重置协议
  • 5.其他信息
  • 5.1.协议区别
  • 5.2.窗口确认
  • 5.3.状态机
  • 6.相关内容
  • 7.参考资料

TCP协议

计算机网络OSI模型

TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

基本信息

  • 中文名

    传输控制协议

  • 外文名

    Transmission Control Protocol

  • 词条

    TCP协议

  • 定义

    传输控制协议/网间协议是一种面向连接(连接导向)的可靠的基于字节流的运输层(Transport layer)通信协议

  • 数据格式

    字节流

  • 服务

    由套接字端点获得

  • 工作

    基本介绍

发展历程

基本简介

TCP协议

1TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的。它是由ARPANET网的研究机构发展起来的。

有时我们将TCP/IP描述为互联网协议集"InternetProtocolSuite",TCP和IP是其中的两个协议(后面将会介绍)。由于TCP和IP是大家熟悉的协议,以至于用TCP/IP或IP/TCP这个词代替了整个协议集。这尽管有点奇怪,但没有必要去争论这个习惯。例如,有时我们讨论NFS是基于TCP/IP时,尽管它根本没用到TCP(只用到IP和另一种交互式协议UDP,而不是TCP)。

TCP/IP的标准在一系列称为RFC的文档中公布。文档由技术专家、特别工作组、或RFC编辑修订。公布一个文档时,该文档被赋予一个RFC编号,如RFC959(FTP的说明文档)、RFC793(TCP的说明文档)、RFC791(IP的说明文档)等。最初的RFC一直保留而从来不会被更新,如果修改了该文档,则该文档又以一个新号码公布。因此,重要的是要确认你拥有了关于某个专题的最新RFC文档。通常在RFC的开头部分,有相关RFC的更新(update)、修改(errata)、作废(obsolete)信息,提示读者信息的时效性。详情请阅读网站RFC-editor。

发展过程

TCP的正式定义由1981年9月的RFC793 2 给出。随着时间的推移,已经对其做了许多改进,各种错误和不一致的地方逐渐被修复。

为了让你感受到TCP的扩展历程,现在重要的RFC有:RFC793plus澄清了说明,RFC1122  修复了bug、RFC1323 [5]  做了高性能扩展,RFC2018  定义了选择性确认,RFC2581说明了拥塞控制、RFC2873定义了为服务质量而重用的头字段,RFC2988  改进了重传计时器,RFC3168 [8]  定义了显式拥塞通知。完整的协议集合很大,因而专门发布了一个针对许多RFC的指南,它就是作为另一个RFC文档公布的RFC4614 3

主要内容

服务类型

不管怎样,TCP/IP是一个协议集。为应用提供一些"低级"功能,这些包括IP、TCP、UDP。其它是执行特定任务的应用协议,如计算机间传送文件、发送电子邮件、或找出谁注册到另外一台计算机。因此,最重要的"商业"TCP/IP服务有:4

FTP 文件传送(File Transfer)

文件传送协议FTP(File TransferProtocol)允许用户从一台计算机到另一台取得文件,或发送文件到另外一台计算机。从安全性方面考虑,需要用户指定一个使用其它计算机的用户名和口令。它不同于NFS(Network File System)和Netbios协议。一旦你要访问另一台系统中的文件,任何时刻都要运行FTP。而且你只能拷贝文件到自己的机器中去来使用它。RFC 959中有关于FTP的详尽说明。

RLogin 远程登录(Remote login)

网络终端协议TELNET允许用户登录到网络上任一计算机上。你可启动一个远程进程连接到指定的计算机,直到进程结束,期间你所键入的内容被送到所指定的计算机。值得注意的是,这时你实际上是与你的计算机进行对话。TELENET程序使得你的计算机在整个过程中不见了,所敲的每一个字符直接送到所登录的计算机系统。一般的说,这种远程连接是通过类式拨号连接的,也就是,拨通后,远程系统提示你输入注册名和口令,退出远程系统,TELNET程序也就退出,你又与自己的计算机对话了。微电脑中的TELNET工具一般含有一个终端仿真程序。

SMTP POP3 电子邮件(Mail)

允许你发送消息给其它计算机的用户。通常,人们趋向于使用指定的一台或两台计算机。计算机邮件系统只需你简单地往另一用户的邮件文件中添加信息,但随之产生问题,使用的微电脑的环境不同,还有重要的是宏(MACRO)不适合于接受计算机邮件。为了发送电子邮件,邮件软件希望连接到目的计算机,如果是微电脑,也许它已关机,或者正在运行另一个应用程序呢?出于这种原因,通常由一个较大的系统来处理这些邮件,也就是一个一直运行着的邮件服务器。邮件软件成为用户从邮件服务器取回邮件的一个界面。

任何一个的TCP/IP工具提供上述这些服务。这些传统的应用功能在基于TCP/IP的网络中一直扮演非常重要的角色。目前情况有点变化,这些功能使用也发生变化,如老系统的改造,计算机的发展等,出现了各种安装版本,如:微电脑、工作站、小型机、和巨型机等。这些计算机好像在一起完成指定的任务,尽管有时看来像是只用到某个指定的计算机,但它是通过网络得到其它计算机系统的服务。服务器Server是为网络上其它提供指定服务的系统,客户Client是得到这种服务的另外计算机系统。(值得注意的是,服务/客户机不一定是不同的计算机,有可能是同一计算机中的不同运行程序)。以下是几种目前计算机上典型的一些服务,这些服务可在TCP/IP网络上调用。