IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络拓展 -> 正文阅读

[网络协议]计算机网络拓展

ping

利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

  1. ping localhost: localhost的IP地址一般为127.0.0.1, 也称loopback(环回路由);如果此时ping不通,则表示协议栈有问题;ping 该地址不经过网卡,仅仅是软件层面

  2. ping 本机IP: ping 本机IP其实是从驱动到网卡,然后原路返回;所以如果此时ping不通,则表示网卡驱动有问题,或者NIC硬件有问题;

  3. ping 网关: 所谓网关,就是连接到另外一个网络的“关卡”, 一般为离我们终端最近的路由器;可以使用ipconfig (windows)或ifconfig (Linux)查看;若此时ping不通,则为主机到路由器间的网络故障;

  4. ping 目的IP: 若此步骤不成功,应该就是路由器到目的主机的网络有问题。ping通知系统建立一个固定格式的ICMP请求数据包。面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

?查看网络tcp传输各个端口状态命令 netstat -t

TIME_WAIT状态
被动关闭方发送FIN(第三次挥手),并等待主动关闭方返回ACK(第四次挥手)
若最终ACK丢失(第四次挥手失败),被动关闭方将重新发送FIN(第三次挥手),主动关闭方必须维护状态信息TIME_WAIT,保证自己可以接收,然后再重发最终ACK.不能让主动方发送完报文以后立马进入CLOSE状态
TIME_WAIT状态所带来的问题

主动断开方处于TIME_WAIT状态时,源端口无法使用
?端口最大数是65535,因此如果频繁主动断开TCP连接,将很快耗尽端口号。一旦达到了上限,则新的请求就无法被处理,接着就是大量Too Many Open Files异常,然后tomcat、nginx、apache崩溃
如何解决TIME_WAIT问题

解决TIME_WAIT大量出现,最核心的思想,就是打开系统的TIME_WAIT重用和快速回收
net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME_WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME_WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
CLOSE_WAIT状态
如果出现了CLOSE_WAIT过多的状态

1.在对方关闭连接后,自身程序里没有检测 -(被动方的角度)

2.本身忘了需要关闭连接,于是整个资源就一直被程序占用着。-(主动方的角度)

如何解决CLOSE_WAIT问题

关闭正在运行的程序
尽快修改程序bug,然后测试提交到线上服务器
?

一、什么是http协议

HTTP是一个应用层协议,无状态的,端口号为80。主要的版本有1.0/1.1/2.0.

  • HTTP/1.* 一次请求-响应,建立一个连接,用完关闭;
  • HTTP/1.1 串行化单线程处理,可以同时在同一个tcp链接上发送多个请求,但是只有响应是有顺序的,只有上一个请求完成后,下一个才能响应。一旦有任务处理超时等,后续任务只能被阻塞(线头阻塞);
  • HTTP/2 并行执行。某任务耗时严重,不会影响到任务正常执行

二、什么是websocket

? ? Websocket是html5提出的一个协议规范,是为解决客户端与服务端实时通信。本质上是一个基于tcp,先通过HTTP/HTTPS协议发起一条特殊的http请求进行握手后创建一个用于交换数据的TCP连接。

? ? ?WebSocket优势: 浏览器和服务器只需要要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。

三、什么是长连接、短连接

  • 短连接:

连接->传输数据->关闭连接

HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。

也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。

  • 长连接、

连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。

长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。

四、http和websocket的长连接区别

HTTP1.1通过使用Connection:keep-alive进行长连接,HTTP 1.1默认进行持久连接。在一次 TCP 连接中可以完成多个 HTTP 请求,但是对每个请求仍然要单独发 header,Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。这种长连接是一种“伪链接”

websocket的长连接,是一个真的全双工。长连接第一次tcp链路建立之后,后续数据可以双方都进行发送,不需要发送请求头。

keep-alive双方并没有建立正真的连接会话,服务端可以在任何一次请求完成后关闭。WebSocket 它本身就规定了是正真的、双工的长连接,两边都必须要维持住连接的状态。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 08:11:23  更:2021-07-28 08:11:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:57:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码