三次握手

nmap 使用方法详细介绍

為{幸葍}努か 提交于 2020-02-07 00:34:36
nmap的使用 前言 nmap 作用 Nmap使用教程 nmap的基本输入: 扫描参数: 端口扫描: 端口状态扫描: UDP扫描 协议扫描 总结 Nmap的基础知识 Nmap的扫描技术 Nmap的OS检测(O) Nmap的操作系统指纹识别技术: 前言 Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具 nmap 作用 检测活在网络上的主机(主机发现) 检测主机上开放的端口(端口发现或枚举) 检测到相应的端口(服务发现)的软件和版本 检测操作系统,硬件地址,以及软件版本 检测脆弱性的漏洞(Nmap的脚本) Nmap使用教程 Nmap使用不同的技术来执行扫描,包括:TCP的connect()扫描,TCP反向的ident扫描,FTP反弹扫描等。 Nmap的使用取决于目标主机,因为有一个简单的(基本)扫描和预先扫描之间的差异。我们需要使用一些先进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。 nmap的基本输入: nmap [扫描类型] [设置] {设备地址} 其中设备地址(主机名,IP地址,网段等) 可以通过以下方法: 1.-iL <文件名> 通过文件输入地址 2.-iR <IP地址数目> 3.

nginx-学习笔记2

╄→尐↘猪︶ㄣ 提交于 2020-02-06 00:04:26
nginx有几个基本概念 1.connection 2.request 3.keepalive 4.pipe 5.lingering_close 1.connection 结合一个tcp连接的生命周期,我们看看nginx是如何处理一个连接的。首先,nginx在启动时,会解析配置文件,得到需要监听的端口与ip地址,然后在nginx的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的ip地址端口,再listen),然后再fork出多个子进程出来,然后子进程会竞争accept新的连接。此时,客户端就可以向nginx发起连接了。当客户端与服务端通过三次握手建立好一个连接后,nginx的某一个子进程会accept成功,得到这个建立好的连接的socket,然后创建nginx对连接的封装,即ngx_connection_t结构体。接着,设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。最后,nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。 在nginx中,每个进程会有一个连接数的最大上限,这个上限与系统对fd的限制不一样。在操作系统中,通过ulimit -n,我们可以得到一个进程所能够打开的fd的最大数,即nofile,因为每个socket连接会占用掉一个fd,所以这也会限制我们进程的最大连接数

前端需要了解的HTTP协议

此生再无相见时 提交于 2020-02-05 20:49:51
目录 HTTP协议 HTTP概述 HTTP之URL HTTP状态码 HTTP首部 HTTP首部字段 HTTP通用首部字段 HTTP请求首部字段 HTTP工作原理 HTTP报文内的HTTP信息 HTTP之请求消息Request HTTP之响应Response get请求和post请求 get请求 post请求 post和get请求的区别 HTTP协议 @ HTTP概述 http协议是用来规定客户端和服务器间通信的报文的格式的; 客户端和服务器端通信的内容称为报文; 客户端和服务器间通信是基于请求和响应的模式的;客户端给服务器发送请求报文,服务器给客户端返回响应报文; 服务器:接收请求返回响应; 请求 request 响应 response http客户端和服务器端 客户端发送给服务器的请求就相当于是客户端给服务器写信(请求报文); 服务器返回的相应就相当于服务器给客户端写回信(响应报文); http协议就是规定客户端和服务器端传输的协议; HTTP之URL HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息; URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。 以下面这个URL为例

TCP 简单介绍

最后都变了- 提交于 2020-02-05 18:58:40
TCP 简单介绍 TCP 特性 TCP 首部 TCP 三次握手和四次挥手 三次握手 四次挥手 TCP 状态转换 TCP 输出 TCP TCP(Transmission Control Protocol,传输控制协议),是一个传输层协议。TCP 提供客户与服务器之间的连接。TCP 客户先与某个给定的服务器建立一个连接,再通过该连接与服务器交换数据,最后再终止该连接。 特性 1.可靠性 TCP 在向对端传输数据时,要求对方收到数据后返回一个确认。如果在等待一定时间后没有收到确认,则自动重传该数据并等待更长的时间。只有在数次重传都失败后,TCP 才会放弃这次传输同时告知用户。 TCP 的可靠性并不意味着数据一定会被对端接受 2.RTT估算 RTT(Round-trip time),TCP 会动态估算客户和服务器之间的往返时间,以便它了解在特定的网络状况下等待一个确认需要花费多久的时间。 3.序列号 TCP 通过对不同 TCP 分节的数据字节进行编号,来确认数据的先后顺序和漏发、重发的情况。 4.流量控制 TCP 总是告知对端在任何时刻它一次能够从对端接受的数据,这称为通告窗口。通告窗口的大小会随着发送端数据接受和接收端应用读取数据的发生而变化。 5.全双工 建立 TCP 连接后,能够同时在该连接上发送、接受数据。 全双工不意味着连接是反向相等的,两端数据的传输可能经过不同的路由 6

