网络编程——TCP和UDP协议

本文深入解析了TCP和UDP两种网络传输协议的特点与区别。详细介绍了TCP的六种标志位及三次握手、四次挥手的过程,强调了其可靠性与稳定性。同时,阐述了UDP的无连接特性,以及其在实时性应用中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是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;聊天软件等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值