Uplink

長距離繼電器是否比短距離繼電器延遲跟踪?

  • July 27, 2014

如果您在地理上相距較遠的節點而不是靠得很近的節點之間反彈連接,這會減慢它們之間的活動跟踪嗎?

如果他們這樣做,那麼我應該始終使用長距離中繼。如果他們不這樣做,那麼我應該使用短距離中繼,這樣地圖上的凌亂線條就會更少。

我知道您應該始終使用最大數量的繼電器。我在問如何訂購這些繼電器——每個節點是否應該連接到地圖上離它很遠的節點,或者這是否不影響你被跟踪的時間。

我的數據說沒有。我進行了實驗,計算了當我通過不同的路徑連接到伺服器時,我需要多長時間才能被主動跟踪。我沒有執行統計測試,但看起來節點之間的距離不是活動跟踪時間的一個因素。(然而,一條長距離路徑的追踪速度明顯快於其他路徑,這表明還有其他因素控制著主動追踪時間)。以下是我的實驗數據:

Uplink experiments to find best active-trace-resistant path:    

time to get kicked off connection to Uplink Test Machine by active trace after starting to log in with known account admin/rosebud:    

when routing thru one other server, changing the server:
31, 35, 36, 37, 33; 31 secs thru UPAS (straight path)
25, 27, 24; 26 secs thru UIB (out of the way)
34, 32, 31, 34 secs thru INIC (a little less out of the way)
33, 31, 34 secs thru INIC after get admin access    

when routing thru three other servers, changing the order:
81, 75, 81, 80, 73 secs thru UPAS, UISS, UIB (straight path)
73, 80, 80, 77, 82 secs thru UIB, UISS, UPAS (path doubles back)    

for these experiments, I did not control for:
time spent on any screens before triggering active trace – connection screen, intro screen, admin login screen before and after filling in password    

server locations were all the same in each experiment, but I know they change between games, so only my descriptions of their locations remain

我還嘗試查找確定您的活動跟踪時間的原始碼。跟踪的進度是用in的 來衡量traceprogress的。更新跟踪進度的程式碼位於方法、和。我認為 中的這段程式碼測量了跟踪鏈中每個單獨步驟的時間,表明節點之間的距離不是一個因素:Connection``trunk/uplink/src/world/connection.cpp``Player``trunk/uplink/src/world/player.cpp``TimeRemaining``TimeToTrace``Update``TimeToTrace

int Player::TimeToTrace ( char *tracerIP, char *routerIP )
{

   VLocation *tracer = game->GetWorld ()->GetVLocation (tracerIP);
   UplinkAssert (tracer);
   Computer *comp = tracer->GetComputer ();
   UplinkAssert (comp);

   int timetonexttrace = comp->tracespeed;

   //
   // Modifiers to the time to next trace

   int playeraccesslevel = game->GetWorld ()->GetPlayer ()->HasAccount ( routerIP );

   if ( playeraccesslevel == -1 && tracer->GetComputer ()->traceaction > COMPUTER_TRACEACTION_FINE ) {
       timetonexttrace = (int) ( timetonexttrace * TRACESPEED_MODIFIER_NOACCOUNT );
   }
   else if ( playeraccesslevel == 1 ) {
       timetonexttrace = (int) ( timetonexttrace * TRACESPEED_MODIFIER_ADMINACCESS );
   }
   else if ( playeraccesslevel != -1 ) {
       timetonexttrace = (int) ( timetonexttrace * TRACESPEED_MODIFIER_HASACCOUNT );
   }

   if ( playeraccesslevel != -1 && tracer->GetComputer ()->TYPE == COMPUTER_TYPE_CENTRALMAINFRAME ) {
       timetonexttrace = (int) ( timetonexttrace * COMPUTER_TYPE_CENTRALMAINFRAME );
   }

   if ( playeraccesslevel == 1 && tracer->GetComputer ()->TYPE == COMPUTER_TYPE_PUBLICBANKSERVER ) {
       timetonexttrace = (int) ( timetonexttrace * TRACESPEED_MODIFIER_PUBLICBANKSERVERADMIN );
   }

   if ( timetonexttrace < 2 ) timetonexttrace = 2;

   return timetonexttrace;

}

引用自:https://gaming.stackexchange.com/questions/178234