socketopt 函数

我是研究僧i 提交于 2020-02-05 05:24:39
本文转载链接: https://www.cnblogs.com/Ansing/p/5915538.html 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位 于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须 给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。 用法: #include <sys/types.h> #include <sys/socket.h> int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen); 参数: sock:将要被设置或者获取选项的套接字。 level:选项所在的协议层。 optname:需要访问的选项名。 optval:对于getsockopt(),指向返回选项值的缓冲。对于setsockopt(),指向包含新选项值的缓冲。 optlen:对于getsockopt()

Linux深入理解Socket异常

本秂侑毒 提交于 2020-02-04 23:49:44
在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题。分为两个场景来讨论 建立连接时的异常情况 1 正常情况下   经过三次握手,客户端连接成功,服务端有一个新连接到来。 2 客户端连接了服务端未监听的端口   在这种情况下,服务端会对收到的SYN回应一个RST(RFC 793 3.4),客户端收到RST之后,终止连接,并进入CLOSED状态。 客户端的connect返回ECONNREFUSED 111 /* Connection refused */。 3 客户端与服务器之间的网络不通,这又分两种情况   connect返回主机不可达。具体信息在不同系统上不一样,比如linux上的定义是EHOSTUNREACH 113 /* No route to host */。明显给出了一个不可访问的地址(例如,访问一个不存在的本地网络地址,或者DNS解析失败会导致这种情况。 connect返回连接超时。这种情况下,客户端发送的SYN丢失在网络中,没有得到确认,客户端的TCP会超时重发SYN。以ubuntu 12.04为例,重发SYN的时间,系列是:0,1,3,7,15,31,63(2n-1-1)。即发送7个SYN后等待一个超时时间(例如:127秒),如果在这段时间内仍然没有收到ACK,则connect返回超时。   在这两种情况下,

tcp连接的三次握手

不打扰是莪最后的温柔 提交于 2020-02-04 23:44:00
为什么tcp连接需要三次握手才能建立连接 主要是为了初始化sequence number的初始值,通信的双方要互相通知双方的sequence number,这个要作为以后数据通信的序号,保证以后不会因为网络上的传输问题而乱序,tcp会使用这个序号来拼接数据。因此,在服务器回发它的sequence number以后,还需要发送确认报文发送给服务器告知服务器客户端已经收到了你的报文。 因此,如果只是两次握手的话,那么client发送一个请求,server接收到,在回复一个,这就表示server收到了client的sequence number,但是如果client不给server回复一个消息的话,那么server将无法确定client是否已经收到了自己的seq。 第一次握手 客户端向服务端发送连接请求报文段。该报文段的头部中SYN=1,ACK=0,同时选择一个初始序号seq=x。请求发送后,客户端便进入SYN-SENT状态。 第二次握手 服务端收到连接请求报文段后,如果同意连接,会发送一个应答:SYN=1,ACK=1,seq=y,ack=x+1。发送完应答后服务端进入SYN-RCVD状态。 第三次握手 客户端收到服务端连接同意的应答后,还会向服务端发送一个确认报文段,表示:服务端发来的连接同意应答已经成功收到。该报文段的头部为:ACK=1,seq=x+1,ack=y+1

HTTP协议

為{幸葍}努か 提交于 2020-02-04 19:18:06
http 长 连接与短连接 HTTP 协议与 TCP/IP 协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 如何理解 HTTP 协议是无状态的 HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。 什么是长连接、短连接? 在 HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。 但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:Connection

图解HTTP----读书笔记

十年热恋 提交于 2020-02-04 16:13:39
HTTP的历史 3 项 WWW 构建技术,分别是:把 SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的 HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的 HTTP ; 指定文档所在地址的 URL(Uniform Resource Locator,统一资源定位符) HTTP/0.9 HTTP 于1990 年问世。那时的 HTTP 并没有作为正式的标准被建立。现在的 HTTP 其实含有 HTTP1.0 之前版本的意思,因此被称为HTTP/0.9。 HTTP/1.0 HTTP 正式作为标准被公布是在 1996 年的 5 月,版本被命名为HTTP/1.0,并记载于 RFC1945。虽说是初期标准,但该协议标准至今仍被广泛使用在服务器端。 HTTP/1.1 1997 年 1 月公布的 HTTP/1.1 是目前主流的 HTTP 协议版本。当初的标准是 RFC2068,之后发布的修订版 RFC2616 就是当前的最新版本。 HTTP/2.0 主要技术方向 TCP/IP TCP/IP的分层管理 应用层 :决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(FileTransfer Protocol,文件传输协议)和 DNS