2012-08-21 4 views
-1

java.net.Socket을 통해 메시지를 보내려고합니다.Java 소켓 - SSL 세그먼트 보내기 - 어떻게 억제 하시겠습니까?

메시지는 다음과 같습니다 내 응용 프로그램에 대한 001C020000C0154C000404850D9583CC00000004560B00E42080004C

나는 하나 TCP packet를 통해 전송되는 메시지가 필요합니다.

그러나

와이어 샤크 무엇 일어나고있는 것은, 나는 그것이 이 재 조립 SSL 세그먼트로 메시지를 분할 것을 볼 수 있습니다 확인 :

  1. 00
  2. 1C020000C0154C000404850D9583CC00000004560B00E42080004C

나는이 supress 수있는 방법 행동?

내 코드는 다음과 같습니다

hex2Byte가 된 ByteArray에 16 진수 문자열로 변환
OutputStream os = m_sslsocket.getOutputStream(); 
os.flush(); 
write(hex2Byte("001C020000C0154C000404850D9583CC00000004560B00E42080004C"); 
os.flush(); 

.

수정 : 의견을 보내 주셔서 감사합니다. 다음과 같이

어떤 경우

내 프로토콜 스택 WireShark로를 통해 관찰 같습니다 enter image description here

하나는 00 로이고, 다른 하나는 나머지를 가지고 두 개의 SSL 세그먼트가있다 볼 수 있듯이. 세그먼트를 하나만 남겨 두는 것과 같은 방법은 무엇입니까?

위의 내용은 출력 스트림에 작성한 결과입니다.

는 (빨간색 대해 걱정하지 마십시오. IP 체크섬의 네트워크 장치에 오프로드 불과하기 때문입니다.)

+2

"TCP 패킷"과 "SSL 세그먼트"는 무엇을 의미합니까? 귀하의 질문은 TCP가 스트림 지향이고 패킷 지향적이 아니기 때문에 실제로 의미가 없습니다. TCP 스트림이 여러 * IP * 패킷으로 분할 된 경우에도 수신 측에는 아무런 영향이 없습니다. – jarnbjo

답변

2

을 나는이 메시지가 하나 개의 TCP 패킷을 통해 전송 될 필요가 내 응용 프로그램의 경우.

불행하게도 TCP는 SSL의 유무에 관계없이 안정적으로 수행 할 수 없습니다. 기대치를 조정하십시오. 이것은 바이트 스트림 프로토콜입니다.

+0

웬일인지 Winx64에서는 작동하지 않습니다. 하드웨어 문제 인 것 같습니다. 그것은 winx86에서 일했습니다. –

+0

@ Byron-LimTimothySteffan 그래서 운이 좋았습니다. 의지하지 마십시오. – EJP