TCP的长处: 牢靠,稳固 TCP的牢靠体现在TCP在传递数据之前,会有三次握手来建设连贯,而且在数据传递时,有确认、窗口、重传、拥塞管制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的毛病: 慢,效率低,占用系统资源高,易被攻打 TCP在传递数据之前,要先建连贯,这会耗费工夫,而且在数据传递时,确认机制、重传机制、拥塞管制机制等都会耗费大量的工夫,而且要在每台设施上保护所有的传输连贯,事实上,每个连贯都会占用零碎的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻打。
UDP的长处: 快,比TCP稍平安 UDP没有TCP的握手、确认、窗口、重传、拥塞管制等机制,UDP是一个无状态的传输协定,所以它在传递数据时十分快。没有TCP的这些机制,UDP较TCP被攻击者利用的破绽就要少一些。但UDP也是无奈防止攻打的,比方:UDP Flood攻打…… UDP的毛病: 不牢靠,不稳固 因为UDP没有TCP那些牢靠的机制,在数据传递时,如果网络品质不好,就会很容易丢包。 基于下面的优缺点,那么: 什么时候应该应用TCP: 当对网络通讯品质有要求的时候,比方:整个数据要准确无误的传递给对方,这往往用于一些要求牢靠的利用,比方HTTP、HTTPS、FTP等传输文件的协定,POP、SMTP等邮件传输的协定。 在日常生活中,常见应用TCP协定的利用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 ………… 什么时候应该应用UDP: 当对网络通讯品质要求不高的时候,要求网络通讯速度能尽量的快,这时就能够应用UDP。 比方,日常生活中,常见应用UDP协定的利用如下: QQ语音 QQ视频 TFTP ……
有些利用场景对可靠性要求不高会用到UPD,比方长视频,要求速率
小结TCP与UDP的区别:
1.基于连贯与无连贯;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简略;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据程序,UDP不保障。
tcp协定和udp协定的差异
TCP UDP
是否连贯 面向连贯 面向非连贯
传输可靠性 牢靠 不牢靠
利用场合 大量数据 传输大量数据
速度 慢 快
TCP与UDP区别总结:
1、TCP面向连贯(如打电话要先拨号建设连贯);UDP是无连贯的,即发送数据之前不须要建设连贯
2、TCP提供牢靠的服务。也就是说,通过TCP连贯传送的数据,无差错,不失落,不反复,且按序达到;UDP尽最大致力交付,即不保障牢靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无构造的字节流;UDP是面向报文的
UDP没有拥塞管制,因而网络呈现拥塞不会使源主机的发送速率升高(对实时利用很有用,如IP电话,实时视频会议等)
4、每一条TCP连贯只能是点到点的;UDP反对一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的牢靠信道,UDP则是不牢靠信道
TCP UDP
TCP与UDP根本区别
1.基于连贯与无连贯
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简略
4.流模式(TCP)与数据报模式(UDP);
5.TCP保证数据正确性,UDP可能丢包
6.TCP保证数据程序,UDP不保障
UDP利用场景:
1.面向数据报形式
2.网络数据大多为短消息
3.领有大量Client
4.对数据安全性无特殊要求
5.网络累赘十分重,但对响应速度要求高
具体编程时的区别
1.socket()的参数不同
2.UDP Server不须要调用listen和accept
3.UDP收发数据用sendto/recvfrom函数
4.TCP:地址信息在connect/accept时确定
5.UDP:在sendto/recvfrom函数中每次均 需指定地址信息
6.UDP:shutdown函数有效
编程区别
通常咱们在说到网络编程时默认是指TCP编程,即用后面提到的socket函数创立一个socket用于TCP通信,函数参数咱们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这示意建设一个socket用于流式网络通讯。
SOCK_STREAM这种的特点是面向连贯的,即每次收发数据之前必须通过connect建设连贯,也是双向的,即任何一方都能够收发数据,协定自身提供了一些保障机制保障它是牢靠的、有序的,即每个包依照发送的程序达到接管方。
而SOCK_DGRAM这种是User Datagram Protocol协定的网络通讯,它是无连贯的,不牢靠的,因为通信单方发送数据后不晓得对方是否曾经收到数据,是否失常收到数据。任何一方建设一个socket当前就能够用sendto发送数据,也能够用recvfrom接收数据。基本不关怀对方是否存在,是否发送了数据。它的特点是通信速度比拟快。大家都晓得TCP是要通过三次握手的,而UDP没有。
基于上述不同,UDP和TCP编程步骤也有些不同,如下:
TCP:
TCP编程的服务器端个别步骤是:
1、创立一个socket,用函数socket();
2、设置socket属性,用函数setsockopt(); * 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();
4、开启监听,用函数listen();
5、接管客户端上来的连贯,用函数accept();
6、收发数据,用函数send()和recv(),或者read()和write();
7、敞开网络连接;
8、敞开监听;
TCP编程的客户端个别步骤是:
1、创立一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置要连贯的对方的IP地址和端口等属性;
5、连贯服务器,用函数connect();
6、收发数据,用函数send()和recv(),或者read()和write();
7、敞开网络连接;
UDP:
与之对应的UDP编程步骤要简略许多,别离如下:
UDP编程的服务器端个别步骤是:
1、创立一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();
4、循环接收数据,用函数recvfrom();
5、敞开网络连接;
UDP编程的客户端个别步骤是:
1、创立一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置对方的IP地址和端口等属性;
5、发送数据,用函数sendto();
6、敞开网络连接;
TCP和UDP是OSI模型中的运输层中的协定。TCP提供牢靠的通信传输,而UDP则常被用于让播送和细节管制交给利用的通信传输。
UDP补充:
UDP不提供简单的管制机制,利用IP提供面向无连贯的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立即依照原样发送到网络上的一种机制。即便是呈现网络拥挤的状况下,UDP也无奈进行流量管制等防止网络拥塞的行为。此外,传输途中如果呈现了丢包,UDO也不负责重发。甚至当呈现包的达到程序乱掉时也没有纠正的性能。如果须要这些细节管制,那么不得不交给由采纳UDO的应用程序去解决。换句话说,UDP将局部管制转移到应用程序去解决,本人却只提供作为传输层协定的最基本功能。UDP有点相似于用户说什么听什么的机制,然而须要用户充分考虑好下层协定类型并制作相应的应用程序。
TCP补充:
TCP充沛实现了数据传输时各种管制性能,能够进行丢包的重发管制,还能够对秩序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连贯的协定,只有在确认通信对端存在时才会发送数据,从而能够管制通信流量的节约。TCP通过测验和、序列号、确认应答、重发管制、连贯治理以及窗口管制等机制实现可靠性传输。
TCP与UDP区别总结:
1、TCP面向连贯(如打电话要先拨号建设连贯);UDP是无连贯的,即发送数据之前不须要建设连贯
2、TCP提供牢靠的服务。也就是说,通过TCP连贯传送的数据,无差错,不失落,不反复,且按序达到;UDP尽最大致力交付,即不保 证牢靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无构造的字节流;UDP是面向报文的
UDP没有拥塞管制,因而网络呈现拥塞不会使源主机的发送速率升高(对实时利用很有用,如IP电话,实时视频会议等)
4、每一条TCP连贯只能是点到点的;UDP反对一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的牢靠信道,UDP则是不牢靠信道