2011-01-31 2 views
1

Windows에서 (연결 실패) 빠른 제한 시간이 필요합니다. 하지만 솔라리스에서는 훨씬 더 오래 갈 수 있습니다. 어떻게 단축 할 수 있습니까? (나는 기계를 시뮬레이트하기 위해 존재하지 않는 기계에 의도적으로 연결하려고 노력하고있다).solaris 네트워크 시간 초과 변경

나는 창에이 을 수행하고있어 -> 시간 종료 -> 좋은

D : 192.168.23.21에 연결> 텔넷 192.168.23.21 (222)

... 수 없습니다 포트 23에서 호스트에 연결이 열려 :

연결이 실패

D :>

(대상 IP가 없음) 약 15 초 후에 명령이 종료됩니다.

그러나 나는 솔라리스에서이 작업을 수행 할 때 -> 매우 긴 시간 제한 - 기계 같은 내 기존 코드> 좋은하지 :

참고 MyUser의 @ 용으로 mycomp : ~ $ 텔넷 192.168.23.21 (222)

시도 192.168.23.21 ...

그런 다음 프로세스가 종료되지 않습니다

및 이것은 Windows에서 solaris로 응용 프로그램을 마이그레이션하기 때문에 나에게 큰 함의가 있습니다.이 시간 초과를 (업데이트 할 수없는 레거시 코드에서) 가질 수 있어야합니다. 따라서이 시간 제한을 제어하려면 OS 수준에서 필요합니다. 창문에 현재있는 것처럼 짧아야합니다. 그럼 어떻게 내 solaris OS에서이 시간 제한을 변경할 수 있습니까? 나는 창문에

감사

그것을 havbe 것처럼 짧게

답변

2

당신이 절대적으로이 시스템 전체를해야 할 경우, 수정할 수있는 TCP 드라이버 매개 변수 tcp_ip_abort_cinterval있다 :

tcp_ip_abort_cinterval -이 시간의 금액입니다 연결은 이 반 열림 상태로 있도록 허용됩니다. 기본값은 180,000 (3 분)입니다.원하는 경우이 값을 25,000 으로 변경할 수 있습니다 (25 초). 이 번호를 변경하면 SLIP/PPP 사용자가 사이트로 문의하는 데 문제가 있음을 알 수 있습니다.

는/usr/sbin에/NDD는/dev/TCP tcp_ip_abort_cinterval

설정을 변경하려면 :

는/usr/sbin에/NDD -set/dev에/

현재 설정을 보려면 tcp tcp_ip_abort_cinterval 25000

+0

감사합니다. 나는 이것을 확인하고있다. 이 시간 제한을 60 초로 변경하면 OS에 어떤 영향이 있습니까? 개인용 "앱 서버"에 대해서는이 점을 바꾸면 안전하다고 느껴지지만 일반적인 솔라리스 OS에 나쁜 영향을 미칠 까봐 두려운가? 기본값으로 60 초 제한 시간이 지나치게 길어질 때 나쁜 영향을줍니다. 고마워 – Jas

+0

tcp tcp_ip_abort_cinterval 안녕하세요.이 변수를 업데이트하고 30 초 -> 50 초 10 초 -> 25 초 20 초 -> 24 초 40 초 -> 52 초 30 초를 의미합니다. 이 param 내 타임 아웃은 10 초 동안 50 초였습니다. 타임 아웃은 25 초였습니다. 어떻게 정확하지 않습니까? – Jas

+0

@ Jason : 좋은 질문입니다 ... 아마도 TCP/IP connect() 호출 외부에서 대기 중 일부가 발생했을 수 있습니다. 패킷 레벨에서 정확히 무슨 일이 일어나는지 Wireshark와 같은 도구를 사용하는 것이 좋습니다. 아마도 OS가 역 DNS 조회 또는 tcp_ip_abort_cinterval의 영향을받지 않는 유사한 작업을하려고합니다. –

0

아마도 당신은 소켓 옵션 SO_SNDTIMEO 설정할 수 있습니다 - 링크가 해당 옵션을 존중하지 않는 솔라리스를보고,하지만 당신은 운이있을 수 있습니다 그들은 ' 지금까지 고쳤습니다. :)

소켓 옵션이 작동하지 않는 경우 나중에 언제든지 alarm(2)을 설정하고 connect(2) 전화를 중단 할 수 있습니다. 꽤 심한 느낌이지만 옵션입니다.

또 다른 옵션은 connect(2) 작업이 성공했는지 여부를 나중에 어떤 시점에서 poll으로 전환하는 것입니다. select(2)으로 제한 시간을 확인하고 오류가 있거나 읽기/쓰기가 가능한지 확인하십시오. (. connect(2)에 또한 EINPROGRESS 비트 참조)

+0

Jason이 코드의 해당 부분을 변경할 수없는 것처럼 들리지만 (비록 내가 아마 sy을 변경하는 것이 바람직 할 것 같지만 예기치 않은 결과를 초래할 수있는 줄기 전체 설정). –

+0

@Jim Lewis, 나는 그가 Windows에서 Solaris로 포팅하기 위해 얼마만큼의 코드를 변경해야만한다는 것을 알았습니다. 그는 모든 것을 다시 설계하지 않아도된다는 것에 관심이있었습니다. 그러나 기계가 자신의 프로그램에 전념한다면 솔루션이 완벽 해 보입니다. :) – sarnold