协议 订阅
协议是一个汉语词汇,读音为xié yì,意思是共同计议,协商;经过谈判、协商而制定的共同承认、共同遵守的文件。《隋书·律历志中》等均有相关记载。 展开全文
协议是一个汉语词汇,读音为xié yì,意思是共同计议,协商;经过谈判、协商而制定的共同承认、共同遵守的文件。《隋书·律历志中》等均有相关记载。
信息
性    质
汉语词汇
外文名
protocol
意    义
共同计议,协商
词    性
名词
中文名
协议
协议释义
词目:协议拼音:xiéyì英文:protocol基本解释1. [agree on] [1]  共同计议;协商2. [agreement;accord;concord] 经过谈判、协商而制定的共同承认、共同遵守的文件详细解释1. 《隋书·律历志中》:“二人协议,共短 孝孙 。”宋·无名氏《儒林公议》卷上:“ 弼 (富弼)与韩琦协议,制以三年为率,不得复有干请。”田汉《卢沟桥》第四幕:“军长为着保持和平,还是委曲求全跟敌人协议,彼此撤兵。”2. 统一意见。宋·崔公度《感山赋》:“同德一心,齐力协议。”3. 经过谈判、协商而制定的共同承认、共同遵守的文件。《新华文摘》1981年第8期:“根据协议,停战线将以……实际控制线来划。”4. 泛指双方经协商取得的一致意见。《人民文学》1981年第8期:“她从知青点参军后,和父亲达成过协议,对自己的出身绝对保密。”法律范畴协议是指两个或两个以上实体为了开展某项活动,经过协商后双方达成的一致意见。
收起全文
精华内容
参与话题
问答
  • 文章目录网络协议TCP/IP协议IP协议TCP协议(传输控制协议)HTTP协议(超文本传输协议)网络参考模型1、OSI参考模型(开放系统互连参考模型 )2、TCP/IP参考模型(简化的七层OSI模型) 网络协议 网络协议为计算机...


    网络协议

    网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
    常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议 等。
    TCP/IP协议 毫无疑问是这三大协议中最重要的一个,作为互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。

    TCP/IP协议

    TCP/IP协议是一个协议集合。 互联网协议是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族,简称TCP/IP。因为该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。

    TCP使用三次握手协议建立连接。三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

    IP协议

    规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。
    IP实现两个基本功能:寻址和分段。IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    TCP协议(传输控制协议)

    UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。为了解决这个问题,提高网络可靠性,TCP协议就诞生了。
    TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

    为了确保信息能够确保准确无误的到达,TCP采用了著名的三次握手策略

    IP协议是找到对方的详细地址,TCP协议是把安全的把数据传输给对方。
    

    HTTP协议(超文本传输协议)

    HTTP协议是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。HTTP是一个客户端和服务器端请求和应答的标准(TCP),它是建立在TCP协议之上的一种应用。

    阅读更多点→:HTTP协议


    网络参考模型

    1、OSI参考模型(开放系统互连参考模型 )

    网络七层协议

    应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
    表示层 数据格式化,代码转换,数据解密
    会话层 解除或建立与其他接点的联系
    传输层 提供端对端的接口 TCP,UDP
    网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
    数据链路层 传输有地址的帧,错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
    物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802

    2、TCP/IP参考模型(简化的七层OSI模型)

    网络四层协议:网络访问层、网际互联层、传输层(主机到主机)、和应用层。

    OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
    

    — The end —

    展开全文
  • 传输控制协议TCP

    千次阅读 2013-03-01 19:21:07
    只不过TCP协议的目的是为了实现端到端结点之间的可靠数据传输,而数据链路层协议则为了实现相邻结点之间的可靠数据传输。  首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被...

     

    6.3 TCP的数据编码与确认

     

         
        TCP协议采用了许多与数据链路层类似的机制来保证可靠的数据传输,如采用序列号、确认、滑动窗口协议等。只不过TCP协议的目的是为了实现端到端结点之间的可靠数据传输,而数据链路层协议则为了实现相邻结点之间的可靠数据传输。
      首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正确地接收一次。
      其次,TCP采用具有重传功能的积极确认技术作为可靠数据流传输服务的基础。这里,“确认”是指接收端在正确收到报文段之后向发送端回送一个确认(ACK)信息。发送方将每个已发送的报文段备份在自己的发送缓冲区里,而且在收到相应的确认之前是不会丢弃所保存的报文段的。“积极”是指发送方在每一个报文段发送完毕的同时启动一个定时器,假如定时器的定时期满而关于报文段的确认信息尚未到达,则发送方认为该报文段已丢失并主动重发。为了避免由于网络延迟引起迟到的确认和重复的确认,TCP规定在确认信息中捎带一个报文段的序号,使接收方能正确地将报文段与确认联系起来。
      第三,采用可变长的滑动窗口协议进行流量控制,以防止由于发送端与接收端之间的不匹配而引起数据丢失。这里所采用的滑动窗口协议与数据链路层的滑动窗口协议在工作原理上是完全相同的,惟一的区别在于滑动窗口协议用于传输层是为了在端到端结点之间实现流量控制,而用于数据链路层是为了在相邻结点之间实现流量控制。TCP采用可变长的滑动窗口,使得发送端与接收端可根据自己的CPU和数据缓存资源对数据发送和接收能力来作出动态调整,从而灵活性更强,也更合理。

    6.4  传输效率与流量控制
    6.4.1  滑动窗口机制

    TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。
    在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)
    举例:见下图
    情况(a)
    发送端要发送 900 字节长的数据,划分为 个 100 字节长的报文段,而发送窗口确定为 500 字节。发送端只要收到了对方的确认,发送窗口就可前移。发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。
    情况(b)
    发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。现在发送端还可发送 300 字节。 
    情况(c)
    发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。现在发送端最多还可发送 400 字节的数据。 



    6.4.2 窗口与TCP的流量控制
    1. 流量控制
      TCP采用大小可变的滑动窗口机制实现流量控制功能。窗口的大小是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置发送窗口的数据的上限。
      在数据传输过程中,TCP提供了一种基于滑动窗口协议的流量控制机制,用接收端接收能力(缓冲区的容量)的大小来控制发送端发送的数据量。
      在建立连接时,通信双方使用SYN报文段或ACK报文段中的窗口字段捎带着各自的接收窗口尺寸,即通知对方从而确定对方发送窗口的上限。在数据传输过程中,发送方按接收方通知的窗口尺寸和序号发送一定量的数据,接收方根据接收缓冲区的使用情况动态调整接收窗口尺寸,并在发送TCP报文段或确认段时稍带新的窗口尺寸和确认号通知发送方。
      如图所示。设主机A向主机B发送数据。双方确定的的窗口值是400。设一个报文段为100字节长,序号的初始值为1(即SEQ1)。在图15.8中,主机B进行了三次流量控制。第一次将窗口减小为300字节,第二次将窗口又减为200字节,最后一次减至零,即不允许对方再发送数据了。这种暂停状态将持续到主机B重新发出一个新的窗口值为止。

     

    6.6.1 TCP报文段的格式

        TCP的协议数据单元被称为报文段(Segment),TCP通过报文段的交互来建立连接、传输数据、发出确认、进行差错控制、流量控制及关闭连接。报文段分为两部分,即报文段头和数据,所谓报文段头就是TCP为了实现端到端可靠传输所加上的控制信息,而数据则是指由高层即应用层来的数据。下图给出了TCP报文段头的格式。其中有关字段的说明如下:


    6.6.2 序号与确认

      TCP不是按传送的报文段来编号。TCP将所要传送的整个报文(这可能包括许多个报文段)看成是一个个字节组成的数据流,然后对每一个数据流编一个序号。在连接建立时,双方要商定初始序号。TCP就将每一次所传送的报文段中的第一个数据字节的序号,放在 TCP首部的序号字段中。 
      TCP的确认是对接收到的数据的最高序号(即收到的数据流中的最后一个序号)表示确认。但返回的确认序号是已收到的数据的最高序号加1。也就是说,确认序号表示期望下次收到的第一个数据字节的序号。 
      由于TCP能提供全双工通信,因此通信中的每一方都不必专门发送确认报文段,而可以在传送数据时顺便把确认信息捎带传送。 
      若发送方在规定的设置时间内没有收到确认,就要将未被确认的报文段重新发送。接收方若收到有差错的报文段,则丢弃此报文段而并不发送否认信息。若收到重复的报文段,也要将其丢弃,但要发回(或捎带发回)确认信息。这与数据链路层的情况相似。

    6.10 TCP连接的建立

    1. 建立连接


        在源主机想和目的主机通信时,目的主机必须同意,否则TCP连接无法建立。为了建立一个TCP连接,两个系统需要同步其初始TCP序号ISN。序号用于跟踪通信顺序并确保多个包传输时没有丢失。初始序号是TCP连接建立时的起始编号。为了确保TCP连接的成功建立,TCP采用了一种称为三次握手的方式,三次握手方式使得“序号/确认号”系统能够正常工作,从而使它们的序号达成同步。如果三次握手成功,则连接建立成功,可以开始传送数据信息。 

      其三次握手分别为:
      第一步:源主机ATCP向主机B发出连接请求报文段,其首部中的SYN(同步)标志位应置为1,表示想与目标主机B进行通信,并发送一个同步序列号X(例:SEQ=100)进行同步,表明在后面传送数据时的第一个数据字节的序号是X1(即101)。SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。
      第二步:目标主机BTCP收到连接请求报文段后,如同意,则发回确认。在确认报中应将ACK位和SYN位置1,表示客户端的请求被接受。确认号应为X1(15.5中为101),同时也为自己选择一个序号Y
      第三步:源主机ATCP收到目标主机B的确认后要向目标主机B给出确认,其ACK1,确认号为Y1,而自己的序号为X1TCP的标准规定,SYN1的报文段要消耗掉一个序号。
      运行客户进程的源主机ATCP通知上层应用进程,连接已经建立。当源主机A向目标主机B发送第一个数据报文段时,其序号仍为X1,因为前一个确认报文段并不消耗序号。
      当运行服务进程的目标主机BTCP收到源主机A的确认后,也通知其上层应用进程,连接已经建立。至此建立了一个全双工的连接。

      2. 传送数据

      位于TCPIP分层模型的较上层的应用程序传输数据流给TCPTCP接收到字节流并且把它们分解成段。假如数据流不能被分成一段,那么每一个其它段都被分给一个序列号。在目的主机端.这个序列号用来把接收到的段重新排序成原来的数据流。
      如图给出了两台主机在成功建立连接后传输数据的示例。



        (1) 主机A使用滑动窗口发送全部的四个段到主机B。这是第一步。不幸的是,只有段l03105106成功地到达了生机B(参看②)。 

      (2) 因为段103104是连续的,所以主机B返回一个确认给主机A,通知主机A它只成功地接收到了第103段,在它的确认中主机B使用它期待得到的下一个序列号作为确认(参看③通过给出序列号104)
      (3) 主机A接到主机B的报文后,重新发送段104105106(参看④)。虽然主机B已经成功地收到了段105106,但是根据协议规定,也必须重新发送。
      (4) 当主机2成功地收到这些段以后.主机B返回一个确认给主机A(参看⑥),并根据序列号把它们重组成原来的数流。把它传输到高层应用程序。

    6.11 TCP连接的拆除

        一个TCP连接建立之后,即可发送数据,一旦数据发送结束,就需要关闭连接。由于TCP连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。当通信的一方没有数据需要发送给对方时,可以使用FIN段向对方发送关闭连接请求。这时,它虽然不再发送数据,但并不排斥在这个连接上继续接收数据。只有当通信的对方也递交了关闭连接的请求后,这个TCP连接才会完全关闭。
      在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。无论怎样,收到关闭连接请求的一方必须使用ACK段给予确认。实际上,TCP连接的关闭过程也是一个三次握手的过程。
      在关闭连接之前,为了确保数据正确传递完毕,仍然需要采用“三次握手”的方式来关闭连接,如图15.7所示。
      其三次握手分别为:
      第一步:源主机A的应用进程先向其TCP发出连接释放请求,并且不再发送数据。TCP通知对方要释放从AB这个方向的连接,将发往主机BTCP报文段首部的终止比特FIN1,其序号X等于前面已传送过的数据的最后一个字节的序号加1



        第二步:目标主机BTCP收到释放连接通知后即发出确认,其序号为Y,确认号为X1,同时通知高层应用进程,如图15.7中的箭头①。这样,从AB的连接就释放了,连接处于半关闭状态,相当于主机A向主机B说:“我已经没有数据要发送了。但如果还发送数据,我仍接收。”此后,主机B不再接收主机A发来的数据。但若主机B还有一些数据要发送主机A,则可以继续发送。主机A只要正确收到数据,仍应向主机B发送确认。 

      第三步:若主机B不再向主机A发送数据,其应用进程就通知TCP释放连接,如图15.7中的箭头②。主机B发出的连接释放报文段必须将终止比特FIN和确认比特ACK1,并使其序号仍为Y,但还必须重复上次已发送过的ACKX1。主机A必须对此发出确认,将ACK1ACKY1,而自己的序号是X1。这样才把从BA的反方向的连接释放掉。主机ATCP再向其应用进程报告,整个连接已经全部释放。

    6.16 重发机制 

      重发机制是TCP中最重要的、最复杂的问题之一。TCP每发送一个报文段,就设置一次定时器。只要定时器设置的重发时间到而还没有收到确认,就要重发这一报文段。大家知道,TCP是在一个互连网的环境下工作。发送的报文段可能只经过一个高速率的局域网,但也可能是经过多个低速率的广域网。报文段的端到端的时延会相差很多倍。那么,定时器的重发时间究竟应设置为多大? 
       TCP环境

           报文往返时间不定、有很大差别
           AB在一个局域网络,往返时延很小
           AC在一个互联网内,往返时延很大
           因此,A很难确定一个固定的、与BC通信都适用的定时器时间
    6.16.1 自适应重传算法

      TCP采用了一种自适应算法。这种算法记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延T

    6.17 TCP的拥塞控制技术

        采用滑动窗口机制还可对网络进行拥塞控制,将网络中的分组(TCP报文段作为其数据部分)数量维持在一定的数量之下,当超过该数值时,网络的性能会急剧恶化。传输层的拥塞控制有慢开始(Slow-Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)和快恢复(Fast Recovery)四种算法。

        拥塞: 大量数据报涌入同一交换节点(如路由器),导致该节点资源耗尽而必须丢弃后面到达的数据报时,就是拥塞。 

       
    6.17.1 慢开始和拥塞避免

        发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。
    因此,每一个 TCP 连接需要有以下两个状态变量:
        接收端窗口 rwnd (receiver window) 又称为通知窗口(advertised window)
        这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在  TCP 报文的首部中的窗口字段,传送给发送端。
        拥塞窗口 cwnd (congestion window)    是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。
      在以太网的环境下,当发送端不知道对方窗口大小的时候,便直接向网络发送多个报文段,直至收到对方通告的的窗口大小为止。但如果在发送方和接收方有多个路由器和较慢的链路时,就可能出现一些问题,一些中间路由器必须缓存分组,并有可能耗尽存储空间,这样就会严重降低TCP连接的吞吐量。这时采用了一种称为慢启动的算法,慢启动为发送方的TCP增加一个拥塞窗口(发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制),当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小),每收到一个ACK,拥塞窗口就增加一个报文段(以字节为单位)。发送端取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4。这是一种指数增加的关系。在某些互联网的中间某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组,这就通知发送方它的拥塞窗口开得过大。

    1. 慢开始和拥塞避免 


        为了解决一条TCP连接会因等待重传计时器的超时而空闲较长的时间,可以采用快重传和快恢复的拥塞控制算法。

    1       当 TCP 连接进行初始化时,将拥塞窗口置为 1。并设置慢启动门限值
    2       发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。
    3       发送端若收到了对所有发出报文段的确认,就在下次发送时将拥塞窗口加倍,可见拥塞窗口从1开始,按指数规律增长。若出现超时,将当前拥塞窗口值减半,作为新的门限窗口值,同时拥塞窗口再次变为1
    4       拥塞窗口重新从1开始按指数规律增长。但当增长到新的门限值时,就每次将拥塞窗口加1,使拥塞窗口按线性规律增长。

    2、快重传和快恢复
        有时一条TCP连接会因等待重传计时器的超时而空闲较长的时间。为此以后又增加了两个新的拥塞控制算法。这就是快重传和快恢复。
        下面结合一个例子来说明快重传的工作原理。
        假定发送端发送了一个报文段M1~M44个报文段。假定由于网络拥塞使M3丢失了。接收端后来收到下一个M4,发现其序号不对,但仍收下放在缓存中,同时发出确认,不过发出的是重复的ACK2共(不能够发送ACK4,因为ACK4表示M4M3都已经收到了)。发送端接着发送M5M6。接收端收到了M5M6后,也还要分别发出重复的ACK2。这样,发送端共收到了接收端的四个ACK2,其中三个是重复的。快重传算法规定,发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应立即重传丢失的报文段M3而不必继续等待为M3设置的重传计时器的超时。
         与快重传配合使用的还有快恢复算法。当不使用快恢复算法时,发送端若发现网络出现拥塞就将拥塞窗口降低为1,然后执行慢开始算法。但这样做的缺点是网络不能很快地恢复到正常的工作状态。快恢复算法可以较好地解决这一问题,其具体步骤如下:
    1)当发送端收到连续三个重复的ACK时,就重新按照前面讲过的“乘法减小”重新设置慢开始门限ssthresh。这一点和慢开始算法是一样的。
    2)与慢开始不同之处是拥塞窗口cwnd不是设置为1,而是设置为ssthresh3×MMS
    3)若收到的重复的ACKn个(n>3),则将cwnd设置为ssthreshn×MMS
    4)若发送窗口值还容许发送报文段,就按拥塞避免算法发送报文段。
    5)若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh

    6.17.2 IP层对改善TCP性能的支持
        路由器报文丢弃策略与拥塞控制
        (1) 早期路由器使用尾部每端丢弃(TAIL-DROP) 策略来处理拥塞:
            若报文到来时队列已满,则丢弃该报文。
            所以,路由器丢弃队列的尾部。
        (2) 尾部丢弃带来的问题 全局性同步(Global synchronization)
            路由器不是丢弃一个连接的n个报文段,而是丢弃n个连接的各一个报文段,造成所有 N 个连接的发送端同时进入慢起动。
            慢启动会显著降低流量。
        (3) 解决办法
            随机丢弃策略 (Random Early Discard、RED)
       RED策略
       随机丢弃策略 (Random Early Discard、RED)
        1)RED 尽可能避免末端丢弃
        2)RED 用两个阈值分别表示队列的位置:Tmin 与 Tmax


    RED 基本操作:
        -若目前队列的报文数小于 Tmin,则把新报文加入队列中。
        -若目前队列的报文数大于 Tmax,丢弃新报文。
        -若目前队列的报文数在Tmin 与 Tmax之间,根据一概率来随机决定是否丢弃此报文。
    (1) Tmin、Tmax 的選擇
        1)Tmin 必须大到确保输出链路有高使用率
        2)Tmax - Tmin必须大于在一个tcp往返时间内增加的队列大小(例如 Tmax 为 Tmin 的两倍)
    (2) p的选择
        p不是常数,而随每个报文计算出来的:
        1)线性方法 队列报文数< Tmin ,丢弃概率为0;
            队列报文数Tmax – 丢弃概率为1
            队列报文数介于Tmin 、Tmin 时,p 在 0 和 1 之间线性变化。
        若突发性只是短时间的,丢弃报文是不明智的。
        线性方式不能处理突发性需求
    (2) 利用平均队列长度Avg来确定p
        这种策略可以在队列满时p较大;而在突发情况下不会丢弃数据
    (3) 加权平均队列大小
        avg = (1 – γ) * Old_avg + γ * Current_queue_size
        其中 γ 介于 0 和 1 之间。 
        若 γ足够小 (例如 0.002),平均值会呈长期稳定的趋势 (亦即 old_avg),
        从而不受突发通讯的影响。
    (4) 修正
        以字节为单位来度量队列的大小, 
        则更合适 较小数据段丢弃的概率比较大数据段丢弃的概率更低
        结论:RED的效果在避免拥塞控制,其效果是很好的

    6.18 糊涂窗口综合症
        当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。
        设想这种情况:

      主机 A 接收端的缓存已满,而 A 的交互式的应用进程一次只从缓存中读取一个字符(这样就在缓存产生1个字节的空位子),然后向发送端 B 发送确认,并通知窗口为1个字节(但发送的数据报是40字节长,20字节的IP头+20字节的TCP头), A-->B 。
      接着,发送端 B 又发来1个字符(但发来的数据报是41字节长), A<--B 。
      接收端A 发回确认, A-->B,仍然通知窗口为1个字节。
      这样进行下去,使网络的效率很低。
        这种现象就叫糊涂窗口综合症
    6.18.1 TCP坚持定时器

        坚持定时器的原理是简单的,当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端查询窗口
        是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到0窗口就再开一个新的定时器准备下一次查询。通过观察可以得知,TCP的坚持定时器使用
        1,2,4,8,16……64秒这样的普通指数退避序列来作为每一次的溢出时间。
    6.18.2 糊涂窗口综合症
        TCP的窗口协议,会引起一种通常叫做糊涂窗口综合症的问题,具体表现为,当客户端通告一个小的非零窗口时,服务器立刻发送小数据给客户端并充满其缓冲区,一来二去就会让网络中充满小TCP数据报,从而影响网络利用率。
    6.18.3 糊涂窗口综合症的避免
        对于发送方和接收端的这种糊涂行为。TCP给出了一些建议(或者是规定)。

    ·  接收方不通告小窗口。通常的算法是接收方不通告一个比当前窗口大的窗口(可以为0),除非窗口可以增加一个报文段大小(也就是将要接收的MSS)或者可以增加接收方缓存空间的一半,不论实际有多少。

    ·  发送方避免出现糊涂窗口综合症的措施是只有以下条件之一满足时才发送数据: ( a )可以发送一个满长度的报文段; ( b )可以发送至少是接收方通告窗口大小一半的报文段; ( c )可以发送任何数据并且不希望接收ACK(也就是说,我们没有还未被确认的数据)或者该连接上
    不能使用Nagle算法。
        ok,现在我们回忆一下,可以发现TCP的很多规定都是为了在一次传送中发送尽量多的数据,例如捎带ACK数据报文的策略,Nagle算法,重传时发送包含原数据报文的策略,等等。
    七、小结 
    网络最本质的活动是实现分布在不同地理位置的主机之间的进程通信;
    传输层的主要功能就是为网络环境中分布式进程通信提供服务;
    网络中应用程序进程间相互作用的模式是客户/服务器(client/server)模式;
    Internet传输层采用了TCP协议与UDP协议;
    TCP是一种面向连接的、可靠的传输层协议,它在网络层IP服务的基础上,向应用层提供面向连接、可靠的流传输;
    UDP是一种无连接的、不可靠的传输层协议。  

    展开全文
  • 网络传输层协议tcp和udp协议的区别

    千次阅读 2018-05-02 22:43:45
    1. tcp: 传输控制协议,全拼:Transmission Control Protocol 它是一个面向连接,可靠的传输协议2. udp: 用户数据报协议,全拼:User Datagram Protocol 它不是面向连接,不是可靠的传输协议, udp协议传输速度快3. tcp和...
    1. tcp: 传输控制协议,全拼:Transmission Control Protocol 它是一个面向连接,可靠的传输协议
    2. udp: 用户数据报协议,全拼:User Datagram Protocol 它不是面向连接,不是可靠的传输协议, udp协议传输速度快
    3. tcp和udp都是传输层的两个传输协议
    4. tcp的特点:
    4.1 面向连接,间接验证对方ip的有效性
    4.2 可靠的传输
    4.2.1  应答机制:发送数据包完成以后,对方收到数据底层会回复
    4.2.2 超时重传:发送数据以后对方没有进行回复,会隔一段时间再次给对方发送数据,如果对方一直没有回复,那么会认为对方已经掉线了
    4.2.3 错误校验:如果收到的数据和之前发送数据包的序号不一致,会自动根据需要进行排序,如果收到重复的数据包,会把重复的数据包删除
    4.2.4 流量控制:使用tcp能保证接收数据的时候电脑不会卡死
    5. tcp和udp的不同点对比
    5.1 tcp 面向连接, udp不面向连接
    5.2 tcp 能保证数据有效和有序的传输,udp保证不了
    5.3 tcp 有超时重传,udp没有
    5.4 tcp 有错误校验,如果出现数据包顺序不一致会自动排序,还有如果收到数据包重复会自动删除重复的数据包,udp没有
    5.5 tcp 有流量控制 udp没有
    5.6 tcp 需要建立连接然后需要资源开销要大, udp不需要建立连接资源开销小
    — 扩展
    5.7 tcp 适合发送大量的数据,tcp每次发送的数据包理论上没有上限控制,udp每次发送的数据包不能超过64k
    5.8 tcp 应用场景: 文件上传和下载、浏览器上网,绝大多数应用程序都是用tcp协议,udp应用场景: 发送广播消息(飞秋上线),音视频传输(qq和微信),包括共屏软件
    5.9 tcp 发送数据的时候需要建立连接,udp不需要建立连接,udp发送速度比tcp发送速度要快
    展开全文
  • TCP/IP四层协议 TCP与UDP的区别

    千次阅读 2016-08-03 18:23:52
    转载地址:http://www.cnblogs.com/BlueTzar/articles/811160.html ... ...TCP/IP四层模型 TCP/IP参考模型    ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由

    转载地址:http://www.cnblogs.com/BlueTzar/articles/811160.html

    http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html


    TCP/IP参考模型
      
      ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。

                图2-1  TCP/IP参考模型

      2.1 TCP/IP参考模型的层次结构
      TCP/IP协议栈是美国国防部高级研究计划局计算机网(Advanced Research Projects Agency Network,ARPANET)和其后继因特网使用的参考模型。ARPANET是由美国国防部(U.S.Department of Defense,DoD)赞助的研究网络。最初,它只连接了美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部门。最终ARPANET发展成为全球规模最大的互连网络-因特网。最初的ARPANET于1990年永久性地关闭。  
      TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层和主机到网络层。如图2-2所示。

                图2-2  TCP/IP参考模型的层次结构

      在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。下面,分别介绍各层的主要功能。
      
      1、主机到网络层  
      实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。  
      2、网络互连层  
      网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。  
      网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。  
      网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。  
      3、传输层  
      在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。  
      TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。  
      UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。  
      4、应用层  
      TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。  
      应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。

      2.2 TCP/IP报文格式  
      1、IP报文格式  
      IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。如图2-3所示:

                图2-3  TCP/IP报文封装

      图2-4是IP头部(报头)格式:(RFC 791)。

                图2-4  IP头部格式
      
      其中:  
      ●版本(Version)字段:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。  
      ●报头长度(Internet Header Length,IHL)字段:占4比特。是头部占32比特的数字,包括可选项。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。此字段最大值为60字节。  
      ●服务类型(Type of Service ,TOS)字段:占8比特。其中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。服务类型字段声明了数据报被网络系统传输时可以被怎样处理。例如:TELNET协议可能要求有最小的延迟,FTP协议(数据)可能要求有最大吞吐量,SNMP协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用,而ICMP协议可能无特殊要求(4比特全为0)。实际上,大部分主机会忽略这个字段,但一些动态路由协议如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决策。  
      ●总长度字段:占16比特。指明整个数据报的长度(以字节为单位)。最大长度为65535字节。  
      ●标志字段:占16比特。用来唯一地标识主机发送的每一份数据报。通常每发一份报文,它的值会加1。  
      ●标志位字段:占3比特。标志一份数据报是否要求分段。  
      ●段偏移字段:占13比特。如果一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置。  
      ●生存期(TTL:Time to Live)字段:占8比特。用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃。  
      ●协议字段:占8比特。指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等。  
      ●头部校验和字段:占16比特。内容是根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)。  
      ●源IP地址、目标IP地址字段:各占32比特。用来标明发送IP数据报文的源主机地址和接收IP报文的目标主机地址。  
      可选项字段:占32比特。用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。 
     
      2、TCP数据段格式  
      TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。  
      如图2-5所示,是TCP头部结构(RFC 793、1323)。

                图2-5  TCP头部结构  
      ●源、目标端口号字段:占16比特。TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务。
      ●顺序号字段:占32比特。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。  
      ●确认号字段:占32比特。只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。  
      ●头部长度字段:占4比特。给出头部占32比特的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。  
      ●标志位字段(U、A、P、R、S、F):占6比特。各比特的含义如下:  
      ◆URG:紧急指针(urgent pointer)有效。  
      ◆ACK:确认序号有效。  
      ◆PSH:接收方应该尽快将这个报文段交给应用层。  
      ◆RST:重建连接。  
      ◆SYN:发起一个连接。  
      ◆FIN:释放一个连接。  
      ●窗口大小字段:占16比特。此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。  
      ●TCP校验和字段:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。  
      ●紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。  
      ●选项字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。
      
      3、UDP数据段格式  
      UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。  
      如图2-6所示,是UDP头部结构(RFC 793、1323):

      ●源、目标端口号字段:占16比特。作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。  
      ●长度字段:占16比特。标明UDP头部和UDP数据的总长度字节。  
      ●校验和字段:占16比特。用来对UDP头部和UDP数据进行校验。和TCP不同的是,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的。  

      2.3 套接字  
      在每个TCP、UDP数据段中都包含源端口和目标端口字段。有时,我们把一个IP地址和一个端口号合称为一个套接字(Socket),而一个套接字对(Socket pair)可以唯一地确定互连网络中每个TCP连接的双方(客户IP地址、客户端口号、服务器IP地址、服务器端口号)。
      
      如图2-7所示,是常见的一些协议和它们对应的服务端口号。

                图2-7  常见协议和对应的端口号
      
      需要注意的是,不同的应用层协议可能基于不同的传输层协议,如FTP、TELNET、SMTP协议基于可靠的TCP协议。TFTP、SNMP、RIP基于不可靠的UDP协议。  
      同时,有些应用层协议占用了两个不同的端口号,如FTP的20、21端口,SNMP的161、162端口。这些应用层协议在不同的端口提供不同的功能。如FTP的21端口用来侦听用户的连接请求,而20端口用来传送用户的文件数据。再如,SNMP的161端口用于SNMP管理进程获取SNMP代理的数据,而162端口用于SNMP代理主动向SNMP管理进程发送数据。  
      还有一些协议使用了传输层的不同协议提供的服务。如DNS协议同时使用了TCP 53端口和UDP 53端口。DNS协议在UDP的53端口提供域名解析服务,在TCP的53端口提供DNS区域文件传输服务。

      2.4 TCP连接建立、释放时的握手过程  
      1、TCP建立连接的三次握手过程  
      TCP会话通过三次握手来初始化。三次握手的目标是使数据段的发送和接收同步。同时也向其他主机表明其一次可接收的数据量(窗口大小),并建立逻辑连接。这三次握手的过程可以简述如下:  
      ●源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。  
      ●目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。  
      ●源主机再回送一个数据段,同样带有递增的发送序号和确认序号。  
      至此为止,TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。整个过程可用图2-8表示。

      2、TCP释放连接的四次握手过程



    ————————————————————————————————————————————————————————————

    TCP协议与UDP协议的区别
        首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!
    TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。
    TCP/IP协议集包括应用层,传输层网络层网络访问层
    其中应用层包括:
    超文本传输协议(HTTP):万维网的基本协议.   
    文件传输(TFTP简单文件传输协议):   
    远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录     
    internet主机,并在这台主机上执行命令.    
    网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等.   
    域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址. 
    其次网络层包括:    
    Internet协议(IP)     
    Internet控制信息协议(ICMP)    
    地址解析协议(ARP)    
    反向地址解析协议(RARP)  
    最后说网络访问层:网络访问层又称作主机到网络层(host-to-network).网络访问层的功能包括IP地址与物理地址硬件的映射,以及将IP封装成帧.基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接.
    当然我这里说得不够完善,TCP/IP协议本来就是一门学问,每一个分支都是一个很复杂的流程,但我相信每位学习软件开发的同学都有必要去仔细了解一番。
    下面我着重讲解一下TCP协议和UDP协议的区别。
    TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次对话才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:我想给你发数据,可以吗?,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:可以,你什么时候发?,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:我现在就发,你接着吧!,这是第三次对话。三次对话的目的是使数据包的发送和接收同步,经过三次对话之后,主机A才向主机B正式发送数据。
    详细点说就是:(文章部分转载http://zhangjiangxing-gmail-com.iteye.com,主要是这个人讲解得很到位,的确很容易使人理解!)
    TCP三次握手过程
    主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,
    主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.
    2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
    我已经收到你的请求了,你可以传输数据了;你要用哪佧序列号作为起始数据段来回应我
    3 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了

    这样3次握手就完成了,主机A和主机B 就可以传输数据了.
    3次握手的特点
    没有应用层的数据
    SYN这个标志位只有在TCP建产连接时才会被置1
    握手完成后SYN标志位被置0


    TCP
    建立连接要进行3次握手,而断开连接要进行4次

    当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
    2  主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
    3 由B 端再提出反方向的关闭请求,将FIN置1
    4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.
    由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端
    和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础
    名词解释
    ACK  TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段
    都收到了.比如,确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性.
    SYN  同步序列号,TCP建立连接时将这个位置1
    FIN  发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1
    TCP的包头结构:
    源端口 16位
    目标端口 16位
    序列号 32位
    回应序号 32位
    TCP头长度 4位
    reserved 6位
    控制代码 6位
    窗口大小 16位
    偏移量 16位
    校验和 16位
    选项  32位(可选)
    这样我们得出了TCP包头的最小长度,为20字节。

    UDP(User Data Protocol,用户数据报协议)

    (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
    (2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
    (3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
    (4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
    (5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
    (6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
    我们经常使用ping命令来测试两台主机之间TCP/IP通信是否正常,其实ping命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
    UDP的包头结构:
    源端口 16位
    目的端口 16位
    长度 16位
    校验和 16位


    小结TCP与UDP的区别:
    1.基于连接与无连接;
    2.对系统资源的要求(TCP较多,UDP少);
    3.UDP程序结构较简单;
    4.流模式与数据报模式 ;

    5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

     

    展开全文
  • 传输层协议TCP&UDP

    千次阅读 2009-06-24 16:17:00
    传输层协议TCP&UDP(2009-01-18 12:18:37)标签:tcp udp 传输控制协议(Transmission Control Protocol, TCP)是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC...
  • TCP协议

    千次阅读 多人点赞 2016-08-06 17:38:11
    TCP协议(传输控制协议) 特点:  1、面向连接的传输层协议  2、每一条TCP连接只能有两个端点,及只能是一对一的  3、TCP提供可靠交付的服务  4、TCP提供全双工通信  5、面向字节流 注意:TCP连接的...
  • 写在前面:刚开始搞wifi通信没多长时间,基本上路子都通了,由于前期对网络的知识实在匮乏,所以看代码的时候很多地方知其然,不知其所以然,所以想学习、研究、梳理一下几个协议的关系,对网络通信加深下印象,中间...
  • 传输层协议TCP与UDP的区别

    千次阅读 2018-01-06 19:16:20
    TCP协议与UDP协议作为传输层最常用的两种传输协议,这两种协议都是使用IP作为网络层协议进行传输。网络层IP与传输层的关系可以简单理解成生活中收快递。IP协议为每个上网的主机分发一个IP地址,这个地址可以理解成...
  • UDP协议TCP/IP协义的区别

    千次阅读 2011-07-20 15:03:59
    不同的是UDP协议TCP协议是网络七层模型中的传输层协议,控制传输数据.UDP协议面向非连接,而TCP协议面向连接.IP协议是网络七层模型中的网络层协议,控制交换数据. 1.传递聊天消息的时候使用UDP or
  • 音视频开发网络传输协议TCP、UDP或者RTP
  • TCP/IP是普遍使用的网络互连标准协议,可在不同环境和不同节点之间进行彼此通信,是连入Internet的所有计算机在网络上进行各种信息交换和传输所必须采用的协议,也是Windows NT、Windows 2000 Server、NetWare及UNIX...
  • TCP/IP协议

    千次阅读 2019-11-08 22:55:37
    TCP/IP协议 TCP/IP: TCP/IP的全称为...TCP/IP协议从名字上面看是指TCP协议和IP协议,但是实际上不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TC...
  • TCP三次握手详解-深入浅出(有图实例演示)

    万次阅读 多人点赞 2018-08-08 21:13:48
    分层以及每层的协议,如下两张图: TCP三次握手 TCP三次握手简单如下图: TCP三次握手的过程描述: 1.客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J, 服务器是被动打开(passive ...
  • TCP/IP协议】传输层TCP协议

    千次阅读 2018-07-03 12:07:45
    TCP协议报文:
  • tcp 和 udp的区别?

    千次阅读 多人点赞 2019-06-27 11:50:20
    可参考:TCP、UDP 协议的区别的详细分析基于 TCP、UDP 协议编程差异 TCP/IP 协议是一个协议簇,包括很多协议。命名为 TCP/IP 协议的原因是 TCP 和 IP 这两个协议非常重要,应用很广。 TCP 和 UDP 都是 TCP/IP...
  • Modbus TCP协议解析

    千次阅读 2019-07-07 17:13:54
    在之前的文章中,我们介绍了Modbus RTU协议的内容和...文章目录一、Modbus TCP协议解析Modbus TCP和Modbus RTU的区别Modbus TCP协议的构成Modbus TCP的报文头Modbus TCP的功能码Modbus TCP的数据码二、持续更新:Mo...
  • 简述TCP的三次握手和四次挥手过程

    万次阅读 多人点赞 2018-05-11 10:28:40
    TCP是一种精致的,可靠的字节流协议。 ②在TCP编程中,三路握手一般由客户端(Client)调用Connent函数发起。 ③TCP3次握手后数据收发通道即打开(即建立了连接)。 ④简述三路握手过程: 图 .TCP三次握手 ...
  • 7. 传输层协议TCP、UDP)

    万次阅读 2020-09-07 01:54:58
    TCP(Transmission Control Protocol)传输控制协议TCP报文结构; TCP三次握手; TCP重传机制; TCP四次挥手; TCP端口号; UDP(User Datagram Protocol)用户数据协议; UDP报文结构。
  • 初探传输层TCP协议-TCP协议入门

    万次阅读 2020-03-24 11:18:04
    HTTP协议是工作在TCP协议之上的一个应用层协议,因而要实现HTTP服务器,TCP协议是必不可少的。本文将带领大家快速了解TCP协议,掌握理论基础,为后面的编程实践做好准备。
  • 协议系列之TCP协议

    千次阅读 2014-08-19 20:13:48
    3、TCP协议 从上一节我们了解了什么是IP协议,以及IP协议的一些特性,利用IP协议传输都是单向的,不可靠的,无连接状态的。正是这些特性,于是便产生了TCP协议TCP协议属于传输层,在IP协议网络层之上,竟然IP协议...
  • 五分钟读懂TCP 协议——TCP协议简介

    万次阅读 多人点赞 2017-06-11 23:48:03
    TCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议...
  • HTTP协议TCP协议、IP协议TCP/IP协议区别

    万次阅读 多人点赞 2017-05-02 17:31:20
    TCP/IP协议TCP/IP协议在上一篇文章中网络协议详解我已经很详细的讲解了.所以在这一篇中,我简单说一下如果想要详细了解,请参考上篇文章. TCP/IP协议看上去好像是TCP协议和IP协议,但其实并不一样 TCP/IP协议叫做网络...
  • TCP协议--TCP头部

    千次阅读 2017-11-25 17:19:10
    TCP协议的概念  TCP和UDP是传输层的两个主要协议TCP相对于UDP来说,是面向连接、字节流和可靠传输。  (1) 面向连接   使用TCP通信的双方必须先建立起连接,然后才能开始数据的读写。建立连接后双方的系统...
  • 网络协议

    千次阅读 2017-09-30 18:06:35
    TCP/IP 协议 (目前最流行的协议,没有根本上不了网) NetBEUI IPX/SPX协议 (用来连接玩游戏的) 其中TCP/IP协议包括了上百个互为关联的协议(位于传输层) Telnet 提供 远程登录功能 FTP 远程文件传输协议 SMTP ...
  • TCP/IP学习笔记——TCP/IP网络起源(一)

    千次阅读 多人点赞 2018-11-05 21:44:45
    一、1984年,美国国防部将TCP/IP作为计算机网络的标准。 二、TCP/IP 是什么 IP世界的 根本大法是TCP/IP协议族。IP世界是由通信实体构成... TCP/IP(传输控制协议/网际协议TCP/IP是Internet的核心技术,是由IET...
  • 尽管TCP和UDP都是用IP协议作为网络层,但TCP却提供和UDP完全不同的网络服务。TCP是面向连接的、稳定可靠的字节流服务。TCP首部的很多字段都是为了实现这2大特性而设计的。 在一个TCP连接中,仅有两方能进行彼此通信...
  • TCP/IP协议详解

    万次阅读 多人点赞 2019-05-11 08:40:41
    认识HTTP协议 它是互联网协议(Internet Protocol Suite),一个网络通信模型,是互联网的一个基本的构架。 HTTP协议是Hyper Text Transfer ...HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件...
  • TCP协议-TCP服务特点和头部结构

    千次阅读 2017-02-20 02:22:13
    TCP服务特点面向连接、基于字节流和可靠传输。TCP的面向连接是什么意思?通信双方都必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。 同时,...
  • TCP 协议

    千次阅读 2016-10-11 18:55:07
    在使用 TCP 协议的网络程序中,用户数据从产生到从网卡发出去一般要经过如下的逐层封装过程: 网络层通过加 IP首部来封装 TCP 段(Segment) 产生 IP 数据报。 其中首部存在对封装数据的标识:是 ICMP(0x01)、IGMP(0x...

空空如也

1 2 3 4 5 ... 20
收藏数 787,629
精华内容 315,051
关键字:

协议