TCP:面向连接的可靠传输

tcp规定了:传输服务必须建立连接

         传输结束必须断开连接

         传输数据必须保证可靠

数据的可靠性:无重复、无丢失、无失序、无差错。

建立连接(三次握手):

1、客户端向服务端器发送连接请求

2、服务器端接收到请求后告知客户端可以连接

3、客户端再次告知服务器已经收到回复,下面要开始发送具体消息

断开连接(四次挥手):

1、主动方发送标志告知被动方要断开连接

2、被动方返回相应的标识信息,告知主动方已经接收到请求

3、被动方再次发送标志位信息表示已准备就绪可以断开连接

4、主动方断开连接告知被动方。

使用情况:

1、tcp:对传输质量要求较高,需要可靠的传输。传输的数据量较大(如传输文件),不需要频繁的断开连接(eg:qq消息、邮件发送、文件上传、账户登录。。。)

2、udp:对实时要求较高,网络情况不佳的情况下对数据的准确性没有严格的要求(eg:广播、组播)

tcp和udp的区别:

  1、tcp是有连接的,udp是无连接的

  2、tcp有三次握手和四次挥手的过程,udp没有

  3、tcp是以数据流传输数据,会有粘包现象,udp是以数据报的形式,没有粘包

  4、tcp的连接需要消耗一定的资源,相比之下udp消耗较少

  5、tcp保证数据的可靠性,udp不保证

  6、tcp需要listen,accept,connect,udp不需要这些操作。

最新文章

  1. XML 基础
  2. spring xmlns 记录
  3. postgresql 中replace 函数
  4. sort
  5. mysql source命令超大文件导入方法总结
  6. 【iHMI43 4.3寸液晶模块】demo竖屏例程(版本1.01)发布
  7. [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解
  8. ASP.NET四则运算--策略模式
  9. 不错的jQuery图表插件 .
  10. js事件模型
  11. <input>标签
  12. HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理
  13. ural 1519 Formula 1
  14. php编码
  15. dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解
  16. 原生js移除或添加样式
  17. es6的理解
  18. Springboot的日志管理&Springboot整合Junit测试&Springboot中AOP的使用
  19. David Silver强化学习Lecture1:强化学习简介
  20. AngularJS的select设置默认值

热门文章

  1. linux-PXE-12
  2. Android图片优化指南
  3. jquery even选择器 语法
  4. 配置文件:mainfest.xml
  5. 【技术分享:python 应用之三】使用 python 修改 excel 表格的 sheet 名称
  6. BZOJ 3168 Luogu P4100 [HEOI2013]钙铁锌硒维生素 (矩阵求逆、二分图匹配)
  7. 测试String——StringBuffer——StringBulider的速度
  8. python之正则匹配match:search findall
  9. 64位 Qt5.12 MySql 连接问题
  10. leetcode-easy-array-50. Intersection of Two Arrays II