处理TCP段时,为什么需要锁定整个TCP控制块列表?

时间:2015-02-05 10:52:06

标签: sockets tcp ip

我在paper中读到,必须锁定TCP控制块列表以及哈希表,以防止在处理当前段时进行修改。

为什么要锁定整个列表以处理当前段。是因为我们不知道当前段属于哪个套接字(或TCP连接)?如果是这样,我们为什么要锁定?

1 个答案:

答案 0 :(得分:1)

  

为什么需要锁定整个TCP控制阻止列表?是因为我们不知道当前段属于哪个套接字(或TCP连接)?

是的,这是对的。在通过控制块列表处理当前段之前,我们不知道它应用于哪个套接字。

  

如果是这样,我们为什么要锁定?

这是为了防止在处理当前段时发生更新。如果另一个进程在我们当前的进程读取时写入块,则数据可能不一致。它还避免了乱序处理和避免竞争条件的复杂性。