我在paper中读到,必须锁定TCP控制块列表以及哈希表,以防止在处理当前段时进行修改。
为什么要锁定整个列表以处理当前段。是因为我们不知道当前段属于哪个套接字(或TCP连接)?如果是这样,我们为什么要锁定?
答案 0 :(得分:1)
为什么需要锁定整个TCP控制阻止列表?是因为我们不知道当前段属于哪个套接字(或TCP连接)?
是的,这是对的。在通过控制块列表处理当前段之前,我们不知道它应用于哪个套接字。
如果是这样,我们为什么要锁定?
这是为了防止在处理当前段时发生更新。如果另一个进程在我们当前的进程读取时写入块,则数据可能不一致。它还避免了乱序处理和避免竞争条件的复杂性。