转载自:http://blog.csdn.net/haizhongyun/article/details/7621199点击打开链接

连接是对状态的保持

实际上就是在客户端和服务器端都维护一个变量,这个变量维护现在数据传输的状态,例如传输了哪些数据,下一次需要传输哪些数据,等等,并不是真的我们想象中的真的有什么东西连接着这两端,因为无论对于有连接还是无连接,都有网线连着呢(不包括无线网),所以连接根本就不是是否真的有什么东西把他们连接起来,真实的含义就是我上面说的,两边维护一个状态变量。

UDP通讯有四个参数:源IP、源端口、目的IP和目的端口。而TCP通讯至少有有六个参数:源IP、源端口、目的IP和目的端口,以及序列号和应答号。
序列号和应答号是TCP通讯特有的参数,TCP通讯利用序列号和应答号来保持和确认数据的关联与正确性,是在三次握手中确定的,不正确的序列号和应答号会导致无法正常通讯。因此对TCP连接的连接概念可以简单理解成为同UDP通讯相比,用序列号和应答号确定了相互之间的连接特征,来保证数据传输的正确性。

TCP保证可靠,面向连接而UDP不保证可靠,非面向连接,UDP的报头长度远远小于TCP的报头长度。TCP使用了三种基础机制来实现面向连接的服务:1 使用序列号进行标记,以便TCP接收服务在向目的应用传递数据之前修正错序的报文排序;2 TCP使用确认,校验,和定时器系统提供可靠性。3 TCP在应用层数据上附加了一个报头,报头包括序列号字段和这些机制的其他一些必要信息,如叫做端口号的地址字段,该字段可以标识数据的源点和目标应用程序。

UDP发出去的包是不管的,对方也不会应答是否收到.TCP发出包之后对方会应答是否完整收到

可以在发包的时候采取类似创建TCP连接那样的操作,发消息,然后对方给一个ACK,然后发消息方再发一个ACK,这样算发送成功。
通过最简单的重传确认即可达到QQ现在做到的效果,简单说就是发送方一直发送数据,直到收到接收方的反馈再停止即可。

TCP面向连接中的“连接”和“可靠”与“不可靠”相关推荐

  1. TCP面向连接中的“连接”究竟是什么,可靠与不可靠

    网上搜集的一些答案: 连接是对状态的保持,我是这样理解的 实际上就是在客户端和服务器端都维护一个变量,这个变量维护现在数据传输的状态,例如传输了哪些数据,下一次需要传输哪些数据,等等,并不是真的我们想 ...

  2. 网络原理 | TCP/IP中的连接管理机制 重要协议与核心机制

    应用层.传输层.网络层.数据链路层.物理层 一.应用层协议 应用层 是程序猿最最经常打交道的一层 其他四层,都是操作系统.驱动.硬件,实现好了的,咱们不需要管 (除非你是系统工程师,驱动开发工程师-- ...

  3. TCP协议中的核心知识点,SYN Flood?ISN?滑动窗口?数据重传?拆包粘包?单tcp连接多请求?拥塞管理?(个人收藏学习笔记)

    TCP协议中的核心知识点,滑动窗口?数据重传?拆包粘包?单tcp连接多请求? 1.前言 2.TCP/IP四层结构 3. TCP 3.1 TCP 协议头 3.2 TCP通信过程 3.2.1 建立连接的三 ...

  4. 网络原理 --- 传输层Ⅱ TCP协议中的确认应答,超时重传和连接管理

    文章目录 网络原理 传输层 TCP 协议 TCP的基本特性 1.确认应答 2.超时重传 3.连接管理 ❗❗①建立连接(三次握手) ②断开连接(四次挥手) 总结 网络原理 介绍TCP/IP协议中每一层里 ...

  5. TCP连接中TIME_WAIT连接过多

    2019独角兽企业重金招聘Python工程师标准>>> TCP连接中TIME_WAIT连接过多 转载于:https://my.oschina.net/meowmeow/blog/36 ...

  6. Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解

    今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...

  7. tcp 协议中发送窗口的大小应该是_TCP 协议中的三次握手与四次挥手

    今天来聊聊面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手.涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详解 4.什么是 TIME_ ...

  8. C++ 网络编程下的socket编程(TCP\UDP),连接下位机

    正常情况下我们需要对下位机进行通信需要使用Socket进行连接操作,而在网络编程中又分为面向连接(TCP)和面向无连接(UDP)这两种,针对这两种方式,我们不做具体的原理解释,只说各自的特点和各自的应 ...

  9. Linux 查看tcp 请求 中 的各个 状态 数据 ,如timewait

    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' ...

最新文章

  1. Nginx配置防盗链
  2. 产品经理经验谈50篇(五):如何做好一份通透的竞品调研
  3. mvc基础系列说谈(5)——参数与值传递,提交数据
  4. Hybris ECP里Customer对应的数据库表
  5. 【渝粤题库】国家开放大学2021春3924★汽车电器设备构造与检修题目
  6. bread是可数还是不可数_为什么英语里的面包bread是不可数名词?听老师给你讲语法,一听就明白了...
  7. 广西工学院2000级计算机系,广西工学院管理系信管教研室李明 - 欢迎访问广西科技大学.ppt...
  8. sqlserver的存储过程mysql_mysql,sqlserver存储过程的创建及执行
  9. 北理乐学大学计算机实验4,北理工乐学上机实验五
  10. Python3实现简单的http server
  11. Java类和对象:private/public/friendly/封装
  12. MTTR、MTBF、MTTF、可用性、可靠性傻傻分不清楚?
  13. Linux如何在文件中新建一行,linux – 如何使用sed将文本插入文件的第一行?
  14. 前端编程中利用PS切图还原设计图
  15. AForge学习笔记(2):AForge.Controls
  16. 【git】忽略文件两种方式
  17. 邢台学院计算机应用技术专业,邢台学院有哪些专业和院系、什么专业比较好
  18. win7 怎样找到 显示桌面
  19. 计算机无法识别苹果6手机软件,电脑里安装的itunes不能识别我的苹果6sp… - Apple 社区...
  20. Element-UI:el-table 表头筛选

热门文章

  1. “约见”面试官系列之常见面试题之第四十七篇之前端页面的组成(建议收藏)
  2. “睡服”面试官系列第二十二篇之class的继承(建议收藏学习)
  3. 前端学习(552):api
  4. spring mvc学习(1):spring jar包
  5. java学习(6):数据类型
  6. java中异常+连接重置_是什么导致我的java.nett.ocketException:连接重置?
  7. Linux select函数用法和原理
  8. 快速入门PyTorch(2)--如何构建一个神经网络
  9. python生成yaml文件_Python实践34-读写yaml文件
  10. CORS 请求未能成功_当遇到跨域开发时, 我们如何处理好前后端配置和请求库封装(koa/axios版)...