博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP和UDP
阅读量:7050 次
发布时间:2019-06-28

本文共 1335 字,大约阅读时间需要 4 分钟。

TCP

(1) TCP特性

  点到点,全双工,可靠有序的字节流,面向连接,且存在流量和拥塞控制。

(2)TCP的优点

  可靠,稳定。

     TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 
(3) TCP的缺点
      慢,效率低,占用系统资源高,易被攻击。  
      TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP

(1)UDP特性

  无连接,系统开销小快速。主要应用于对丢包容忍较大,速率敏感的场景。

(2)UDP的优点

     快速,系统消耗低,比TCP稍安全。
     UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。
(3)UDP的缺点
     不可靠,不稳定。
     因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 

TCP与UDP的区别

   1.连接性:TCP面向连接;UDP是无连接的。(TCP需要三次握手,而UDP不需要握手)

  2.可靠性:TCP提供可靠的服务;UDP尽最大努力交付,即不保证可靠交付。(通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP则可能出现丢包,不保证顺序到达)
  3.面向对象:TCP面向字节流;UDP是面向报文的。( 面向报文的是指发送方的UDP对应用层交下来的数据报文,不合并不拆分,只是在其上面加上首部后就交给了下面的网络层。)。
  举个例子:
     发送方使用TCP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方只需要接收一次就能能将数据(110字节)接收下来。
     发送方使用UDP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方必须要接收两次才能将包1(100字节)和包2(10字节)分别接收。
  4.差错拥塞控制:UDP没有差错和拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。(TCP拥塞控制,当另一端出现阻塞时,会降低发送速率)。
  5.系统开销:TCP首部开销20字节(具有报文段序号,应答序号,窗口大小等);UDP的首部开销小,只有8个字节(2个字节的源端口,2个字节的目的端口,2个字节的报文长度,2个字节的校验和)。
  6.信道:TCP的逻辑通信信道是全双工的可靠信道,即可以流入也可以流出的信道;UDP则是不可靠信道。
  7.有序性:TCP是有序的字节流;UDP则是无序的。(这是由于tcp头部存在报文段的序号,而udp没有)

转载于:https://www.cnblogs.com/zhichaoma/p/7506258.html

你可能感兴趣的文章
《游戏大师Chris Crawford谈互动叙事》一1.7 本章小结
查看>>
《精通Wireshark》—第1章1.7节练习题
查看>>
《Java编码指南:编写安全可靠程序的75条建议》—— 第1章 安全
查看>>
《网站分析师实战指南》一第2章 通往实战之路2.1 从“准备之地”开始
查看>>
《开源硬件创客——15个酷应用玩转树莓派》——6.3RaspNAS
查看>>
你知道URL、URI和URN三者之间的区别吗?
查看>>
《Python Cookbook(第3版)中文版》——1.10 从序列中移除重复项且保持元素间顺序不变...
查看>>
深入实践Spring Boot3.2.1 新建控制器
查看>>
《C++游戏编程入门(第4版)》——2.6 使用while循环
查看>>
《Linux C编程从入门到精通》一第2章 在Linux中编写C语言代码2.1 Linux中C语言程序开发流程和工具介绍...
查看>>
《Ceph源码分析》——第3章,第2节Simple实现
查看>>
摊上事了! Facebook向用户手机发生日信息涉嫌违法
查看>>
《HTML5 Canvas开发详解》——2.4 使用路径创建线段
查看>>
《Ansible权威指南》一2.2 Ansible配置文件解析
查看>>
linux常用命令 — 操作目录
查看>>
vue axios+springboot 文件下载
查看>>
JS的继承方式
查看>>
掘金广告产品介绍
查看>>
九宫格
查看>>
手把手教你写一个 VSCode 插件
查看>>