Class_Mr 2022-05-22 12:40 采纳率: 0%
浏览 17

您好,请教一下TCP作为安全协议,对方应用层收到后为什么还要回应

TCP作为安全协议,但是一直有两个疑问没能解决

1,TCP的校验一定准确吗,存不存在客户端发了一条报文在中途损坏,但是服务端检验的时候却没检验出来?如果存在,这种几率有多大?我是做硬件相关的,工业上常用的串口通讯也有校验,比如CRC校验,它就不是百分之百正确的,TCP的校验是绝对安全吗?

2,TCP作为一种安全协议,为什么发送客户端在发送过去后,对方的应用层往往还要进行一个回复确认,这个TCP层面不是已经帮你做了吗?比如我听说微信有自己的私有协议,A手机发送一个“你好”到B手机上,而B手机收到“你好”两个字后还要在应用层再回复一下确认收到,这种操作多余吗?

比如我们做AGV机器人,客户端给机器人通过TCP发送一条报文,机器人收到后,在应用层面会再给我一个回复,一直很困惑为什么这样做,看似多余。之前跟同行业一个人聊过这个问题,问TCP层面已经是安全了,为什么机器人代码里面业务还要再回复一下,当初忘记了他如何回答了,所以想请教你一下

  • 写回答

1条回答 默认 最新

  • 不曾拥有 何来失去 2022-05-23 10:15
    关注

    1:tcp校验不一定是准确的 检验机制是这样的 TCP协议中规定,TCP的首部字段中有一个字段是校验和,发送方将伪首部、TCP首部、TCP数据使用累加和校验的方式计算出一个数字,然后存放在首部的校验和字段里,接收者收到TCP包后重复这个过程,然后将计算出的校验和和接收到的首部中的校验和比较,如果不一致则说明数据在传输过程中出错 因为这种校验方式是累加和,也就是将一系列的数字(TCP协议规定的是数据中的每16个比特位数据作为一个数字)求和后取末位。
    2:你可以看下tcp的三次握手 四次断开的过程 就可以解开你问题二的疑惑

    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析