• Java刷题day37


    1. 下面是一个http请求:

    GET /baidu/blog/item/6605d1b4eb6433738ad4b26d.html HTTP/1.1

    Host: hi.baidu.com

    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6

    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5

    Accept-Language: zh-cn,zh;q=0.5

    Accept-Encoding: gzip,deflate

    Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

    Keep-Alive: 300

    Connection: keep-alive

    Referer: http://hi.baidu.com/baidu

    Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76;

    下面关于 Host、User-Agent、Accept-Charset、Connection、Referer、Cookie描述错误的是()
    A Host: HTTP服务器的IP地址或者域名
    B User-Agent: 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.
    C Accept-Charset:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8
    D Cookie: 它记录了服务器的相关的一些信息
    E Referer: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的
    答案:D
    解析:
    cookie是用来记录用户信息的,用来表明用户身份的,不会记录服务器的信息。

    2.常见的http错误描述原因错误的是()

    A 404-Not found(没有找到)
    B 302-临时重定向
    C 500-内部服务器错误
    D 403- IP address rejected
    答案:D
    解析:403错误,禁止访问,是网站访问过程中,常见的错误提示。资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。

    3. Linux 中,要使用 tcpdump 监听网卡 eth0,对方主机 IP 为 10.1.1.180,TCP 端口为 80,则正确的命令为()

    A tcpdump -h eth0 -nn ‘tcp and host 10.1.1.180:80’
    B tcpdump -i eth0 -nn ‘tcp and host 10.1.1.180:80’
    C tcpdump -h eth0 -nn ‘tcp and port 80 and host 10.1.1.180’
    D tcpdump -i eth0 -nn ‘tcp and port 80 and host 10.1.1.180’
    答案:D
    解析:
    tcpdump抓包命令:用于截取网络分组,并输出分组内容的工具
    选项:
    -A:以ASCII格式打印所有分组,常用于www的网页的数据抓取
    -c:收到指定的数量的分组后,停止tcpdump
    -C:将一个原始分组写入文件之前,检查文件的当前大小是否超过了file_size的指定大小,超过则关闭当前文件然后打开一个新文件,、
    -d:将匹配信心包的代码以人们能够理解的汇编格式给出
    -dd:将匹配信息的代码以C语言程序段的格式给出
    -ddd :将匹配信息的代码以十进制的形式给出
    -D:打印系统中所有的可以用tcpdump截包的网络接口
    -e:输出行打印数据链路层的头部信息
    -f:将外部的internet地址以数字的形式打印
    -F:从指定的文件中读取表达式,忽略命令行中给出的表达式、
    -i:指定监听的网络接口
    -l:使标准输出变成缓冲形式,可以把数据导出到文件
    -L:列出网络接口的已知数据链路
    -b:在数据链路层选择协议:ip arp rarp ipx
    -n:不把网络地址转成名字
    -nn:不进行端口名称的转换
    -N:不输出主机名中的域名部分
    -t:输出的每一行不打印时间戳
    -tt:在每一行中输出非格式化的时间戳
    -ttt:输出本行和前面一行之间的时间差
    -tttt:在每一行中输出由date处理的默认格式的时间戳
    -O:不运行分组匹配代码优化程序
    -P:不将网络接口设置成混杂模式
    -q:快速输出,只输出较少的协议信息
    -r:从指定文件中读取包
    -S:将tcp的序列号以绝对值形式输出,而不是相对值
    -s:从每个分组中读取最开始的snaplen个字节】
    -T:将监听的包直接解释为指定类型的报文,常见有rpc远程过程调用,和snmp
    -v:输出一个详细信息
    -vv:输出详细的报文信息
    -w:直接将分组写入文件中,而不是不分析打印
    -x:可以列出16进制以及ASCII的数据包的内容

    4.网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址,此地址所处子网可用主机数()

    A 172.16.22.32 172.16.22.255 12
    B 172.16.22.32 172.16.22.47 16
    C 172.16.22.32 172.16.22.255 15
    D 172.16.22.32 172.16.22.47 14
    答案:D
    解析:

    此IP地址 28 表示 子网掩码的前28位作为网络号,是1, 即 1111 1111.1111 1111. 1111 1111. 1111 0000
    所以可以计算该IP的网络号为:

    38—> 0010 0110
    & 1111 0000

    32–> 0010 0000
    所以可得到子网ID是 172.16.22.32

    32 - 28 = 4 ,由此可计算该子网最多有 2^4 = 16 台主机,去掉网络号和广播地址是16 - 2 = 14

    主机号全部为0 的主机作为网络号, 主机号全部为1的作为广播地址,
    所以,可得该IP的广播地址是: 0010 1111–>47
    所以广播地址是 172.16.22.47

    5. tcp三次握手的过程,accept发生在三次握手哪个阶段()

    A 第一次握手
    B 第二次握手
    C 第三次握手
    D 三次握手后
    答案:D
    解析:

    accept发生在三次握手之后。
    第一次握手:客户端发送syn包(syn=j)到服务器。
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。
    三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。

    6. Linux中,一个端口能够接受tcp链接数量的理论上限是()

    A 1024
    B 65535
    C 65535 * 65535
    D 无上限
    答案:D
    解析:
    在理论上来说是没有上限的,但是实际上会受到文件描述符的上限还有内存大小的影响
    由于Linux中一切皆文件,端口能接受的tcp链接数被打开的文件描述符的数量决定,同时文件数量上限取决于内存大小

    7. TCP报文首部信息中与关闭连接有关的是()

    A URG
    B ACK
    C SYN
    D FIN
    答案:D
    解析:

    URG:urgent,意思是优先级高,发送端优先发送,而不是在缓存中排队。

    ACK:acknowledge,1意味着确认建立了会话,0代表确认好无效。

    PSH:1意味着接收端优先读取,而不是在缓存中排队。

    RST:reset,1意味着TCP会话出现严重错误,必须释放和重新连接。

    SYN:同步。1意味着要发起会话。

    FIN:finish,1意味着释放连接。

    8.10.1.0.1/17的广播地址是( )

    A 10.1.128.255
    B 10.1.63.255
    C 10.1.127.255
    D 10.1.126.255
    答案:C
    解析:

    首先广播地址即是主机号全为1.

    10.1.0.1/17化为二进制为

    00001010 00000001 00000000 00000001后15为全为1
    即为:
    00001010 00000001 01111111 11111111
    就是10.1.127.255

    9. 随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是()

    A 10.6.207.84
    B 172.23.30.28
    C 172.32.50.80
    D 192.168.1.100
    答案:C
    解析:
    私有IP地址共有三个范围段:

    A:10.0.0.0~10.255.255.255 /8

    B: 172.16.0.0~172.31.255.255 /12

    C: 192.168.0.0~192.168.255.255 /16

    10.int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?

    A 是否打开log信息
    B 是否打开后台log信息
    C 后台等待连接队列的最大限制值
    D 后台等待连接队列的最小限制值
    E 无意义
    答案:C
    解析:
    1)backlog 用于在TCP层接收链接的缓冲池的最大个数,这个个数可在应用层中的listen函数里设置,当客户链接请求大于这个个数(缓冲池满),其它的未进入链接缓冲池的客户端在tcp层上tcp模块会自动重新链接,直到超时(大约57秒后)
    2)我们的应用层的链接完成是要从tcp层的链接缓冲池中移出一个(accept函数实现)
    backlog是连接请求队列的最大长度。
    1.在WinSock1.1中最大值5。如果backlog小于1,则backlog被置喂1;若backlog大于SOMAXCONN(定义在winsock.h中,值为5),则backlog被置为SOMAXCONN。
    2.在WinSock2中,没有制定具体值,它由服务提供者决定
    3.有时候backlog设置很小,这时我们接进多少台机器都没问题是因为服务器机器处理速度很快队列来不及填满就处理完了,而且在同一个时刻到来的连接还是很少的

  • 相关阅读:
    NUWA论文阅读
    高效接口重试机制的实现
    我把一个json格式的数据读到dataframe里面了 怎么解析出自己需要的字段呢?
    [JavaScript]面对对象编程,构造函数,原型
    “我竟是公司唯一一位女版图工程师”,跨行模拟版图学习要点分享
    校招秋招,性格和职业有关系吗?
    ‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    微信小程序三级分销商城源码系统+区域代理+完整的部署教程
    竞赛 基于机器视觉的车道线检测
    Java idea编译器工程out目录修改
  • 原文地址:https://blog.csdn.net/m0_52322019/article/details/126486971