定义
TCP/IP协议并不是某种具体协议而是协议簇,其中包含一系列相关协议由下至上共分为四层。
-
链路层
负责处理硬件,驱动,网卡,电缆等物理细节接口。 -
网络层
IP协议,ICMP协议,GMP协议,IP协议主要最终在于确定目标地址,多数环境下两台计算机并不都是在同一局域网无法直接通过IP地址访问,需要经过多台计算机或其他设备中转连接,此时利用ARP协议通过MAC地址和IP地址共同锁定目标。 -
传输层
TCP协议,UDP协议,该层主要负责传输数据,TCP协议提供可靠的字节流服务,将整块数据分割为以报文段为单位的数据包进行传输,同为数据传输协议TCP与UDP的区别在于:
- TCP是基于有建立连接的方式传输数据,UDP把每个消息段放入队列中由应用程序读取消息段,不需要建立连接,故一台服务器可向多台客户端发送数据。
- TCP对系统资源占用较高,UDP相对较低。
- TCP传输为流模式,UDP传输为数据报模式。
- TCP保证数据正确性,顺序性,UDP不保证。
-
应用层
HTTP协议,FTP协议,SMTP协议,DNS协议。
TCP三次握手
第一次握手
计算机向服务器发出sny数据包并进入SYN_SENT状态,等待服务器确认。
第二次握手
服务器收到sny包进行确认,并向计算机发出sny+ack包,此时服务器进入SYN_RECV状态。
第三次握手
计算机收到服务器发送的sny+ack包,向服务器发送ack确认包,此时双方建立连接进入ESTABLISHED状态。
为什么是三次握手
如果握手过程只有两次,当服务器向计算机发出sny+ack包后立即进入连接状态,此时计算机若没有收到服务器发送的包,就不知道该连接已经成功建立也不知道何时关闭该连接,会导致占用服务器资源。
四次挥手关闭连接
第一次挥手
计算机发送fin包到服务器。
第二次挥手
服务器收到fin并向计算机发送ack确认包。
第三次挥手
服务器向计算机发送fin包。
第四次挥手
计算机收到fin包,并向服务器发送ack包,关闭连接。
网友评论