tcp私有协议(TCp协议)

      最后更新:2024-03-20 11:43:12 手机定位技术交流文章

      TCP-IP协议具有怎样的功能?请分别讲述

      什么是TCP/IP协议,划为几层,各有什么功能? TCP/IP协议族包含了很多功能各异的子协议。为此我们也利用上文所述的分层的方式来剖析它的结构。TCP/IP层次模型共分为四层:应用层、传输层、网络层、数据链路层。TCP/IP网络协议TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网间网协议)是目前世界上应用最为广泛的协议,它的流行与Internet的迅猛发展密切相关—TCP/IP最初是为互联网的原型ARPANET所设计的,目的是提供一整套方便实用、能应用于多种网络上的协议,事实证明TCP/IP做到了这一点,它使网络互联变得容易起来,并且使越来越多的网络加入其中,成为Internet的事实标准。* 应用层—应用层是所有用户所面向的应用程序的统称。ICP/IP协议族在这一层面有着很多协议来支持不同的应用,许多大家所熟悉的基于Internet的应用的实现就离不开这些协议。如我们进行万维网(WWW)访问用到了HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、 远程登录用Telnet协议等等,都是属于TCP/IP应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。* 传输层—这一层的的功能主要是提供应用程序间的通信,TCP/IP协议族在这一层的协议有TCP和UDP。* 网络层—是TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输,IP协议就是一个网络层协议。* 网络接口层—这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。1.TCP/UDP协议TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。IP协议的定义、IP地址的分类及特点什么是IP协议,IP地址如何表示,分为几类,各有什么特点?为了便于寻址和层次化地构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能, 包括IP数据报规定互连网络范围内的IP地址格式。Internet 上,为了实现连接到互联网上的结点之间的通信,必须为每个结点(入网的计算机)分配一个地址,并且应当保证这个地址是全网唯一的,这便是IP地址。目前的IP地址(IPv4:IP第4版本)由32个二进制位表示,每8位二进制数为一个整数,中间由小数点间隔,如159.226.41.98,整个IP地址空间有4组8位二进制数,由表示主机所在的网络的地址(类似部队的编号)以及主机在该网络中的标识(如同士兵在该部队的编号)共同组成。为了便于寻址和层次化的构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。* A类地址:A类地址的网络标识由第一组8位二进制数表示,网络中的主机标识占3组8位二进制数,A类地址的特点是网络标识的第一位二进制数取值必须为“0”。不难算出,A类地址允许有126个网段,每个网络大约允许有1670万台主机,通常分配给拥有大量主机的网络(如主干网)。* B类地址:B类地址的网络标识由前两组8位二进制数表示,网络中的主机标识占两组8位二进制数,B类地址的特点是网络标识的前两位二进制数取值必须为“10”。B类地址允许有16384个网段,每个网络允许有65533台主机,适用于结点比较多的网络(如区域网)。* C类地址:C类地址的网络标识由前3组8位二进制数表示,网络中主机标识占1组8位二进制数,C类地址的特点是网络标识的前3位二进制数取值必须为“110”。具有C类地址的网络允许有254台主机,适用于结点比较少的网络(如校园网)。为了便于记忆,通常习惯采用4个十进制数来表示一个IP地址,十进制数之间采用句点“.”予以分隔。这种IP地址的表示方法也被称为点分十进制法。如以这种方式表示,A类网络的IP地址范围为1.0.0.1-127.255.255.254;B类网络的IP地址范围为:128.1.0.1-191.255.255.254;C类网络的IP地址范围为:192.0.1.1-223.255.255.254。由于网络地址紧张、主机地址相对过剩,采取子网掩码的方式来指定网段号。TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。正因为如此 ,它能广泛地支持由低两层协议构成的物理网络结构。目前已使用TCP/IP连接成洲际网、全国网与跨地区网。TCP/IP完整的一套基础介绍TCP/IP完整的一套基础介绍TCP/IP应该是个协议集,根据OS的七层理论,TCP/IP分为四层.分别是应用,传输,Interne和网络界面.

      我们一般说TCP在传输层,而IP在Internet层.

      TCP/IP的应用程序包括我们平时经常用到的Ping,Telnet,Ftp,Finger等等

      配置TCP/IP包括IP地址,子网掩码和缺省网关

      正确检测TCP/IP的四个步骤:PIng 127.0.0.1(回环地址)如果通表示TCP/IP已经装入,Ping自己表明客户机正常(主要是网卡),Ping网关表示局域网正常,Ping路由外地址表示完全正常,当然你也可以直接进行第四步,一般来说没这么麻烦的,但理论是基础:-)

      IP地址是四段八位的二进制数组成的,IP分为A,B,C,D,E五类地址

      A类高端为0,从1.x.y.z~126.x.y.z .B类高端为10,从128.x.y.z~191.x.y.z C类高端为110,从192.x.y.z~223.x.y.z D类高端为1110是保留的IP地址 E类高端为1111,是科研用的IP地址

      其中255是广播地址,127是内部回送函数

      以上算是开头,以后一点点增加,实在是现在还有很多事情等着去做,不好意思了 :-)

      以下内容是子网的设定

      若公司不上Internet,那一定不会烦恼IPAddress的问题,因 为可以任意使用所有的IPAddress,不管是AClass或是BClass, 这个时候不会想到要用SubNet,但若是上Internet那IPAddress 便弥足珍贵了,目前全球一阵Internet热,IPAddress已经愈 来愈少了,而所申请的IPAddress目前也趋保守,而且只有 经申请的IPAddress能在Internet使用,但对某些公司只能申 请到一个CCLass的IPAddress,但又有多个点需要使用,那这 时便需要使用到Subnet,这篇短文说明Subnet的原理及如 何规划。

      SubnetMask的介绍设定任何网路上的任何设备不管是主机、PC、Router等 皆需要设定IPAddress,而跟随著IPAddress的是所谓的NetMask, 这个NetMask主要的目的是由IPAddress中也能获得NetworkNumber ,也就是说IPAddress和NetMask作AND而得到NetworkNumber,如下所 示

      IPAddress 192.10.10.611000000.00001010.00001010.00000110NetMask 255.255.255.011111111.11111111.11111111.00000000AND -------------------------------------------------------------------etworkNumber 192.10.10.011000000.00001010.00001010.00000000

      NetMask有所谓的预设值,如下所示

      ClassIPAddress范围NetMaskA 1.0.0.0-126.255.255.255255.0.0.0B 128.0.0.0-191.255.255.255255.255.0.0C 192.0.0.0-223.255.255.255255.255.255.0

      在预设的NetMask都只有255的值,在谈到SubnetMask时这个值 便不一定是255了。在完整一组CClass中如203.67.10.0-203.67.10.255NetMask255.255.255.0, 203.67.10.0称之NetworkNumber(将IPAddress和Netmask作AND),而 203.67.10.255是Broadcast的IPAddress,所以这?两者皆不能使用,实 际只能使用203.67.10.1--203.67.10.254等254个IPAddress,这是以 255.255.255.0作NetMask的结果,而所谓SubnetMsk尚可将整组C Class分成数组NetworkNumber,这要在NEtMask作手脚,若是要将 整组CCLass分成2个NetworkNumber那NetMask设定为255.255.255.192, 若是要将整组CCLass分成8组NetworkNumber则NetMask要为 255.255.255.224,这是怎麽来的,由以上知道NetworkNumber是由IP Address和NetMask作AND而来的,而且将NetMask以二进位表示 法知道是1的会保留,而为0的去掉

      192.10.10.193--11000000.00001010.00001010.10000001255.255.255.0--11111111.11111111.11111111.00000000--------------------------------------------------------------192.10.10.0--11000000.00001010.00001010.00000000

      以上是以255.255.255.0为NetMask的结果,NetworkNumber是192.10.10.0, 若是使用255.255.255.224作NetMask结果便有所不同

      192.10.10.193--11000000.00001010.00001010.10000000255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------192.10.10.192--11000000.00001010.00001010.10000000

      此时NetworkNumber变成了192.10.10.192,这便是Subnet。那要如何决定所使用的NetMask,255.255.255.224以二进位表示 法为11111111.11111111.11111111.11100000,变化是在最后一组,11100000 便是224,以三个Bit可表示2的3次方便是8个NetworkNumber

      NetMask二进位表示法可分几个Network

      255.255.255.0 11111111.11111111.11111111.000000001255.255.255.128 11111111.11111111.11111111.100000002255.255.255.192 11111111.11111111.11111111.110000004255.255.255.224 11111111.11111111.11111111.111000008255.255.255.240 11111111.11111111.11111111.1111000016255.255.255.248 11111111.11111111.11111111.1111100032255.255.255.252 11111111.11111111.11111111.1111110064

      以下使用255.255.255.224将C Class203.67.10.0分成8组NetworkNumber,各 个NetworkNumber及其BroadcastIPAddress及可使用之IPAddress

      序号NetworkNumberBroadcast可使用之IPAddress

      1 203.67.10.0 203.67.10.31 203.67.10.1-203.67.10.302 203.67.10.32 203.67.10.63 203.67.10.33-203.67.10.623 203.67.10.64 203.67.10.95 203.67.10.65-203.67.10.944 203.67.10.96 203.67.10.127 203.67.10.97-203.67.10.1265 203.67.10.128 203.67.10.159 203.67.10.129-203.67.10.1586 203.67.10.160 203.67.10.191 203.67.10.161-203.67.10.1907 203.67.10.192 203.67.10.223 203.67.10.193-203.67.10.2228 203.67.10.224 203.67.10.255 203.67.10.225-203.67.10.254

      可验证所使用的IPAddress是否如上表所示

      203.67.10.115--11001011.01000011.00001010.01110011255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.96--11001011.01000011.00001010.01100000

      203.67.10.55--11001011.01000011.00001010.00110111255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.32--11001011.01000011.00001010.00100000

      其他的NetMask所分成的NetworkNumber可自行以上述方法自行推演出来。

      Subnet的应用使用Subnet是要解决只有一组CClass但需要数个NetworkNumber的问题,并不是解决IPAddress不够用的问题,因为使用 Subnet反而能使用的IPAddress会变少,Subnet通常是使用在总公司在台北,但分公司在台中,两者之间使用Router连线 ,同时也上Internet,但只申请到一组CCLassIPAddress,过Router又需不同的Network,所以此时就必须使用到Subnet,当然二 办公司间可以RemoteBridge连接,那便没有使用Subnet的问题,这点在此不讨论,所以在以上情况下的网路连线架 构及IPAddress的使用

      TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。

      在任何一个物理网络中,各站点都有一个机器可识别的地址,该地址叫做物理地址.物理地址有两个

      特点:物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.同一类型不同网络上的站点可能拥有相同的物理地址. 以上两点决定了,不能用物理网络进行网间网通讯.

      在网络术语中,协议中,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个而是许多协议,这就是为什么你经常听到它代表一个协议集的原因,而TCP和IP只是其中两个基本协议而已。

      你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。特别是它包括一些高层次的应用程序和FTP(文件传输协议),它允许用户在命令行上进行网络文件传输。

      TCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的

      Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。

      如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。路由器是一台用来从一个网络到另一个网络传输数据包的计算机。在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IPdatagrams)的数据单元进--传输。TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。我们将它用带点的十进制数表示,如128.10.2.3。给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。

      TCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。

      TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。TCP将数据流分成小段叫做TCP数据段(TCPsegments),并利用IP协议进行传输。在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。

      另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。如果有可靠性要求,则应用程序避免使用它。同许多TCP/IP工具同时提供的SNMP(简单网络管理协议)就是一个使用UDP协议的应用例子。

      其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。

      网络设计者在解决网络体系结构时经常使用ISO/OSI( 国际标准化组织/开放系统互连)七层模型,该模型每 一层代表一定层次的网络功能。最下面是物理层,它 代表着进行数据转输的物理介质,换句话说,即网络 电缆。其上是数据链路层,它通过网络接口卡提供服 务。最上层是应用层,这里运行着使用网络服务的应 用程序。

      TCP/IP是同ISO/OSI模型等价的。当一个数据单元 从网络应用程序下流到网络接口卡,它通过了一列的TCP/IP 模块。这其中的每一步,数据单元都会同网络另一端 对等TCP/IP模块所需的信息一起打成包。这样当数据最 终传到网卡时,它成了一个标准的以太帧(假设物理 网络是以太网)。而接收端的TCP/IP软件通过剥去以太网 帧并将数据向上传输过TCP/IP栈来为处于接收状态的应 用程序重新恢复原始数据(一种最好的了解TCP/IP工作实 质的方法,是使用探测程序来观察网络中的到处流动 的帧中被不同TCP/IP模块所加上的信息)。

      为了勾勒TCP/IP在现实网络世界中所扮演的角色, 请考虑当使用HTTP(超文本传输协议)的Web浏览器从连接 在Internet上的Web服务器上获取一页HTML数据时所发生的情 况。为形成同Web服务器的虚链路,浏览器使用一种被 抽象地称为套接口(socket)的高层软件。为了获 取Web页,它通过向套接口向套接口写入HTTPGET命令来向Web 服务器发出该指令。接下来套接口软件使用TCP协议向 Web服务器发出包含GET命令的字节流和位流,TCP将数据 分段并将各独立段传到IP模块,该模块将数据段转换 成数据报并发送给Web服务器。

      如果浏览器和服务器运--在不同物理网络的计 算机上(一般情况如此),数据报从一个网络传到另一 个网络,直到抵达服务器所在的那个网。最终,数据 被传输到目的地址并被重新装配,这样Web服务器通过 读自己的套接口来获得数据主干,并进而查看连续的 数据流。对浏览器和服务器来说,数据在这一端写入 套接口而在另一端出现如同魔术一般,但这只是底 下发生的各种复杂的交互,它创造了数据经过网络无 缝传输的假象。

      这就是TCP/IP所做的:将许多小网联成一个大网。 并在这个大网也就是Internet上提供应用程序所需要的 相互通信的服务。

      评论:

      对于TCP/IP有许多可谈的,但这里仅讲三个关键 点:

      ·TCP/IP是一族用来把不同的物理网络联在一 起构成网际网的协议。TCP/IP联接独立的网络形成一个 虚拟的网,在网内用来确认各种独立的不是物理网络 地址,而是IP地址。

      ·TCP/IP使用多层体系结构,该结构清晰定义了 每个协议的责任。TCP和UDP向网络应用程序提供了高层 的数据传输服务,并都需要IP来传输数据包。IP有责任 为数据包到达目的地选择合适的路由。

      ·在Internet主机上,两个运行着的应用程序之 间传送要通过主机的TCP/IP堆栈上下移动。在发送端TCP/IP 模块加在数据上的信息将在接收端对应的TCP/IP模块上 滤掉,并将最终恢复原始数据。

      如果你有兴趣学习更多的TCP/IP知识,这里有两个 较高层次的信息源RFC(RequestforComment)1180——叫做“TCP/IP Tutorial”的文档,你可以从许多普及的RFC的Internet节点上 下载。另一个是InternetworkingwithTCP/IP的第一卷:Principles,Protocols,and Architectures,作者DouglasE.Comer(1995,Prentice-Hall)。作为该系三部 曲中的第一部分,许多人把看成是一本TCP/IP圣经。(原 文刊载于Vol.15No.20)

      二、传输层的安全性

      在Internet应用编程序中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。比较流行的两个IPC编程界面是BSD Sockets和传输层界面(TLI),在Unix系统V命令里可以找到。

      在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。Netscape通信公司遵循了这个思路,制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全套接层协议(SSL)。SSL版本3(SSL v3)于1995年12月制定。它主要包含以下两个协议:

      SSL记录协议 它涉及应用程序提供的信息的分段、压缩、数据认证和加密。SSL v3提供对数据认证用的MD5和SHA以及数据加密用的R4和DES等的支持,用来对数据进行认证和加密的密钥可以通过SSL的握手协议来协商。

      TCP-IP协议具有怎样的功能?请分别讲述

      “TCP”是什么意思?

      TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。在任何一个物理网络中,各站点都有一个机器可识别的地址,该地址叫做物理地址.物理地址有两个 特点:(1)物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.(2)同一类型不同网络上的站点可能拥有相同的物理地址.以上两点决定了,不能用物理网络进行网间网通讯.在网络术语中,协议中,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个而是许多协议,这就是为什么你经常听到它代表一个协议集的原因,而TCP和IP只是其中两个基本协议而已。你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。特别是它包括一些高层次的应用程序和FTP(文件传输协议),它允许用户在命令行上进行网络文件传输。TCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。路由器是一台用来从一个网络到另一个网络传输数据包的计算机。在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IP datagrams)的数据单元进--传输。TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。我们将它用带点的十进制数表示,如128.10.2.3。给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。TCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。TCP将数据流分成小段叫做TCP数据段(TCP segments),并利用IP协议进行传输。在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。如果有可靠性要求,则应用程序避免使用它。同许多TCP/IP工具同时提供的SNMP(简单网络管理协议)就是一个使用UDP协议的应用例子。 其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。


      什么是OEM OEM是英文Original Equipment Manufacturer的缩写,按照字面意思,应翻译成原始设备制造商,指一家厂家根据另一家厂商的要求,为其生产产品和产品配件,亦称为定牌生产或授权贴牌生产。即可代表外委加工,也可代表转包合同加工。国内习惯称为协作生产、三来加工,俗称加工贸易。 OEM可简称为"代工生产"或贴牌生产,这种经营模式在国际上已运作多年并行之有效。企业为了加大其拥有资源在创新能力方面的配置,尽可能地减少在固定资产方面的投入,企业不直接进行生产,通过让别的企业代为生产的方式来完成产品的生产任务。这样,只需支付材料成本费和加工费,而不必承担设备折旧和自建工厂的负担,可随时根据市场变化灵活的按需下单。由此可促进成品业务形成新的经营优势,培养和壮大企业内在的扩张力,提高经营能力和管理水平,从而为更高层次的资本运营创造条件和积累经验。
      TCP/IP协议介绍 TCP/IP的通讯协议这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP整体构架概述TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。TCP/IP中的协议以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:1. IP网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。2. TCP如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。3.UDPUDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。4.ICMPICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。5. TCP和UDP的端口结构TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:源IP地址 发送包的IP地址。目的IP地址 接收包的IP地址。源端口 源系统上的连接的端口。目的端口 目的系统上的连接的端口。 端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
      “TCP”是什么意思?

      TCP协议的主要功能是什么

      TCP协议的主要功能是完成对数据报的确认、流量控制和网络拥塞;自动检测数据报,并提供错误重发的功能;将多条路径传送的数据报按照原来的顺序进行排列,并对重复数据进行择取;控制超时重发,自动调整超时值;提供自动恢复丢失数据的功能。当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。扩展资料:TCP使用了端口号(Port number)的概念来标识发送方和接收方的应用层。对每个TCP连接的一端都有一个相关的16位的无符号端口号分配给它们。端口被分为三类:众所周知的、注册的和动态/私有的。众所周知的端口号是由因特网赋号管理局(IANA)来分配的,并且通常被用于系统一级或根进程。众所周知的应用程序作为服务器程序来运行,并被动地侦听经常使用这些端口的连接。参考资料来源:百度百科 TCP
      TCP协议的主要功能如下:1、慢启动:每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进人慢启动阶段。进人慢启动后,TCP实体将拥塞窗口的大小初始化为一个报文段,即:cwnd=1。此后,每收到一个报文段的确认(ACK),cwnd值加1,即拥塞窗口按指数增加。当cwnd值超过慢启动闽值(sshterhs)或发生报文段丢失重传时,慢启动阶段结束。前者进人拥塞避免阶段,后者重新进人慢启动阶段。2、拥塞避免:在慢启阶段,当cwnd值超过慢启动阐值(ssthresh)后,慢启动过程结束,TCP连接进入拥塞避免阶段。在拥塞避免阶段,每一次发送的cwnd个报文段被完全确认后,才将cwnd值加1。在此阶段,cwnd值线性增加。3、快速速重传:快速重传是对超时重传的改进。当源端收到对同一个报文的三个重复确认时,就确定一个报文段已经丢失,因此立刻重传丢失的报文段,而不必等到重传定时器(RTO)超时。以此减少不必要的等待时间。4、快速恢复:快速恢复是对丢失恢复机制的改进。在快速重传之后,不经过慢启动过程而直接进人拥塞避免阶段。每当快速重传后,置sshtesrh=cwnd/2、ewnd=ssthresh+3。此后,每收到一个重复确认,将cwnd值加1,直至收到对丢失报文段和其后若干报文段的累积确认后,置cwnd=ssthesrh,进人拥塞避免阶段。扩展资料:TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:1、基于流的方式;2、面向连接;3、可靠通信方式;4、在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;5、通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。参考资料来源:百度百科-TCP
      TCP协议的主要功能是完成对数据报的确认、流量控制和网络拥塞;自动检测数据报,并提供错误重发的功能;将多条路径传送的数据报按照原来的顺序进行排列,并对重复数据进行择取;控制超时重发,自动调整超时值;提供自动恢复丢失数据的功能。TCP是英文Transmission Control Protocol的缩写,中文翻译为“传输控制通讯协议”。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。tcp协议,我们也可以称它为通信规程,若是网络没有了该协议,那么则无法正常运行。双方在传送数据的时候,需要遵循该协议之间的控制约定,以求得数据传送的成功。无论是传送的速度、方式还是步骤,该协议都可以帮助大家公平、公正地完成。
      TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。
      主要功能就是你的电脑要通过它过去服务器给你的IP地址,让你能上网,仅此而已
      TCP协议的主要功能是什么

      TCP协议有哪些?

      TCP/IP协议族中包括上百个互为关联的协议,不同功能的协议分布在不同的协议层, 几个常用协议如下:1、Telnet(Remote Login):提供远程登录功能,一台计算机用户可以登录到远程的另一台计算机上,如同在远程主机上直接操作一样。2、FTP(File Transfer Protocol):远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上。3、SMTP(Simple Mail transfer Protocol):简单邮政传输协议,用于传输电子邮件。4、NFS(Network File Server):网络文件服务器,可使多台计算机透明地访问彼此的目录。5、UDP(User Datagram Protocol):用户数据包协议,它和TCP一样位于传输层,和IP协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。
      TCP是一种传输控制协议,是面向连接的、可靠的、基于字节流之间的传输层通信协议,由IETF的RFC 793定义

      TCP协议有哪些?

      TCP协议详解及实战解析【精心整理收藏】

      TCP协议是在TCP/IP协议模型中的运输层中很重要的一个协议、负责处理主机端口层面之间的数据传输。主要有以下特点:1.TCP是面向链接的协议,在数据传输之前需要通过三次握手建立TCP链接,当数据传递完成之后,需要通过四次挥手进行连接释放。2.每一条TCP通信都是两台主机和主机之间的,是点对点传输的协议。3.TCP提供可靠的、无差错、不丢失、不重复,按序到达的服务。4.TCP的通信双方在连接建立的任何时候都可以发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。5.面向字节流。在数据传输的过程中如果报文比较长的话TCP会进行数据分段传输,每一条分段的TCP传输信息都带有分段的序号,每一段都包含一部分字节流。接收方根据每段携带的的序号信息进行数据拼接,最终拼接出来初始的传输数据。但是在整个传输的过程中每一段TCP携带的都是被切割的字节流数据。所以说TCP是面向字节流的。a.TCP和UDP在发送报文时所采用的方式完全不同。TCP并不关心应用程序一次把多长的报文发送到TCP缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用程序给出的)。b.如果应用程序传送到TCP缓存的数据块太大,TCP就可以把它划分短一些再传。TCP也可以等待积累有足够多的字节后再构建成报文段发送出去。各字段含义:源端口:发送端的端口号目的端口:接收端的端口号序号:TCP将发送报文分段传输的时候会给每一段加上序号,接收端也可以根据这个序号来判断数据拼接的顺序,主要用来解决网络报乱序的问题确认号:确认号为接收端收到数据之后进行排序确认以及发送下一次期待接收到的序号,数值 = 接收到的发送号 + 1数据偏移:占4比特,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。数据偏移以32位为长度单位,因此TCP首部的最大长度是60(15*4)个字节。控制位:URG:此标志表示TCP包的紧急指针域有效,用来保证TCP连接不被中断,并且督促 中间层设备要尽快处理这些数据;ACK:此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1, 为1的时候表示应答域有效,反之为0;PSH:这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序, 而不是在缓冲区中排队;RST:这个标志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;SYN:表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1, ACK=0;连接被响应的时候,SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送 一个只有SYN的数据包,如果对方主机响应了一个数据包回来 ,就表明这台主机存在这个端口;但是由于这 种扫描方式只是进行TCP三次握手的第一次握手,因此这种扫描的成功表示被扫描的机器不很安全,一台安全 的主机将会强制要求一个连接严格的进行TCP的三次握手;FIN: 表示发送端已经达到数据末尾,也就是说双方的数据传送完成,没有数据可以传送了,发送FIN标志 位的TCP数据包后,连接将被断开。这个标志的数据包也经常被用于进行端口扫描。窗口:TCP里很重要的一个机制,占2字节,表示报文段发送方期望接收的字节数,可接收的序号范围是从接收方的确认号开始到确认号加上窗口大小之间的数据。后面会有实例讲解。校验和:校验和包含了伪首部、TCP首部和数据,校验和是TCP强制要求的,由发送方计算,接收方验证紧急指针:URG标志为1时,紧急指针有效,表示数据需要优先处理。紧急指针指出在TCP段中的紧急数据的最后一个字节的序号,使接收方可以知道紧急数据共有多长。选项:最常用的选项是最大段大小(Maximum Segment Size,MSS),向对方通知本机可以接收的最大TCP段长度。MSS选项只在建立连接的请求中发送。放在以太网帧里看TCP的位置TCP 数据包在 IP 数据包的负载里面。它的头信息最少也需要20字节,因此 TCP 数据包的最大负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右。因此,一条1500字节的信息需要两个 TCP 数据包。HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。以太网数据包的负载是1500字节,TCP 数据包的负载在1400字节左右一个包1400字节,那么一次性发送大量数据,就必须分成多个包。比如,一个 10MB 的文件,需要发送7100多个包。发送的时候,TCP 协议为每个包编号(sequence number,简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包,也可以知道丢失的是哪一个包。第一个包的编号是一个随机数。为了便于理解,这里就把它称为1号包。假定这个包的负载长度是100字节,那么可以推算出下一个包的编号应该是101。这就是说,每个数据包都可以得到两个编号:自身的编号,以及下一个包的编号。接收方由此知道,应该按照什么顺序将它们还原成原始文件。收到 TCP 数据包以后,组装还原是操作系统完成的。应用程序不会直接处理 TCP 数据包。对于应用程序来说,不用关心数据通信的细节。除非线路异常,否则收到的总是完整的数据。应用程序需要的数据放在 TCP 数据包里面,有自己的格式(比如 HTTP 协议)。TCP 并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。比如,HTTP 协议就有一个头信息Content-Length,表示信息体的大小。对于操作系统来说,就是持续地接收 TCP 数据包,将它们按照顺序组装好,一个包都不少。操作系统不会去处理 TCP 数据包里面的数据。一旦组装好 TCP 数据包,就把它们转交给应用程序。TCP 数据包里面有一个端口(port)参数,就是用来指定转交给监听该端口的应用程序。应用程序收到组装好的原始数据,以浏览器为例,就会根据 HTTP 协议的Content-Length字段正确读出一段段的数据。这也意味着,一次 TCP 通信可以包括多个 HTTP 通信。服务器发送数据包,当然越快越好,最好一次性全发出去。但是,发得太快,就有可能丢包。带宽小、路由器过热、缓存溢出等许多因素都会导致丢包。线路不好的话,发得越快,丢得越多。最理想的状态是,在线路允许的情况下,达到最高速率。但是我们怎么知道,对方线路的理想速率是多少呢?答案就是慢慢试。TCP 协议为了做到效率与可靠性的统一,设计了一个慢启动(slow start)机制。开始的时候,发送得较慢,然后根据丢包的情况,调整速率:如果不丢包,就加快发送速度;如果丢包,就降低发送速度。Linux 内核里面 设定 了(常量TCP_INIT_CWND),刚开始通信的时候,发送方一次性发送10个数据包,即"发送窗口"的大小为10。然后停下来,等待接收方的确认,再继续发送。默认情况下,接收方每收到 两个TCP 数据包,就要 发送 一个确认消息。"确认"的英语是 acknowledgement,所以这个确认消息就简称 ACK。ACK 携带两个信息。发送方有了这两个信息,再加上自己已经发出的数据包的最新编号,就会推测出接收方大概的接收速度,从而降低或增加发送速率。这被称为"发送窗口",这个窗口的大小是可变的。注意,由于 TCP 通信是双向的,所以双方都需要发送 ACK。两方的窗口大小,很可能是不一样的。而且 ACK 只是很简单的几个字段,通常与数据合并在一个数据包里面发送。即使对于带宽很大、线路很好的连接,TCP 也总是从10个数据包开始慢慢试,过了一段时间以后,才达到最高的传输速率。这就是 TCP 的慢启动。TCP 协议可以保证数据通信的完整性,这是怎么做到的?前面说过,每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。举例来说,现在收到了4号包,但是没有收到5号包。ACK 就会记录,期待收到5号包。过了一段时间,5号包收到了,那么下一轮 ACK 会更新编号。如果5号包还是没收到,但是收到了6号包或7号包,那么 ACK 里面的编号不会变化,总是显示5号包。这会导致大量重复内容的 ACK。如果发送方发现收到 三个 连续的重复 ACK,或者超时了还没有收到任何 ACK,就会确认丢包,即5号包遗失了,从而再次发送这个包。通过这种机制,TCP 保证了不会有数据包丢失。TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是由滑动窗口控制的,而滑动窗口的大小实际上是由两个窗口共同决定的,一个是接收端的通告窗口,这个窗口值在TCP协议头部信息中有,会随着数据的ACK包发送给发送端,这个值表示的是在接收端的TCP协议缓存中还有多少剩余空间,发送端必须保证发送的数据不超过这个剩余空间以免造成缓冲区溢出,这个窗口是接收端用来进行流量限制的,在传输过程中,通告窗口大小与接收端的进程取出数据的快慢有关。另一个窗口是发送端的拥塞窗口(Congestion window),由发送端维护这个值,在协议头部信息中没有,滑动窗口的大小就是通告窗口和拥塞窗口的较小值,所以拥塞窗口也看做是发送端用来进行流量控制的窗口。滑动窗口的左边沿向右移动称为窗口合拢,发生在发送的数据被确认时(此时,表明数据已被接收端收到,不会再被需要重传,可以从发送端的发送缓存中清除了),滑动窗口的右边沿向右移动称为窗口张开,发生在接收进程从接收端协议缓存中取出数据时。随着发送端不断收到的被发送数据的ACK包,根据ACK包中的确认序号和通告窗口大小使滑动窗口得以不断的合拢和张开,形成滑动窗口的向前滑动。如果接收进程一直不取数据,则会出现0窗口现象,即滑动窗口左边沿与右边沿重合,此时窗口大小为0,就无法再发送数据。在TCP里,接收端(B)会给发送端(A)报一个窗口的大小,叫Advertised window。1.在没有收到B的确认情况下,A可以连续把窗口内的数据都发送出去。凡是已经发送过的数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。2.发送窗口里面的序号表示允许发送的序号。显然,窗口越大,发送方就可以在收到对方确认之前连续发送更多数据,因而可能获得更高的传输效率。但接收方必须来得及处理这些收到的数据。3.发送窗口后沿的后面部分表示已发送且已收到确认。这些数据显然不需要再保留了。4.发送窗口前沿的前面部分表示不允许发送的,应为接收方都没有为这部分数据保留临时存放的缓存空间。5.发送窗口后沿的变化情况有两种:不动(没有收到新的确认)和前移(收到了新的确认)6.发送窗口前沿的变化情况有两种:不断向前移或可能不动(没收到新的确认)TCP的发送方在规定时间内没有收到确认就要重传已发送的报文段。这种重传的概念很简单,但重传时间的选择确是TCP最复杂的问题之一。TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到响应的确认的时间这两个时间之差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时间。超时重传时间RTO略大于加权平均往返时间RTT:即Round Trip Time,表示从发送端到接收端的一去一回需要的时间,tcp在数据传输过程中会对RTT进行采样(即对发送的数据包及其ACK的时间差进行测量,并根据测量值更新RTT值,具体的算法TCPIP详解里面有),TCP根据得到的RTT值更新RTO值,即Retransmission TimeOut,就是重传间隔,发送端对每个发出的数据包进行计时,如果在RTO时间内没有收到所发出的数据包的对应ACK,则任务数据包丢失,将重传数据。一般RTO值都比采样得到的RTT值要大。如果收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据,那么能否设法只传送缺少的数据而不重传已经正确到达接收方的数据?答案是可以的,选择确认就是一种可行的处理方法。如果要使用选项确认SACK,那么在建立TCP连接时,就要在TCP首部的选项中加上“允许SACK”的选项,而双方必须都事先商定好。如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。SACK文档并没有明确发送方应当怎么响应SACK.因此大多数的实现还是重传所有未被确认的数据块。一般说来,我们总是希望数据传输的更快一些,但如果发送方把数据发送的过快,接收方就可能来不及接收,这会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。在计算机网络中的链路容量,交换节点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞。拥塞控制方法:1.慢开始和拥塞避免2.快重传和快恢复3.随机早期检测1.一开始,客户端和服务端都处于CLOSED状态2.先是服务端主动监听某个端口,处于LISTEN状态(比如服务端启动,开始监听)。3.客户端主动发起连接SYN,之后处于SYN-SENT状态(第一次握手,发送 SYN = 1 ACK = 0 seq = x ack = 0)。4.服务端收到发起的连接,返回SYN,并且ACK客户端的SYN,之后处于SYN-RCVD状态(第二次握手,发送 SYN = 1 ACK = 1 seq = y ack = x + 1)。5.客户端收到服务端发送的SYN和ACK之后,发送ACK的ACK,之后处于ESTABLISHED状态(第三次握手,发送 SYN = 0 ACK = 1 seq = x + 1 ack = y + 1)。6.服务端收到客户端的ACK之后,处于ESTABLISHED状态。(需要注意的是,有可能X和Y是相等的,可能都是0,因为他们代表了各自发送报文段的序号。)TCP连接释放四次挥手1.当前A和B都处于ESTAB-LISHED状态。2.A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。3.B收到连接释放报文段后即发出确认,然后B进入CLOSE-WAIT(关闭等待)状态。TCP服务器进程这时应通知高层应用进程,因而从A到B这个方向的连接就释放了,这时TCP连接处于半关闭状态,即A已经没有数据发送了。从B到A这个方向的连接并未关闭,这个状态可能会持续一些时间。4.A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文端。5.若B已经没有向A发送的数据,B发出连接释放信号,这时B进入LAST-ACK(最后确认)状态等待A的确认。6.A再收到B的连接释放消息后,必须对此发出确认,然后进入TIME-WAIT(时间等待)状态。请注意,现在TCP连接还没有释放掉,必须经过时间等待计时器(TIME-WAIT timer)设置的时间2MSL后,A才进入CLOSED状态。7。B收到A发出的确认消息后,进入CLOSED状态。以请求百度为例,看一下三次握手真实数据的TCP连接建立过程我们再来看四次挥手。TCP断开连接时,会有四次挥手过程,标志位是FIN,我们在封包列表中找到对应位置,理论上应该找到4个数据包,但我试了好几次,实际只抓到3个数据包。查了相关资料,说是因为服务器端在给客户端传回的过程中,将两个连续发送的包进行了合并。因此下面会按照合并后的三次挥手解释,若有错误之处请指出。第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。原因有二:一、保证TCP协议的全双工连接能够可靠关闭二、保证这次连接的重复数据段从网络中消失先说第一点,如果Client直接CLOSED了,那么由于IP协议的不可靠性或者是其它网络原因,导致Server没有收到Client最后回复的ACK。那么Server就会在超时之后继续发送FIN,此时由于Client已经CLOSED了,就找不到与重发的FIN对应的连接,最后Server就会收到RST而不是ACK,Server就会以为是连接错误把问题报告给高层。这样的情况虽然不会造成数据丢失,但是却导致TCP协议不符合可靠连接的要求。所以,Client不是直接进入CLOSED,而是要保持TIME_WAIT,当再次收到FIN的时候,能够保证对方收到ACK,最后正确的关闭连接。再说第二点,如果Client直接CLOSED,然后又再向Server发起一个新连接,我们不能保证这个新连接与刚关闭的连接的端口号是不同的。也就是说有可能新连接和老连接的端口号是相同的。一般来说不会发生什么问题,但是还是有特殊情况出现:假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中,这些延迟数据在建立新连接之后才到达Server,由于新连接和老连接的端口号是一样的,又因为TCP协议判断不同连接的依据是socket pair,于是,TCP协议就认为那个延迟的数据是属于新连接的,这样就和真正的新连接的数据包发生混淆了。所以TCP连接还要在TIME_WAIT状态等待2倍MSL,这样可以保证本次连接的所有数据都从网络中消失。硬件速度网络和服务器的负载请求和响应报文的尺寸客户端和服务器之间的距离TCP 协议的技术复杂性TCP 连接建立握手;TCP 慢启动拥塞控制;数据聚集的 Nagle 算法;用于捎带确认的 TCP 延迟确认算法;TIME_WAIT 时延和端口耗尽。介绍完毕,就这?是的,就这。补充:大部分内容为网络整理,方便自己学习回顾,参考文章:TCP 协议简介TCP协议图文详解什么是TCP协议?wireshark抓包分析——TCP/IP协议TCP协议的三次握手和四次挥手TCP协议详解TCP带宽和时延的研究(1)
      TCP协议详解及实战解析【精心整理收藏】

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/306266.html

          热门文章

          文章分类