文章目录
前言:
TCP/IP协议簇的传输层协议主要有两个,TCP(Transimission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)
一、TCP协议介绍
TCP是面向连接的,可靠的进程到进程通信的协议。
TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
二、TCP报文格式
2.1、TCP报文段
TCP将若干个字节构成一个分组,成为报文段。
TCP报文段封装在IP数据报中。
2.2、TCP报文段格式
源端口号:16位字段,为发送方进程对应的端口号。
目标端口号:16位字段,对应的是接收端的进程,接收端收到数据后,根据这个端口号来确定吧这个数据送给哪个应用程序的进程。
序号:当TCP从进程接收数据字节时,就把他们存储在发送缓存中,并对每一个字节进行编号。
确认号:确认号是对发送端的确认信息。用它来告诉发送端这个序号之前的数据段都已经收到。如确认号是X,就表示前X-1个数据段都已经收到。
首部长度:一般是20字节,最大可以扩展为60字节。用它可以确定首部数据结构的字节长度。
保留:作为今后扩展功能使用,现在还没有使用到。
控制位:这六位作用很重要,TCP的连接,传输和断开都受这六个控制位的指挥。各位的含义如下。
URG:紧急指针有效位。只有0和1,1表示指针开启。数据传输时,先放在缓存(内存)中,临时保存起来,紧急指针位是指可以在内存中优先提取数据。
PSH:标志位=1时要求接收方尽快将数据段送达应用层。即PSH=1时,不经过缓存,直接将数据段送达应用层。优先级高于URG。
ACK:确认位。只有当ACK=1时