TCP/IP协议
TCP/IP协议层(分为四层):
应用层:
传输层:
TCP传输:需要双方都建立连接;
UDP传输:无需建立连接,例如在线视频/DNS等;
网络层:IP
链路层:例如路由器等;
TCP三次握手:
第一次握手:客户端发送请求建立连接(客户端将标志位 SYN 置为 1,随机产生一个值 seq=J,并将该数据包发送给服务器端,客户端进入 SYN_SENT 状态,等待服务器端确认)
第二次握手:服务端确认应答,并请求建立连接(服务器端收到数据包后由标志位 SYN=1 知道客户端请求建立连接,服务器端将标志位 SYN 和 ACK 都置为 1,ack=J+1,随机产生一个值 seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入 SYN_RCVD状态)
第三次握手:客户端针对服务端的连接确认应答(客户端收到确认后,检查 ack 是否为 J+1,ACK 是否为 1,如果正确则将标志位 ACK 置为 1,ack=K+1,并将该数据包发送给服务器端,服务器端检查 ack 是否为 K+1,ACK 是否为 1,如果正确则连接建立成功,客户端和服务器端进入 ESTABLISHED 状态,完成三次握手)
三次握手漏洞(SYN宏范攻击):客户端发送不存在的IP,同时服务端会保存半连接队列(小于10个)过多会导致服务端卡死
处理方案:1:无效链接监控释放。2:延缓TCB分配方法,3:开启防火墙
TCP四次挥手:
第一次:客户端发送关闭请求
第二次:服务端响应客户端关闭请求
第三次:服务端发送关闭请求
第四次:客户端发送确认关闭请求
TCP为什么要四次挥手?:TCP是双全工(客户端和服务端可以相互发送和接受请求)所以需要双方都确认关闭连接
TCP/IP中的数据包(在各层中的描述)
包:全能性术语
帧:数据在链路层中包的单位(链路层)
片:IP中数据的单位(网络层)
断:TCP数据流中的信息(传输层)
消息:用户发送的消息信息(应用层)
TCP通信原理:
Socket套接字(计算机网络通信约定):主机的IP地址加上主机端口号套接
TCP连接:请求主机IP端口和客户机IP端口 两个套接字对组成TCP连接
TCP缓冲区:每个TPC的Socket的内核中都有一个发送缓冲区和一个接受缓冲区
TCP的可靠性和高效性:
可靠性:TCPZ中通过序列号和确认应答提高可靠性(请求发送的序列号和应答序列号需要相同,如果丢失则请求重发)
高效性:TPC协议中的滑动窗口机制:(TCP内部确认,内部调整大小)
滑动窗口:发送方和接收方都会维护一个数据帧的序列,这个序列称之为窗口。窗口大小由接收方确认保证数据不会丢失(如果丢失可以重发)控制发送速度(避免接收方缓存不够导致溢出,同时控制流量也可以避免网络拥塞)
TCP连接是 无状态 单向性的 是一种虚拟连接

浙公网安备 33010602011771号