TCP-IP协议:
TCP-IP协议是当今使用最广范、最基本的网络协议,当然最基本的网络协议其中不仅包含TCP、IP协议,更包含了更广阔的如SMTP、FTP、HTTP等常用协议,所以我们一般也称它为TCP-IP协议簇。
三次握手与四次挥手:
TCP-IP设计了一套特色的传输模式,我们大多称为 三次握手与四次挥手
建立连接(三次握手):
1、客户端发送 syn=x 报文至服务端,进入SYN_SENT状态,等待服务端回应 2、服务端收到报文并确认后,也发送一个 syn=y 报文至客户端(SYN+ACK),此时服务端进入SYN_RCVD状态 3、客户端收到SYN+ACK报文后发送确认确认报文ACK(ack=y+1),之后二者进入ESTABLISHED状态
数据传输:ESTABLISHED
终止连接(四次挥手):
1、首先客户端想要释放连接,向服务端端发送报文,FINSeq=x+2、ACK=y+1 客户端进入FIN_WAIT_1状态,停止向服务端发送数据,但客户端不会关闭连接,服务端仍可向客户端发送数据 2、服务端接收客户端报文后,确认客户端的终止连接请求,随后服务端进入CLOSE_WAIT状态,发送一段报文ACK x+3: 客户端收到ACK报文后进入FIN-WAIT-2阶段 3、服务端发出ACK报文之后,经过CLOSED_WAIT阶段后,再次向客户端发出一段报文:FIN seq = y+1 随后服务端结束CLOSE_WAIT阶段,进入LAST_ACK阶段。同时停止向客户端发送数据,但是服务端仍然能够接收从客户端传输过来的数据 4、客户端收到报文,确认了服务端已准备终止连接后,进入TIME_WAIT状态,并向服务端发送最后一段报文ACK y=2 随后客户端在短暂等待(2MSL,一次传输的最大生命周期)后,结束TIME-WAIT阶段,进入CLOSED阶段,完成“四次挥手
为什么需要三次握手与四次挥手?
三次握手保证了一次通信的完整性
如果只有两次握手,那么如果环境存在延迟与丢包,响应未能及时应答,此时又会发出新的一次连接的请求,造成了资源浪费。同时也不安全,两次握手的形式决定服务端将一直处于ESTABLISHED的状态,这种情况容易遭受大批量请求的网络攻击
四次挥手确保信息发送完整
在双工通信中,客户端请求断开连接时,并不代表服务端没有想发送给客户端的数据,此时如果服务端应答可关闭并进入close状态,那么数据将无法发送完整,会造成数据滞留
UDP协议
由以上我们可以知道TCP-IP是一个面向与连接、稳定的双工协议 而UDP和TCP-IP是相对的,UDP面向与无连接,且非双工。它不会判断是否发送成功或接收成功,通俗点可以称之为广播。这么做舍取了稳定性,但增强了性能,适用与音视频、多媒体场景。
网络协议体系结构:
网络协议遵循一套基本的多层体系结构,每一层都有相应的处理协议。如应用层的FTP、TELNET,网络层的ICMP、IP等 我们这边应用最广泛的还是TCP-IP的四层结构,能处理90%的问题
数据链路层
处理数据在物理媒介上的传输,如网线、网卡,同时为上层协议提供统一的入口 对应协议:ARP、RARP - 将物理地址(MAC)解析为IP地址
网络层
处理网络连接,确认终端连接路径 当处于局域网环境中可进行直接连接,处于广域网时通过多节点的拓扑过程进行连接 对应协议:IP(寻找终端主机)、ICMP(监控网络连接状态)
传输层
处理数据传输以及传输安全,错误抛出、超时重连等 对应协议:TCP(建立可靠的终端连接 - 三次握手&四次挥手)、UDP(可直接传输数据、但不可靠,不可建立连接,与TCP是相对的)、SCTP(主要应用于电话信号)
应用层
该层涉及应用程序的业务逻辑处理 如登录验证、传输/拉取数据、文件下载等,主要由用户层面控制 对应协议:TELNET、HTTP(用户逻辑数据传输处理)、DNS(域名解析)
|