Linux网络编程—数据链路层

第一章:数据链路层

数据链路层

用于两个设备(同一种数据链路节点)之间进行传递

认识以太网

  • “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构、访问控制方式、传输速率等;
  • 例如以太网中的网线必须使用双绞线;传输速率有10M、100M、1000M等;
  • 以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网、无线LAN等;

以太网帧格式

以太网的帧格式如下所示:

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
  • 帧末尾是CRC校验码。


认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置mac地址)。

对比理解MAC地址和IP地址

  • IP地址描述的是路途总体的起点和终点;
  • MAC地址描述的是路途上的每一个区间的起点和终点;

认识MTU

  • MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层产生的限制。
  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
  • 不同的数据链路层标准的MTU是不同的;

MTU对IP协议的影响

由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。

  • 将较大的IP包分成多个小包,并给每个小包打上标签;
  • 每个小包IP协议头的16位标识(id)都是相同的;
  • 每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否为最后一个小包,是的话置为0,否则置为1);
  • 到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层;
  • 一旦这些小包中任意一个小包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据;

MTU对UDP协议的影响

让我们回顾一下UDP协议:

  • 一旦UDP携带的数据超过1472(1500 - 20(IP首部)- 8(UDP首部)),那么就会在网络层分成多个IP数据报。
  • 这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。

MTU对于TCP协议的影响

让我们再回顾一下TCP协议:

  • TCP的一个数据报也不能无限大,还是受制于MTU。TCP的单个数据报的最大消息长度,称为MSS(Max Segment Size);
  • TCP在建立连接的过程中,通信双方会进行MSS协商。
  • 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)。
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。
  • 然后双方得知对方的MSS值之后,选择较小的作为最终MSS。
  • MSS的值就是在TCP首部的40字节变长选项中(kind=2);

MSS和MTU的关系

查看硬件地址和MTU

使用ifconfig命令, 即可查看ip地址, mac地址, 和MTU;

ARP协议

虽然我们在这里介绍ARP协议,但是需要强调,ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议;

ARP协议的作用

ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。

  • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
  • 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
  • 因此在通讯前必须获得目的主机的硬件地址;

ARP协议的工作流程

  • 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);
  • 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;
  • 每台主机都维护一个ARP缓存表,可以用`arp -a`命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

为什么要有缓存表?

  • 减少ARP广播风暴: 如果没有缓存,主机每次要和另一个已知IP地址的主机通信时(即使是连续发送多个数据包),都必须先在局域网内广播一个ARP请求。这会导致网络中充斥着大量重复的ARP请求,严重浪费带宽,影响其他正常通信。
  • 降低通信延迟: ARP请求/响应过程需要时间(发送广播、等待响应)。如果每个数据包前都要经历这个过程,通信的延迟会变得非常高。缓存表将“IP到MAC”的映射关系保存下来,后续通信可以直接查询缓存,实现了“一次查询,多次使用”,极大地加快了数据封装的效率。
  • 减轻主机和网络设备负荷: 处理广播包对局域网内所有主机和交换机都有开销。减少不必要的广播,能让所有设备更专注于处理真正的数据通信。

为什么表项要有过期时间而不是一直有效?

  • IP地址与MAC地址的绑定会僵化: 网络环境是动态的。
    • 主机更换网卡,它的IP地址可能没变,但MAC地址(固化在网卡硬件上)却变了。
    • 动态IP分配
  • 缓存表无限膨胀

再想一想,结合我们刚才讲的工作流程,ARP的数据报应该是一个什么样的格式?

ARP数据报的格式

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答。

ARP结合协议的具体过程

ARP欺骗原理

第二章:NAT技术背景

之前我们讨论了,IPv4协议中,IP地址数量不足的问题。

NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能;

  • NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法:
  • 很多学校、家庭、公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;

NAT IP转换过程

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部,有一张自动生成的、用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系。

这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项。

NAT技术的缺陷

由于NAT依赖这个转换表,所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接;
  • 转换表的生成和销毁都需要额外开销;
  • 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;

第三章:代理服务器

正向代理

概述

正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

工作原理

  • 客户端将请求发送给正向代理服务器。
  • 正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。
  • 正向代理服务器将处理后的请求转发给目标服务器。
  • 目标服务器处理请求,并将响应返回给正向代理服务器。
  • 正向代理服务器将响应返回给客户端。
  • Nginx

功能特点

  • 缓存功能:正向代理服务器可以缓存经常访问的资源,当客户端再次请求这些资源时,可以直接从缓存中获取,提高访问速度。
  • 内容过滤:正向代理可以根据预设的规则对请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。
  • 访问控制:通过正向代理,可以实现对特定网站的访问控制,如限制员工在工作时间访问娱乐网站。
  • 隐藏客户端身份:正向代理可以隐藏客户端的真实IP地址,保护客户端的隐私。
  • 负载均衡:在多个目标服务器之间分配客户端请求,提高系统的可扩展性和可靠性。

