协议:协议在计算机中扮演着重要的角色,它的核心就是规定了数据的通信和交互的规则和约定
协议的作用 :
1 、通信规范 :数据格式 、传输方式 、消息结构(报文) 、编码规则等,确保通信的可靠性、一致性、互操作性
2 、数据交换 :数据在网络中的交换方式,数据包的组织方式 ,包括传输的顺序、错误检测、纠正机制,保证数据传输的正确性和完整性
3 、安全性 :协议可以规定数据的加密和身份认证机制,保证通信的安全可以防止数据被未经授权的人访问、篡改、泄密
4 、设备互联 :不同设备和不同系统之间能够互相连接和通信,不同厂商之间的不同设备实现互操作性
5 、网络管理 :定义网络管理和监控的规范,通过指定的协议,管理员可以追踪管理网络中的设备、配置、故障,以确保网络的正常运行
TCP协议 :
传输控制协议:面对连接的,可靠的进程到进程的通信协议,tcp提供的全双工服务(数据可以在同一时间双向传输)
TCP特点:
通信双方必须要建立连接,而且这个连接必须是规范的,是有步骤的
UDP :
用户数据报协议:是无连接的,不保证可靠性的传输协议,发送端不关心发送的数据是否到达接收方,数据出错也不关心,接收方也不会对发送方做出回应 ,可靠性由其它上层协议来保证
UDP特点 :传输数据的速度更快,效率更高
TCP报文段:
抓包演示:
控制位 :Flags
URG :紧急位 ,紧急指针有效位
ACK :确认位 ,只有当 ACK=1 ,确认的序列号字段才有效 ,ACK=0 ,确认号字段无效
Ack :表示接收方期望收到发送方下一个报文段的第一个字节数据的编号 核心是:确认传输是否有问题
SYN :同步位/连接位 ,同步序号位,tcp需要建立连接时,SYN=1
FIN :断开位,tcp完成数据传输之后,需要断开连接,提出断开连接的一方要把 FIN设为1
PSH :急迫位,PSH设为1时,要求接收方尽快的把数据发送到应用层
RST :重置位 ,RST=1时,要求重新建立tcp连接
TCP连接 :(三次握手,四次挥手)
TCP协议 :
1、是基于连接控制的
2、数据传输是加密的,数据通信的安全性较高
3、传输速度比较慢,不论是建立连接还是断开连接 都有一定的过程。
为什么是三次握手,两次或者四次为什么不行?
如果是两次握手:
1、pc1发送同步信号SYN
2、pc2发送同步信号pc2的SYN+pc2的ACK
两次握手会产生一个问题,pc2没办法知道pc1是不是已经接收了自己的同步信号。一旦这个同步信号丢了,pc1和pc2的初始序列号将无法达成一致。故不能实现
如果是四次握手;
1、pc1发送同步信号SYN+pc1的初始序列号
2、pc2确认收到A的同步信号,并记录A的ISN到本地,命名pc2的ACK序列号
3、pc2发送同步信号SYN+pc2的初始序列号
4、pc1确认收到B的同步信号,并记录pc2的ISN到本地,命名pc1的ACK序列号
显然,并不需要四个步骤
TCP的半关闭状态:
一方已经停止发送数据,但另一方还需要继续发送数据
具体的过程 :
一方先发FIN=1 ,这时候表示不再发送数据,但是接收数据不受影响
另一方回应ACK=1,确认不发数据了,但是接收方还要继续传输数据
接收方传完了数据,就进入最后的挥手阶段
故而需要四次挥手。
常用的端口号 :
http: 默认端口号 80 tcp
https :默认端口号443 tcp
nginx:默认端口号80 tcp
mysql :默认端口号3306 tcp
ftp: 默认端口号 21 20 tcp
ssh: 默认端口号22 tcp
UDP协议:用户数据报协议(流媒体)