提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、TCP协议介绍
二、TCP报文格式
三、TCP三次握手与四次握手
四、UDP协议介绍
一、TCP协议介绍
TCP/IP协议族主要有两个
1、TCP(传输控制协议)
TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输。
2、UDP(用户数据报协议)
UDP协议是无连接、不保证可靠的传输层协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高。
二、TCP报文格式
1、TCP报文段
TCP将若干个字节构成一个分组,称为报文段。TCP报文段封装在IP数据包中
TCP报文段的首部格式
IP首部 | TCP报文段 |
源端口(16) | 目标端口(16) | |||||||
序号(32) | ||||||||
确认号(32) | ||||||||
首部长度(4) | 保留(6) | URG | ACK | PSH | RST | SYN | FIN | |
窗口大小(16) | ||||||||
校验和(16) | 紧急指针(16) | |||||||
选项 |
控制位:这六位有着很重要的作用,TCP的连接、传输和断开都受这六个控制位的指挥。
URG(紧急位):紧急指针有效位
ACK(确认位):只有当ACK=1时,确认序列号o字段才有效;当ACK=0时,确认序列号字段无效。
PSH(急迫位):标志位为1时要求接收方尽快将数据段送达应用层。
PST(重置位):当PST值为1时通知重新建立TCP连接。
SYN(同步(连接)位):同步序号位,TCP需要建立连接时将这个值设为1。
FIN(断开位):发送端完成发送任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方这个值设为1。
三、TCP三次握手与四次握手
1、TCP建立连接的过程称为三次握手
第一次握手:PC1发送SYN报文,请求建立连接
seq(PC1序列号)=X
SYN(同步位)=1
第二次握手:PC2收到SYN报文会恢复一个YSYN+ACK报文,
seq(PC2序列号)=y
ack(确认号)=X+1
ACK(确认位)=1
SYN(同步位)=1
第三次握手:PC1再次回复一个确认报文
seq(PC1第二个包的序列号)=X+1
ack(确认号)=y+1
ACK(确认位)=1
2、四次挥手(断开连接)
1、客户A向服务器B发送FIN报文请求断开连接,FIN=1、seq=u
2、服务器B返回ACK报文表示收到请求,ACK=1、seq=v、ack=u+1
3、服务器A向客户B发送FIN报文和ACK报文,FIN=1、ACK=1、seq=w、ack=u+1(由于2次断开连接请求之间有等待时间,所以再次发送ACK确认报文,处于半连接状态,仍可传输数据)
4、客户A返回ACK报文表示收到请求断开连接,ACK=1、seq=u+1、ack=w+1
四、UDP协议介绍
无连接不可靠的传输协议
花费的开销小
UDP报文段格式
源端口号(16) | 目标端口号(16) |
UDP长度(16) | UDP校验和(16) |
UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制
常用的UDP端口号
端口 | 协议 | 说明 |
69 | TFTP | 简单文件传输协议 |
111 | RPC | 远程过程调用 |
123 | NTP | 网络时间协议 |
总结
本章学习了关于传输层协议,TCP/IP协议簇,TCP、UDP协议,TCP是一种面向连接、可靠的全双工连接协议,而UDP是一种无连接,不保证可靠性的传输层协议,但由着传输速率快,传输成本低等优点,本章的重点为TCP连接的三次握手,断开的四次挥手原理,UDP的常见端口。