精华内容
下载资源
问答
  • TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式: (1)基于流的方式; (2)面向连接; (3)可靠通信方式; (4)在网络状况不佳的时候尽量降低...

    一、主要特点

    TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:

    (1)基于流的方式;
    (2)面向连接;
    (3)可靠通信方式;
    (4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
    (5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

    为满足TCP协议的这些特点,TCP协议做了如下的规定:

    ①数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组;

    ②到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认;

    ③超时重发:发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发分片;

    ④滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出;

    ⑤失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层;

    ⑥重复处理:作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据;

    ⑦数据校验:TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发。

    二、可靠性实现

    1、可靠性

    TCP通过下列方式来提供可靠性:

    1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)。

    2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开,则是立即确认。功能打开,则由定时器触发确认时间点。

    3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

    4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

    5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

    6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

       两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。
    如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。
    只要自己的接收缓存没有塞满,TCP 接收方将有多少就收多少。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。
    

    另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCⅡ字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。

    2、重传策略

    • TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重传,如果在重传超时前收到确认(Acknowlegement)就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选择重发时间的过程中,TCP必须具有自适应性。它需要根据互联网当时的通信情况,给出合适的重发时间。

    • 这种重传策略的关键是对定时器初值的设定。采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个变量RTT(Round Trip Time),用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的定时器,如果在定时器超时前确认到达,则记录所需要的时间(M),并修正RTT的值,如果定时器超时前没有收到确认,则将RTT的值增加1倍。通过测量一系列的RTT(往返时间)值,TCP协议可以估算数据包重发前需要等待的时间。在估计该连接所需的当前延迟时通常利用一些统计学的原理和算法(如Karn算法),从而得到TCP重发之前需要等待的时间值。

    3、窗口确认

    • TCP的一项功能就是确保每个数据段都能到达目的地。位于目的主机的TCP服务对接受到的数据进行确认,并向源应用程序发送确认信息。
    • 使用数据报头序列号以及确认号来确认已收到包含在数据段的相关的数据字节。
      TCP在发回源设备的数据段中使用确认号,指示接收设备期待接收的下一字节。这个过程称为期待确认。
      源主机在收到确认消息之前可以传输的数据的大小称为窗口大小。用于管理丢失数据和流量控制。这些变化如右图所示。
    展开全文
  • TCP服务流程

    千次阅读 2010-04-17 00:14:00
    TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立... 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务TCP提供一种面向连接的、可靠的字节流服务。 面向连接意

            TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。

         尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。

      面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。

      在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。

      TCP通过下列方式来提供可靠性:

    • 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)TCP如何确定报文段的长度。
    • 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。?当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒
    • TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。
    • 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
    • 既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。
    • TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

      两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。

      另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。

      这种对字节流的处理方式与Unix操作系统对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件与一个文本文件。

      TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手。

    TCP所提供服务的主要特点

      (1)面向连接的传输;

      (2)端到端的通信;

      (3)高可靠性,确保传输数据的正确性,不出现丢失或乱序;

      (4)全双工方式传输;

      (5)采用字节流方式,即以字节为单位传输字节序列;

      (6)紧急数据传送功能。

    展开全文
  • TCP

    千次阅读 2012-08-22 09:42:58
    TCP 求助编辑百科名片 TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified...

    TCP

    求助编辑百科名片

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

    编辑本段

    tcp作用

       在 因特网协议 族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
      应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算和校验。
      首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和 捎带确认机制。
      在流量控制上,采用 滑动窗口协议 ,协议中规定,对于窗口内未经确认的分组需要重传。
      在 拥塞控制 上,采用广受好评的TCP拥塞控制算法(也称AIMD算法),该算法主要包括三个主要部分:1,加性增、乘性减;2,慢启动;3,对超时事件做出反应。

    什么是TCP/IP?

      TCP/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 [1]

    编辑本段TCP所支持的服务类型

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

    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网络上调用。

    NFS 网络文件系统(Network File System)

      这种访问另一计算机的文件的方法非常接近于流行的 FTP 。网络文件系统提供磁盘或设备服务,而无需特定的网络实用程序来访问另一系统的文件。可以简单地认为它是一个外加的磁盘驱动器。这种额外\"虚拟\"磁盘驱动器就是其它计算机系统的磁盘。这非常有用。你只需加大几台计算机的磁盘容量,就可使网络上其他用户访问它,且不说所带来的经济效益,它还能够让几台工作的计算机共享相同的文件。它也使得系统维护和备份易如反掌,因为再不必为大量的不同机器上的文件的升级和备份而担心。

    远程打印(Remote Printing)

      允许你使用其它计算机上的打印机,好像这些打印机直接连到你的计算机上。

    远程执行(Remote Execution)

      允许你请求运行在不同计算机上的特殊程序。当你在一个很小的计算机上运行一个需要大机系统资源的程序时,这时候远程执行非常有用。

    名字服务器(Name Servers)

      在一个大的系统安装过程中,需要用到大量的各种名字,包括用户名、口令,姓名、网络地址、帐号等,管理这些是非常令人乏味的。因此将这些数据形成数据库,放到一个小系统中去,其它系统通过网络来访问这些数据。

    终端服务器(Terminal Servers)

      很多的终端连接安装不再直接将终端连到计算机,取而代之的是,将他们连接到终端服务器上。终端服务器是一个小的计算机,它只需知道怎样运行 TELNET (或其它一些完成远程登录的协议)。如果你的终端想连上去,只用键入要连的计算机名就可。通常有可能同时有几个这种连接,这时终端服务器采用快速开关技术来切换。
      上述所描述的一些协议是由Berkeley,Sun,或其它组织定义的。因此,它们不是互联网协议集(InternetProtocol Suite)的一部分,只是使用到TCP/IP的工具,如同一般的TCP/IP应用协议。因为协议的定义不一致,并且商业支持的TCP/IP工具广泛应用,也许会把这些协议作为互联协议集中的一部分。上述列出的只是基于TCP/IP部分服务的一些简单例子,但包含了一些\"主要\"的应用。

    首部图

      下图展示了TCP首部的数据格式。如果不计任选(Options)字段,那么,它的大小是20个字节。
      

    TCP首部的数据格式

    编辑本段TCP连接的建立与终止

    TCP连接的建立

      TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。
      

    TCP的三次握手

    TCP连接的终止

      建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
      

    TCP连接的终止

    编辑本段服务流程

      TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供 端到端 、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。
      尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。
      TCP提供一种面向连接的、可靠的字节流服务。
      面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。
      在一个TCP连接中,仅有两方进行彼此通信广播和 多播不能用于TCP。
      TCP通过下列方式来提供可靠性:
      1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)TCP如何确定报文段的长度。
      2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
      3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。
      4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
      5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。
      6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
      两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。
      另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCⅡ字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。
      这种对字节流的处理方式与Unix操作系统对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件与一个文本文件。
      TCP是因特网中的传输层协议,使用 三次握手协议 建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入 SYN_RECV 状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。

    编辑本段TCP所提供服务的主要特点

      1.面向连接的传输;
      2.端到端的通信;
      3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;
      4.全双工方式传输;
      5.采用字节流方式,即以字节为单位传输字节序列;
      6.紧急数据传送功能。

    编辑本段重传策略

      TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重发定时器,如果在定时器超时前收到确认就关闭该定时器,如果定时器超时前没有收到确认,则重传该数据段。
      这种重传策略的关键是对定时器初值的设定。目前采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个变量RTT,用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的定时器,如果在定时器超时前确认到达,则记录所需要的时间(M),并修正RTT的值,如果定时器超时前没有收到确认,则将RTT的值增加1倍。通过测量一系列的RTT(往返时间)值,TCP协议可以估算数据包重发前需要等待的时间。

    编辑本段端口号

      TCP段结构中端口地址都是16比特,可以有在0~65535范围内的 端口号 。对于这65536个端口号有以下的使用规定:
      1.端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用1~1023之间的端口号,是由IANA来管理的;
      2.客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号因存在时间很短暂又称临时端口号;
      3.大多数TCP/IP实现给临时端口号分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的。

    编辑本段TCP协议是如何确保数据传输高可靠性

      为了保证可靠性,发送的报文都有递增的序列号。序号和确认号用来确保传输的可靠性。此外,对每个报文都设立一个定时器,设定一个最大时延。对那些超过最大时延仍没有收到确认信息的报文就认为已经丢失,需要重传。

    编辑本段如何重置TCP/IP协议

      在Windows Server 2003(简称Windows 2003)的连接属性对话框中,如果点击“ Internet协议 (TCP/IP)选项,“卸载”按钮为灰色,是不可用的。这是因为 TCP/IP协议 是Windows Server 2003的核心组件,不能删除。
      如果我们需要将TCP/IP重置到原始状态,该怎么办呢?此时,我们可以借助“netsh”命令行工具来解决这一问题。在“运行”对话框中输入“cmd”,打开“ 命令提示符 ”窗口,然后输入命令行“netsh int ip reset resetlog.txt”或“netsh int ip resetc:\resetlog.txt”并按回车键。其中的“reset”命令可以重写与TCP/IP相关的注册表项“System\CurrentControlSet\Services\Tcpip\Parameters\”和“System\CurrentControlSet\Services\DHCP\Parame ters\”,运行以上命令的结果与删除并重新安装TCP/IP的效果相同。
      此外,两个命令行的不同之处仅仅在于“resetlog.txt”日志文件的存储位置有所区别。前者是将日志文件创建在当前文件夹中,而后者则指定了具体的保存路径。
       解决方法
      在这种情况下,如果需要重新安装 TCP/IP 以使 TCP/IP 堆栈恢复为原始状态。可以使用 NetShell 实用程序重置 TCP/IP 堆栈,使其恢复到初次安装操作系统时的状态。具体操作如下:
      1.单击 开始 --> 运行,输入 "CMD" 后单击 "确定";
      2.在命令行模式输入命令
      netsh int ip reset C:\resetlog.txt
      (其中,Resetlog. txt记录 命令结果的日志文件,一定要指定,这里指定了Resetlog.txt 日志文件及完整路径。)
      运行结果可以查看C:\resetlog.txt (咨询中可根据用户实际操作情况提供)
      运行此命令的结果与删除并重新安装 TCP/IP 协议的效果相同。
      注意
      本操作具有一定的风险性,请在操作前备份重要数据,并根据操作熟练度酌情使用。

    编辑本段如何正确设置TCP半开连接数

      如何 正确设置TCP半开连接数 呢? 网上有很多对设置半开数有一些误解.下面就介绍下这方面的知识.
      我们知道Windows XP.Vista 系统会对 TCP半开连接数 做出限制,其中系统限制的不是TCP的连接数量,而是TCP 的半开连接数,或者可以说成是并发连接数,也就是说限制的是在同一时间发起请求连接的TCP 数量,TCP 并发连接数,并不会影响系统的TCP 连接总数,通常我们用的P2P软件下载文件时对源的请求链接就是半开链接,一个半开链接,要么对方返回响应建立正常的TCP连接,要么超时断掉被释放,不会长时间存在的。
      国内用户所使用的某些P2P软件往往将自身的半开连接数设定的非常大,远远超过了系 统 限 制的10个,当这10个半开连接都被程序占用的时候,就会出现影响正常网络使用, 比如 WEB浏览器开启网页缓慢;当你遇到此种问题的时候,就需要修改TCP半开连接数限制了,很多P2P工具自身都有相应的TCP半开连接数设置,将其修改为小于系统当前半开连接数的值即可,降低TCP半开连接数并不会影响P2P软件的最大下载速度,更高的半开连接数所能获得的只是提升P2P下载达到最高速度的时间。
      一般这些软件没有提供相关的自定义设置,哪么就只有去修改系统的半开数连接了,但是修改成多少合适呢?如果你只是偶尔使用P2P工具来下载资料,并且不使用类似迅雷, 哇嘎 之类的 下载工具 ,哪么系统的TCP半开连接数不超过50为宜;对半开连接有特殊需要的朋友可以尝试修改到100左右。半开连接数没有必要设置得太大。因为每一个半开连接都会系统引起额外的系统资源开销,造成系统资源不足,而使系统运行缓慢. 严重的时间还可能使 系统崩溃 ,却不能带来传输速率在实质上的提高。例如,在P2P网络中,一个黑客可以通过散布虚假资源信息,引导大量客户端在短时间内试图与某个被攻击者建立连接,如果半开连接数设置过大,将导致系统崩溃(路由器梗死、防火墙瘫痪或者操作系统崩溃等)。还有其它很多DDoS攻击手段,限 制TCP半开连接数,可以有效地防止DDoS攻击。
      如果你使用的迅雷和电驴之类的P2P下载软件,软件都有TCP半开数方面的设置,按照软件的默认设置就可以,不必刻意去加大半开数. 这对下载速度并没有多大的帮助.
      下面是一些TCP半开连接数的知识:
      1.什么是TCP半开连接?
      半开TCP连接,简单地说就是发送了TCP连接请求,但还没有得到对方应答的状态(实际上要复杂些),也就是连接尚未完全建立起来,双方还无法进行通信交互的状态。
      2.XP限 制了TCP连接数量吗?
      其实XP SP2没有限 制TCP连接数量,只是限制了TCP半开连接数。
      3.半开连接数量限制对上传下载速度会影响吗?
      可以说几乎没有什么影响。半开连接数限制充其量仅会在连接时引入一点时延(从几毫秒到几百毫秒)而已。而数据交互是在已经建立的TCP连接上传输的,传输速率与半开连接数量无关。更何况P2P 协议本身还有排队、请求数据等,这些机制引入的时延都远远大于半开连接限制所带来的时延(例如,你连接了数百个对端,但是传输数据的却只有其中的几十个而已,其中大部分都处于等待或闲置状态)。因此,半开连接数限制对上传、下载速率几乎没有影响。
      4.TCP半开连接数量设置为多少比较好呢?
      最好不超过50。没有必要设置得太大。每一个半开连接都会系统引入额外的开销,过多的半开连接数只会导致系统资源紧张、不稳定甚至崩溃,却不能带来传输速率在实质上的提高。例如,在P2P网络中,一个黑客可以通过散布虚假资源信息,引导大量客户端在短时间内试图与某个被攻击者建立连接,如果半开连接数设置过大,将导致系统崩溃还有其它很多DDoS攻击手段。限制TCP半开连接数,可以有效地防止DDoS攻击。
      5.如何知道当前的传输速率?
      可以通过 任务管理器 的网络选项卡或者防火墙查看网卡实际传输了多少数据才是最准确的,下载软件显示的值并不一定是真实的。
      这里只是提醒大家不要相信什么TCP半开连接数量会明显提高传输速率的误传.

    编辑本段TCP公司简介[本段非计算机类]

      TechnicalConsumerProducts,INC之英文缩写TCP,是美国大型跨国光源公司,主要生产经营各种优质节能光源、灯具及相关照明电器产品。1997年,全球第一支高品质螺旋型节能灯在美国TCP公司问世,一经推出即得到国际照明行业的高度评价,并受到美国消费者的普遍欢迎。TCP公司当年即荣获全美节能灯销售第一的桂冠。随着TCP不断追求技术创新,产品品质不断提升,其数百款光源产品均通过了国际能效认证机构ENERGYSTAR(能源之星)的认证,多年保持美国销量第一的殊荣,产品行销全球许多国家。TCP也成为美国、加拿大等北美地区最著名的光源品牌之一。
      上个世纪末,TCP来到中国,在上海市及江苏省投资数亿兴建了多家现代照明生产基地,员工总数已超过14000人,工程技术人员占15%。TCP全资控股的上海振欣电子工程有限公司,镇江强凌电子有限公司、扬州强凌电子有限公司以及淮安强凌电子有限公司每天有超过140万只的高品质节能灯光源出口到美国等西方发达国家。2004年,美国TCP(上海)天灿宝照明电器有限公司成立,其专门负责高品质的TCP光源及灯具产品在中国国内的销售和服务。在前期市场导入阶段,TCP在上海、北京已取得成功的销售业绩,数百家大型机构抢先分享了TCP照明科技。
      TCP“让照明成为享受”的理念,正走向中国日益发展的新生活。
      制造理念:高品质、高可靠性、高一致性、低价位
      企业精神:诚信、发展、创新、超越
      企业座右铭:你想要一个稳定的世界,必须创造一个世界。
      品牌战略:做世界上最好的节能光源,让照明成为享受。
      产品战略:让所有使用白炽灯的地方都可以用节能灯代替。
      营销战略:以上海、北京、广州为中心,逐步建立遍布全国的营销组织网络。

    编辑本段TCP协议和UDP协议的区别

      1,TCP协议面向连接,UDP协议面向非连接
      2,TCP协议传输速度慢,UDP协议传输速度快
      3,TCP协议保证数据顺序,UDP协议不保证
      4,TCP协议保证数据正确性,UDP协议可能丢包
      5,TCP协议对系统资源要求多,UDP协议要求少
      TCP = Transmission Control Protocol 传输控制协议

    编辑本段TCP窗口确认

      TCP的一项功能就是确保每个数据段都能到达目的地。位于目的主机的TCP服务对接受到的数据进行确认,并向源应用程序发送确认信息。
      使用数据报头序列号以及确认号来确认已收到包含在数据段的相关的数据字节。
      TCP在发回源设备的数据段中使用确认号,指示接收设备期待接收的下一字节。这个过程称为 期待确认
      源主机在收到确认消息之前可以传输的数据的大小称为 窗口大小 。用于管理丢失数据和流量控制。

    编辑本段状态机

      在TCP操作过程中,会经历一些状态的改变,这些变化如下图所示:

    常用的应用层协议有:

    运行在 TCP协议上的协议:
    • HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
    • HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
    • FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
    • POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
    • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件 。
    • TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
    • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
    运行在 UDP协议上的协议:
    • BOOTP(Boot Protocol,启动协议),应用于无盘设备。
    • NTP(Network Time Protocol,网络时间协议),用于网络同步。


    展开全文
  • TCP与UDP各自特点对比

    2019-07-07 13:53:02
    UDP和TCP是我们最常用的两种通信方式,下面就两者之间的特点做一个对比: 1、UDP主要用在实时性要求高以及对质量相对较弱的地方,如流媒体。 2、TCP既然是面向连接的,那么运行环境必然要求其保证可靠性,具有不可...

    UDP和TCP是我们最常用的两种通信方式,下面就两者之间的特点做一个对比:

     1、UDP主要用在实时性要求高以及对质量相对较弱的地方,如流媒体。

     2、TCP既然是面向连接的,那么运行环境必然要求其保证可靠性,具有不可丢包、有良好的拥塞控制机制,如http ftp telnet。

     3、TCP容易阻塞,UDP容易丢包。

     4、TCP是保证质量不保证速度,UDP保证速度但不保证质量。

     5、TCP耗系统资源多,UDP耗系统资源少。

     6、TCP需要应用层做消息定界,而UDP不需要。

     7、对于需要保证可靠性的应用,在UDP的基础上再实现轻量级错误重传机制是一种折中的做法,这样既像UDP那样方便使用又能像TCP那样满足可靠性要求。

     

    转载于:https://www.cnblogs.com/james1207/p/3303990.html

    展开全文
  • TCP与UDP协议的特点及区别小结;TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
  • TCP/IP-17-TCP

    千次阅读 2008-10-10 09:56:00
    第17章TCP:传输控制协议17.1 引言本章将介绍TCP为应用层提供的服务,以及TCP首部中的各个字段。随后的几章我们在了解TCP的工作过程中将对这些字段作详细介绍。对TCP的介绍将由本章开始,并一直包括随后的7章。第18...
  • TCP学习笔记

    千次阅读 2012-08-19 17:09:23
    TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中...
  • 2.1.3 TCP/IP的体系结构和特点

    千次阅读 2006-11-09 10:19:00
    ISO/OSI网络的七层结构模型 网络设计者在解决网络体系结构时经常使用ISO/OSI(国际标准化组织/开放系统互联)七... 网络应用程序不是直接与TCP/IP核心打交道,而是通过网络应用编程接口(套接字,socket)实现的。
  • TCP/IP

    千次阅读 2007-12-11 20:58:00
    TCP/IP1、TCP/IP体系结构1.1、互联网络 互连不同的物理网络:不同的传输介质,不同的介质访问方法,不同的物理编址、寻址...使用TCP/IP提供的通信服务,实现用户进程之间的通信,大多采用客户机/服务器模型进行通信运
  • TCP传输控制协议

    千次阅读 2010-01-12 12:40:00
     尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。 TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据...
  • #TCP/IP# TCP头部选项功能详解

    万次阅读 2019-10-26 14:16:40
    简单回顾下TCP报文格式 1)TCP报文:由 TCP首部 和 TCP数据 组成。 2)TCP首部:由 20字节的固定长度 和 可变长字段(选项和填充)组成。 3)TCP首部总长度:由TCP头中的“数据偏移”字段决定。该字段占4bit,...
  • 但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地讲,通信双方不是主机,而是主机中的进程。主机中常常有多个应用进程同时在与外部通信(比如你的浏览器和 QQ 在同时...
  • Network 【TCP/IP 四层模型】

    万次阅读 2016-08-06 10:08:04
    01 TCP/IP 四层模型 02 连接层/网络层 的区别 03 传输层中 TCP/UDP 的区别 04 三次握手 05 Socket
  • TCP protocol详解:

    千次阅读 2010-03-09 20:26:00
    TCP/IP详解 1 概述 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议组件允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。TCP/IP起源于...
  • TCP和UDP具体编程时的区别

    千次阅读 2011-01-02 17:45:00
    TCP和UDP 编程时的区别
  • HTTP是一个基于TCP/IP通信协议来传送数据的。 HTTP就是客服端→服务端的数据传输。 大致工作流程: (1)客户与服务器建立连接; (2)客户向服务器提出请求; (3)服务器接受请求,并根据请求返回相应的文件作为...
  • 【动画详解】TCP 三次握手和四次挥手图文详解

    万次阅读 多人点赞 2019-09-03 21:44:00
    TCP/IP 协议可以说是整个互联网的基石。” 01 — TCP 是什么? 为了直接认识 TCP 是什么,直接在命令行执行: tcpdump是在linux下的一款很好用的抓包工具,(运行此命令需要...
  • TCP/UDP协议基本概念

    2019-10-26 00:10:11
    TCP和UDP协议是TCP/IP协议的...其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的...
  • TCP/IP基础知识和原理

    千次阅读 2013-07-06 15:14:17
    注:以下内容是对互联网内容的二次加工! 一、单项选择题 ...TCP/IP体系结构中的TCP和IP所提供的服务分别为(  D ) D.传输层服务和网际层服务 3、因特网的前身是(  C ) C. ARPANET 
  • 因特网与TCP/IP

    千次阅读 2008-10-30 13:35:00
    第15章 因特网与TCP/IP 因特网(Internet)是全世界使用TCP/IP协议堆和网关设备(gateway)组成的网络,TCP/IP实际上已成为因特网的代名词。为对多媒体网络应用有比较深入的理解,就需要了解因特网的基本术语、结构和...
  • TCP/IP网络体系结构中,TCP(传输控制协议,Transport Controll Protocol、UDP(用户数据报协议,User Data Protocol)是传输层最重要的两种协议,为上层用户提供级别的通信可靠性。 传输层的功能 传输层的主要...
  • tcp疑难杂症1

    千次阅读 2017-10-12 15:42:48
    转自http://link.zhihu.com/?target=https%3A//www.qcloud.com/community/article/164816001481011785%3Futm_source%3DCommunity%26utm_medium%3Darticle164816001481011959%26utm_campaign%3DCommunity...说到TCP协...
  • 项目修炼之路(2)测试-TCPCopy

    千次阅读 2016-01-26 15:00:59
    上篇博客中,我们介绍了服务化的相关特点,这篇博客主要给大家介绍在预上线之前做的tcpcopy测试。
  • 面试之路(4)-TCP/IP/HTTP概述

    千次阅读 2016-04-20 00:26:06
    tcp/ip基础知识TCP/IP全称是Transmission Control Protocol/Internet Protocol。IP地址共32位,4字节。IP地址分为两部分:网络标识和主机标识。A类IP地址:第一段为网络标识,剩下三段为主机标识。网络地址最高位...
  • 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。那么从哪说起呢?当然是从...
  • 在”从TCP三次握手说起–浅析TCP协议中的疑难杂症(1)“文章中,我们提到第6个疑问:TCP的头号疼症TIME_WAIT状态,下面我们继续这个问题的解答。
  • TCP粘包问题由于TCP协议是基于字节流且无边界的传输协议, 因此很有可能产生粘包问题, 问题描述如下 对于Host A 发送的M1与M2两个各10K的数据块, Host B 接收数据的方式不确定, 有以下方式接收: 先接收M1,...
  • VC++分析数据包实现TCP协议的分析

    千次阅读 2012-11-07 18:10:27
    TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它...
  • TCP/IP体系结构

    千次阅读 2008-04-01 14:37:00
    其中TCP是提供传输层服务,而IP则是提供网络层服务TCP/IP包括以下协议:(结构如图1.1) (图1.1) IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP, UDP提供分组发送...
  • 转载和积累系列 - TCP协议详解

    千次阅读 2015-06-16 17:35:41
    传输层的复用和分用功能都要通过端口才能实现序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据的第一个字节的序号确认号: 占 4 字节,是期望收到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,277
精华内容 6,910
关键字:

下列不是tcp服务的特点