当前位置: 首页 > news >正文

做网站都去哪里找模板seo网站优化推广

做网站都去哪里找模板,seo网站优化推广,电子商务网站的建设过程,手机网站规格问题大部分人都知道tcp的keepalive. 假设读者知道keepalive会如何触发. 这篇文章想讨论keepalive触发后, 对socket使用者的影响.keepalive设置修改/etc/sysctl.confubuntu# vim /etc/sysctl.confubuntu# sysctl -pfs.file-max 131072net.ipv4.tcp_keepalive_time 10net.ipv4.…问题大部分人都知道tcp的keepalive. 假设读者知道keepalive会如何触发. 这篇文章想讨论keepalive触发后, 对socket使用者的影响.keepalive设置修改/etc/sysctl.confubuntu# vim /etc/sysctl.confubuntu# sysctl -pfs.file-max 131072net.ipv4.tcp_keepalive_time 10net.ipv4.tcp_keepalive_intvl 5net.ipv4.tcp_keepalive_probes 3验证ubuntu# sysctl -a | grep keepalivenet.ipv4.tcp_keepalive_intvl 5net.ipv4.tcp_keepalive_probes 3net.ipv4.tcp_keepalive_time 10tcp_server.pyimport socketimport syssock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)server_address (localhost, 22345)sock.bind(server_address)sock.listen(1)connection, client_address sock.accept()while True:data connection.recv(1024)print(data, data)tcp_client.pyimport socketimport sysimport timesock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)server_address (localhost, 22345)sock.connect(server_address)time.sleep(999999999)可以看到, 因为tcp_client开启了SO_KEEPALIVE, 所以tcp_client主动往tcp_server发起KEEPALIVE探测.若tcp_server开启SO_KEEPALIVE, 则是tcp_server往tcp_client发送KEEPALIVE探测.如果tcp_server/tcp_client都开启KEEPALIVE, 则会双向探测.对应用层socket api的影响准备工作为了模拟keepalive生效的情况, 用docker模拟断网线的情况.准备好安装有docker, python, vim, tcpdump的ubuntu镜像, 创建好docker 网络.跑起来, 修改heartbeat设置.ubuntu# sudo docker run -it \--volume//home/enjolras/code_repo/python/keepalive_test://home/enjolras/code_repo/python/keepalive_test \--detachtrue \--nametcp_server \--privilegedtrue \--networkmulti-host-network \ubuntu_with_python08f89dcff3547bb15c7aed975dfa5a0821e4d0246d6d812e02fd1470f3cef6c3ubuntu# sudo docker run -it \--volume//home/enjolras/code_repo/python/keepalive_test://home/enjolras/code_repo/python/keepalive_test \--detachtrue \--nametcp_client \--privilegedtrue \--networkmulti-host-network \ubuntu_with_python对阻塞式send/recv的影响tcp_serverimport socketimport syssock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)server_address (0.0.0.0, 22345)sock.bind(server_address)sock.listen(1)connection, client_address sock.accept()connection.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)data connection.recv(1024)print(data, data)tcp_clientimport socketimport sysimport timesock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)server_address (tcp_server, 22345)sock.connect(server_address)time.sleep(999999999)send/recv会以异常/错误码方式得知 heartbeat 检测到的链接断开.可以看到, tcp_server/tcp_client互发心跳.root0b3f1ee81446:/# tcpdump -i any port 22345tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes12:29:34.491239 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [S], seq 2347845399, win 28200, options [mss 1410,sackOK,TS val 951128354 ecr 0,nop,wscale 7], length 012:29:34.491279 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [S.], seq 1169988006, ack 2347845400, win 27960, options [mss 1410,sackOK,TS val 2298965862 ecr 951128354,nop,wscale 7], length 012:29:34.491299 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951128354 ecr 2298965862], length 012:29:44.666952 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2298976038 ecr 951128354], length 012:29:44.666969 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951138530 ecr 2298965862], length 012:29:44.666978 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2298976038 ecr 951128354], length 012:29:44.666987 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951138530 ecr 2298976038], length 012:29:54.907019 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2298986278 ecr 951138530], length 012:29:54.907054 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951148770 ecr 2298976038], length 012:29:54.907059 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951148770 ecr 2298976038], length 012:29:54.907062 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2298986278 ecr 951138530], length 0将tcp_server/tcp_client断网.ubuntu# docker network disconnect multi-host-network tcp_client可以看到tcp_server在连续3个探测包没有回复后, 往tcp_client发了一个RST.12:31:47.547010 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951261408 ecr 2299088676], length 012:31:47.547019 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2299098916 ecr 951251168], length 012:31:47.547061 IP tcp_client.multi-host-network.57130 0b3f1ee81446.22345: Flags [.], ack 1, win 221, options [nop,nop,TS val 951261408 ecr 2299098916], length 012:31:57.787226 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2299109156 ecr 951261408], length 012:32:02.906612 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2299114276 ecr 951261408], length 012:32:08.026829 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [.], ack 1, win 219, options [nop,nop,TS val 2299119396 ecr 951261408], length 012:32:13.146776 IP 0b3f1ee81446.22345 tcp_client.multi-host-network.57130: Flags [R.], seq 1, ack 1, win 219, options [nop,nop,TS val 2299124516 ecr 951261408], length 0可以看到, 在心跳机制检测到socket状态异常后, 会通过异常/错误码等方式通知调用者.3f1ee81446:/home/enjolras/code_repo/python/keepalive_test# python tcp_servTraceback (most recent call last):File tcp_server.py, line 11, in data connection.recv(1024)socket.error: [Errno 110] Connection timed out对select的影响tcp_serverimport socketimport sysimport selectsock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)server_address (0.0.0.0, 22345)sock.bind(server_address)sock.listen(1)connection, client_address sock.accept()connection.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)readable, writable, exeptional select.select([connection], [], [])print(readable, readable, writable, exeptional)data connection.recv(1024)print(data, data)对套接字select返回可读事件.3f1ee81446:/home/enjolras/code_repo/python/keepalive_test# python tcp_serv(readable, [], [], [])Traceback (most recent call last):File tcp_server.py, line 14, in data connection.recv(1024)socket.error: [Errno 110] Connection timed out对epoll的影响不做实验, 应该和select一致.结论heartbeat检测到tcp链接断开后, 会以可读事件方式通知应用层. 若无tcp heartbeat, 也无应用层heartbeat, 应用层无法得知链接的真实状态.
http://www.pierceye.com/news/460991/

