TCP(Transmission Control Protocol)传输控制协议和UDP(User Datagram Protocol)用户数据报协议属于传输层协议。
TCP协议和UDP协议的差别:
TCP协议 | UDP协议 |
面向连接的服务,在主机之间建立会话 | 无连接的服务,在主机之间不建立会话 |
TCP通过确认和按顺序传递数据来确保数据的传输 | UDP不能确保后承认数据传输或序列化数据 |
使用TCP的程序能确保可靠的数据传输 | 使用UDP的程序负责提供传输数据所需的可靠性 |
TCP比较慢,有更高的开销要求,而且只支持点对点通信 | UDP快速,具有低开销要求,并支持点对点和一点对多点的通信 |
UDP和TCP都使用端口标识每个TCP/IP程序 |
TCP头结构:
源端口 | 目的端口 | ||||
序号 | 确认序号 | ||||
头长度 | 保留 | ||||
URG | ACK | PSH | RST | SYN | FIN |
窗口大小 | 校验和 | ||||
紧急指针 | 选项 | ||||
数据 |
UDP头结构:
源端口 | 目的端口 |
封包长度 | 校验和 |
数据 |
1.源端口:源端口和IP地址的作用是标识报文的返回地址
2.目的端口:指明报文接收计算机上的应用程序地址接口
3.序列号:TCP连线发送方向接收方的封包顺序号
4.确认序号:接收方回发的应答顺序号
5.头长度:表示TCP头的双四字节数,如果转化为字节个数需要乘以4
6.URG:是否使用紧急指针,0为不适用,1为使用
7.ACK:请求-应答状态。0为请求,1为应答
8.PSH:以最快的速度传输数据
9.RST:连线复位,首先断开连接请求,然后重建
10.SYN:同步连线序号,用来建立连线
11.FIN:结束连线,0为结束连线请求,1为表示结束连线
12.窗口大小:目的机使用16位的域告诉源主机,它想收到的每个TCP数据段大小
13.校验和:这个校验和与IP的校验和有所不同,他不仅对头数据进行校验还对封包内容进行校验
14.紧急指针:当URG为1时才有效,TCP的紧急方式是发送紧急数据的一种方式
15.封包长度:UDP头和数据的总长度