Ticket #44873

kermit で Long Packet が受信できないことがある

Date d'ouverture: 2022-06-20 08:51 Dernière mise à jour: 2022-10-08 08:32

Rapporteur:
Propriétaire:
(Aucun)
Type:
État:
Atteints
Composant:
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Fixed
Fichier:
1
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Détails

KmtLongPacket=on とすると受信しはじめるが、バッファの上限を超える?

Long Packet 対応のコミットは r4810, r4812, r4816, r4824, r4838

Ticket History (3/7 Histories)

2022-06-20 08:51 Updated by: nmaya
  • New Ticket "kermit で Long Packet が受信できない" created
2022-06-20 08:56 Updated by: nmaya
  • Details Updated
2022-08-14 13:58 Updated by: nmaya
Commentaire

確認した状況

  • リモートから受信した MAXLENX1,MAXLENX2 が kv->KmtMy.MAXL に保存される。cf. KmtParseInit()
  • Tera Term からリモートに送っている MAXLENX1,MAXLENX2 は KMT_DATAMAX(=4000) である。cf. KmtSendInitPkt()
  • 受信したパケットが kv->KmtMy.MAXL を超えると「バッファあふれ」とみなされる。cf. KmtReadPacket()
  • C-Kermit が送ってくるパケットサイズが変わった
    • cku305-alpha04 は、データ長 3990-3992 あたりで送ってくる
    • cku305-alpha05 以降は、データ長 4001 のパケットが送られてくる (増えたこと自体は 4000 までなら仕様上問題ないはず。4001 なのは C-Kermit のバグ?)

Tera Term 側のおかしい気がするところ

  • Long Packet で受信した MAXLENX1,MAXLENX2 を kv->KmtYour.MAXL ではなく kv->KmtMy.MAXL に保存している。
    • MAXL は "The maximum length packet I want to receive" である。
    • リモートの MAXL で Tera Term 側の受信バッファサイズを上書きするのはおかしい?
    • 最大データ長は「両者の min を取るのではなく、相手の最大データ長を見て送る」でよいのか?(CAPAS は両者の AND を取っている)
      • CAPAS についても両者の AND を取る必要はないのではないか?
    • kv->KmtYour.MAXL に保存するようにしたとして、Tera Term の送信部への影響は未確認 cf. KmtSendNextData()?
  • Long Packet のとき、Initiate への ACK の MAXL に「kv->KmtMy.MAXL (Long Packetの最大データ長で上書きされている) を BYTE に切り詰めた値」を返している
    • Normal Packet の MAXL を返すべき?
    • だとすると、通常の MAXL と Long Packet 時の MAXLX1,MAXLX2 を両方持っていなければならない?
  • MAXL は LEN の最大長なので、kv->PktIn には最大で Normal Packetで MAXL+2, Long Packet で MAXL+7 が格納されると思われるが、MAXL を超えたところで「バッファあふれ」と判定している。
    • r4802 で、DefMAXL が 90 から 94 に変更された。
    • 305-alpha04 までは「MAXL - 数バイト」で送ってきていたのが、305-alpha05 から MAXL ギリギリまで使うようになった(これ自体はバグではない)ので、Tera Term 側のバグが目に見える形になったのではないか、と思われる。
    • 送信側でも、データ長とパケット長を混同していないか要確認
(Edited, 2022-08-16 21:10 Updated by: nmaya)
2022-08-14 20:13 Updated by: nmaya
  • Details Updated
2022-08-23 20:53 Updated by: nmaya
  • Summary Updated
Commentaire

r10172 で修正済み

2022-10-08 08:32 Updated by: nmaya
  • État Update from Ouvert to Atteints
  • Résolution Update from Aucun to Fixed
Commentaire

r10302 で 4-stable にマージしました。

Attachment File List

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion