笔试强训(四十)

一、选择题

(1)上网的时候,访问某个页面却突然出现了某个运营商的网页,出现此问题可能的原因是(A)
A.DNS劫持
B.DDos攻击
C.MAC地址欺骗
D.伪造DHCP服务器

DNS劫持:是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假地址
DDos攻击:分布式拒绝服务攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDos攻击,从而成倍的提高拒绝服务攻击的威力
MAC地址欺骗:利用mac地址欺骗, 组织局域网内的任意电脑使用网络
伪造DHCP服务器:本质上是DHCP攻击,将真的DHCP服务器的ip资源耗尽,然后部署假的DHCP服务器,让主机向假的DHCP服务器请求

(2)主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为32 KB,甲向乙始终以MSS = 1 KB大小的段发送数据,并一直有数据发送;乙为该连接分配16 KB接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发生超时的情况下,经过4个RTT后,甲的发送窗口是(A)
A.1KB
B.8KB
C.16KB
D.32KB

甲在未发生超时的情况下,采用慢启动的方式增加窗口的大小
发送窗口的大小等于min{拥塞窗口,接收窗口}
在这里插入图片描述

(3)通过POP3协议接收邮件时,使用的传输层服务类型是(D)
A.无连接不可靠的数据传输服务
B.无连接可靠的数据传输服务
C.有连接不可靠的数据传输服务
D.有连接可靠的数据传输服务

POP3即邮件协议版本3
该协议主要用于支持使用客户端远程管理在服务器上的电子邮件,提供SSL加密的POP3协议被称为POP3
属于应用层协议,传输层协议使用TCP

(4)下列关于UDP协议的叙述中,正确的是(B)

  1. 提供无连接的服务
  2. 提供复用/分用服务
  3. 通过差错校验,保证可靠数据传输

A.1
B.1 2
C.2 3
D.1 2 3

传输层的分用/复用就是把网路层的提供的host-to-host传输服务扩展到运行于计算机上的应用进程间的传输服务,也就是点对点的传输,这里的点指的是端口
分用是把传输层segment中的信息发送给正确的socket服务
复用是把所有socket中的数据集中并加头信息封装,然后发送到网络上的服务

(5)主机甲与主机乙之间已建立一个TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到1个来自乙的TCP段,该段的序号为1913、确认序号为2046、有效载荷为100字节,则甲立即发送给乙的TCP段的序号和确认序号分别是 (B)
A.2046,2012
B.2046,2013
C.2047,2012
D.2047,2013

在这里插入图片描述

二、编程题

2.1 发邮件

2.1.1 题目

在这里插入图片描述

2.1.2 题解

思路:错排问题
用A、B、C……表示写着n位友人名字的信封,a、b、c……表示n份相应的写好的信纸。把错装的
总数为记作D(n)。假设把a错装进B里了,包含着这个错误的一切错装法分两类:
(1)b装入了A中,此时 a ,b就和剩下的错装问题无关,还剩D(n-2)种错装法
(2)b没有装入A中,这就相当于添加了一条限制,b不能装入A中,这和c不能装入C中是等价的,因此还剩D(n-1)中错装的方式

避免越界,使用BigInteger类进行保存数据
代码:

import java.util.*;
import java.math.*;
public class Main{
  public static void main(String[] args){

        BigInteger[] dp=new BigInteger[21];
        dp[1]=new BigInteger("0");
        dp[2]=new BigInteger("1");
        for(byte i=3;i<=20;i++){
            byte[] tmp=new byte[1];
            tmp[0]=(byte)(i-1);
            BigInteger tmp1=new BigInteger(tmp);
            dp[i]= tmp1.multiply(dp[i-1].add(dp[i-2]));
        }
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            int n=scanner.nextInt();
            System.out.println(dp[n]);
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值