相关文章:

  • dedecms网站地图插件永康公司网站开发
  • 比较网站建设有没有学做ppt发网站或论坛
  • 用asp做网站流程做科研找论文的网站
  • 新浪网站怎么做推广广告网站模板下载不了
  • 微网站建设哪家优惠h5小游戏在线玩
  • 娄底高端网站建设网站建设费计入 科目
  • 免费企业网站程序上传wordpress 卸载
  • 大庆市建设局网站上不去linux删除WordPress
  • 宣城市建设监督管理局网站下载怎么上wordpress
  • 福州做网站fjfzwl编写软件开发文档
  • 平台设计网站公司电话号码建站哪家好用兴田德润
  • 宝安网站建设信科免费网站开发 自动填写表单
  • 网站怎么更新文章动漫网站在线免费观看
  • 织梦 网站迁移网页制作三剑客通常指
  • 南京本地网站建站武安百度seo
  • 特定ip段访问网站代码西安免费建网站设计
  • 个人网站备案取消wordpress可以做大吗
  • 如何做网站管理网站服务器基本配置
  • 做网站需要参考书目书龙岩营销型网站建设
  • 南通网站建设解决方案求助如何做网站推广
  • 揭阳企业做网站淮安做网站
  • 怎么给餐饮店做网站用织梦做企业网站
  • 技术支持 创思佳网站建设如何制作自己的网站
  • 济南网站建设公司晟创未来wordpress xml插件
  • 前端做商城网站需要多久实训课网站开发个人小结
  • 南宁网站seo排名优化手机网站制作架构
  • 亿唐网不做网站做品牌案例分析seo 推广服务
  • 深圳网站建设服务器如何编写一份网站开发需求文档
  • 营销网站策划wordpress主题在线汉化插件下载
  • 深圳市网站开发个人养老保险金怎么交