面试题学习笔记10:TCP和UDP

TCP

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。
UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……
UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

TCP和UDP的比较

一,报头不同

TCP的报头:

在这里插入图片描述
UDP的报头:在这里插入图片描述

二,特点不同

UDP的特点:
**无连接:**知道对端的IP和端口号就直接进行传输, 不需要建立连接。
**不可靠:**没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息。
**面向数据报:**不能够灵活的控制读写数据的次数和数量,应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并。
TCP的特点
**面向连接:**要多次握手

三,协议不同

UDP的协议
NFS: 网络文件系统
TFTP: 简单文件传输协议
DHCP: 动态主机配置协议
BOOTP: 启动协议(用于无盘设备启动)
DNS: 域名解析协议
TCP的协议
HTTP
HTTPS
SSH
Telnet
FTP
SMTP

总结

TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
对数据准确性要求高,速度可以相对较慢的,可以选用TCP

TCPUDP是两种常用的传输层协议,它们在很多方面有所不同。首先,TCP是面向连接的协议,而UDP是面向无连接的协议。这意味着TCP在通信之前需要建立连接,而UDP则不需要。\[2\] 其次,TCP保证数据的正确性,通过使用序列号、确认号和校验和等机制来确保数据的可靠传输。而UDP则不提供数据的可靠性保证,它只是简单地将数据发送出去,不关心是否到达目的地。因此,UDP可能会丢。\[2\] 另外,TCP传输速度相对较慢,因为它需要进行连接的建立和断开,并且还需要保证数据的可靠性和有序性。而UDP传输速度较快,因为它没有这些额外的开销。\[2\] 此外,TCP是一对一的连接,即一台主机与另一台主机之间建立一条连接。而UDP可以支持一对多、多对多和多对一的交互。\[2\] 对于发送即时消息,一般会选择使用TCP协议。因为TCP可以保证数据的可靠性,确保消息能够准确地传输到目的地。而UDP则不适合发送即时消息,因为它无法保证消息的可靠性和有序性。\[1\] 总结来说,TCPUDP在传输速度、数据可靠性、连接方式和适用场景等方面有所不同。具体选择哪种协议取决于具体的需求和应用场景。\[2\] #### 引用[.reference_title] - *1* *2* [网络面试题TCPUDP区别及三次握手,四次挥手](https://blog.csdn.net/weixin_44844089/article/details/115469779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [面试官:TCPUDP两者的区别是什么?](https://blog.csdn.net/weixin_45629285/article/details/121077455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值