On 11/29/2010 11:54 PM, Mircea MITU wrote: > Hello > > am un proces ce transfera date prin retea, sa zicem > rsync_care_nu_stie_resume, proces ce vreau sa-l suspend la un moment dat > cu SIGSTOP si peste niste ore bune sa-l reiau cu SIGCONT. > > Cat de mult ma pot intinde intre cele doua momente astfel incat la > SIGCONT procesul respectiv si transferul datelor (peste TCP) efectuat de > el sa continue normal?
Salut! TCP are un timer de tip keep-alive pentru conexiune transmis periodic pentru a verifica dacă celălalt capăt al conexiunii este încă activ[1][2]. Pe lângă asta, fiecare protocol de nivel aplicație are propriul său sistem de keepalive (vezi HTTP sau BitTorrent), care, în general, este mult mai scurt decât timeout-ul keepalive-ului TCP. În cazul rsync/SSH, o soluție potrivită este, cred, configurarea timeout-ului pe conexiune[3]. Nu știu, însă, cum reacționează dacă procesul este suspendat - dacă ajunge să fie recepționat și confirmat mesajul de tip keepalive. Am făcut de curând experimente legate de TCP pe o conexiune "raw" (adică doar listen, accept, conect + send/receive, nici un keepalive de nivel aplicație) (fără NAT sau firewall-uri), tot în forma SIGSTOP/SIGCONT, și conexiunea a rămas activă constant (nu am reușit să configurez un timeout suficient de mare). Răzvan [1] http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html [2] http://en.wikipedia.org/wiki/Keepalive [3] http://embraceubuntu.com/2006/02/03/keeping-ssh-sessions-alive/ _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
