目录
- 传输控制协议
TCP
是面向连接、可靠的传输层协议(传输数据前,必须建立连接);- 每一条
TCP
连接只能有两个端点(服务器、客户端),所以每一条TCP
连接只能是点对点的(一对一,一个发一个收);TCP
面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的报文段);
TCP
具备“可靠性传输”、“流量控制”、“拥塞控制”等功能;
序号 | 数据流中每个字节都有自己的序号,序号字段代表每次数据的发送位置 | |
确认号 | 主要出现于接收方的报文中,如果没有收到,确认号=序号(停留在上一次) | |
数据偏移 | 数据部分距离报文首部的偏移量 | |
保留 | 为今后使用,现设置为0 | |
控制位 | 紧急URG | =1时优先传输 |
确认ACK | 对已接收数据的确认,=1时确认号才有效 | |
同步SYN | 建立连接时:SYN=1,ACK=0请求连接;SYN=1,ACK=1同意连接(响应) | |
推送PSH | =1,尽快交付进程,不等缓存填满 | |
复位RST | =1,连接出错,要释放连接,重新建立连接 | |
终止FIN | 用于释放连接,=1表示发送完毕。并要求释放 | |
窗口 | 用于滑动窗口技术,实现流量控制 | |
校验和 | 检验范围:首部+数据,计算校验和要在TCP报文前+12字节的伪首部 | |
紧急指针 | 配合PSH使用,指出紧急数据有多少,紧急数据放在报文数据的最前面 | |
选项 | 配合快速重传的SACK方法使用,指明选择性重传的数据 |
第一次握手
根据TCP首部内容,表示这是一个请求建立连接的数据包,其中seq=x为所传送数据的第一个字节的序号。
第二次握手
第三次握手
第一次挥手
第二次挥手
第三次挥手
第四次挥手
一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。当
运输层使用UDP协议时,向其上层提供的也是无连接不可靠的传输服务。发送方给接收方发送
UDP用户数据报,若传输过程中用户数据报受到干扰而产生误码,接收方UDP可以通过该数据报
首部中的校验和字段的值检查出产生物码的情况,但仅仅丢弃该数据报其他什么也不做。发送方给
接收方发送UDP用户数据报,如果该数据报被英特网中的某个路由器丢弃了,发送方UDP不做任
何处理,因为UDP向上层提供的是无连接不可靠的传输服务。
类型 | 特点 | 性能 | 应用层场景 | 首部 | ||
是否面向连接 | 传输可靠性 | 传输效率 | 所需资源 | |||
TCP | 面向连接 | 可靠 | 慢 | 多 | 要求通信数据可靠 | 20-60字节 |
UDP | 无连接 | 不可靠 | 快 | 少 | 要求通信速度快 | 8字节 |