Tcp协议
开场白
Tcp/IP是一个协议族而不是一个协议,这是很多人错误的认识。
常用的网络协议如下图所示:
说明:网际层也称为网络层;网络接口层也称为链路层;
TCP:是一种面向连接的、可靠的、基于字节流的传输层通信协议,确保数据送达目的地;
UDP:用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
ICMP:用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
IGMP:网络组管理协议。主要用于建立和管理多播组,对IP分组广播进行控制。
ARP:地址解析协议(IP转换MAC)。
RARP:反向地址转换协议(MAC转换IP)。
TCP/IP七层物理模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP四层物理模型:应用层、传输层、网络层、链路层
TCP三次握手
文字描述
1、客户端给服务器发送连接请求;
2、服务端收到请求后告诉他已经准备好;
3、客户端收到服务器发来的信息(已经准备好),再给服务器发送我已经收到信息。
图片描述
TCP四次挥手
文字描述
1、客户端关闭,并发送信息告诉服务器我已经关闭;
2、服务器收到客户端的请求,并告诉他我已经收到;
3、服务器关闭,告诉客户端已经关闭;
4、客户端收到服务器关闭的信息,整个流程结束。
图片描述
TCP长连接和短连接
短连接
文字描述:
1、客户端向服务器发送连接请求;
2、服务器接收到请求,双方建立连接;
3、客户端向服务器发送消息;
4、服务器回应客户端;
5、一次读写完成,此时双方任何一个都可以发起关闭操作,一般都是 client 先发起 close 操作。当然也不排除有特殊的情况。从上面的描述看,短连接一般只会在 client/server 间传递一次读写操作!
图片描述:
长连接
1、客户端向服务器发送连接请求;
2、服务器接收到请求,双方建立连接;
3、客户端向服务器发送消息;
4、服务器回应客户端;
5、一次读写完成,连接不关闭
6、后续读写操作...
7、长时间操作之后client发起关闭请求
图片描述:
TCP半链接攻击
简介
tcp半链接攻击也称为:SYN Flood (SYN洪水)
是种典型的DoS (Denial of Service,拒绝服务) 攻击
效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。
正常的连接情况
半链接攻击时的情况
防止Dos攻击的措施
1、确保服务器的系统文件是最新的版本,并及时更新系统补丁。
2、关闭不必要的服务。
3、限制同时打开的SYN半连接数目。
4、缩短SYN半连接的time out 时间。
5、正确设置防火墙
6、禁止对主机的非开放服务的访问
7、限制特定IP地址的访问
8、启用防火墙的防DDoS的属性
9、严格限制对外开放的服务器的向外访问
10、运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。
11、认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击。
12、限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会。