tcp和udp属于哪一层协议?TCP特点是什么?TCP相关知识介绍

发布时间:2023-05-09 13:28:53  来源:时代新闻网

tcp和udp属于哪一层协议?

tcp和udp属于“传输层”协议。UDP和TCP是计算机传输层中重要的协议,TCP是面向连接的,UDP是面向无连接的。TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。UDP(用户数据报协议)为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法。

TCP相关知识介绍

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

TCP:用户报文协议,面向连接,在传输数据之前必须先建立连接,数据传输结束之后释放连接,TCP不提供广播或多播服务。

1. TCP特点

TCP面向连接,提供可靠交付;

有流量控制;

拥塞控制;

提供全双工通信;

面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。

2. TCP的连接

TCP连接的不是两个主机号,也不是端口号,而是套接字:

socket = IP地址:端口号

3. TCP报文段首部格式

源端口和目的端口:各占2个字节,分别写源端口和目的端口;

序号:4个字节,TCP面向字节流,在TCP连接中传送的字节流每一个字节都按照顺序编号,整个要传送的字节流的起始号序号必须要在传输建立时设置;

确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。

数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。

确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把ACK 置 1。

同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。

终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。

窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。

4. TCP三次握手

假设 A 为客户端,B 为服务器端。

首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。

A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。

B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。

A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。

B 收到 A 的确认后,连接建立。