考试后复习诸多议题

其实,我自己也未知读者和用户对 ShoelessCai.com 的总体感觉,我自己在考试的时候,总是觉得非常焦灼,很多问题做不出来。以前看过 Drew 的演讲,就是 Dropbox 创始人,人家说,感受 SAT 考场上,周围人做不出题目的快感。仔细一想,自己就是做不出题目的那一拨中的,一个。于是我就很释然了。

 

无论考场上多么焦灼,即便平时漂亮话也掩盖不了,这知识还得学,对不对?

所以,我就启用启发式的,提问法。考试后,再复习 408 的时候,对于知识还能深化一些。

 

 

1. 网络空间中,数据报在外网之间传输的时候,报文内部的 IP 地址,MAC地址是怎么变的?

参考:

 https://www.zhihu.com/question/383634626

https://www.zhihu.com/question/624821901

https://www.cnblogs.com/ranyonsue/p/9713992.html

 

 

2. 释放连接一定要用四次握手吗?

 

TCP释放连接时之所以需要“四次挥手”,是因为FIN释放连接报文与ACK确认接收报文是分别由第二次和第三次"挥手"传输的。为何建立连接时一起传输,释放连接时却要分开传输?

  • 建立连接时,被动方服务器端结束CLOSED阶段进入“握手”阶段并不需要任何准备,可以直接返回SYN和ACK报文,开始建立连接。
  • 释放连接时,被动方服务器,突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放连接之后,才能返回FIN释放连接报文。

参考:

https://www.cnblogs.com/AhuntSun-blog/p/12037852.html

 

从解释来看,如果释放连接的时候,正好没有数据需要 Delay,也可以三次握手对不对?这种 Case 是一个子集,就统一使用四次握手。

 

关于 TCP 三次/四次握手,整理如下:

(直接记忆吧!)

 

1.主机建立连接,建立连接标志 SYN=1,seq=x (这里 seq 与 SYN 是成对出现的)

2.服务器回复 SYN=1(双方都要发送 SYN=1,并且只发一次!),ACK=1,seq=y, ack=x+1 (这里 ack = seq+1 需要背出来的) 

3.主机发送 ACK=1, ack=y+1

题目是这么说的,

(A) 建立连接报文段(SYN=1),不携带数据,消耗一个序号。这句话的含义是,但凡SYN=1都是不携带数据,但是消耗序号。

(B) SYN/seq 一起出现,ACK/ack 一起出现;

(C) ack=seq+1

 

 

3.以太网帧和ARP Request 中 【目的 MAC】怎么思考?

 

首先,先看结论。

可以看出,在以太帧中,目的地址和源地址分别为:ff-ff-ff-ff-ff-ff和本机MAC地址,而ARP请求中,目的地址则是00-00-00-00-00-00,源地址为本机MAC地址.

Jingyi 在网上找到一张图,ARP  Request 了。

 

其次,针对上图。我们知道 ARP Request 发出的时候,除了自己数据要写上 4 个地址,在头部还要再协商【以太网目的地址】、【以太网源地址】。

以太网目的 MAC 全1

目的 MAC  全0

 

 

4.【指令系统】 更新 2024.1.17

(A)什么时候要计算(PC)自增,什么时候只要知道指令起始地址即可?

相对寻址,会先计算 PC 自增。变址寻址,直接用寄存器内容作为原点地址,加上偏移量,再间址。

(B)考试中,一般会考 PC 怎么变动的。PC 自增的单元数 = 指令长度 / 颗粒度。例如,指令 16 位,按字节编址,则 (PC) -> (PC)+2

(C)如何判断指令 跳转? 是否传参数【入口地址】

(D)如何计算第 N 条指令? 入口地址 + N * 指令长度

 

 

 

 

 

 

 

欢迎关注 ShoelessCai.com 值得您的关注!

 

posted on 2023-12-28 00:29  Mira_2019  阅读(4)  评论(0编辑  收藏  举报