三次握手

TCP的三次握手和四次挥手

折月煮酒 提交于 2020-01-20 04:18:38
tcp是一种传输层通信协议,一个TCP连接通常分为三个阶段:连接,数据传输和关闭,通过三次握手来建立一个连接,四次挥手断开一个连接 目录 TCP报文头部介绍 三次握手建立连接 四次挥手断开连接 TCP的特点及使用场景 TCP报文头部介绍 TCP报文头部由以下几部分构成: 源端口号 目标端口号 序列号 确认号 头部长度 六个标志位 窗口大小 校验和 紧急指针 TCP头部选项 源端口号(16位) 标示报文的来源(客户端产生临时端口号) 目标端口号(16位) 标示报文的目的地(服务端指定端口号) 序列号(32位) 保证服务端接收到所有数据后能按正确顺序拼接起来,该序列号是由系统初始化的一个随机值ISN,一个报文的序列号=ISN+这个报文携带的数据的第一个字节的偏移量。 例子:要发5个报文,第一个报文的第一个字节的偏移量为0,序列号就是ISA+0;第一个报文携带的数据大小是1kb(1024),所以第二个报文的第一个字节的偏移量就是1024,序列号就是ISA+1024,以此类推。 (注意实际上三次握手时是会占据一个序列号的,所以实际上正式发送数据时第一个报文的序列号是ISA+1+0,这里为了方便理解就不考虑三次握手时占据的那个序列号)。 确认号(32位) 服务端收到客户端发来的报文后需要给客户端回复一个ack数据包,告诉客户端数据已经收到。回复报文的确认号=服务端收到的报文的序列号+1。

Nmap教程之nmap命令使用示例(nmap使用方法)

馋奶兔 提交于 2020-01-19 22:50:24
Nmap下载地址: http://pan.baidu.com/s/1jGB4ZeI Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统 Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的脚本)Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。本人包括以下方面的内容:介绍Nmap扫描中的重要参数操作系统检测Nmap使用教程Nmap使用不同的技术来执行扫描,包括:TCP的connect()扫描,TCP反向的ident扫描,FTP反弹扫描等。所有这些扫描的类型有自己的优点和缺点,我们接下来将讨论这些问题。 Nmap的使用取决于目标主机,因为有一个简单的(基本)扫描和预先扫描之间的差异。我们需要使用一些先进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。下面是一些基本的命令和它们的用法的例子:扫描单一的一个主机,命令如下: 代码如下: #nmap nxadmin.com#nmap 192.168.1.2 扫描整个子网,命令如下: 代码如下: #nmap 192.168.1

TCP连接的建立和终止

杀马特。学长 韩版系。学妹 提交于 2020-01-19 07:53:50
刚看完 UNIX 第五章内容,我想按照自己的方式将自己获得的知识梳理一遍,以便日后查看!先贴上一段简单的 TCP 服务器端代码: 1 #include <sys/socket.h> 2 #include <netinet/in.h> 3 #include <stdio.h> 4 #include <error.h> 5 #include <unistd.h> 6 #include <string.h> 7 #include <stdlib.h> 8 9 #define MAXLINE 5 10 #define SA struct sockaddr 11 int main() 12 { 13 int listenfd, connfd; 14 pid_t childpid; 15 int readn, writen; 16 socklen_t clilen; 17 char buf[MAXLINE]; 18 struct sockaddr_in servaddr, cliaddr; 19 //创建监听套接字 20 if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 21 { 22 printf("socket() error!"); 23 exit(0); 24 } 25 //先要对协议地址进行清零 26 bzero(

proc/sys/net/ipv4/下各项的意义

