- PR -

RAWソケット

1
投稿者投稿内容
takajun
会議室デビュー日: 2006/02/23
投稿数: 2
投稿日時: 2006-02-23 22:18
諸事情により質問を削除いたします。


[ メッセージ編集済み 編集者: takajun 編集日時 2006-10-02 14:06 ]
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2006-02-28 10:57
質問に対する回答ではありませんが、興味があるので教えて下さい。

どういったシステム要件からRawソケットを使用した通信が必要になるのでしょうか?

Linux上での開発経験が無いのでわかりませんが、少なくともWindowsの世界ではXP-SP2
以降セキュリティ問題からRawソケット通信に制約をかけています。

引用:

takajunさんの書き込み (2006-02-23 22:18) より:

仕事でRAWソケットを使用してデータの送受信を行うプログラムを作ったのですが、
データサイズが53503バイト以上のデータを送信(sendto関数使用)すると
相手側で受信できません(select関数やrecvmsg関数から制御が戻らない)。



とありますが、データサイズが53503バイト未満なら通信可能なのでしょうか?

個人的にはftp等一般的な通信方法だけでシステム構築すべきだと思いますが、如何
でしょうか。
takajun
会議室デビュー日: 2006/02/23
投稿数: 2
投稿日時: 2006-03-09 09:32
諸事情により内容を削除いたします。


[ メッセージ編集済み 編集者: takajun 編集日時 2006-10-02 14:07 ]
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2006-03-09 11:22
本題からずれた質問への回答ありがとうございました。m(__)m

引用:

ルータ間接続時のIP制御です。


・・・なるほど。(って実は納得したわけではありません^^;)
おそらく真のシステム要件は、開発コストと納期の問題と推測します。
→ 最初にこの質問を見たときから何故ftpとストアドプロシージャで実装しないのか
  疑問に思っておりました。

引用:

取りあえず、受信側の受信バッファサイズをsetsockopt関数で65535に変更すると
53503バイト以上のデータ(IPヘッダ含む)を受信できるようになりました。


この問題はとりあえず解決したと思ってもよろしいのでしょうか?
→ 私にはtakajun様の行なった検証以上のことはできませんもので、以降は他の方の
  回答に期待して下さい。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-03-09 23:57
引用:

BackDoorさんの書き込み (2006-03-09 11:22) より:
引用:

取りあえず、受信側の受信バッファサイズをsetsockopt関数で65535に変更すると
53503バイト以上のデータ(IPヘッダ含む)を受信できるようになりました。


この問題はとりあえず解決したと思ってもよろしいのでしょうか?


解決したと考えてよいはずです。IPv4ヘッダのデータ長フィールドは元々16bitしかありませんから、これ以上大きなIPパケットは作れません。

#フラグメントしたデータを繋ぎ合わせるための
#バッファ領域が足りなかっただけなのね・・・。
1

スキルアップ/キャリアアップ(JOB@IT)