TCP 和 UDP 协议详解
文章目录
1 概述 2 TCP 协议 2.1 报文格式 2.2 三次握手,建立连接 2.3 四次挥手,断开连接 2.4 窗口机制
3 UDP 协议
4 扩展 4.1 常用端口号 4.2 TCP 与 UDP 区别
1 概述
传输层协议
TCP:Transmission Control Protocol,传输控制协议,面向连接,可靠
UDP:User Datagram Protocol,用户数据报协议,无连接,不可靠
目的:在程序之间传输数据
2 TCP 协议
2.1 报文格式
蓝色背景为重点了解部分 (1)源端口(16 位):数据从哪里来 (2)目标端口(16 位):数据到哪里去 (3)序号(32 位,seq):TCP 将要传输的每个字节都进行编号,序号是本报文段发送的数据组的第一个字节的编号,序号可以保证传输信息的有效性。比如:一个报文段的序号为 300,此报文段数据部分共有 100 字节,则下一个报文的序列号为 401 (4)确认号(32 位,ack):
表明该序号之前的所有数据已经正确无误的收到 指明下一个期待收到的序号(ack = seq + 1) (5)首部长度(4 位):表示该 TCP 头部有多少个 32 位(有多少个 4 字节) (6)保留字段(6 位):未用,所有实现必须把这个字段置全 0 (7)标志字段(6 位):为 1 时,有效
URG:紧急指针有效 ACK:接收序号有效 PSH:推进功能有效 RST:连接复位为初始状态,通用用于连接故障后的恢复 SYN:对序号同步,用于连接的建立 FIN:数据发送完,连接可以释放 (8)窗口(16 位):为流控分配的信息量 (9)校验和(16 位):段中所有 16 位字按模
2
16
−
1
2^{16} - 1
2 16 − 1 相加的和,然后取 1 的补码 (10)紧急指针(16 位):从发送顺序号开始的偏置值,指向字节流的一个位置,此位置之前的数据是紧急数据 (11)选项:目前只有一个任选项,即建立连接时指定的最大段长
2.2 三次握手,建立连接
2.3 四次挥手,断开连接
2.4 窗口机制
3 UDP 协议
3.1 传输头格式
4 扩展
4.1 常用端口号
0 ~ 1023:系统端口,这些端口只有系统特许的进程才能使用 1024 ~ 5000:临时端口,一般的应用程序使用 5001 ~ 65535:服务器(非特权)端口,用来给用户自定义端口
常用端口号 应用 说明 20 FTP File Transfer Protocol,文件传输协议,用于 数据传输 21 FTP File Transfer Protocol,文件传输协议,用于 控制信息和数据能够同时传输 80 HTTP Hyper Text Transport Protocol,超文本传输协议
4.2 TCP 与 UDP 区别
TCP UDP 是否连接 面向连接 无连接 传输可靠性 可靠的 不可靠的 应用场景 传输大量数据 传输少量数据 速度 慢 快
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527587.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!