各种协议的默认端口号:
- ftp:21、20 (21是控制端口 20是数据端口)
- ssh:22
- telnet:23
- smtp:25
- pop3:110
- http:80
- oracle:1521
- mysql:3306
- dns/tcp/udp:53
- www:80
- https:443
TCP连接的三次握手过程:
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.
位码即tcp标志位,有6种标示:
- SYN(synchronous建立联机)
- ACK(acknowledgement 确认)
- PSH(push传送)
- FIN(finish结束)
- RST(reset重置)
- URG(urgent紧急)
- Sequence number(顺序号码)
- Acknowledge number(确认号码)
- 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
- 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包
- 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
TCP Client
|
Flags
|
TCP Server
|
1 Send SYN (seq=x)
|
----SYN--->
|
SYN Received
|
2 SYN/ACK Received
|
<---SYN/ACK----
|
Send SYN (seq=y), ACK (x+1)
|
3 Send ACK (y+1)
|
----ACK--->
|
|
x: ISN (Initial Sequence Number) of the Client
|
y: ISN of the Server
|
四次挥手:由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
- 默认情况下,当调用close( or closesocket)时,如果发送缓冲中还有数据,TCP会继续把数据发送完。
- 发送了FIN只是表示这端不能继续发送数据(应用层不能再调用send发送),但是还可以接收数据。
- 被动关闭端可能会将ACK和FIN合到一起发送,所以这也算不上严格的四次握手—四个报文段。
- 应用层如何知道对端关闭?通常,在最简单的阻塞模型中,当你调用recv时,如果返回0,则表示对端关闭。在这个时候通常的做法就是也调用close,那么TCP层就发送FIN,继续完成四次握手。
- 关闭TCP连接的最后微妙之处在于对Time-Wait状态的需要。TCP规范要求在终止连接时,两端的关闭握手都完成后,至少要有一个套接字在Time-Wait状态保持一段时间。这个要求的提出是由于消息在网络中传输时可能延迟。如果在连接两端都完成了关闭握手后,它们都移除了其底层数据结构,而此时在同样一对套接字地址之间又立即建立了新的连接,那么前一个连接在网络上传输时延迟的消息就可能在新连接建立后到达。由于其包含了相同的源地址和目的地址,旧消息就会被错误地认为是属于新连接的,其包含的数据就可能被错误地分配到应用程序中。
假设一个C向S发送了SYN后无故消失了,那么S在发出SYN+ACK应答报文后是无法收到C的ACK报文的(第三次握手无法完成),这种情况下S一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个C出现异常导致S的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,S将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果S的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使S的系统足够强大,S也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟C的正常请求比率非常之),此时从正常客户的角度看来,S失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
子网划分:
新建4个机房,每个房间有25台机器,给定一个网络地址空间:192.168.10.0,现在需要将其划分为4个子网
所以主机位数n为:5 相对应的子网需要借3位
确定了子网部分,后面就简单了,前面的网络部分不变,看最后的这8位
得到6个可用的子网地址:全部转换为点分十进制表示
11000000 10101000 00001010 00100000 = 192.168.10.32
11000000 10101000 00001010 01000000 = 192.168.10.64
11000000 10101000 00001010 01100000 = 192.168.10.96
11000000 10101000 00001010 10000000 = 192.168.10.128
11000000 10101000 00001010 10100000 = 192.168.10.160
11000000 10101000 00001010 11000000 = 192.168.10.192
子网掩码:
11111111 11111111 11111111 11100000 = 255.255.255.224
分享到:
相关推荐
常见LINUX笔试题.doc 资源丰富哦!
招银网络java科技笔试题 ...前言 我在 ...Hibernate常见笔试题_csdn_sty945.pdf 银行笔试-计算机知识部分_csdn_sty945.pdf JAVA高频笔试题_csdn_sty945.pdf (2019.10.23 更新) 2_其他 解决北京户口企
2013年四川移动校招笔试题 2013年中国移动广东公司招聘笔试试题及答案 2014年中国移动招聘笔试试题及答案 2015年中国移动招聘笔试试题及答案 移动笔试真题之技术类--浙江移动金华分公司无线网优测试试题 移动笔试...
C++面试题笔试题 C语言 IQ智力面试题笔试题 JAVA笔试面试资料 NET面试题笔试题 web开发 数据库面试题笔试题 算法 数据结构 计算机基础 计算机网络 软件测试 ava工程师面试题大全-100%公司笔试题你都能碰到几个.docx ...
第一章 网络基础知识 第二章 常见网络接口与线 第三章 以太网交换机基 第四章 LAN Switch 配 第五章 路由器基础及原理 第六章 路由器配置简介 第七章 网络层基础及子网规划 第八章 IPX 协议及配置 第九章 常见广域网...
计算机网络和安全基础知识 网络和通信名词解释和答案,常见笔试题
高级java笔试题 感谢大家的关注与支持,最近工作上比较忙,一直没有抽出时间来更新~ 8月份终于赶在最后几天把性能优化补全了,结构方面还会再优化一下。然后这个月,也就是9月份开始着手第三方框架的内容,10月底前...
java笔试题算法 如果觉得看起来比较麻烦,需要PDF版本,或是需要更多学习资料(大厂面试真题解析),都可以加上或领取。祝愿每一位有追求的Android开发同胞都能进大厂拿高薪! Android Android知识笔记目录: Java ...
├─java笔试题大集合及答案(另附各大公司笔试题) │ EJB方面.doc │ Java基础方面.doc │ 代码与编程题.doc │ 应聘Java笔试时可能出现问题及其答案.doc │ 求职笔试大全.pdf │ 用户必读.txt │ 线程编程方面....
这份互联网校招试题资料包含了各个互联网公司常见的笔试面试题目,涵盖了计算机基础知识、编程语言、数据结构与算法、操作系统、网络通信等多个方面。这些试题旨在考察求职者的专业知识水平和解决问题的能力,是...
附件为天顺智慧能源java笔试题目3,题目非常简单,主要有java基础,网络基础知识,所使用工具,数据库知识,常见算法几部分组成
附件为天顺智慧能源java笔试题目1,题目非常简单,主要有java基础,网络基础知识,所使用工具,数据库知识,常见算法几部分组成
本书除了对传统的计算机相关知识(Java语言基础知识、Web基础知识、数据结构与算法、操作系统、计算机网络与通信、数据库、设计模式等)以及面试笔试真题进行分析与解答外,还根据当前计算机技术的发展潮流,对面试...
java中solr的笔试题 个人学习笔记 python nginx AWS认证考试 技术路线 LB负载均衡 负载均衡常见使用场景,问题定位,特别是对于概率性出现的访问超时问题定位。包含如下组件 nginx lvs openresty kong apigateway ...
2018秋招java笔试题 目录 :hot_beverage: Java Java/J2EE 基础 Java 集合框架 Java 多线程 Java 虚拟机 jvm Java IO 与 NIO 设计模式 :open_file_folder: 数据结构与算法 数据结构 算法 :laptop: 计算机网络与数据...
附件为天顺智慧能源java笔试题目,题目非常简单,主要有java基础,网络基础知识,所使用工具,数据库知识,常见算法几部分组成
│ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海...
│ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海...
本书除了对传统的计算机相关知识(c/c++、数据结构与算法、操作系统、计算机网络与通信、软件工程、数据库、智力题、英语面试等)进行介绍外,还根据当前计算机技术的发展潮流,对面试笔试中常见的海量数据处理进行...