精华内容
下载资源
问答
  • TCP协议特点

    千次阅读 2020-09-14 15:05:01
    TCP最主要的特点 TCP是面向连接的运输层协议 每一条TCP连接只能有两个端点(endpoint),点对点 TCP提供可靠交付的服务,无差错、不丢失、不重复,并且按序到达 TCP提供全双工通信(双向通信) 面向字节流。‘面向...

    TCP最主要的特点

    1. TCP是面向连接的运输层协议
    2. 每一条TCP连接只能有两个端点(endpoint),点对点
    3. TCP提供可靠交付的服务,无差错、不丢失、不重复,并且按序到达
    4. TCP提供全双工通信(双向通信)
    5. 面向字节流。‘面向字节流’的含义是:虽然应用程序和TCP的交互是一次一个的数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。TCP并不知道所传送的字节流的含义
    展开全文
  • 文章目录1.TCP协议特点2.TCP报文段的首部格式3.TCP连接管理(1)连接的建立 - - - 三次握手(2)SYN泛洪攻击4.TCP连接释放----四次握手5.TCP连接建立和释放的总结如下 1.TCP协议特点 2.TCP报文段的首部格式 TCP...


    1.TCP协议特点

    在这里插入图片描述
    在这里插入图片描述

    2.TCP报文段的首部格式

    • TCP传送的数据单元称为报文段。一个TCP报文段分为TCP首部和TCP数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中
    • 其首部的前20B是固定的。TCP报文段的首部最短为20B,后面有4N字节是根据需要而增加的选项,通常长度为4B的整数倍。
    • TCP报文段既可以用来运载数据,又可以用来建立连接、释放连接和应答。
      在这里插入图片描述
    • 1)源端口和目的端口字段。各占2B。端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口实现。
    • 2)序号字段。占4B。TCP是面向字节流的(即TCP传送时是逐个字节传送的),所以TCP连接传送的数据流中的每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。
      在这里插入图片描述
    • 3)确认号字段。占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号。若确认号为N,则表明到序号N- 1为止的所有数据都已正确收到。
      在这里插入图片描述
    • 4)数据偏移(即首部长度)。占4位,这里不是IP数据报分片的那个数据偏移,而是表示首部长度,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位(以4B为计算单位)。因此当此字段的值为15时,达到TCP首部的最大长度60B.

    在这里插入图片描述

    • 5)保留字段。占6位,保留为今后使用,但目前应置为0,该字段可以忽略不计。
    • 6)紧急位URG。URG= 1时,表明紧急指针字段有效。它告诉系统报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。但URG需要和紧急指针配套使用,即数据从第一个字节到紧急指针所指字节就是紧急数据

    在这里插入图片描述

    • 7)确认位ACK。只有当ACK= 1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.

    • 8)推送位PSH (Push)。 接收TCP收到PSH= 1的报文段,就尽快地交付给接收应用进程而不再等到整个缓存都填满后再向上交付。

    在这里插入图片描述

    • 9)复位位RST (Reset)。RST=1时,表明TCP连接中出现严重差错(如主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。

    • 10)同步位SYN。同步SYN= 1表示这是一个连接请求或连接接收报文。当SYN=1, ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1, ACK=1。即SYN= 1表示这是一个连接请求或连接接收报文。

    在这里插入图片描述

    • 11)终止位FIN (Finish)。用来释放一个连接。FIN= 1表明此报文段的发送方的数据已发送完毕,并要求释放传输连接。

    • 12)窗口字段。占2B。它指出现在允许对方发送的数据量,接收方的数据缓存空间是有限的,因此用窗口值作为接收方让发送方设置其发送窗口的依据,单位为字节。
      例如,假设确认号是701,窗口字段是1000。这表明,从701号算起,发送此报文段的接收方方还有接收1000B数据(字节序号为701 ~1700)的接收缓存空间。

    在这里插入图片描述

    • 13)校验和。占2B。校验和字段检验的范围包括首部和数据两部分。在计算校验和时,和UDP一样,要在TCP报文段的前面加上12B的伪首部(只需将UDP伪首部的第4个字段,即协议字段的17改成6,其他的和UDP一样)。
      UDP协议
    • 14)紧急指针字段。占16 位,指出在本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)。

    在这里插入图片描述
    15)选项字段。长度可变。TCP最初只规定了一种选项,即最大报文段长度(Maximum SegmentSize,MSS)。MSS是TCP报文段中的数据字段的最大长度。窗口扩大、时间戳、选择确认
    16)填充字段。这是为了使整个首部长度是4B的整数倍。填充0.

    3.TCP连接管理

    • TCP是面向连接的协议,因此每个TCP连接都有三个阶段:连接建立、数据传送和连接释放
    • TCP连接的管理就是使运输连接的建立和释放都能正常进行

    在TCP连接建立的过程中,要解决以下三个问题:

    • 1)要使每一方都能够确知对方的存在。
    • 2)要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量等)。
    • 3)能够对运输实体资源( 如缓存大小、连接表中的项目等)进行分配。

    每条TCP连接通过通信两端的两个端点( 即两个套接字)确定。

    在这里插入图片描述

    (1)连接的建立 - - - 三次握手

    • seq为序号字段,标明本次报文段数据部分的第一个字节的序号
    • ack是确认号字段,告诉对方我接下来应该接收的数据是从字节序号ack开始的数据
    • ACK是确认位,0时确认号字段ack无效,1时确认号字段ack有效
    • SYN是同步位
      在这里插入图片描述
    • 第一步:客户机的TCP首先向服务器的TCP发送一个连接请求报文段。这个特殊的报文段中不含应用层数据,其首部中的SYN标志位被置为1。另外,客户机会随机选择一个起始序号 seq= x(连接请求报文不携带数据,但要消耗一个序号)。
    • 第二步:服务器的TCP收到连接请求报文段后,如同意建立连接,就向客户机发回确认,并为该TCP连接分配TCP缓存和变量。在确认报文段中,SYN和ACK位都被置为1,确认号字段的值为x+ 1, 并且服务器随机产生起始序号seq = y(确认报文不携带数据,但也要消耗-一个序号)。确认报文段同样不包含应用层数据。
    • 第三步:当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。这个报文段的ACK标志位被置1,序号字段为x+1,确认号字段ack=y+ 1。该报文段可以携带数据,若不携带数据则不消耗序号。
      成功进行以上三步后,就建立了TCP连接,接下来就可以传送应用层数据。

    TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。

    • 服务器端的资源是在完成第二次握手时分配的
    • 而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN洪泛攻击。

    (2)SYN泛洪攻击

    在这里插入图片描述

    4.TCP连接释放----四次握手

    • 天下没有不散的筵席,TCP同样如此。参与TCP连接的两个进程中的任何- 一个都能终止该连接。TCP连接释放的过程通常称为四次握手
      在这里插入图片描述
      在这里插入图片描述

    • 第一步:客户机打算关闭连接时,向其TCP发送一个连接释放报文段, 并停止发送数据,主动关闭TCP连接,该报文段的FIN标志位被置1, seq=u, 它等于前面已传送过的数据的最后一个字节的序号加1 (FIN报文段即使不携带数据,也要消耗一个序号)。
      TCP 是全双工的,即可以想象为一条TCP连接上有两条数据通路。
      发送FIN报文时,发送FIN的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据。

    • 第二步:服务器收到连接释放报文段后即发出确认,确认号是ack=u+ 1,而这个报文段自己的序号是v,等于它前面已传送过的数据的最后一个字节的序号加1
      此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。
      但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭

    • 第三步:若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时其发出FIN= 1的连接释放报文段

    • 第四步:客户机收到连接释放报文段后,必须发出确认。在确认报文段中,ACK字段被置为1,确认号ack=w+1,序号seq=u+1.此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL后,A才进入连接关闭状态

    5.TCP连接建立和释放的总结如下

    • 1)连接建立。分为3步:
      ①SYN=1,seq=x。
      ②SYN=1, ACK=1, seq=y, ack=x+ 1。
      ③ACK=1,seq=x+1, ack=y+ 1。
    • 2)释放连接。分为4步:
      ①FIN=1, seq= u
      ②ACK=1, seq=v, ack=u+ 1。
      ③FIN=1,ACK=1, seq=w,ack=u+ 1。
      ④ACK=1, seq=u+1, ack=w+ 1。

    关于连接和释放,ACK、 SYN、 FIN 一定等于1

    展开全文
  • 目录TCP协议特点TCP报文段首部格式 TCP协议特点 TCP报文段首部格式

    TCP协议的特点

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    TCP报文段首部格式

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • TCP协议特点

    万次阅读 2018-10-14 15:29:54
    1.1面向连接的:使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放资源。TCP协议的这种...

    一、TCP相对于UDP协议的特点是:面向连接的、字节流和可靠传输。

    1.1面向连接的:使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放资源。TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服。而无连接协议UDP则非常适合于广播和多播。

    1.2流式服务:TCP的字节流服务的表现形式就体现在,发送端执行的写操作数和接收端执行的读操作次数之间没有任何数量关系,当发送端应用程序连续执行多次写操作的时,TCP模块先将这些数据放入TCP发送缓冲区中。当TCP模块真正开始发送数据的时候,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。(下图3-1)

    1.3UPD的数据报服务:发送端应用程序每执行一次写操作,UDP模块就将其封装成一个UDP数据报并发送之。接收端必须及时针对每一个UDP数据报执行读操作(通过recvfrom系统调用),否则就会丢包(这经常发生在较慢的服务器上)。并且,如果没有指定足够的应用程序缓冲区来读取UDP数据,则UDP数据将被截断。(下图3-2)

                                                                  

                                                                 

    将服务器端的接受数据大小改为1,那么他每次只接收一个数据,但是理论上来说它每接收一个数据,就应该返回一个确认信息ok给客户端,但是你发现图中的结果并不是这样的,它之所以会这样的结果就是因为上文所说的流式服务。

    1.4 TCP传输是可靠的,原因如下:

    (1)TCP协议采用发送应答机制,即发送端发送的每个TCP报文段都必须得到接收方的应答,才能认为这个TCP报文段传输成功。

    (2)TCP协议采用超时重传机制,发送端在发送出一个TCP报文段之后启动定时器,如果在定时时间内未收到应答,它将重新发送该报文段。

    (3)由于TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能乱序、重复、所以TCP协议还会将接收到的TCP报文段重排、整理、再交付给应用层。

    UDP协议则和IP协议一样,提供的是不可靠的服务。它们都需要上层协议来处理数据确认和超时重传。

     

    展开全文
  • TCP协议-TCP服务特点和头部结构

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

    万次阅读 多人点赞 2018-08-06 19:39:16
    TCP协议的主要特点 (1)TCP是面向连接的运输层协议; (2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的; (3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达; (4)...
  • TCP协议的学习 (一)TCP服务特点

    千次阅读 2016-04-05 19:17:52
    TCP的服务特点: 1.面向连接 2.字节流 3.可靠性
  • TCP协议(3)--TCP的特点

    万次阅读 2018-07-20 14:30:22
    TCP特点TCP通过检验和,序列号,确认应答,重发控制,连接管理以及窗口控制等机制实现可靠性传输。 通过序列号与确认应答提高可靠性: TCP通过肯定的确认应答ACK实现可靠的数据传输。当发生端将数据发送出去...
  • TCP协议的传输特点

    千次阅读 2019-07-29 19:14:45
    TCP协议是传输层的一个重要的协议,用于点对点的数据传输。它是可靠的面向连接的流式服务 (1)可靠性 TCP协议自带超时重传,应答确认机制,保证其可靠性。 (2)面向连接 TCP数据报要想发送,必须先建立连接(三...
  • TCP协议

    千次阅读 2019-04-16 08:45:42
    TCP协议概述 简述 ​ 面向连接(虚连接)的传输控制协议TCP ​ 传送数据之前必须建立连接,数据传送结束之后要释放连接 ​ 不提供广播或多播服务 ​ 由于TCP要提供可靠的面向连接的传输服务,因此不可避免的增加了...
  • HTTP协议、TCP协议、IP协议和TCP/IP协议区别

    万次阅读 多人点赞 2017-05-02 17:31:20
    TCP/IP协议看上去好像是TCP协议和IP协议,但其实并不一样 TCP/IP协议叫做网络通信协议,它包括上百个协议,而HTTP协议、TCP协议、IP协议只是TCP/IP协议中的一部分. TCP/IP协议是用于计算机通信的一组协议,我们通常称...
  • TCP/IP协议诞生2,网络的体系结构2.1,OSI开放系统互联模型2.2,TCP/IP协议族的体系结构3,TCP/IP协议通信模型3.1,TCP/IP结构3.2,TCP/IP协议通信模型3.3,数据的封装与传递过程(封包和拆包)4,TCP协议特点5,UDP...
  • 协议系列之TCP协议

    千次阅读 2014-08-19 20:13:48
    3、TCP协议 从上一节我们了解了什么是IP协议,以及IP协议的一些特性,利用IP协议传输都是单向的,不可靠的,无连接状态的。正是这些特性,于是便产生了TCP协议TCP协议属于传输层,在IP协议网络层之上,竟然IP协议...
  • 最近复习到网络,Linux的复习也将接近尾声。在这我将改正自己做事龙头蛇尾的一贯作风。在网络编程这个模块中也会认真做好笔记。 网络模块是一个面试必问的模块,这一块...1.TCP协议特点 2.UDP协议的特点 1.T...
  • 从重点内容四方面来讨论TCP协议: 1:TCP头部信息。TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口号、目的端端口号、管理TCP连接,控制两个方向的数据流。 2:TCP状态转移过程。TCP连接的任意一端都是...
  • TCP协议和UDP协议 的特点和对比

    千次阅读 2020-06-13 20:25:11
    1.UDP的特点 (1)无连接:知道对端的IP和端口号就可以了, 不需要建立任何连接就可以传输数据 (2)不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息; ...
  • TCP协议详解(一)

    千次阅读 2015-08-01 20:18:30
    TCP协议特点:面向连接、字节流、可靠传输 面向链接: 1.使用TCP协议的双方必须先建立连接,并且双方都必须分配相应的内核资源。TCP的连接是全双工的,也就是说双方可以根据一个连接进行读写操作。 字节流: ...
  • 终于把TCP协议与UDP协议给整明白了

    万次阅读 多人点赞 2020-07-04 21:35:16
    网络编程有三个要素,分别是IP地址、端口号和通信协议,本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。
  • 传输控制协议TCP特点和格式

    千次阅读 2017-09-29 22:26:03
    TCP协议的主要特点:①支持面向连接的传输服务。:应用程序在使用TCP协议传送数据之前,必须在源进程端口和目的进程端口之间建立一条TCP传输连接。每个TCP连接为通信双方的一次进程通信提供服务。 ②支持字节流的...
  • TCP协议详解及交换机路由器概念

    千次阅读 2020-07-22 19:22:17
    TCP协议 特点:面向连接、可靠(数据包不丢失、不错误、不乱序)的协议、可以进行流量控制 报文格式 由两部分组成:TCP首部(头部)+TCP数据部分(需要传输的东西) ----首部由两部分组成,一个部分是20个字节的...
  • TCP协议与UDP协议的区别

    千次阅读 2020-08-21 10:04:01
    TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了, 一直都是说TCP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。里面包括...
  • UDP协议和TCP协议

    千次阅读 2020-07-03 18:26:45
    UDP协议和TCP协议都是传输层的协议,TCP协议提供可靠的通信传输,而UDP则是常常被用于让广播和细节控制的交给应用的通信传输 UDP协议:不保证安全,但是性能比较好 UDP的传输过程类似于寄信,仅仅在乎的是信件有...
  • Http协议和TCP协议详解

    千次阅读 2019-01-03 16:10:56
    TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到...
  • MQTT 是 IBM 于 1998 年设计和开发的工作在 TCP/IP 协议簇上是基于 TCP 协议的应用层协议。MQTT 采用轻量级的发布/订阅范式进行消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务,设备...
  • TCP协议详解

    万次阅读 2016-04-25 20:34:58
    TCP协议 1.头部。出现在每个TCP报文段,用于指定通信的源端端口号,目的端端口号,管理TCP连接,控制两个方向的数据流。 2.TCP状态转移过程。TCP连接的任意一端都是一个状态机。TCP的建立断开状态改变。 3.TCP...
  • Linux 之 TCP 协议详解

    千次阅读 2016-10-30 16:56:58
    TCP服务特点TCP协议特点是:面向连接、字节流和可靠传输。 TCP的面向连接是什么意思? TCP的字节流是什么意思? TCP的可靠是什么意思? 那么传输层在整个TCP/IP协议族中的作用是什么呢? TCP头部结构

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,038
精华内容 57,215
关键字:

tcp协议的特点