网络基础-------TCP协议(基础的认识)

TCP协议(Transmission Control Protocol)

TCP协议段的格式

这里写图片描述

  • 源/目的端口号:表示数据是从哪个进程来,到哪个进程中去;
  • 4位TCP报头长度:表示该TCP头部有多少个32位bit(有多少个4字节);所以TCP头部的最大长度是15*4=60;
  • 6位标志位:

    URG紧急指针是否有效
    ACK:确认号是否有效
    PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走
    RST:对方要求重新建立连接;我们把携带RST标识的称为复位报文段
    SYN:请求建立连接;我们把携带SYN标识的称为同步报文段
    FIN:通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段

  • 16位校验和:发送端填充,CRC校验。接收端校验不通过,认为数据有问题。此处的校验和不光包含 TCP首部,也包含TCP数据部分。

  • 序列号:不会从0和1开始,而是在建立连接时,由计算机生成的随机数作为其初始值。通过SYN包传给接收端主机。然后再将每次发送的字节数累加到初始值表示的位置上。此外,在建立连接和断开连接时发送SYN包和FIN包虽然并不携带数据,但是也会作为一个字节增加对应的序列号。
  • 16位紧急指针:标识哪部分数据是紧急数据,也用作表示数据流分段的标志。
  • 选项:选项字段用于提高TCP的传输的性能。因为根据数据偏移(首部长度)进行控制,所以其长度最大为40字节。

TCP的主要的特点

1)TCP是面向连接的运输层协议。也就是说应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕之后,必须释放已经建立好的TCP连接。
2)每一条TCP只能有两个端点,每一条TCP连接只能是点对点的(一对一的)。
3)TCP提供可靠交付的服务,也就是说TCP传送的数据无差错,不丢失,不重复,并且按序到达。
4)TCP提供全双工的通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时的存放双向通信的数据。在发送的时候应用进程把数据传送给TCP缓存之后,可以做自己的事情了,而TCP在合适的时候把数据发送出去,在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
5)面向字节流。TCP中的“流(stream)”指的是流入到进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用进程和TCP的交互试一次一个数据块(大小不等),但是TCP把应用程序焦夏来的数据看成仅仅是一连串的无结构的字节流。TCP并不知道所传送数据块具有对应的大小关系(例如发送方应用程序交给发送方的TCP共10个数据块,但是接收方TCP可能只用了4个数据块就把收到的字节流交付给了上层的应用程序)。但是接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。当然接受方的应用程序必须有能力识别收到的字节流,把它还原成原有的意义的应用层数据。
这里写图片描述
TCP的其他的知识见下篇博客!!

猜你喜欢

转载自blog.csdn.net/daboluo521/article/details/80718500