客户端服务器

计算机网络学习整理(1)

十年热恋 提交于 2020-02-28 21:06:16
计算机网络体系图:传统的OSI网络模型有7层,TCP/IP体系有4层,常用的为5层模型,为了详细说明每层的作用,将会对7层作用先进行说明: 应用层 通俗地说,代表所有能 产生网络流量的程序 。准确定义是:应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如 域名系统DNS ,支持 万维网应用的 HTTP协议 ,支持 电子邮件的 SMTP协议 等等。我们把应用层交互的数据单元称为报文。 表示层 在传输之前进行的处理(对数据进行加密或压缩处理),包括信息的语法语义以及它们的关联。 会话层 不同机器上的用户之间建立及管理会话。利用会话层可以用来查木马,用 netstat -n 可以查看计算机打开的端口和建立的会话, netstat -nb 可以查看占用端口和建立会话的应用程序(可能需要管理者权限) ,用netstat /?可以查看指令的help使用指南 传输层 它的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。 可靠传输TCP (保证数据传输可靠性,如传文件),流量控制, 不可靠传输UDP (不用建立会话,不保证数据传输可靠性,如qq发消息,直播等),数据分段编号。****应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用

TCP协议的传输连接管理:TCP协议的三次握手与四次挥手

喜夏-厌秋 提交于 2020-02-28 17:45:40
一、TCP的传输连接管理有三个阶段:连接建立、数据传送和连接释放。 TCP连接时的建立都是采用客户服务器方式。 TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) 二、TCP协议的三次握手: 第一次握手 客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。这个三次握手中的开始。表示客户端想要和服务端建立连接。 第二次握手 TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己随机初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。这个报文带有SYN(建立连接)和ACK(确认)标志,询问客户端是否准备好。 第三次握手 TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,此时,TCP连接建立,客户端进入ESTAB-LISHED(已建立连接)状态。 TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号

Android网络编程要学的东西与Http协议学习

Deadly 提交于 2020-02-28 12:30:12
本节引言: 本节开始我们来学习Android网络编程相关的一些东西:Android端网络编程是要干嘛?http协议的学习,使用自带扣脚Json解析类解析Json,XML解析常用的几种方式,HttpUrlConnection和 HttpClient的使用,文件的上传,下载,WebService的使用,WebView,Socket通信的使用等! 1.Android与互联网交互的三种方式 2.初始Http协议 实际开发中我们和服务端打交道一般用得都是基于Http协议的通信,所以学好Http协议是非常重要的,当然我们不用过于考虑一些细节的东西,有个大体的了解即可!都是一些概念性的东西! (1)什么是Http协议 答:hypertext transfer protocol(超文本传输协议),TCP/IP协议的一个应用层协议,由于定义WEB浏览器和WEB服务器之间交换数据的过程,客户端连上web服务器后,若想获取web服务器中的某个web资源,需准守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。 (2)Http 1.0 与 Http 1.1的区别 答:1.0协议,客户端与web服务器建立连接后,只获得一个web资源。而1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源! (3)Http协议的底层工作流程: 答:我们先要知道两个名词: SYN

linux入门系列15--文件传输之vsftp服务

青春壹個敷衍的年華 提交于 2020-02-28 10:27:01
前面的系列文章基本讲完了linux管理相关的基础知识,从本篇开始讲解centos7中服务程序的部署和配置,以便为外部提供各种服务。 日常工作和娱乐中,我们所需的各种资源都离不开网络以及各种服务,我们通过网络获取部署在其他服务器上的各种服务资源,这些服务包括文件服务、邮件服务、媒体服务等等。 一般情况下,我们使用计算机上网的一个重要目的就是为了获取资料,而文件传输则是获取资料的方式。因此,我们首先来了解下linux中文件传输相关的知识。 一、文件传输协议FTP 1.1 FTP产生背景 “无规矩不成方圆”,这说明了规则的重要性。同样,当今的互联网由成千上万台机器组成,这些机器包括个人计算机、工作站、服务器、巨型机等各种形形色色的设备,并且这些设备中使用的操作系统还不一样,有的可能是用的windows,而有的则是Linux或其他系统。 要在这么纷繁复杂的设备之间传输文件,那就必须要有一定的规则,大家都按规则办事,传输的文件才能相互识别,达到正确传递信息的目的。在这种背景下,为了解决文件传输的问题,文件传输协议应运而生。 1.2 FTP相关概念 文件传输协议(File Transfer Protocol,FTP),是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用 20、21 号端口,其中20端口是数据端口用于进行数据传输,21端口为命令端口

