TCP/UDP基础知识

TCP/UDP
OSI七层参考模型中第四层传输层的内容
TCP–传输控制协议:面向连接的可靠传输协议–在传输层的基本工作(数据分段、提供端口号)之上,还需要保障传输的可靠性。
面向连接–可以通过三次握手建立端到端的虚链路
可靠传输–四大机制–确认 重传 排序 流控(滑动窗口)
TCP三次握手:
在这里插入图片描述
SYN–同步序列号请求:在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。

ACK–确认:TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1。

FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

Ctl: 发送状态

TCP四次断开
在这里插入图片描述
当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接, B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图), A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。

TCP报头:
在这里插入图片描述
第一层:两个16bit的源目端口号
第二层:一个32bit的序列号
第三层:一个32bit的确认号
第四层:一个4bit的头部长度;一个16bit的窗口大小
第五层:一个16bit的TCP校验和;一个16bit的紧急指针
第六层:选项
第七层:数据

UDP–用户数据报文协议:非面向连接的不可靠协议
传输层的基本协议(数据分段、提供端口号)
UDP报头:
在这里插入图片描述

第一层:两个16bit的源目端口号
第二层:一个16bit的UDP长度;一个16bit的UDP校验和
第三层:数据

IP报头
在这里插入图片描述
第一层:4bit的版本;4bit的头部长度;8bit的优先级和服务类型;16bit的总长度
第二层:16bit的标识;3bit的标志;13bit的片偏移
第三层:8bit的生存时间;8bit的协议;16bit的头部校验和
第四层:32bit的源IP地址
第五层:32bit的目标IP地址
第六层:选项
第七层:一个数据;一个填充

猜你喜欢

转载自blog.csdn.net/weixin_43625429/article/details/84889102