计算机网络笔试题总结
1、当一台计算机从FTP服务器下载文件时,在该FTP服务器上对数据进行封装的五个转换步骤是()。
数据【报文】,数据段【报文段】,数据包,数据帧,比特
2、物理层的特性有机械特性、电气特性、规程特性和功能特性4种。
3、以太网的物理拓扑是____________,逻辑拓扑是____________。
物理上使用集线器的局域网是一个星型网,使用集线器的以太网在逻辑上仍是一个总线网。
4、四种情况会发送RST包:
1、端口未打开
2、请求超时
3、提前关闭
4、在一个已关闭的socket上收到数据
5、 IP数据报分片的原因:
在 TCP/IP分层中,数据链路层用 MTU ( Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小, MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头,如以太网的 MTU为 1500字节,实际上数据帧的最大长度为 1512字节,其中以太网数据帧的帧头为 12字节。
分片的思想:
当发送的IP数据报的大小超过了MTU时,IP层就需要对数据进行分片,否则数据将无法发送成功。
IP 分片发生在 IP 层 ,不仅 源端主机 会进行分片,中间的 路由器 也有可能分片,因为不同的网络的 MTU 是不一样的,如果传输路径上的某个网络的 MTU 比源端网络的 MTU 要小,路由器就可能对 IP 数据报再次进行分片。而分片数据的 重组 只会发生在 目的 端 的 IP层。
6、关于session和cookie
1.如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。
2.session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。
2.session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。
3.恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
7、计算机网络系统的基本组成:
从计算机网络系统看,计算机网络是由计算机网络的硬件系统和网络软件系统组成的;
从拓补结构看,计算机网络是由网络节点和通信链路组成的;
从逻辑功能看,计算机网络是由用户资源子网和通信子网组成的。
8、以太网通常指的是局域网,也就是小范围内的网络
9、在TCP/IP协议族的层次中,解决计算机之间通信问题是在网络层,解决进程之间的通信问题是在传输层
10、在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在会话层做文章
11、双绞线连接方式:
直通线用于连接不同类设备:电脑---交换机, 交换机----路由器
交叉线用于连接相同类设备:电脑----电脑 , 交换机----交换机
反转线用于电脑直接连接路由器:. 电脑----路由器
12、SYN Flood攻击
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN 报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为 三次握手(Three-way Handshake)。
问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN 报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN 洪水攻击)。
学而不思则罔,思而不学则殆