彻底理解cookie,session,token

最后都变了- 提交于 2020-02-28 09:23:46
彻底理解cookie,session,token 发展史 很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮 但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统, 哪些人往自己的购物车中放商品, 也就是说我必须把每个人区分开,这就是一个不小的挑战,因为HTTP请求是无状态的,所以想出的办法就是给大家发一个会话标识(session id), 说白了就是一个随机的字串,每个人收到的都不一样, 每次大家向我发起HTTP请求的时候,把这个字符串给一并捎过来, 这样我就能区分开谁是谁了 这样大家很嗨皮了,可是服务器就不嗨皮了,每个人只需要保存自己的session id,而服务器要保存所有人的session id ! 如果访问服务器多了, 就得由成千上万,甚至几十万个。 这对服务器说是一个巨大的开销 , 严重的限制了服务器扩展能力, 比如说我用两个机器组成了一个集群, 小F通过机器A登录了系统, 那session id会保存在机器A上, 假设小F的下一次请求被转发到机器B怎么办? 机器B可没有小F的

Socket通信原理

拟墨画扇 提交于 2020-02-28 07:37:22
什么是Socket? Socket的中文翻译过来就是“套接字”。套接字是什么,我们先来看看它的英文含义:插座。 Socket就像一个电话插座,负责连通两端的电话,进行点对点通信,让电话可以进行通信,端口就像插座上的孔,端口不能同时被其他进程占用。而我们建立连接就像把插头插在这个插座上,创建一个Socket实例开始监听后,这个电话插座就时刻监听着消息的传入,谁拨通我这个“IP地址和端口”,我就接通谁。 实际上,Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket起源于UNIX,在Unix一切皆文件的思想下,进程间通信就被冠名为文件描述符(file desciptor),Socket是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“文件”,在建立连接打开后,可以向文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。 另外我们经常说到的 Socket所在位置 如下图: Socket通信过程 Socket保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个Socket对象,然后通过Socket对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。 一图胜千言,下面是 面向连接的TCP时序图 : 客户端过程

高性能Server---Reactor模型

◇◆丶佛笑我妖孽 提交于 2020-02-28 07:30:09
转载自: http://www.jianshu.com/p/2461535c38f3 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮件用的Outlook,Foxmail等 你看视频用的优酷,土豆等 你写文档用的Office365,googleDoc,Evernote等 你浏览网页用的IE,Chrome等(B/S是特殊的C/S) ...... C/S架构的软件带来的一个明显的好处就是:只要有网络,你可以在任何地方干同一件事。 例如:你在家里使用Office365编写了文档。到了公司,只要打开编辑地址就可以看到在家里编写的文档,进行展示或者继续编辑。甚至在手机上进行阅读与编辑。不再需要U盘拷来拷去了。 C/S架构可以抽象为如下模型: C就是Client(客户端),上面的B是Browser(浏览器) S就是Server(服务器): 服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务 C/S架构之所以能够流行的一个主要原因就是网速的提高以及费用的降低,特别是无线网络速度的提高。试想在2G时代,大家最多就是看看文字网页,小说什么的。看图片,那简直就是奢侈!更别说看视频了! 网速的提高,使得越来越多的人使用网络,例如:优酷,微信都是上亿用户量,更别说天猫双11的瞬间访问量了!这就对服务器有很高的要求!能够快速处理海量的用户请求

从Socket编程到Http协议,了解Tomcat底层,实现自己的HTTP服务器。

