永发信息网

什么是TCP/IP通讯中的心跳包

答案:1  悬赏:0  手机版
解决时间 2021-03-26 21:06
什么是TCP/IP通讯中的心跳包
最佳答案
心跳包,通常是客户端每隔一小段时间向服务器发送的一个数据包,通知服务器自己仍然在线,并传输一些可能有必要的数据。因按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。事实上为了保持长连接,至于包的内容,是没有特别规定的,不过一般都是很小的包,或者只是包含包头的一个空包。
                       
在TCP协议的机制里面,本身是存在有心跳包机制的,也就是TCP协议中的SO_KEEPALIVE,系统默认是设置2小时的心跳频率。需要用要用setsockopt将SOL_SOCKET.SO_KEEPALIVE设置为1才是打开,并且可以设置三个参数tcp_keepalive_time/tcp_keepalive_probes/tcp_keepalive_intvl,分别表示连接闲置多久开始发keepalive的ACK包、发几个ACK包不回复才当对方死了、两个ACK包之间间隔多长。
    TCP协议会向对方发一个带有ACK标志的空数据包(KeepAlive探针),对方在收到ACK包以后,如果连接一切正常,应该回复一个ACK;如果连接出现错误了(例如对方重启了,连接状态丢失),则应当回复一个RST;如果对方没有回复,服务器每隔多少时间再发ACK,如果连续多个包都被无视了,说明连接被断开了。
 “心跳检测包”是属于TCP协议底层的检测机制,上位机软件只是解析显示网口的有用数据包,收到心跳包报文属于TCP协议层的数据,一般软件不会将它直接在应用层显示出来,所以看不到。以太网中的“心跳包”可以通过“以太网抓包软件”分析TCP/IP协议层的数据流看到。报文名称”TCP Keep-Alive”。
    一些比较可靠的以太网转串口模块,都有心跳包的检测,比如致远电子的ZNE-100TL模块,配置“心跳包检测”间隔时间设为“10”秒,使用一款”wireshark”的抓包软件来实际查看下TCP/IP协议层“心跳包”数据。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
you understand this rule, you will have no
我是女生,最近发现一个女同事经常摸我肩膀胳
考研要考辽工大了,会计专业在哪个校区
为什么大人总是护着小的孩子
正宗熟食加盟哪家好
为什么我微信朋友圈里会出现带有推广字样的陌
协议层有哪6个,各有什么用?主要应用方面?
关于积累的论据
电器防辐射类的产品包括哪些?
格萨尔五的故事中野牛和母虎分别指的是什么
冰雪皇后苏州金鸡湖欧尚店地址有知道的么?有
中国人太会骂人了。又是日呀!又是操呀!什么
学过小提琴的学中提琴是不是较容易些,技巧上
一个男的说:今后凡有我的任何场合别再刺激我
He is in good _____,because his lifestyle
推荐资讯
VLAN的概念实在不懂。
石锅鱼的配料和做法是什么?
关于尼康Capture NX 2 与64bit Vista的兼容问
从小事做起英语怎么说
uv平板喷印需要再喷保护膜吗?
英语语法讲解 but you can't imagine wha
excel表中,我想每隔一行插入三行,怎么操作
泛指的英文用法
魅族fastboot mode是什么意思
DIY组装电脑配置该怎么配
彩色的透明玻璃碗可以吃饭用吗?盛热的饭菜会
一个人可以申请两台体育彩票机器吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?