应用场景

  • 企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密。
  • 公共网络环境:在公共场所如图书馆、学校等提供的网络环境中,通过正向代理可以实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。
  • 内容过滤与保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网络上的不良信息影响。
  • 提高访问速度:对于经常访问的网站或资源,正向代理可以通过缓存机制提高访问速度,减少网络延迟。
  • 跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可以帮助他们突破网络限制,顺畅地访问海外网站和资源。

反向代理

概述

反向代理服务器是一种网络架构模式,其作为Web服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

基本原理

反向代理服务器位于客户端和Web服务器之间,当客户端发起请求时,它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的Web服务器,并将Web服务器的响应返回给客户端。在这个过程中,客户端并不知道实际与哪个Web服务器进行了交互,它只知道与反向代理服务器进行了通信。

应用场景

  • 负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。
  • 安全保护:反向代理服务器可以隐藏后端Web服务器的真实IP地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略,对客户端的请求进行过滤和限制,以保护后端服务器的安全。
  • 缓存加速:反向代理服务器可以缓存后端Web服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。
  • 内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求,如URL重写、用户认证等。
  • 动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。
  • CDN(Content Delivery Network,内容分发网络)就是采用了反向代理的原理。

NAT和代理服务器

路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。

代理服务器看起来和NAT设备有一点像。客户端像代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端。

那么NAT和代理服务器的区别有哪些呢?

  • 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层。
  • 从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
  • 从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

代理服务器是一种应用比较广的技术。

  • 翻墙:广域网中的代理。
  • 负载均衡:局域网中的代理。

代理服务器又分为正向代理和反向代理。
 

内网穿透

总结

数据链路层

  • 数据链路层的作用:两个设备(同一种数据链路节点)之间进行传递数据
  • 以太网是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构、访问控制方式、传输速率等;
  • 以太网帧格式
  • 理解mac地址
  • 理解arp协议
  • 理解MTU

网络层

  • 网络层的作用:在复杂的网络环境中确定一个合适的路径。
  • 理解IP地址,理解IP地址和MAC地址的区别。
  • 理解IP协议格式。
  • 了解网段划分方法
  • 理解如何解决IP数目不足的问题,掌握网段划分的两种方案。理解私有IP和公网IP
  • 理解网络层的IP地址路由过程。理解一个数据包如何跨越网段到达最终目的地。
  • 理解IP数据包分包的原因。
  • 了解ICMP协议。
  • 了解NAT设备的工作原理。

传输层

  • 传输层的作用:负责数据能够从发送端传输接收端。
  • 理解端口号的概念。
  • 认识UDP协议,了解UDP协议的特点。
  • 认识TCP协议,理解TCP协议的可靠性。理解TCP协议的状态转化。
  • 掌握TCP的连接管理、确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性。
  • 理解TCP面向字节流,理解粘包问题和解决方案。
  • 能够基于UDP实现可靠传输。
  • 理解MTU对UDP/TCP的影响。

应用层

  • 应用层的作用:满足我们日常需求的网络程序,都是在应用层
  • 能够根据自己的需求,设计应用层协议。
  • 了解HTTP协议。
  • 理解DNS的原理和工作流程。

第四章:DNS与ICMP

DNS(Domain Name System)

DNS是一整套从域名映射到IP的系统。

DNS背景

TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序。但是IP地址不方便记忆。

于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。

最初,通过互联网信息中心(SRI-NIC)来管理这个hosts文件。

  • 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
  • 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。

这样就太麻烦了,于是产生了DNS系统。

  • 一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
  • 如果新计算机接入网络,将这个信息注册到数据库中;
  • 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。

至今,我们的计算机上仍然保留了hosts文件。在域名解析的过程中仍然会优先查找hosts文件的内容。

cat /etc/hosts

域名简介

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。

www.baidu.com

域名使用 . 连接
com:一级域名。表示这是一个企业域名。同级的还有 "net"(网络提供商)、"org"(非盈利组织)等。
baidu:二级域名,公司名。
www:只是一种习惯用法。之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。

域名解析过程

如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下二层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如http://baidu.com、http://taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,这里不多赘述。

使用 dig 工具分析 DNS 过程

安装 dig 工具

yum install bind-utils

之后就可以使用 dig 指令查看域名解析过程了。

dig www.baidu.com

结果形如


; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24342
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		501	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	48	IN	A	183.2.172.177
www.a.shifen.com.	48	IN	A	183.2.172.17

;; Query time: 0 msec
;; SERVER: 183.60.83.19#53(183.60.83.19)
;; WHEN: Mon Dec 15 16:19:12 CST 2025
;; MSG SIZE  rcvd: 90