吃可爱长大的小学妹 提交于 2020-02-27 14:28:24
上节我们知道Tomcat里面的server里的service里的connector的endpoint部分作用在传输层,processor部分作用在应用层。 Web服务器 本文将介绍 Java Web 服务器是如何运行的, Web 服务器也称为超文本传输协议( HyperText Transfer Protocol, HTTP)服务器, 因为它使用 Http 协议与其客户端(通常是 Web 浏览器)进行通信, 基于 Java 的 Web 服务器会使用两个重要的类: java.net.Socket 类和 java.net.ServerSocket 类, 并通过发送 Http 消息进行通信. 我们先花一些篇幅介绍 Http 协议(如果同学们熟悉HTTP协议可直接跳过)和这两个类, 然后写一个简单的 Web 服务器。 Http协议 Http : Http 允许 Web 服务器和浏览器通过因特网发送并接受数据, 是一种基于”请求-响应”的协议, 客户端请求一个文件, 服务器端对该请求进行响应.。Http 使用可靠的 tcp 连接, 服务端默认端口为80, http协议的第一个版本是 http/0.9, 后来被 http/1.0取代, 随后 http/1.0又被http/1.1取代, http/1.1 定义域 RFC2616中。 在 Http 中, 总是由客户端通过建立连接并发送 http

非科班生网络通信必会知识点归纳

心不动则不痛 提交于 2020-02-27 11:45:43
一、 网络模型 网络模型分两种,一种是OSI模型,一种是TCP/IP模型,后者应用更加广泛。这里也主要介绍TCP/IP模型。 (一)TCP/IP模型 首先分为4层,从上到下依次是应用层、传输层、网络层、数据链路层。 OSI模型中将网络分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 TCP/IP的应用层是OSI模型中应用层、表示层、会话层的集合,而物理层由于不是我们经常考虑的问题,所以TCP/IP模型没有把物理层算上。 1、数据链路层 数据链路层的核心是以太网协议。以太网协议规定一组电信号是一个数据包,叫一个振,每个帧(frame)分为标头(head)和数据(data),标头包含一些说明性东西,比如发送者,接收者,和数据类型之类的。例如一个电脑发个数据包出去,会广播给局域网(子网)内所有电脑设备的网卡,然后每台设备都从数据包获取接收者的mac地址与自己网卡的mac地址比对,如果一样就说明这是发给自己的数据包。 2、网络层 定义了一套IP协议,有IPV4和IPV6,以IPV4为例,由32个二进制数字组成,用4个10进制数字表示。 IP地址分为三类: A类:第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。 B类:前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”

Nginx 简介

放肆的年华 提交于 2020-02-27 10:43:00
正向代理 正向代理(Forward Proxy):代替客户端去访问服务器,代理的是客户端。 正向代理的作用 (1)访问本无法访问的服务器 比如说原本的链路 -> 网关1 -> 网关2 发生故障,或者zf、学校在网关上用防火墙屏蔽了一些网站,导致客户端不能访问服务器。 通过代理服务器可以访问服务器,v p n 的搭建即此原理。 (2)客户端访问授权 比如说内网的服务器上的内容是一些机密文件,只对内部的部分人员开放。 可以在内网设置代理,在代理的防火墙检查发起请求的客户端的地址,是某个部门、办公室的ip才放行,否则直接拦截掉。 (1)是在代理的防火墙中检测服务器地址,(2)是在代理的防火墙中检测发起请求的客户端地址。 (3)加速访问 可能网关1、网关2的带宽较小,网速慢,使用高带宽的代理服务器可以提高访问速度。 (4)cache作用 代理可以缓存服务器的数据,比如客户端A访问服务器的xx内容,后续某些客户端发起相同请求时,代理不再去访问服务器,直接从缓存中获取数据返回给客户端, 叫做cache命中,加快响应速度、减轻服务器负担。 (5)隐藏客户端 对服务器来说,客户端是代理,服务器的访问记录是代理,从而隐藏了原始客户端。 一般说的代理都是正向代理。 反向代理 反向代理(reverse proxy):代理的是服务器。 正向代理是由客户端的公司|组织设置的、或者由第三方代理设置