rust-network - 評価

評価スケール

基本評価 (100点満点)

項目 配点 評価基準
コンパイル 10点 エラーなし
TCPエコー 30点 正確なエコー
UDPチャット 30点 メッセージ配信
DNSリゾルバー 20点 正しい解決
エラー処理 10点 適切な処理

ボーナス評価 (最大30点)

項目 配点
接続プール 10点
タイムアウト 10点
NAT穴あけ 10点

課題の目的

学習目標

  • ソケットプログラミング
- TCP vs UDP の違い - バッファリングと分割

  • プロトコル設計
- メッセージフォーマット - エラーハンドリング

  • ネットワークの基礎
- IPアドレッシング - DNS の仕組み

評価手順

1. TCPエコーテスト

# サーバー起動
./rust-network tcp-server &

# nc でテスト
echo "Hello" | nc localhost 9000
# 出力: Hello

# 複数接続
for i in {1..10}; do
  echo "Test $i" | nc localhost 9000 &
done

2. UDPチャットテスト

# 端末1
./rust-network udp-chat --port 5001

# 端末2
./rust-network udp-chat --port 5002 --peer 127.0.0.1:5001

# メッセージ交換

3. DNSテスト

./rust-network dns example.com
# 出力: 93.184.216.34

./rust-network dns google.com
# 複数IPが返る

減点対象

項目 減点
パケット分割未対応 -15点
ソケットリーク -10点
バッファオーバーフロー -20点

合格基準

  • マンダトリーパート: 80点以上
  • 基本的な通信が動作すること