2009-11-12 2 views
0

SLES 10이 SLES 9와 비교하여 Tcp 소켓을 구현하는 방법에 중요한 변경 사항이 있습니까?SLES 9 대 SLES 10

Windows XP 및 Windows Server 2003에서 실행되는 C# (.NET 3.5)로 작성된 몇 가지 응용 프로그램이 있습니다. 소켓 연결을 사용하여 SLES 9 시스템에서 마켓 데이터를 가져와 1 년 이상 잘 실행되었습니다.

오늘 머신이 SLES 10으로 업그레이드되었으며 일부 이상한 동작이 발생했습니다. 소켓은 일반적으로 1 초당 수백 또는 수천 바이트를 반환합니다. 그러나 때로는 데이터 수신을 중단합니다. 데이터없이 10 초 이상 지나면 Receive가 10k + 바이트로 반환됩니다. 그리고 소켓에서 수신 한 바이트가 더 이상 올바른 패킷을 만들지 않기 때문에 일부 버퍼가 데이터 손실을 일으키고 있습니다.

유일한 변경 사항은 SLES 9에서 10으로 업그레이드 한 것입니다. 롤백하면 즉시 수정됩니다. 어떤 아이디어?

답변

0

/proc/sys/net 설정의 기본값이 변경되었을 수 있습니다. 아마도 새로운 SLES가 tcp_ecn과 같은 것을 가능하게할까요?

네트워크에서 SLES10과 같은 일부 패킷을 삭제하는 경우 새 TCP 기능을 사용할 수 있습니다. 그렇지 않으면 나는 모른다. 나는 tcpdump/wireshark로 그것을 보았습니다. 그리고 아마 서버 프로세스가 어떤 시스템 호출을하고 있는지 알기 위해 strace합니다.

SLES가 발신자이므로 뭔가 변경되어 전체 데이터 창이 나타날 때까지 기다릴 수도 있습니다. 그러나 10k는 너무 많습니다. 손실 된 패킷보다 소리가 난다. 누락 된 패킷이 마침내 도착하면 큰 수익을 내며 대기중인 최대 데이터도 반환된다.

1

삭제 된 패킷은 smb 커널을 2.6.16.60-0.37 이상으로 업그레이드하면 해결할 수 있습니다. BNX2 커널 모듈이 패킷 손실의 근본 원인입니다. 이것은 SLES 10과 함께 알려진 문제입니다.

참조 : http://www.novell.com/support/search.do?cmd=displayKC&sliceId=SAL_Public&externalId=7002506

+0

안녕 Anthonie,이 문제가 된 경우에도 응답을 주셔서 감사합니다. 불행하게도, 시스템 관리자는 우리가 이미 드라이버의 상위 버전에 있다고 말합니다. 그래서 나는 그것이 그럴 것이라고 생각하지 않는다. –

관련 문제