て烟熏妆下的殇ゞ 提交于 2020-01-19 05:58:12
/proc/sys/net/ipv4/icmp_timeexceed_rate 这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。 /proc/sys/net/ipv4/igmp_max_memberships 主机上最多有多少个igmp (多播)套接字进行监听。 /proc/sys/net/ipv4/inet_peer_gc_maxtime 求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies. /proc/sys/net/ipv4/inet_peer_gc_mintime 每一遍碎片收集之间的最小时间间隔。当内存压力比较大的时候,调整这个间隔很有效。以jiffies计。 /proc/sys/net/ipv4/inet_peer_maxttl entries的最大生存期。在pool没有内存压力的情况下(比如

LINUX 服务器遭到SYN FLOOD攻击

∥☆過路亽.° 提交于 2020-01-19 01:53:08
服务器慢了,我一看,压力很大,ping值有1000多ms, netstat - an 有 10000多。 并且有250多个连结处于SYN_RECV状态。 一查才知道,这是典型的SYN攻击的表现。 这还是第一次真正遇到这种情况,之前我一直对攻击不太在意的。没想到还真有这么无聊的。干吗找我们?我们已经是树大招风了?好像还没这么强吧。 没办法,只能看看能否解决这个新难题。 找到这个文章,很不错,转过来: http : //www.csna.cn/viewthread.php?tid=4658 文章中有command 有一些错的地方,可能是排版引起的,注意一下即可。 LINUX下SYN攻防战 ( 一 ) SYN攻击原理 SYN攻击属于DOS攻击的一种 , 它利用TCP协议缺陷 , 通过发送大量的半连接请求 , 耗费服务器CPU和内存资源 . SYN攻击聊了能影响主机外 , 还可以危 害路由器 , 防火墙等网络系统 , 事实上SYN攻击并不管目标是什么系统 , 只要这些系统打开TCP服务就可以实施 . 我们知道 , 在网络中两台电脑建立TCP连接 时需要进行三次握手过程 , 客户端首先向服务器发关TCP SYN数据包 , 接着服务器会向客户端发关相应的SYN ACK数据包 , 最后客户端会以ACK进行响应 . 从而建立正常的握手过程 . 在具体的连接细节中 , 服务器最早接受到SYN包时 ,

网络 TCP/IP

你说的曾经没有我的故事 提交于 2020-01-19 01:50:27
TCP/IP 基础知识 分组技术 可以让多个用户共享一条线路 tcp/ip 代表什么 利用 IP 进行通信时所必须用到的协议群的统称 RFC 协议的说明,STD 管理 RFC 互联网结构 互联网由很多较小范围的网络组成,每个小网由 骨干网 和 末端网 组成 TCP/IP 协议分层模型 物理层 将二进制的0和1和电压高低,光的闪灭和电波的强弱信号进行转换 链路层 代表驱动 网络层 使用 IP 协议,IP 协议基于 IP 转发分包数据 IP 协议是个不可靠协议,不会重发 IP 协议发送失败会使用ICMP 协议通知失败 ARP 解析 IP 中的 MAC 地址,MAC 地址由网卡出厂提供 IP 还隐含链路层的功能,不管双方底层的链路层是啥,都能通信 传输层 通用的 TCP 和 UDP 协议 TCP 协议面向有连接,能正确处理丢包,传输顺序错乱的问题,但是为了建立与断开连接,需要至少7次的发包收包,资源浪费 UDP 面向无连接,不管对方有没有收到,如果要得到通知,需要通过应用层 会话层 以上分层 TCP/IP 分层中,会话层,表示层,应用层集中在一起 网络管理通过 SNMP 协议 TCP/IP 分层模型与通信示例 发包过程 表示层转码,会话层决定何时建立连接,传输层负责建立连接,断开连接和发送数据,保证数据能顺利发送至对端。TCP 协议(传输层)在数据前附加一个首部

[原理] 说说Web请求的过程

家住魔仙堡 提交于 2020-01-19 01:41:39
在面试过程中,我们可能都遇到过这个问题,如果我们不是很理解整个过程,可能觉得就是客户端发送请求,服务端处理请求这个简单的过程。但是在工作中,我发现对这个问题理解的深度能让你更快且精确的定位到的问题的所在,最起码能知道是不是我们服务端的问题,接下来小生姑且根据目前自己的理解和参考资料对过程进行梳理。 文章目录 DNS解析域名 发起连接 三次握手 发送HTTP请求 路由转发和路由选择 Nginx反向代理 服务器处理请求 解析Http请求 跨域请求检测和处理 选择处理方法并响应 DNS解析域名 我们都知道Http/Https是基于TCP的应用层协议,他们其实对主机是不敏感的,但是其底层的TCP对主机是敏感的:TCP需要一个ip地址来唯一标识一个目的主机。我们在浏览器浏览时,通常都是输入www.xxx.com域名,我们需要的ip从何而来呢?这就要归功于DNS域名解析了。 DNS解析域名的原理其实就是建立了 <域名, ip> 的一个映射关系,这个映射关系可能保存在DNS服务器中,也可能在本地Hosts文件中。当你在浏览器输入www.baidu.com,主机会先对本地Hosts文件进行查询,如果存在映射,则直接使用Hosts文件中映射的ip地址;否则请求DNS服务器。一般后端都是使用nginx反向代理转发请求到集群,所以一般我们域名都是直接绑定nginx服务器,然后通过nginx管理集群列表。

Socket 专题

♀尐吖头ヾ 提交于 2020-01-19 01:16:21
Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接字,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为Socket。 Socket是对TCP/IP的协议的封装,Socket本身并不是协议,而是一个调用的接口,只有通过Socket我们才能使用TCP/IP。   Socket是和网络紧密相关的,网络上的两个程序一般就是指web服务器和我们的客户端,数据交换的过程就是我们客户端发一个请求到HTTP服务器、服务器返回数据,这个过程就是数据交换的过程。客户端和服务器之间的数据交换是需要一个双向的通信连接,两者之间是需要一个通道去实现连接的。 通信管道就是通信连接,有了这个管道,我们就可以进行数据传输。客户端到服务器端必须要有一个通道才能实现数据的交互。如果有座大山挡着了道路我们就会在山中开辟一个隧道,这样我们才能走到山的另一端。Socket就可以理解为这个隧道的两个端口,一个入口一个出口。 一个网络请求并不是我们所认为的请求-相应的过程,它的底层是开辟了一个通信管道的。所以应用程序通常是通过Socket(套接字)向网络发出请求或者应答网络请求。 流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。

iOS:即时通讯之<了解篇 SocKet>

余生颓废 提交于 2020-01-19 01:15:44
什么是socket? 计算机专业术语就是: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是“孔”或“插座”。作为BSD UNIX的 进程通信 机制,取后一种意思。通常也称作" 套接字 ",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的 主机 一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务 通俗语: Socket称"套接字” 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 socket端 ,平时我们向服务器发送一个网络请求,然后服务器响应请求,返回服务器数据应用程序通常通过"套接字"向网络发出请求或者应答网络请求 细节: 1.Socket相当于一个“管道”或者说“隧道”两边的连接,一个进入,一个出来 2.用户名和密码是存储在服务器的数据库中 3.我们要保证客户端程序是访问web应用程序还是数据库应用程序呢

TCP、UDP、RTP(RTCP)异同与区别

独自空忆成欢 提交于 2020-01-19 01:00:30
OSI七层模型 OSI 中的层 功能 TCP/IP协议族 应 用层 文件传输,电子邮件,文件服务,虚拟终 端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据加密 没有协议 会话 层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP (RTP) 网 络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 物 理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2 ************************************************************************************************************************************ TCP/IP五层模型的协议 应用层 传输层:四层交换机、也有工作在四层的路由器 网络层:路由器、三层交换机 数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层) 物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层 ****************