tcp连接的本质是什么(查看TCP连接的命令是什么)

      最后更新:2023-11-08 14:00

      什么是TCP/IP协议,它的核心思想(理念)是什么?

      TCP/IP ,用于网络的一组通讯协议,包括IP(Internet Protocol,互联网协议)和TCP(Transmission Control Protocol,传输控制协议) TCP/IP协议讲解 TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。  在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网。Internet的中文意义是"网际网",它实际上就是将全球各地的局域网连接起来而形成的一个"网之间的网(即网际网)"。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的"世界语"。TCP/IP的参考模型要理解Internet,并不是一件非常容易的事,TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层   (第五层)传输层   (第四层)互联网层  (第三层)网络接口层 (第二层)物理层   (第一层)下面对这五个层次作一些讲解,初学者对这些概念有一个感性的认识就可以了,如果想深入学习这些内容,可以参考有关计算机网络底层知识方面的书籍。·物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬件设备,如PC机、互连网服务器、网络设备等,必须对这些硬件设备的电气特性作一个规范,使这些设备都能够互相连接并兼容使用。·网络接口层:它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网络中传输的单位。·互联网层:本层定义了互联网中传输的"信息包"格式,以及从一个用户通过一个或多个路由器到最终目标的"信息包"转发机制。·传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。·应用层:它定义了应用程序使用互联网的规程。TCP/IP 通信协议1--网际协议IPInternet 上使用的一个关键的低层协议是网际协议,通常称IP协议。我们利用一个共同遵守的通信协议,从而使 Internet 成为一个允许连接不同类型的计算机和不同操作系统的网络。要使两台计算机彼此之间进行通信,必须使两台计算机使用同一种"语言"。通信协议正像两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的约定。   计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送的信息格式和含义,在什么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。  网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入 Internet 了。如果希望能在 Internet 上进行交流和通信,则每台连上 Internet 的计算机都必须遵守IP协议。为此使用 Internet 的每台计算机都必须运行IP软件,以便时刻准备发送或接收信息。IP协议对于网络通信有着重要的意义:网络中的计算机通过安装IP软件,使许许多多的局域网络构成了一个庞大而又严密的通信系统。从而使 Internet 看起来好像是真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用IP协议把全世界上所有愿意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间都能够通信。TCP/IP通信协议2--传输控制协议TCP尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收数据,但IP协议还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上 Internet 的计算机还需要安装TCP协议来提供可靠的并且无差错的通信服务。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。  传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。众所周知, Internet 是一个庞大的国际性网络,网路上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输数据所用时间也会变化不定。TCP协议具有自动调整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。   因此,从上面我们可以了解到:IP协议只保证计算机能发送和接收分组数据,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。 综上所述,虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。

      分层
      什么是TCP/IP协议,它的核心思想(理念)是什么?

      从本质上了解TCP/IP协议族

      没有分层的情况下是直接从一端把消息传输至另一端,网络传输无非是从客户端传信息到服务端,或者服务端传信息到客户端,那么在传输过程中是存在网络不稳定的情况,数据丢失了怎么办?其实是这样的,客户端发送消息给服务端,正常情况下服务端会在收到消息后回馈信息给客户端,客户端才知道收到了。假如数据丢失了,客户端假如在一定时间内没收到回馈,那么就重新传输信息。再来看一点,假如我们的数据很大,经过每个中间节点的时间增加了,到最后一个节点的时候数据丢失了,那岂不是要重新传输了,假如频繁发生,用户体验到的感觉就是网络很不稳定。怎么解决呢?把数据分块传输呗。例如:现在数据一大块,把它分成ABCDE...,每次传输顺序是A、B、C...,假如传到C的时候传输失败了,但AB都传输成功了,那就继续传输C,成功后就接着往下一块块传输。把数据分块就要分层了?接着往下看像HTTP这样的就是做网络报文的传输,FTP是做文件的传输,DNS是用来做域名服务的,这都是具体的目标,也就是你有要做的事情,这些要做的事情,就可以用应用层来表示了。那么这些应用层的做的事情要分块传输,而且不单单是HTTP,像DNS和FTP同样也要分块传输。想一下,在Java思想看来,多个类都要做同一种事,是不是要把这件事抽出来做接口。那么就把分块传输当成一个层来看,这一层是拿到应用层的数据后再把它分块传输,传输完到达另一端后再把数据拼接成完成信息后再丢给应用层,这样把数据把应用层数据分块再合并完传给应用层的这一层作为传输层。像TCP和UDP协议都是处于传输层。说到TCP和UDP,两个的传输差别就是TCP一定要保证数据的正确性,简单点来说就是数据从一端到另一端一定是要完整的,而UDP传输过程可能会丢包,导致数据不完整,例如我们看直播的时候,网络突然不好了,直播卡住了,过了一会网络正常了,但现在是直播,所以不会关注那些事情,继续传输当前的数据。那么区别都知道了,相同点是什么?不就是传数据嘛,那是不是抽一层出来,把这些传输层的分块数据通过网络传输到另一端。这就是网络层。网络层只负责对这些数据块进行传输,拿到了就传,没有就不传。而且网络层对数据传成功没不关心,拿到数据就传,至于数据成不成功,取决于传输层是否要再对数据进行传输。IP协议就处于网络层。对于网络层里面的传输还需要靠物理设备来实现。我们现实生活中在物理设备上对网络层的支持一般是以太网,需要通过以太网(或者WIFI)才能实现真正意义上的网络传输。所有又有了一层,数据链路层。以上是对网络模型的本质理解。在传输的时候要事先确定好对方是谁,所以要建立TCP链接,并且这些连接是有状态的(HTTP是无状态的)。这种有状态体现在传输的时候知道对方是对,保持着这种状态进行传数据。建立TCP连接需要三次握手,什么是三次握手?举个例子,假如A要和B链接:1、A发消息跟B说:我要跟你进行链接2、B收到A的消息后,要告知A收到了消息,并回复了:我收到你的消息了3、A也要告诉B收到了B的消息:我也收到了你的消息,可以开始正常交流了其中,1是可以理解的,2是因为B得让A知道A->B是正常的并且B也要发消息,而3是因为A告诉B收到了消息,可以正常通信了。既然有连接就有关闭,为什么要关闭?因为连接时把对方信息保存在自己的本地,关闭是为了释放资源。关闭比连接多了一次。TCP连接的关闭也叫四次挥手,举个例子,假如A要和B断开连接:1、A跟B发消息说:我要跟你断开连接2、B收到后对A说:我知道你没有消息了3、B又发了个消息说:我也没有消息了4、A收到后对B说:我知道你没有消息了,可以断开了之后,TCP就断开了连接。注意,B收到A的消息后只是说告诉A知道A没有消息了,不代表B也没有消息。在网络中,移动网络并不属于Internet,而在运营商的内网,并不具备真正的公网IP。所以移动网络和外界是通过:移动网络到运营商,然后再从运营商再到外界交流,这就是所谓的长连接。那为什么要长连接呢?我们知道TCP连接的关闭是我们主动关闭的,而在长连接中,当某个TCP连接在一段时间不通信之后,网关会处于网络性能考虑而关闭这条TCP连接和公网的连接通道,导致这个TCP端口不再能收到外界通信消息,这就是TCP连接被动断开。在第二次B得到A没有消息发后,为什么不等到B没有没有消息发了再一次告诉A,B也没有消息了?其实真正的事实是:TCP是支持第二次和第三次进行合并的,即把这两条消息合进一条里发送,本质上,TCP的四次挥手只是因为在通信时候出现一方讲完了,另一方还没讲完的情况,所以TCP要给两方都有一个表达自己讲完了的机会,所以本质上TCP的四次挥手其实是一对两次挥手。总结下,这两条消息不是不能合并,而是能不合并,因为会有大量拆开使用的场景,至于合并这个方案,TCP是支持的。
      从本质上了解TCP/IP协议族

      什么是TCP连接

      TCP即传输控制协议。TCP连接是互联网连接协议集的一种。TCP通信最重要的特征是:有序和可靠。有序通过将文本流分段并编号实现,可靠通过ACK回复和重复发送实现。TCP连接状态图参考文章:TCP连接过程详解blog.163.com/hlz_2599/blog/static/142378474201151943414397/
      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)信息,提示读者信息的时效性。
      TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的
      什么是TCP连接

      TCP 与UDP的本质区别是什么?

      tcp及传输控制协议,可靠的连接服务 udp及用户数据包协议,不可靠的连接服务举个例子我们都用得qq文件传输 pplive==用的都是 udp协议 原因在于udp可以把数据中的每一桢 划分的更细 这样传输起来不会出现丢桢的现象 俗称 看视频电视 卡 。
      TCP保证可靠,面向连接而UDP不保证可靠,非面向连接,UDP的报头长度远远小于TCP的报头长度。
      TCP 与UDP的本质区别是什么?

      TCP连接是基于字节流而非报文

      TCP是传输控制协议 TCP是以控制字节流来实现的,报文最终也会转换为自己流。
      TCP连接是基于字节流而非报文

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类