关注
TCP(传输控制协议)的优点:
1. 可靠性高:
- 在传输数据之前,会通过三次握手来建立连接,确保发送方和接收方都做好了通信准备,降低了数据丢失的风险。
- 在数据传递时,有确认、窗口、重传、拥塞控制等机制。接收方会对收到的数据进行确认,若发送方没有收到确认,会自动重传数据,保证数据能够完整、准确地到达接收方。拥塞控制机制可以根据网络状况调整数据发送的速率,避免网络拥塞导致的数据传输问题。
2. 数据顺序保证:能确保数据按照发送的顺序到达接收方,这对于一些对数据顺序有严格要求的应用(如文件传输、数据库操作等)非常重要。
3. 面向连接:通信双方在数据传输之前建立连接,并且在通信过程中保持连接状态,便于双方进行数据交互和状态管理,适用于需要长时间稳定通信的场景。
4. 广泛应用:是互联网中最常用的传输协议之一,几乎所有的网络应用程序都支持 TCP 协议,如网页浏览(HTTP)、电子邮件(SMTP、POP3)、文件传输(FTP)等。
TCP 的缺点:
1. 速度相对较慢:
- 建立连接需要进行三次握手,断开连接需要进行四次挥手,这个过程会消耗一定的时间和网络资源,增加了数据传输的延迟。
- 数据传输过程中的确认、重传、拥塞控制等机制也会带来额外的开销,降低了数据传输的效率,特别是在实时性要求较高的场景下,可能会影响用户体验。
2. 占用系统资源高:为了维护每个连接的状态信息,需要在每台设备上占用大量的内存和 CPU 资源。当连接数量较多时,可能会导致系统性能下降。
3. 易受攻击:由于 TCP 存在确认机制、三次握手机制等,容易被攻击者利用,实现 DoS(拒绝服务攻击)、DDoS(分布式拒绝服务攻击)、CC(Challenge Collapsar,挑战黑洞攻击)等攻击,对网络安全造成威胁。
UDP(用户数据报协议)的优点:
1. 速度快:
- 是一种无连接的协议,不需要建立连接和进行握手操作,数据可以直接发送,减少了连接建立和维护的时间开销,因此传输速度相对较快,适用于对实时性要求较高的应用,如在线游戏、实时视频会议、语音通话等。
- 没有 TCP 中的确认、重传、拥塞控制等机制,不会因为等待确认或进行拥塞控制而产生延迟,能够快速地将数据发送出去。
2. 资源占用少:UDP 的首部开销小,只有 8 个字节,相比 TCP 的 20 个字节的首部开销更小,对系统资源的占用较少。
3. 支持广播和多播:可以向多个接收方同时发送数据,适用于广播、组播等通信场景,例如在网络视频直播、网络音频广播等应用中,可以方便地将数据发送给多个用户。
4. 灵活性高:UDP 是一种简单的协议,没有太多的复杂机制和限制,开发者可以根据自己的需求自由地定义数据格式和传输方式,具有较高的灵活性。
UDP 的缺点:
1. 不可靠:不保证数据的可靠传输,可能会出现数据丢失、重复、乱序等问题。因为它没有确认机制,发送方无法知道数据是否被接收方正确接收,也不会对丢失的数据进行重传。
2. 缺乏拥塞控制:无法根据网络状况自动调整数据发送的速率,在网络拥堵的情况下,可能会导致更多的数据包丢失和网络性能下降。
3. 程序结构较复杂:由于 UDP 不保证数据的可靠性和顺序性,因此在一些对数据质量要求较高的应用中,需要开发者在应用层自行实现错误检测、流量控制、拥塞控制等功能,增加了程序开发的难度和复杂性。
查看原帖
点赞 评论
相关推荐
04-18 16:55
北京邮电大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享

点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
- 1... 以Mentor视角,更喜欢有这些沟通技巧的实习生2.1W
- 2... 得物暑期实习oc1.2W
- 3... 来算一算你的offer究竟到手工资多少!(详细教程)1.0W
- 4... 悟已往之不谏,知来者之可追9473
- 5... 【26届四段大厂】实习爆炸产出方法论 2.09148
- 6... 双非本秋招字节转正失败春招重新拿下字节和腾讯8987
- 7... 暑期实习后,如何完成学生到职场人的身份转换?6324
- 8... 感觉在字节实习有点幸福了5104
- 9... 💗 521凉面筋真好吃~记录一把本小女孩人生第一面4340
- 10... 上点科普贴——什么是五险一金、六险二金?4033
正在热议
更多
# 毕业季,给职场新人一些建议 #
29289次浏览 492人参与
# 国企vs私企,怎么选? #
20410次浏览 168人参与
# 我的求职总结 #
31256次浏览 513人参与
# 辞职之后最想做的一件事 #
11814次浏览 172人参与
# 我的实习日记 #
2449395次浏览 25484人参与
# 选offer应该考虑哪些因素 #
22009次浏览 313人参与
# 小米硬件提前批进度交流 #
165043次浏览 1516人参与
# 为了秋招你都做了哪些准备? #
11214次浏览 169人参与
# 晒一晒你收到的礼盒 #
62987次浏览 377人参与
# 薪资一样,你会选择去大厂还是小公司 #
16890次浏览 103人参与
# 你想吐槽公司的哪些规定 #
18069次浏览 69人参与
# Offer比较,求稳定还是求发展 #
49766次浏览 241人参与
# 硬件开发岗知多少 #
10335次浏览 111人参与
# 我的工作日记 #
99839次浏览 1280人参与
# 第一份工作应该只看薪资吗 #
139225次浏览 1462人参与
# 你想留在一线还是回老家? #
38698次浏览 453人参与
# 一人推荐一个值得去的通信/硬件公司 #
177040次浏览 1832人参与
# 你见过最离谱的招聘要求是什么? #
188854次浏览 1404人参与
# 工作中的卑微时刻 #
9183次浏览 56人参与
# 字节跳动工作体验 #
393096次浏览 4299人参与