服务器端

TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。

匆匆过客 提交于 2019-12-01 18:40:00
TCP建立连接要进行3次握手,大致流程如下:SYN(同步序号,表示此报文是一个连接请求或者连接接收报文),ACK(确认位,对接收到报文的确认),FIN(表示发送方发送完数据,用来释放一个连接) 1) 客户端向服务器端发送一个SYN J,表示客户端向服务器端发送一个连接请求报文,该报文的初始序列号为J。客户端进入SYN_SENT状态,等待服务器端确认。 2) 服务器端向客户端响应一个SYN K, 表示服务器端向客户端发送一个连接请求报文,该报文的初始序列号为K。并对SYN J进行确认ACK J+1,服务器端进入SYN_REVD状态。 3) 客户端再向服务器端发送一个确认ACK K+1。客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端和服务器端就可以开始传送数据了。 第四步,计算机收到服务器的确认之后,启动2MSL定时器,在time_wait状态还需再等2MSL,才会close。防止第四步的确认数据包丢失,万一确认服务器没有收到,服务器再发送FIN时,客户端还能给服务器确认。 来源: CSDN 作者: 种向日葵的小仙女 链接: https://blog.csdn.net/qiuchaoxi/article/details/79931010

TCP三次握手 四次挥手

旧街凉风 提交于 2019-12-01 17:40:08
三次握手: 最初,客户端服务器端都处于CLOSED状态 服务器处于LISTEN状态,等待客户端发送请求(SYN=1(标志位,意思是请求连接) seq=x(随机产生的数)) 客户端发送请求后,进入SYN-SENT状态,等待服务器确认。 服务器端收到请求,进入SYN-RCVD状态,同时发送给客户端应答信号SYN=1 ACK=1 seq=y ack=x+1 客户端收到应答后,进入ESTABLISHED状态,同时给服务器端回复应答信号 ACK=1 seq=x+1 ack=y+1 服务器端收到应答,进入ESTABLISHED状态。 四次挥手: 最初,客户端服务器端都处于ESTABLISHED状态 客户端向TCP发送连接释放报文(FIN=1,序号seq=u),同时停止发送数据,进入终止等待状态1 FIN-WAIT-1 服务器端收到释放报文后,给出回复确认(ACK=1,确认号ack=u+1,序号seq=v),并进入关闭等待状态CLOSE-WAIT 客户端收到了来自服务器的确认,进入终止等待2状态FIN-WAIT-2,等待服务器发出释放报文 等到服务器端没有需要发给客户端的数据后,服务器端发出释放报文(FIN=1,ACK=1,序号seq=w,确认号ack=u+1)并进入最后确认状态,等待客户端的回复 客户端收到来自服务器端的释放报文后,回复确认(ACK=1,seq=u+1,ack=w+1

VNC的安装以及使用

北城余情 提交于 2019-12-01 16:06:42
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。 VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相像。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便地和安装了服务器端的应用程序(vncserver)的计算机相互连接。另外,服务器端 (vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过Netscape显示出来了

Python Socket编程1

浪尽此生 提交于 2019-12-01 13:53:22
socket的定义   Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。 补充:也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序,而程序的pid是同一台机器上不同进程或者线程的标识 套接字发展史及分类   套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族 套接字家族的名字:AF_UNIX unix一切皆文件

客户端负载均衡与服务器端负载均衡区别?

本秂侑毒 提交于 2019-12-01 13:34:54
服务器端负载均衡:       例如:Nginx,通过Nginx进行负载均衡,先发送请求,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;即在服务器端再进行负载均衡算法分配。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 客户端负载均衡:       例如:spring cloud中的ribbon,客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,这是客户端负载均衡;即在客户端就进行负载均衡算法分配。 来源: https://www.cnblogs.com/Z-wen/p/11688657.html

结对编程作业服务器端总结

孤街醉人 提交于 2019-12-01 10:06:40
博客和GitHub 博客1 博客2 GitHub 分工 杨明哲负责制定规则和部分牌型判定,我负责API文档,部分牌型,服务器端逻辑实现,服务器端AI实现 思路和实现 架构图 说明 服务器和客户端采用HTTP方式交互。交互数据类型(MIME)采用 application/json 。考虑到每个人出牌的独立性,因此采用异步比赛,异步结算的方式。每个人通过开局接口拿到牌,出牌,服务器端保存,并使用一个周期性运行的程序对牌进行判定和积分结算。然后,客户端可以使用历史记录接口查询结果。为了认证身份,要求每个玩家绑定教务处帐号。 异步比赛的设计让玩家可以独立开局出牌,不必等待其他玩家;同时,这样结算程序、服务器端AI可以单独抽离出来,做成独立的程序或微服务(虽然最后还是采用了大内核的形式),这样可以降低服务器负担,也降低了系统耦合。 代码组织 代码采用Java和Kotlin混合编写,其中,牌型判定和计算部分主要使用Java实现,其余部分使用Kotlin Java代码组织 主要有两个包: compare : 主要是牌型判定,排序,服务器端AI和常数定义. logic : 主要是工具类,缓存,牌的数据结构定义 这些代码主要是从一个叫[NeatlyServer]嫖来的,因此代码规范和风格比较奇怪。 Kotlin代码组织 主要分为8个包: config : 配置包,主要存储配置类

zabbix配置主动式监控的步骤

徘徊边缘 提交于 2019-12-01 09:45:00
步骤如下: 1、克隆模板、命名新的模板名,并点击"监控项",全选,批量更新时第一个“类型”打勾,客户端改为主动式; 2、添加客户端或更改原有的模板为新模板(服务器端添加客户端时的配置可以与被式模式一样,不用改) 3、客户端配置文档配置ServerActive=x.x.x.x (此ip要能访问服务器端ip:10051)、 Hostname=x.x.x.x (本机ip,需要与服务器端添加客户端时配的"主机名称"一致); 4、原有的被动模式可以保留(server端 ping client端等检测必须是被动模式); 5、最后是重启客户端zabbix-agent服务即可。 参考: https://blog.csdn.net/weixin_39845407/article/details/80764200 来源: https://www.cnblogs.com/liulvzhong/p/11675951.html

什么是vue生命周期和生命周期钩子函数?

白昼怎懂夜的黑 提交于 2019-12-01 09:44:38
1、vue生命周期和生命周期钩子函数: vue 的生命周期是: vue 实例从创建到销毁,也就是从 开始创建 、 初始化数据 、 编译模板 、 挂载Dom→渲染 、 更新→渲染 、 卸载 等一系列过程。 在这个过程中也会 运行 一些叫做 生命周期钩子的函数 ,这给了 用户 在不同阶段 添加自己的代码 的机会。 问题二:vue生命周期钩子函数有哪些? 生命周期钩子函数(11个) 类型 详细 beforeCreate Function 在 实例初始化之后 ,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。 created Function 在 实例创建完成后 被立即调用。在这一步,实例已完成以下的配置: 数据观测 (data observer) , 属性和方法的运算 , watch/event 事件回调 。然而,挂载阶段还没开始,$el 属性目前不可见。 beforeMount Function 在 挂载开始之前 被调用:相关的 render 函数首次被调用。 mounted Function el 被新创建的 vm.$el 替换,并 挂载到实例上去之后 调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。 beforeUpdate Function 数据更新时调用 ,发生在虚拟

利用Session实现三天免登陆

我与影子孤独终老i 提交于 2019-12-01 07:21:12
什么是Session Session:在计算机中,尤其是在网络应用中,称为“会话控制”。(百度百科) Session:服务器端的数据存储技术。 Session要解决什么问题 一个用户的 不同请求(重定位到一个Servlet,这个Servlet需要用到上一个Servlet的request对象) 的处理需要使用相同的数据怎么办呢? 解决:session技术 Session生命周期 当用户使用浏览器第一次向服务器发送请求的时候,服务器会调用相应的Servlet同时创建一个Session对象用于存储用户的某些信息,浏览器之后再向服务器发送其它请求的时候都会附带一个JSESSIONID(以Cookie形式存在于用户的浏览器),服务器在接收到请求后,调用对应的 Servlet 进行请求处理,同时根据 JSESSIONID 返回其对应的 session 对象。当用户超过30mins没有操作,服务器端对应的Session就会自动销毁。 注意: Session处在于服务器端、JSESSIONID(Cookie形式存在)存在于浏览器。所以说Session技术依赖于Cookie技术。 Session用法: req.getSession() 1.如果请求中不存在JSESSIONID那么req.getSession()就会创建一个Session对象 2.如果请求中不存在JSESSIONID那么req

Asp.Net页面生命周期

三世轮回 提交于 2019-12-01 06:58:58
一. 什么是Asp.Net 页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页面处理程序类后,ASP.NET 运行时将调用处理程序的 ProcessRequest 方法来处理请求,来创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的ProcessRequest方法使页面经历了各个阶段:初始化、加载视图状态信息和回发数据、加载页面的用户代码以及执行回发服务器端事件。之后,页面进入显示模式:收集更新的视图状态,生成 HTML 代码并随后将代码发送到输出控制台。最后,卸载页面,并认为请求处理完毕。其中页面对象ProcessRequest方法 完成的这一系列事件的处理过程就是Asp.Net页面生命周期。 二. 了解Asp.Net 页面生命周期的好处 了解个掌握ASP.NET页面生命周期是非常必要的,这有助于我们更加灵活的控制页面,以我们需要的方式编程开发。ASP.NET页运行时,此页会经历一个又一个的事件链,每个事件链中执行不同的行为,这所有的行为共同组成我们所需要的页面。了解了生命周期也更有助于我们对程序调试中发生问题的地方的定位。 三. 详解Asp.Net 页面生命周期 (一)先看看在开始一个页面生命周期之前