# 1 层次结构 **题目:** 计算机网络采用层次结构有什么好处? **答案:** ①各层之间是独立的。某一层可以使用其下一层提供的服务而不需要知道服务是如何实现的。 ②灵活性好。当某一层发生变化时,只要其接口关系不变,则这层以上或以下的各层均不受影响。 ③结构上可分割开。各层可以采用最合适的技术来实现。 ④接口清晰,易于实现和维护。 ⑤能促进标准化工作。 # 2 电路交换和分组交换 **题目:** 比较电路交换和分组交换的异同与优劣? **回答:** 1.电路交换: 优点:通讯时延小,有序传输,没有冲突,适用范围广,实时性强,控制简单。 缺点:建立连接时间长,线路利用率低,灵活性差,难以规格化,难以实现差错控制。 2.报文交换: 优点:与电路交换相比,更加灵活,不需要事先建立连接。 缺点:如果报文很长,每次在链路的节点处存储转发时延较长。 3.分组交换: 优点:与报文交换相比,在节点存储转发时延更小,更加灵活。 缺点:设备更复杂,对硬件要求更高;每个分组的首部信息降低了数据的传送效率。 # 3 TCP三次握手 **题目:** TCP三次握手的过程? **回答:** 答:TCP 连接建立的三次握手过程如下: (1)第一次握手:客户端向服务器发送一个 SYN 报文段,其中 SYN 标志位为 1 ,并选择一个初始序列号 seq = x ,客户端进入 SYN_SENT 状态。 (2)第二次握手:服务器收到客户端的 SYN 报文段后,向客户端发送一个 SYN + ACK 报文段,其中 SYN 标志位为 1 , ACK 标志位为 1 ,确认号 ack = x + 1 ,并选择一个初始序列号 seq = y ,服务器进入 SYN_RECV 状态。 (3)第三次握手:客户端收到服务器的 SYN + ACK 报文段后,向服务器发送一个 ACK 报文段,其中 ACK 标志位为 1 ,确认号 ack = y + 1 ,客户端进入 ESTABLISHED 状态。服务器收到客户端的 ACK 报文段后,也进入 ESTABLISHED 状态,此时 TCP 连接建立成功。 **题目:** TCP 四次挥手过程: (1)第一次挥手: 主动关闭方发送 FIN 报文,用来关闭其到被动关闭方的数据传送,主动关闭方进入 FIN_WAIT_1 状态。 (2)第二次挥手: 被动关闭方收到 FIN 报文后,发回 ACK 报文确认,确认序号为收到的序号加 1,被动关闭方进入 CLOSE_WAIT 状态,主动关闭方收到该确认包后进入 FIN_WAIT_2 状态。 (3)第三次挥手: 被动关闭方关闭主动关闭方的连接,发送 FIN 报文给主动关闭方,并进入 LAST_ACK 状态,等待来自主动关闭方的最后一个 ACK。 (4)第四次挥手: 主动关闭方收到 FIN 报文后,进入 TIME_WAIT 状态,接着发送 ACK 报文给被动关闭方,确认序号为收到序号加 1,被动关闭方收到 ACK 报文后关闭连接,进入 CLOSED 状态。主动关闭方则等待 2 个 MSL(最大段生命周期)时间后,若没有收到被动关闭方的重传 FIN 报文,则认为自己 ACK 包发送正常且服务已关闭连接,于是自身关闭连接并进入 CLOSED 状态。 # 4 UDP数据报 **题目:** UDP数据报数据字段8192字节,在链路层使用以太网传送,问要划分几个IP数据报,说明数据报长度和片偏移字段的值 **答案:** UDP数据报 = 首部8字节 + 数据部分组成 因为数据字段为8192字节,所以数据报总长度 = 8192 + 8 = 8200 字节 以太网的最大传输单元MTU = 1500 因为要划分为几个IP数据报,而每个IP数据报的首部占20字节,所以字段部分最大占1480字节 划分的时候,可以划分为 8200 / 1480 = 5,余 800 字节 所以应当划分为 6 个IP数据报片,前 5 个都是 1480 字节,第 6 个是 800 字节 第一个IP数据报字段长度:1480,第一片偏移字段:1480 * 0 / 8 = 0 第二个IP数据报字段长度:1480,第二片偏移字段:1480 * 1 / 8 = 185 第三个IP数据报字段长度:1480,第三片偏移字段:1480 * 2 / 8 = 370 第四个IP数据报字段长度:1480,第四片偏移字段:1480 * 3 / 8 = 555 第五个IP数据报字段长度:1480,第五片偏移字段:1480 * 4 / 8 = 740 第六个IP数据报字段长度:800, 第六片偏移字段:1480 * 5 / 8 = 925 # 5 万维网文档 **题目:** 万维网文档,有文字,1个本地gif,两个远程gif图,问需要使用哪个应用程序,需要建立UDP连接 和TCP连接几次? **答案:** 需要建立4次tcp连接,分别是: 1.建立连接请求 (三次握手) 2.请求html文档 3.请求本地.gif图像 4.请求两个远地.gif图像 由于HTTP/1.0不支持持久连接,每个请求都需要建立新的TCP连接。0次UDP连接 # 6 ARP协议 **题目** ARP协议的工作原理: **答案:** 1. **目的**:ARP 用于将 IP 地址解析为 MAC 地址,以便在局域网中通过 MAC 地址传输数据。 2. **请求阶段**:当主机 A 要给同一局域网中的主机 B 发送数据却不知其 MAC 地址时,先查 ARP 缓存表,没有就发 ARP 请求包,目的 MAC 是广播地址,包含 A 的 IP 和 MAC 及 B 的 IP。 3. **响应阶段**:局域网内设备都收到请求,只有 B 识别出是给自己的。B 将 A 的信息存入自己缓存表,然后发 ARP 响应包给 A,包含自己的 IP 和 MAC。 4. **缓存更新**:A 收到响应后将 B 的信息存入自己的 ARP 缓存表,之后就可以用 B 的 MAC 地址封装数据发送给 B。ARP 缓存表记录有老化时间,超时会删除,需要时重新请求。 5. **跨网段通信**:跨网段时,主机先把数据发给默认网关,通过 ARP 获取网关 MAC 地址来封装数据发送,后续由网关转发。 ``` (1)每台主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目的主机时,会先检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,硬件地址,以及目的主机的IP地址。 (2)网络中所有主机收到这个ARP请求之后,会检查数据包中的目的IP是否和自己的IP地址一致,如果不一致就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP列表中已经存在该IP的信息,则将其覆盖,,然后将自己的 MAC 地址写入 ARP 响应数据包中发送给源主机,告诉源主机自己是它想要找的 MAC 地址。给源主机发送一个ARP响应数据包 (3)源主机收到这个ARP响应数据包之后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 ```