go语言面试(第一轮)请你说说 TCP 和 UDP 的区别

本文详细解析了TCP和UDP两种传输层协议的特性、优缺点及适用场景。TCP提供可靠连接,适合FTP、HTTP等需要稳定传输的场景;UDP速度快,适用于语音通话、视频会议等实时性要求高的应用。理解这两者的差异对于面试和实际工作中的网络通信选择至关重要。

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

题目评价:面试官今天一上来问的第一个问题。这是一个计算机网络的题目,这道题目比较简单(如果不会说明基础比较差,大概率会被毙掉)。因此我总结了一下面试的答题要点和解题思路。

解题思路:

要点1: TCP 提供面向连接的可靠传输,UDP 提供面向无连接的不可靠传输。(TCP协议和 UDP 协议都是传输层协议,都是为应用层程序服务,都具有复用(不同的应用层协议可以共用 UDP 协议和 TCP 协议)和分用(将数据报解析之后分发给不同的应用层程序)的功能)。

要点2:描述TCP和UDP各自的优点和缺点。如表1.(加分)

要点3:TCP在要求数据准确、对速度没有硬性要求的场景有很好的表现。而 UDP 在很多实时性要求高的场景有很好的表现。(由第一、二点引出的特性引出第三点应用场景)。应用场景如表2.(加分)

表1

TCPUDP
优点可靠、稳定,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。,没有TCP各种机制,少了很多首部信息和重复确认的过程,节省了大量的网络资源。
缺点慢,效率低,占用系统资源高,在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接。在要求数据准确、对速度没有硬性要求的场景有很好的表现,比如在FTP(文件传输)、HTTP/HTTPS(超文本传输),不可靠不稳定,只管数据的发送不管过程和结果,网络不好的时候很容易造成数据丢失。又因为网络不好的时候不会影响到主机数据报的发送速率,这对很多实时的应用程序很重要,因为像语音通话、视频会议等要求源主机要以恒定的速率发送数据报,允许网络不好的时候丢失一些数据,但不允许太大的延迟

表2

TCPUDP
特性是TCP/IP体系中非常复杂的一个协议,面向连接(需要三次握手四次挥手)、单播(只能端对端的连接)、可靠交付(有大量的机制保护TCP连接数据的可靠性)、全双工通讯(允许双方同时发送信息,也是四次挥手的原由)、面向字节流(不保留数据报边界的情况下以字节流的方式进行传输,这也是长连接的由来。)、头部开销大(最少20字节)面向无连接(不需要三次握手和四次挥手)、尽最大努力交付、面向报文(每次收发都是一整个报文段)、没有拥塞控制不可靠(只管发不管过程和结果)、支持一对一、一对多、多对一和多对多的通信方式、首部开销很小(8字节)
应用场景FTP(文件传输)、HTTP/HTTPS(超文本传输)语音通话、视频会议等要求源主机要以恒定的速率发送数据报,允许网络不好的时候丢失一些数据,但不允许太大的延迟

 提醒:面试不可能把所有的题目都答上来(很优秀的人除外),因此在面试的时候希望尽可能多的回答上面试官的题目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值