Cente TCP/IPv4

Cente TCP/IPv4

Cente TCP/IPv4


改版日 2007.08.31
バージョン Ver1.21

自ポート番号の自動割当ルール変更

TCPまたはUDPにて通信端点の作成と解放を繰り返すと、自ポート番号が続けて同じ番号になってしまうことがあった。これを修正した。

tcp_acp_cep()後のtcp_con_cep()でリソースが減る

tcp_acp_cep()が失敗またはキャンセルした後、同じ通信端点でtcp_con_cep()を呼ぶとセッション情報を保持するリソースが解放されなかった。これを修正した。

省コピーAPI(tcp_rcv_buf)で受信するとスループットが低くなることがある

受信バッファが一旦一杯になり、その後tcp_rel_buf()を呼んで空きが出来たとき、ウインドウ更新のACKを送信していなかった。そのため、極端に受信スループットが落ちることがあった。これを修正した。

TCPゼロウインドウACK受信後の送信が最適でない

TCPゼロウインドウACKを受信するとPERSIST状態に移行し、定期的に次のデータを送信するが、ウインドウ更新ACKを受信したとき、定期的に送信しているデータの次のデータから送信していた。まだACKを受信していないパケットから送信を再開するよう変更した。

FTPdで、連続して複数のファイルを送受信すると失敗することがある

それぞれのTCP通信でポート番号20番を繰り返し使うことになるが、直前のTCPセッションがまだ残っていて通信端点を作成できず失敗していた。相手先ポート番号が違うなら自ポート番号が同じでも通信端点を作成できるよう修正した。

IGMPグループ以外のマルチキャストアドレスは受信しないように変更

IGMPでグループ登録した場合も、それ以外のマルチキャストアドレスのパケットを受信していた。グループ登録したもの以外は受信しないように修正した。

パケットバッファ枯渇でTCPパケット送信が無限ループに陥ることがある

送信パケットバッファが枯渇するような運用の環境でTCP送信を行うと無限ループに陥ることがあった。これを修正した。

UDPヘッダの長さフィールドが不正なパケットを受信すると誤動作する

UDPヘッダの長さフィールドが不正なパケットを受信したとき、正しく処理できないことがあった。これを修正した。

環境によってはctbsdapi.cがコンパイルエラーとなる

環境によってはBSDAPIのためのソースctbsdapi.cにてコンパイルエラーとなることがあった。これを修正した。

DHCPリレーエージェント経由でDHCPアドレス割り当てが行えない

Windows2003 ServerのDHCPリレーエージェントを使用すると、Cente TCP/IPv4のDHCP Discoverが破棄されていた。DHCPパケットの「システム起動からの時間」を正しく設定するようにして回避した。

送信中にリンクダウンさせると、その後リンクアップできなくなる

高トラフィックで送信実行中にLANケーブルを抜くなどリンクダウンさせると、その後リンクアップしても通信できなくなることがあった。これを修正した。

OSリソース生成失敗が検出できない

初期化関数を呼んだとき、OSリソース生成が失敗しても正常終了していた。エラーを返すよう変更した。

FTPdバグ修正

・データポートセッションの開始に失敗したときにエラーを検出できなかったのを修正

・ ファイルクローズのタイミングを修正

FTPcバグ修正

・ログイン中にセッションが切断された場合関数から戻らなくなる不具合を修正

・FTPサーバーからPWDに対し不正な応答が返った場合アドレスエラーが生じる可能性があるのを修正

TFTPバグ修正

最後のファイルブロックの転送の際にエラーが生じてもそれを検出できなかった不具合を修正