结果解释

  1. 开头位置是 dig 指令的版本号
  2. 第二部分是服务器返回的详情,重要的是 status 参数,NOERROR 表示查询成功
  3. QUESTION SECTION 表示要查询的域名是什么
  4. ANSWER SECTION 表示查询结果是什么。这个结果先将 www.baidu.com 查询成了www.a.shifen.com,再将 www.a.shifen.com 查询成了两个 ip 地址。
  5. 最下面是一些结果统计,包含查询时间和 DNS 服务器的地址等。

更多 dig 的使用方法,参见

https://www.imooc.com/article/26971?block_id=tuijian_wz

关于DNS缓存:

  • 在Windows系统中,可以使用 `ipconfig /displaydns` 命令来查看系统级别的DNS缓存
  • 浏览器的缓存,大家可以自行搜索一下,看看能不能找到

浏览器中输入url后,发生的事情。(作业)

这是一个经典的面试题。没有固定答案,越详细越好。

可以参考:浏览器中输入url后发生的事情

ICMP协议快速了解

ICMP协议是一个网络层协议

一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。

ICMP协议在IP层中的作用解析

ICMP功能

  • ICMP正是提供这种功能的协议;ICMP主要功能包括:
  • 确认IP包是否成功到达目标地址。
  • 通知在发送过程中IP包被丢弃的原因。
  • ICMP也是基于IP协议工作的。但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议;
  • ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要使用ICMPv6;

ICMP的报文格式

关于报文格式,我们并不打算重点关注,大家稍微有个了解即可。

ICMP大概分为两类报文:

  • 一类是通知出错原因
  • 一类是用于诊断查询

ping命令

  • 注意,此处 ping 的是域名,而不是url!一个域名可以通过DNS解析成IP地址。
  • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)。
  • ping命令会先发送一个 ICMP Echo Request给对端;
  • 对端接收到之后,会返回一个ICMP Echo Reply;

一个值得注意的坑

有些面试官可能会问:telnet是23端口,ssh是22端口,那么ping是什么端口?

千万注意!!!这是面试官的圈套。

ping命令基于ICMP,是在网络层。而端口号,是传输层的内容。在ICMP中根本就不关注端口号这样的信息。

traceroute命令

也是基于ICMP协议实现,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。

附录:

关于域名,我提问AI的问题列表,非技术问题,但是有助于理解域名解析:
https://yiyan.baidu.com/share/YAWkPiO7ER

作业

1. 以下关于MSS说法错误的是()

A.TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size)
B.双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值
C.通信双方选择最大的MSS值作为双方通信最终的MSS
D.MSS的值就是在TCP首部的40字节变长选项中(kind = 2)

答案:C
答案解析:

MSS为TCP的单个数据报的最大消息长度,TCP通信双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,通信双方选择最小的MSS值作为双方通信最终的MSS,MSS的值就是在TCP首部的40字节变长选项中


2. 以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则以下说法错误的是()

A.首先需要计算在3008bytes的数据报文上添加20字节的IP报头后是否大于MTU,若大于则需要进行分片
B.计算最大的IP包中IP净荷的长度为1480 bytes
C.按照最大IP包中的IP净荷将长度为3008bytes的数据报文分为 1480 + 1480 + 48
D.最后发送的报文的大小为1480bytes, 1480bytes, 48bytes

答案:D
通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。举一个具体的例子说明IP包分片的原理。以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则该报文在添加20 bytes的IP包头后IP包的总长度是 3028 bytes,因为3028 > 1500,所以该数据报文将被分片,分片过程如下:

  1. 首先计算最大的IP包中IP净荷的长度 = MTU - IP包头长度 = 1500 - 20 = 1480 bytes。
  2. 然后把3008 bytes按照1480 bytes的长度分片,将要分为3片,3008 = 1480 + 1480 + 48。
  3. 最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500 bytes、1500 bytes和 68 bytes。


3. 在MTU较小的网络,需将数据报分成若干较小的部分进行传输,这种较小的部分叫做 ()

A.组
B.片
C.段
D.节

答案:B
答案解析:
MTU:最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小,是链路层的数据单元大小限制
数据在不同的层次或者不同的场景有不同的叫法,
数据段是传输层的说法,数据报是网络层的说法,数据帧是数据链路层的说法
数据片指的是UDP报文因为过大在网络层进行分割成小报文的说法,叫做数据分片
根据以上理解,正确选项为:B


4. 以下关于ARP说法错误的是()

A.ARP(Address Resolution Protocol)是地址解析协议
B.ARP协议一定位于TCP / IP协议栈中的网络层
C.ARP表项的老化超时时间缺省为1200秒
D.Operation Code指定了ARP报文的类型,包括ARP request和ARP reply

