문제

나는 방금 조사했다 Wikipedia의 대역 외 데이터에 대한 입력 그리고 내가 이해하는 한, OOB 데이터는 어떻게 든 더 중요하고 일반적인 데이터로 취급되지만 분리 된 스트림으로 전송되어 심하게 혼란 스럽습니다.

실제 질문은 ( "누군가가 OOB 데이터가 무엇인지 설명 할 수 있습니까?")입니다.

소켓을 사용하고 사용해야하는 Unix 응용 프로그램을 작성하고 있습니다. 고르다() 그리고 Excepds 매개 변수로 무엇을 해야할지 궁금 했습니까? 모든 소켓을이 매개 변수에 넣고 그러한 이벤트에 반응해야합니까? 아니면 그냥 무시합니까?

도움이 되었습니까?

해결책

나는 당신이 OOB 데이터를 처리 할 필요가 없다고 결정했지만 여기에 당신이 그 어느 때에도 명심해야 할 사항이 있습니다. 하다 OOB에 대한 관심 ...

  • IPv4는 그렇지 않습니다 진짜 별도의 채널에서 또는 다른 우선 순위로 OOB 데이터를 보냅니다. 패킷의 깃발 일뿐입니다.
  • OOB 데이터는 매우 제한되어 있습니다 -1 바이트!
  • OOB 데이터는 소켓 옵션에 따라 인라인 또는 별도로 수신 할 수 있습니다.
  • 다음 읽기에 OOB 데이터가 포함되어 있지 않더라도 "예외"신호 데이터가 발생할 수 있습니다 (발신자의 네트워크 스택은 이미 대기열 데이터를 표시 할 수 있으므로 상대방은 OOB ASAP가 있음을 알 수 있습니다). 이것은 종종 실제 OOB 데이터를 사용할 수있을 때까지 데이터를 폐기하는 "배수"루프를 입력하여 처리됩니다.

이것이 약간 혼란스럽고 쓸모없는 것처럼 보이면, 그것은 대부분이기 때문입니다. 거기 ~이다 OOB를 사용해야 할 좋은 이유이지만 드 rare니다. 한 가지 예는 FTP입니다. 여기서 사용자는 큰 전송의 중간에 있지만 중단하기로 결정합니다. 중단은 OOB 데이터로 전송됩니다. 이 시점에서 서버와 클라이언트는 더 이상 "정상적인"데이터를 섭취하여 여전히 전송중인 모든 것을 배출합니다. 중단이 데이터와 함께 인라인으로 처리 된 경우 모든 미결제 트래픽을 처리해야합니다.

OOB가 존재한다는 사실을 알고 있어야합니다. 그러나 당신이 궁금하지 않으면 내부를 배우지 마십시오. 당신이 할 수있는 기회는 괜찮습니다 절대 그걸 써.

다른 팁

나는 답을 찾았다 고 생각합니다 이 페이지. 요컨대 :

내가 그렇지 않은 경우 수신 쪽에서 OOB 데이터를 처리 할 필요가 없습니다. 배상 모든 OOB 데이터. 발신자의 OS에 의해 OOB 데이터가 생성 될 수 있다고 생각했습니다.

당신이더라도 수신 끝에서 처리 할 필요가 없습니다. ~이다 전송 - OOB 데이터는 적극적으로받는 것이 아니라면 모든 상황에서 투명하게 무시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top