2017-09-06 21 views
0

私は単純なウェブサーバーとして機能するSTM32F407VGを使用しています。私は1611バイトのsdカードにhtmlファイルを持っています。 1415バイト以下のファイルを使用すると、Webブラウザでページが正常に読み込まれますが、それ以上のものは表示されません。だから私はイーサネットコントローラに書き込むことができるバイト数に制限があるのだろうかと思っていたのですか?イーサネットWebサーバーのサイズ制限

ありがとうございました。

答えて

0

802.3イーサネット標準によれば、1500(ペイロード)のMTUサイズを送信できるはずです。このMTUはイーサネットヘッダーの内部にカプセル化されていますが、パケットがイーサネットに触れるとこれが取り除かれるため、そこには行きません。

ホスト名にpingを実行すると、パケットフォーマットは次のようになります。1472 + 20 IP header + 8 ICMP header  = 1500。しかし、私にとって私のホームルータは、PPPoEと呼ばれる別のヘッダを追加します。これは次のようになります:1464 + 20 IP header + 8 ICMP header + 8 PPPoE header = 1500

あなたは、次のコマンドを使用して、同様にそれをテストすることができます。

Windows: ping hostname -f -l sizeofdata 
BSD: ping -D -s sizeofdata hostname 
Linux: ping -M do -s sizeofdata hostname 

を今、あなたの1415年のために、このあなたは追加取得している他のどのようなアプリケーションのヘッダーをチェックする必要があります。また、DFビットがセットされているかどうか、これも問題を引き起こす可能性があります。 DFは「Do not Fragment」の略で、MTUよりも大きなパケットをフラグメント化して送信する必要があります。

関連する問題