答案:B
答案解析:
B错误:通常认为ARP协议位于数据链路层和网络层中间,因为ARP协议涉及到IP地址和MAC地址


5. ARP协议的功能是()

A.根据IP地址查询MAC地址
B.根据MAC地址查询IP地址
C.根据域名查询IP地址
D.根据IP地址查询域名

答案:A
答案解析:
A正确:ARP协议称之为地址解析协议,将根据IP地址查询MAC地址
B错误:反向地址转换协议,允许机器根据MAC地址获取IP地址
C错误:通过域名获取IP是DNS协议
D错误:DNS的反向解析


6. arp协议用了()

A.broadcast
B.multicast
C.unicast
D.以上选项都不正确

答案:A
答案解析:
地址解析协议,即ARP(Address Resolution Protocol),是根据 IP地址 获取 物理地址 的一个 TCP / IP协议 。 主机 发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源
broadcast:广播, multicast:多播,unicast:单播


7. 【多选题】关于DNS协议以下说法错误的是()

A.使用tcp协议进行传输
B.使用udp协议进行传输
C.可以进行从域名到ip的解析
D.可以根据ip查询其使用的域名

答案:AD
答案解析
A错误:DNS协议规范使用UDP进行传输
D错误:DNS的初衷就是由于IP地址比较难以记忆,所以使用域名来访问,DNS将域名解析为对应的IP地址,而通过IP查询域名是一种反向解析技术并非DNS协议功能


8. DNS 的默认端口是多少?()

A.135
B.445
C.3389
D.53

答案:D
答案解析:
DNS侦听端口为53


9. 对于主机域名 for.zj.edu.cn 来说,其中 表示主机名。()

A.zj
B.for
C.edu
D.cn

答案:B
答案解析:
域名组成:主机名.结构名.网络名.最高层域名。本题, 主机域名for.zj.edu.cn 中,for是主机名,zj是结构名,edu是网络名,cn为最高层域名

10. 【多选题】以下表述的正确是()

A.NAT有三种类型:静态地址NAT,动态地址NAT,网络地址端口转换NAPT
B.静态地址NAT将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一直不变的
C.动态地址NAT将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定,随机的。所有被授权访问Internet的私有IP地址可随机转换为任何指定合法的IP地址
D.网络地址端口转换NAPT是改变外出数据包的源端口并进行端口转换,采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,可以最大限度地节约IP地址资源

答案:ABCD
静态地址NAT:实现固定私网主机地址到公网地址的一对一转换,适用于上网用户少,且同时上网用户数量与公网地址数量相同的场景
动态地址NAT:私网主机地址与公网地址的动态转换,并没有固定映射关系
网络地址端口转换NAPT:同时进行地址和端口的转换的NAT,可以实现多个私网地址对应同一个公网地址的转换,不同的私网地址数据使用相同公网地址时使用不同的端口进行转换,适用于公网地址数量少,但是私网用户数量大的场景。
基于以上理解,以上选项全部正确。


11. 下列有关NAT叙述错误的是( )

A.NAT是英文“网络地址转换”的缩写
B.址转换又称地址翻译,用来实现私有地址和公用网络地址之间的转换
C.当内部网络的主机访问外部网络的时候,一定不需要NAT
D.地址转换的提出为解决IP地址紧张的问题提供了一个有效途径

答案:C
答案解析:
NAT网络地址转换技术,通常用于私网或者内网的组建中的一种关键技术,在组建的私网中,NAT服务部署在网关设备上,对流经的数据进行地址转换,实现大量私网内主机使用相同的对外公网地址上网,节省IP地址的使用。
C错误:对于使用内部网络的机器而言,获取的IP地址是内网的地址,所以在需要访问外部网络的时候,需要进行网络地址转换,否则无法和外部网络进行通信


12. 【多选题】以下关于代理服务器说法正确的是()

A.代理服务器往往工作在应用层
B.路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程
C.代理服务器又分为正向代理和反向代理
D.正向代理用于请求的转发, 反向代理往往作为一个缓存

答案:ABCD
答案解析
代理服务器一般工作在应用层,代理服务器分为正向代理和反向代理,正向代理用于请求的转发,反向代理一般作为一个缓存
正向代理,代理的是客户端,类似于房产中介,替我们跟房东交互,把我们的请求交给房东,把房东的回复交给我们, 比较典型的就是 VPN以及一些翻墙代理服务器,一般都是客户端架设的
反向代理,代理的是服务器,类似于二房东,你以为你跟房东交互租房呢,其实不是,你是在跟二房东租房,,反向代理通常由服务器端假设,隐藏服务器IP,并实现静态资源缓存以及负载均衡的作用
基于以上理解,以上答案全部正确。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值