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 的确认后,连接建立。
关键词: tcp和udp属于哪一层协议 TCP三次握手 TCP报文段首部格式 TCP的连接 TCP特点是什么 tcp什么意思 TCP传输控制协议 UDP用户数据报协议 用户报文协议TCP TCP相关知识介绍