浅谈TCP、UDP、ICMP三种常见协议

惰性星云
• 阅读 182

本文分享自天翼云开发者社区《浅谈TCP、UDP、ICMP三种常见协议》,作者:杨**豪

TCP

TCP是位于传输层的协议,它是面向链接的,提供全双工的服务,数据流可以双向传输。TCP是一种可靠的传输,它拥有三次握手机制保证数据传输的可靠性,如果对方没有接收到数据则会一直尝试重新传输。像FTP文件传输,远程登陆,HTTP,SMTP,HTTPS等等需要保证传输完整性的都是基于TCP协议。 

UDP

UDP也是位于传输层的协议,它是无连接的,面向报文的协议。UDP只能使用尽最大努力交付,并不能保证数据100%的可靠传输,即便有丢包依然会继续传输。因此,UDP更加注重实时性,像语音,电话,视频都是通过UDP传输的,因为偶尔丢几个包并不影响通信。 

ICMP

ICMP是网络层协议。它是TCP/IP协议簇的一个子协议,并不承载数据,也不是用来传输数据的。ICMP是用来传递控制消息的,也就是我们经常说的:网络通不通,主机是否可达。常用的ping命令就是基于ICMP。 
浅谈TCP、UDP、ICMP三种常见协议

TCP与UDP的异同

1. 链接:TCP是面向连接的传输层协议,即传输数据之前必须建立好链接。UDP无连接
2. 服务对象:TCP点对点两点间服务,即一条TCP链接只能有两个端点。UDP支持一对一,一对多,多对一,多对多的相互通信。
3. 可靠性:TCP可靠交付。UDP尽最大努力交付。
4. 拥塞控制/流量控制:TCP拥有拥塞控制和流量控制来保证数据传输的安全性。UDP则没有。
5. 适用场景:TCP适用于数据完整性优先于通信实时性的场景。如果要求通信实时性则使用UDP。

TCP与UDP的优缺点

TCP优点:可靠,稳定
因为TCP有三次握手来建立连接,而且再数据传输的过程中拥有确认,窗口,重传,拥塞控制等机制,再数据传输完成之后还会断开连接来节约资源。

TCP缺点:效率低下,容易被攻击
每一次传输都需要先建立连接,而且传输过程中的各种机制都会消耗大量的时间。又因为TCP是面向链接的协议,拥有三次握手机制,确认机制,这些也导致TCP容易被利用,实现DOS,DDOS,CC等攻击。 

UDP优点:效率高,较为安全
由于UDP是无状态,无连接的传输协议,所以它的传输速度非常快,而且UDP没有各种控制机制,所以被攻击利用的机会就少一些。但并不意味着能避免被攻击。

UDP缺点:不可靠,不稳定
由于UDP是无连接的协议,而且没有TCP拥有的那些机制,所以在网络质量不好的情况下,UDP很容易造成丢包导致数据的缺失。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
3年前
TCP、UDP和HTTP关系
先来一个讲TCP、UDP和HTTP关系的http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTT
Wesley13 Wesley13
3年前
TCP、UDP和HTTP简述整理
http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
TCP、UDP和HTTP区别详解
http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
Wesley13 Wesley13
3年前
TCP与UDP与HTTP协议
http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
浅谈TCP、UDP、ICMP三种常见协议
TCP是位于传输层的协议,它是面向链接的,提供全双工的服务,数据流可以双向传输。TCP是一种可靠的传输,它拥有三次握手机制保证数据传输的可靠性,如果对方没有接收到数据则会一直尝试重新传输。像FTP文件传输,远程登陆,HTTP,SMTP,HTTPS等等需要保证传输完整性的都是基于TCP协议。
API 小达人 API 小达人
1年前
如何在 Eolink Apikit 中发起 TCP/UDP 文档测试
TCP/UDP是两种常用的网络传输协议。TCP协议提供可靠的连接,而UDP协议提供不可靠的连接。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
惰性星云
惰性星云
Lv1
愿山野浓雾都有路灯,风雨漂泊都有归舟。
文章
4
粉丝
0
获赞
0