什么是TCP协议
一、TCP协议报头
TCP指传输控制协议,其报头格式如下:
TCP协议中的六个标志分别是,URG、ACK、PSH、RST、SYN、FIN。
1)UGR(紧急):UGR=1表示紧急指针字段有效。它告诉系统此报文段有紧急数据,应当尽快传送。从报文段的开头,到紧急指针指向的地方就是紧急数据。
2)ACK(确认):ACK=1时,确认号字段才有效。
3)PSH(推送):让对方立即收到响应。与URG的区别就是URG中的紧急数据不经过缓冲区就直接上交给上层逻辑,而PSH还是要从缓冲区上交,只是不用等到缓冲区满了才上交。
4)RST(复位):RST=1时,表明TCP链接中出现严重差错,必须释放链接,然后再重新链接。以下几种场景中会使用RST报文(访问不存在的端口。异常终止一个链接,一般情况下是发送FIN,因为在所有排队数据都以发送之后才发送FIN,但是也有可能发送一个RST来异常释放连接。检测半打开的链接,即一端关闭,另一端不知道,这时会发送一个RST进行监测。当长时间不用连接,连接断开之后,再次访问的时候会发送RST)。
5)SYN(同步):在链接建立时用来同步序号。当SYN=1,ACK=0时表示请求报文。SYN=1,ACK=1表示链接接受。因此SYN=1表示一个链接请求或链接接受报文。
6)FIN(终止):用来释放一个链接。
二、TCP的优缺点
TCP的优点是:可靠、稳定。它体现在TCP在传递数据之前,会有三次握手来建立连接;在数据传递时,采用校验和、序列号、确认应答、超时重发、流量控制、拥塞控制,为了提高性能,还采用了滑动窗口、延迟应答和捎带应答等机制;在数据传完后,会断开连接以节约系统资源。
三、TCP的缺点:
TCP的缺点:运行速度慢,效率低,占用系统资源多,易被攻击。因为TCP在传递数据之前,要先建立连接,这会消耗时间;在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,每个连接都会占用系统的CPU、内存等资源;TCP有确认机制、三次握手机制,这导致TCP容易受到DOS、DDOS、CC等攻击。收到STN洪水攻击,是因为使用 TCP的时候服务器端需要listen,这时需要设置backlog。
四、TCP协议建立链接的三次握手,断开链接时四次挥手
建立链接的三次握手:
建立两个通道,
syn洪水攻击:一个服务端接受的客户端的请求非常多,tcp协议又称为好人协议, 有一些黑客,早一些大量的假的ip,发送请求,
首先真的ip进不去,然后处理大量的假的ip 服务端会定时发送请求,与假ip建立链接,服务端容易崩.
断开链接的四次挥手
什么是UDP协议
一、UDP协议报头
UDP指用户数据报协议,其报头格式如下:
二、UDP的优缺点
UDP的优点:运行速度较快,比TCP安全。
1)运行速度快,因为 UDP连接没有TCP的三次握手、确认应答、超时重发、流量控制、拥塞控制等机制,而且UDP是一个无状态的传输协议,所以它在传递数据时非常快。
2)较安全,因为没有TCP的那些机制,UDP较TCP被攻击者利用的漏洞就会少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击等。
三、UDP的缺点
UDP的缺点:不可靠,不稳定。
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。
TCP和UDP的特点
(1)TCP(Transmission Control Protocol)
TCP协议是一种面向连接的协议(eg:打电话)、流式协议、安全、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流、相对比较慢、点对点的传输层协议。使用TCP的应用:Web浏览器;文件传输程序;转账。TCP协议适用于对可靠性要求比较高的场合。
(2)UDP(User Datagram Protocol)
UDP协议是一种无连接,不可靠、面向数据报、传输效率高(发送前时延小)、速度比较快、可实现一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制的传输层协议。UDP协议适用于对实时性有要求的场合。因为UDP不保证可靠性,所以UDP也没有重传机制,也没有拥塞机制,它只是尽最大努力交付数据。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP);微信;qq;聊天软件等。