도와주세요!!
글 수 15,339
2004.01.07 20:44:24 (*.186.46.87)
6673
아마도 질문한 내용을 조금 정리하면 이렇게 될겁니다.
보드 -->> PC : 데이타 정상
PC -->> 보드 : 일정한 크기 이상...
특정한 크기 이상의 패켓은 깨지기 시작함...
이 경우는 대부분 ( 경험상 )
패킷의 손실 때문에 발생합니다.
즉 PC 에서 보내낼때는 PC의 처리 속도에 맞추어져 있죠..
반대로 보드에서 PC는 보드의 처리 속도에 맞추어져 있죠..
그래서 PC 에서 보드로 보낼때는
너무 빨리 보내면
이더넷 패켓 크기가 대충 1500 바이트 정도가 되는데...
보통 이더넷 내부 FIFO는 한 3개정도의 패캣을 미리 받을수 있죠
그럼 대충 4500 바이트가 연속적으로 받을수 있는 한계 크기입니다.
이 FIFO가 다 차기 전에 그 다음 데이타를 CPU가 꺼내가야 하는데
느린 CPU일 경우에는 미처 다 못 꺼내가서
그 뒤로 보낸 패켓은 깨져 버립니다.
아마도 이 문제로 보입니다.
빠른 CPU로 교체하시던가..
아니면 상호 속도 처리에 대한 프로토콜을 추가해서 적정한
처리를 해야 하죠...
대부분의 임베디드 보드에서는 이런 처리를 합니다.
보드 -->> PC : 데이타 정상
PC -->> 보드 : 일정한 크기 이상...
특정한 크기 이상의 패켓은 깨지기 시작함...
이 경우는 대부분 ( 경험상 )
패킷의 손실 때문에 발생합니다.
즉 PC 에서 보내낼때는 PC의 처리 속도에 맞추어져 있죠..
반대로 보드에서 PC는 보드의 처리 속도에 맞추어져 있죠..
그래서 PC 에서 보드로 보낼때는
너무 빨리 보내면
이더넷 패켓 크기가 대충 1500 바이트 정도가 되는데...
보통 이더넷 내부 FIFO는 한 3개정도의 패캣을 미리 받을수 있죠
그럼 대충 4500 바이트가 연속적으로 받을수 있는 한계 크기입니다.
이 FIFO가 다 차기 전에 그 다음 데이타를 CPU가 꺼내가야 하는데
느린 CPU일 경우에는 미처 다 못 꺼내가서
그 뒤로 보낸 패켓은 깨져 버립니다.
아마도 이 문제로 보입니다.
빠른 CPU로 교체하시던가..
아니면 상호 속도 처리에 대한 프로토콜을 추가해서 적정한
처리를 해야 하죠...
대부분의 임베디드 보드에서는 이런 처리를 합니다.