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

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

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

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

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

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