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

Raspunde prin e-mail lui