目录
前期复习:IP协议的头部固定多少字节的长度?UDP和TCP呢?
实现程序与程序之间的数据的传输。与UDP协议相比提供了可靠传输的服务。
首先,在介绍TCP协议的背景之前,我们首先来把电话的通信和TCP连接协议进行对比。为下面的陈述做铺垫。
类比于电话通信,类比于电话通信,TCP连接是面向连接的,通信之前会先建立连接。
问题一:什么是点对点的通信?
答:点对点的通信即两端通信,就是A和B两个端点进行的通信。
问题二:什么是全双工的通信?
答:全双工是一条通信线路,双方都可以同时发送和接受消息。
对比UDP协议面向报文的特点,其在使用TCP协议进行数据传输时,可能对数据进行合并,也可能进行拆分,比如实际传输的过程中,取出一块数据中的某一段来进行传输,而剩下的数据,再把它放到第二个TCP报文中进行传输,以实现更好的传输。
问题三:什么是字节流中所谓的流?
答:流指的是流入进程或流出进程的字节序列。
问题四:TCP和UDP都是以什么单位对数据进行处理的?
答:TCP:传输层传输下来的整块数据。
UDP:面向一个一个的字节来进行处理。
IP协议:20个字节
TCP协议:20个字节
UDP协议:8个字节
序号:因为TCP协议是面向字节流的,因此,每一个字节都有一个唯一的序号,这个序号就是用来标记传输的每一个字节的(一个字节一个序号)。
TCP数据报数据部分的第一个字节的序号。(数据首字节序号)
确认号:表示的就是期待收到数据的首字节序号是什么。
如图,假如已经收到了当前的TCP数据报,下一层的数据的首字节序号就是601。
表示的是TCP数据报首部的长度范围(20~60),因为TCP数据报首部的固定是20个字节的长度,所以首部长度的下限是20字节,TCP选项是可选可不选决定了上限的范围。
占4个比特位(0~15),单位是32位,也就是说,每一个偏移都可以表示4个字节的偏移
![]()
占有6位,每一位都表示不同的含义,在后面介绍的三次握手和四次释放中有着很大的作用。
表示允许对方发送的数据量。
例如,假设确认号为501,窗口的值为1000,那么501~1500之间字节的数据是可以接收的。
只有当前边TCP标记位的URG=1时才启用,它表示紧急数据位于报文的位置。
紧急数据可以保存在数据报中的,等对方接收到的时候,就可以通过紧急指针来找到紧急数据所位于数据报的位置
TCP选项:它是可选的,从前边通过对数据偏移的计算可以知道,TCP选项最多有40个字节。这个选项主要是为了支持协议未来的发展所使用的(支持未来的拓展)