目录
摘要重点:tcp控制位,三次握手四次挥手
1 、协议
1.1 什么是协议
协议在计算机中扮演着重要的角色,规定数据通信和交互的规则以及约定,协议是一个加密的过程
1.2 协议的作用
· 通信的规范:数据格式,传输方式,消息结构(报文),编码规则等。确保通信的可靠性、一致性、互操作性
· 数据交换:数据在网络中的交换方式,数据包的组织方式,传输的顺序,错误检测,纠正机制,保证数据传输的正确以及完整性
· 安全性:协议可以规定数据的加密和身份认证机制,保障通信的安全,可以方式数据被未经授权的人访问、篡改、泄露
· 设备互联:不同设备和不同系统之间能够互相连接和通信,不同厂商之间的不同设备可以实现互操作性
· 网络管理:定义网络管理以及监控的规范。通过指定的协议管理员可以追踪和管理网络中的设备、配置、和故障。以确保网络的正常运行
http https dhcp nginx ssh ftp 等用的都是tcp协议
2、 tcp协议
2.1 简介
tcp协议:传输控制协议
面对连接的可靠的进程到进程的通信协议。tcp提供的全双工服务
程序:未执行的代码就是程序
进程:运行的代码就是进程
线程:进程的实际执行者
全双工:同时进行通信,数据可以在同一时间双向传输
每个tcp都有发送缓存和接收缓存,用来临时的存储数据
tcp特点:通信双方必须建立连接,而且连接是有规范的,是有步骤的
· tcp是基于连接控制的,双方都需要进行响应
· 数据传输是加密的,数据通信的安全性较高
· 传输速度比较慢,不论是建立连接还是建立连接都有一定的过程,效率比较低
2.2 tcp报文段
2.3 控制位
URG:紧急位,紧急指针有效位
ACK:确认位,只有当ACK位=1,确认的序列号字段才有效;ACK=0确认号字段无效
Ack:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号,确认传输是否有问题
SEQ:tcp报文的序号
SYN:同步位,连接位,tcp同步序号位,tcp需要建立连接时,SYN=1建立连接
FIN:断开位,tcp完成数据传输之后,需要断开连接,提出断开连接的一方,要把FIN设为1
PSH:急迫位,设为1时,要求接收方尽快的把数据发送到应用层
RST:重置位,RST=1时,要求重新建立tcp连接
2.4 三次握手,四次挥手
握手:三次握手目的是建立双向的通信信道。第一次握手客户端发送请求连接报文,服务器收到后确认客户端的连接请求,并发送同意连接的响应报文。第二次握手时服务器发送连接确认报文,客户端收到之后确认服务器的连接响应,这样双方就建立了双向的通信信道。第三次握手是为了防止已失效的连接请求报文段再次出现。
小结:pc1先发报文请求连接同步,pc2回应要求pc1确认连接同步,pc1发送确认连接同步的报文
挥手:pc1发送断开的请求报文,此时pc1不再传输数据,但是可以接收数据,pc2此时还要给pc1发送未发完的数据,接受未接收完的数据,所有先发送ACK报文确认,传输完了数据然后发送FIN和ACK确认断开的报文,pc1发送确认。
因为pc1发完了 ,pc2确认pc1没有数据要发了,然后pc2有数据要发给pc1,发完了pc2再确认断开
2.5 半关闭状态
一方已经停止发送数据,但是另一方还需要继续发送数据
一方先发送fin=1,这时候表示不再发送数据,但是接收数据不受影响
另一方回应ACK=1,确认不再发送数据了,但是接收方还要继续传输数据
接收方传完了数据,就进入最后的挥手阶段
就是到挥手的上面图片第二步
2.6 常用的pc端口号及其功能
http 80
nginx 80
mysql 3306
ftp 21 20
ssh 22
https 443
2.7 抓包看握手挥手
3、udp协议
udp:用户数据报协议
是无连接的,不保证可靠性的传输层协议,发送端是不关心发送的数据是否到达接收方,数据出错也不关心,接收方也不会对发送方做出回应。可靠性主要是由其他的上层协议保障
udp特点:传输数据的速度更快,效率更高
又叫流媒体协议:直播都是流媒体
4、上一节补充
arp只适应同一网段中的设备之间的地址解析。如果设备需要于其他网络中的设备通信,则需要使用路由器等设备来转发数据包