]
トップ 最新 追記

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2009-02-03 [長年日記]

_ slab allocator(スラブ・アロケータ)

slabまたはcacheを使い、一定サイズのメモリーを、獲得したり解放しても大丈夫な仕組み。LinuxだけじゃなくFreeBSDなどの他OSでも利用されている。

_ いらいらするのは

Sキーを打鍵しても、入力できない事象が発生するようになった。キーボードにゴミ? ダストブロアーで吹き飛ばしたんだが。いま、X200を修理に出すとこまるなあ。もう一台調達するべきか。

_ d-d@orgでのCGROUPの議論

Debian本家のdevelで、CGROUPSのマウントポイントについて議論になっている。CGROUPSについては、カーネルソースに付属の linux-source-2.6.26/Documentation/cgroups.txt や、(http://www.atmarkit.co.jp/flinux/rensai/watch2008/watch05a.html)の「cgroupでリソースを管理する幸せ」を参照せよ。

プロセス単位の管理からの脱却は選択肢が増えますね。たとえば仮想化の単位とか。

_ ふと、気になった言葉

ニーチェの言葉

「怪物と戦う者は、その過程で自分自身も怪物になることのないように気をつけなくてはならない。深淵をのぞく時、深淵もまたこちらをのぞいているのだ」


2009-02-04 [長年日記]

_ Tokyo Cabinet

QDBMの後継、Debian GNU/Linux lenny にはパッケージあり。Lennyのバージョンは1.2ですが、今調べている時点のupstream current version は 1.4.4 です。ちなみに、experimentalにあるバージョンは 1.3.15-2 でした。変更点の把握に changelog を読むのが良さそうですね。upstream は (http://tokyocabinet.sourceforge.net/) です。

yelona:~# apt-cache search tokyocabinet

bogofilter-tokyocabinet - a fast Bayesian spam filter (tokyocabinet)

libtokyocabinet-dbg - Tokyo Cabinet Database Libraries [runtime]

libtokyocabinet-dev - Tokyo Cabinet Database Libraries [development]

libtokyocabinet3 - Tokyo Cabinet Database Libraries [runtime]

tokyocabinet-bin - Tokyo Cabinet Database Utilities

tokyocabinet-doc - Tokyo Cabinet Database Documentation

yelona:~#

_ イタリック体の罠

iceweasel で online manual を読んでいて、rnum の文字列をイタリック体にしてある'rnum'が'mum'に見えていて、少し混乱した。おかしいと思い、rnumで検索してようやく何が起きていたのかを理解した。

_ Sparse(スパース) vs Dense(デンス)

疎と密


2009-02-05 [長年日記]

_ [Debian] debパッケージにしたいプログラムを見つけたんだ。でもその tarball の中に debian ディレクトリがあるんだけど? どうしたらいいの

元質問は上記ですが、いまの時期なら、もうすぐ2月14日ですし、Debian mentors MLの回答で、(http://teams.debian.net/lurker/message/20090128.235106.647a11fa.ja.html)あたりのやり方が良さそうな気がします。

Once lenny is released (hint hint) you will be able to just use the dpkg-source v3 format, which will remove the upstream debian/ directory before unpacking the debian.tar.gz and applying the patches. Please see the dpkg-source manual page for more info.
てきとー訳
ひとたびlennyがリリースされたなら、debian.tar.gz を伸張して、パッチを適用する前に upstream の debian/ディレクトリが削除される dpkg-source の v3 フォーマットが利用できるようになります。より詳しい情報は dpkg-source のマニュアルページ(man page)をみてください。
とのこと。

_ memo:Windows 7のエディションは6つ --- そんなに要らないよ

使う側の立場としてはそう思う。他の選択肢にユーザが流れていくなら、この流れも変わると思うんだ。選択肢がなければ与えられるモノを使うしかない。(http://www.itmedia.co.jp/anchordesk/articles/0902/05/news005.html)


2009-02-09 [長年日記]

_ man tc*

当たり前だけど、tcコマンドを使ってQoSをかけてから、スピード計測するときのメモの続きで、tc filterについてmanで調べようかと思ったんだけど、下記のような感じ。

yabuki@yelona:/usr/share/man/man8$ ls -la tc*
-rw-r--r-- 1 root root  1004 2008-07-27 21:53 tc-bfifo.8.gz
-rw-r--r-- 1 root root  5672 2008-07-27 21:53 tc-cbq-details.8.gz
-rw-r--r-- 1 root root  4841 2008-07-27 21:53 tc-cbq.8.gz
-rw-r--r-- 1 root root  2172 2008-07-27 21:53 tc-htb.8.gz
-rw-r--r-- 1 root root  1004 2008-07-27 21:53 tc-pfifo.8.gz
-rw-r--r-- 1 root root   874 2008-07-27 21:53 tc-pfifo_fast.8.gz
-rw-r--r-- 1 root root  2569 2008-07-27 21:53 tc-prio.8.gz
-rw-r--r-- 1 root root  1947 2008-07-27 21:53 tc-red.8.gz
-rw-r--r-- 1 root root  1741 2008-07-27 21:53 tc-sfq.8.gz
-rw-r--r-- 1 root root  2496 2008-07-27 21:53 tc-tbf.8.gz
-rw-r--r-- 1 root root  4345 2008-07-27 21:53 tc.8.gz


2009-02-10 [長年日記]

_ QoS:tcのcbqよりは、htbの方がいい

net/ched/sch_htb.cを覗いてみよう、あなたの使っているカーネルで、わざわざ難しいCBQより、HTBを使った方が、幸せになれると思う。(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classful.html)の9.5.5. 階層的トークンバケツ (Hierarchical Token Bucket: HTB)と9.5.4. (有名な) CBQ qdiscを読み比べてみるといい。

_ ワシントン州カマス

近くにVancouverという地名があるのを知る。Portlandの近くだから、Seattleよりも南なわけです。CanadaのVancouverとは異なります。

_ memo:/proc/sys/kernel/cap-bound

Linuxケーパビリティ(1/3)(http://sourceforge.jp/magazine/03/08/06/0941214)

ケーパビリティは、特権をより細かな断片に分割しようというものである。プロセスに対して特権を細かく分けて与えることによって、安全性を高めることができる。

ってことですが、kernel 2.6.18では存在するcat /proc/sys/kernel/cap-boundが、kernel 2.6.27では存在しない。仕組み変わったんだな。

_ AUのホットインフォ

バイク売りませんかとか、お金借りませんかって、携帯にメールが飛んでくる。忍耐の限度を超したので(http://futuremix.org/2008/10/ez-hotinfo-meiwaku-mail)を読んで、私からすると迷惑メールの配信を止める。

_ マイクロSDをNote PCでも利用するように

バッファローコクヨサプライ BUFFALO カードリーダー/ライター microSD対応 超コンパクト ブラック BSCRMSDCBK が、小さそうで買ってみようかなと思う。


2009-02-11 [長年日記]

_ 不動産屋さんへ

物件を決めたんで、不動産屋さんへ。

契約するのにかかる全体の費用を見てクラっと来たけど、「この時期に、この投資が必要なのだ。」とジャッジした自分を信じて、手付け金を支払って先に進むことにする。


2009-02-12 [長年日記]

_ いろんな所に移植されている GNU/Linux

私が不勉強なだけで、AVR32 っていうCPUもあるのですね。このチップでも GNU/Linux が動いている。ってのは、86系などのメジャー系 CPU だけで GNU/Linux などの OS を動かしているだけだと、なんやねんって感じですが。

高熱を発する CPU だと天井などの暖かい空気が集まる場所や、密閉された場所で動かないといけない機械に対応できません。また量産すると部品の値段が効いてきますから、別のCPUにもいっぱい活躍の場所があるのです

意識はしてないと思いますが、GNU/Linuxを含めたコンピュータに、われわれは囲まれているという目で見渡してみると、おもしろい発見があるかもしれませんね。

_ sched_yield

iperf -Dを使って、iperfのserver(-sをつけた状態)をdaemon化して、別のマシンから、iperf -c hoge -d すると、CPUを100%使ってくれます。strace -f -p pid でプログラムの状態をチェックすると sched_yield が延々と呼ばれている状態。hummm....

あと、strace -f -p pid とされると、100%だったプロセスの負荷が1/3の30%から40%ぐらいになるのはなんでだろう。

daemon化せずに、コマンドラインからつかっているとサーバー側でも正常終了する。echo $? で戻り値確認した iperf クライアントに-dオプションをつけたときの挙動は謎だ。最新版のiperf 2.0.4でlennyにも入っているversionなのだが


2009-02-14 [長年日記]

_ 客先出勤日

客先が週休二日なので、平日に休みがあった時は土曜日は出勤日です。

_ IMQ

JFを読んでいくと、IMQのことを日本語で書いてある。カーネルパッチをあてる必要がある。Debian をつかっている人だと思うけど、IMQ for Debianを woody, sarge, etch と維持しているところもある。IMQのFAQwikiのFAQに書いてあることも読んで、作業するとよいかと

_ kgdb_eth.c

Debianのkernel 2.6.26ソースツリーの中では発見できず。serialでがんばるか、patchを見付けてくるか、(http://kgdb.linsyssoft.com/new.html)のwhat's newには、

16th March 2006: kgdb 2.4 for 2.6.15.5 kernel is available from the downloads page.The kgdb ethernet interface also works fine with this version.
って書いてるからチェックする価値があるかも。

_ 銭形

わたしが銭形が未経験をいうのを知って、うどんすきをセットアップしていただきました。ありがとうございます。おいしゅうございました


2009-02-15 [長年日記]

_ 不動産物件めぐり

不動産屋さんの紹介を受けて、物件を見る。この日は暖かい日だった。具体的には、お昼の12:00ぐらいに、町中の温度計をみると 15度を指していた。

最終的には、淀川通り沿いで音が少々問題だが、広さと使い勝手で決めた。法人として契約書を詰めていく段階で、まだ平坦な道ではないと思う。とはいえ、管理会社とは話がついたので、多分うまく着地できると思う。

_ 愛園

神戸の中華料理屋さん。9人ということで2Fで宴会。2Fはかなり久しぶり。LILOの宴会を、この愛園の2Fでやったのを思い出しました。いまは改装されてきれいになっていました。


2009-02-16 [長年日記]

_ lenny release

Desktopとしては常用しているので、私自身はとくに変わらず。Server は、今のところ外だしには自前で運用してないので、かなり気が楽だ。

中のためのサーバなら仕事のピークが過ぎて、不都合がなくなったときに upgrade か、新規に再インストールしようかと思う。

_ かわいそうな TOS と Linux における pfifo_fast、prio

通信の世界で利用されている TCP/IP で IPのヘッダーには TOS フィールドがある。これの説明が Google でひっかかる IPヘッダーの資料を読むと、あまりに邪険にされすぎてかわいそうというか、近年では TOS を使っている例もあるんだから、「ほとんど使われてない」ってのは言い過ぎだろう。

RFC 1349(http://www.ietf.org/rfc/rfc1349.txt)のTOSの図は、linux で パケットの優先制御をするときには必要な概念なんだがなあ。スティーブンソンのTCP/IP Illustrated, Volume 1:The Protocolsなら p38-39 を参照せよ。

下記は、RFC 1349の図で、(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classless.html)の pfifo_fast qdisc についての説明の補足がいると思ったんで抜き出してみた。

   0     1     2     3     4     5     6     7
+-----+-----+-----+-----+-----+-----+-----+-----+
|                 |                       |     |
|   PRECEDENCE    |          TOS          | MBZ |
|                 |                       |     |
+-----+-----+-----+-----+-----+-----+-----+-----+
    

The first field, labeled "PRECEDENCE" above, is intended to denote the importance or priority of the datagram. This field is not discussed in detail in this memo.

The second field, labeled "TOS" above, denotes how the network should make tradeoffs between throughput, delay, reliability, and cost. The TOS field is the primary topic of this memo.

The last field, labeled "MBZ" (for "must be zero") above, is currently unused. The originator of a datagram sets this field to zero (unless participating in an Internet protocol experiment which makes use of that bit). Routers and recipients of datagrams ignore the value of this field. This field is copied on fragmentation.

で、precedenceは優先度で、TOSは、サービス型、MBZは常に0だという略語。で、私が混乱しそうになった部分は、上の図の書いててある7がLSB(もっとも小さなビット)に該当し、0がMSB(もっとも大きなビット)に相当するようだと判るまでだった。

で、(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classless.html)には

第 4 列は Linux カーネルによる TOS ビット列の解釈です。どの優先度にマップされるかを示しています。
とあっさりと書いてありますが
TOS     Bits  Means                    Linux Priority    Band
------------------------------------------------------------
0x0     0     Normal Service           0 Best Effort     1
0x2     1     Minimize Monetary Cost   1 Filler          2
0x4     2     Maximize Reliability     0 Best Effort     1
0x6     3     mmc+mr                   0 Best Effort     1
0x8     4     Maximize Throughput      2 Bulk            2
0xa     5     mmc+mt                   2 Bulk            2
0xc     6     mr+mt                    2 Bulk            2
0xe     7     mmc+mr+mt                2 Bulk            2
0x10    8     Minimize Delay           6 Interactive     0
0x12    9     mmc+md                   6 Interactive     0
0x14    10    mr+md                    6 Interactive     0
0x16    11    mmc+mr+md                6 Interactive     0
0x18    12    mt+md                    4 Int. Bulk       1
0x1a    13    mmc+mt+md                4 Int. Bulk       1
0x1c    14    mr+mt+md                 4 Int. Bulk       1
0x1e    15    mmc+mr+mt+md             4 Int. Bulk       1
のLinux Priorityというものがあり、優先度(3ビット分だから0から、7の値になる(index つまり Linux Priority))に分類され、デフォルトの優先度map(下記)が反映されてBANDになります。
index|0, 1, 2, 3, 4, 5, 6, 7
-----------------------------------------------------
value|1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1
これが理解し、下記を理解すると、 pfifo_fast だけでなく prio についても自信をもてるようになると思います。

9.5.2.2. ハードウェアへパケットをデキューする(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classful.html)を読んで、どの順番でパケットがdequeueされるか?が大事かと。

_ ip moo command ...

yabuki@yelona:~$ ip moo
 
 _ __ ___   ___   ___
| '_ ` _ \ / _ \ / _ \
| | | | | | (_) | (_) |
|_| |_| |_|\___/ \___/
 
 
P.S. no real cows were harmed for this moo

_ RATS and Flawfinder

両方とも、C,C++などのプログラムからセキュリティ上のリスクを取り除く「手始め」になるプログラムです。もちろん、Debian GNU/Linux lenny には入っています。

いまだと、svnなどのソース管理ソフトウェアをつかえば、これらのツールが検出できる程度のリスクが増えているのか、減っているのかもわかります。

(http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/tools.html)の部分や、その他の部分も役立つかもしれません。


2009-02-17 [長年日記]

_ メインフレームが向かう道

メインフレームには、いろいろなノウハウがある。メインフレームの周辺機器のプリンター一つを取ってみても、膨大な帳票を一括して出すための大きな車サイズのプリンターなど特別な機械があったりする。コンシューマー向けの帳票出力の量を嘗めてはいけない。

で、恐竜だとか淘汰すべしとかの話があるメインフレームだが、(http://www.atmarkit.co.jp/flinux/rensai/mf06/mf06c.html)のメインフレームが向かう道ってのはおもしろい視点だった。

_ memo:無いから作った人たち

ここで紹介されている人たちは、何がボトルネックか考えて、作ることを選択した。(http://itpro.nikkeibp.co.jp/article/OPINION/20090216/324752/)

_ IPsecを手動で設定する。

もちろん、実用というよりは自分で理解するためのステップ。Debian GNU/Linux Lenny なら、

aptitude install ipsec-tools racoon
で下準備してから、JFの7.1. 入門編: 手動での鍵処理(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.ipsec.intro.html)を読んで実践するのがよい。

Note:の部分については、

yabuki@yelona:~$ getent protocols 50
esp                   50 IPSEC-ESP
yabuki@yelona:~$ getent protocols 51
ah                    51 IPSEC-AH
    
で了解できると思います。また導入するパッケージがracoonであるのも、JFで指定してあるので使っているだけで、Debian GNU/Linux Lennyにおいいてapt-cache search IPsecでパッケージを検索すると
yabuki@yelona:~$ apt-cache search IPsec
freeswan - IPSEC utilities transition package to Openswan
freeswan-modules-source - IPSEC kernel modules transition package to Openswan
ike - Shrew Soft VPN client - Daemon and libraries
ike-qtgui - Shrew Soft VPN client - Connection manager
ike-scan - discover and fingerprint IKE hosts (IPsec VPN Servers)
ipsec-tools - IPsec tools for Linux
isakmpd - The Internet Key Exchange protocol openbsd implementation
kernel-patch-freeswan - IPSEC kernel support transition package to Openswan
linux-patch-openswan - IPSEC Linux kernel support for Openswan
openswan - IPSEC utilities for Openswan
openswan-modules-source - IPSEC kernel modules source for Openswan
pipsecd - IPsec tunnel implementation
racoon - IPsec IKE keying daemon
strongswan - IPSec utilities for strongSwan
kvpnc - KDE 用 vpn クライアントフロントエンド
のような結果になります。

自動鍵交換の部分で、IKE*1に必要なポートとして、500/udpを挙げています。自分のマシンでどうなっているか確認してみましょう。

yabuki@yelona:~$ getent services 500
isakmp                500/tcp
yabuki@yelona:~$ getent services 500/udp
isakmp                500/udp
udpだけじゃなくて DNSみたいにTCPも使うことがあるのかも知れませんね。

*1 Internet Key Exchange

_ C++からCへのトランスレーター

昔はいっぱいあると思ったんだけど、いま探したら、C++のコンパイラーはあるけど、トランスレーターはないんだね。Software Preservation Groupという所が、「印刷物ベースで」cfrontを公開している。(http://www.softwarepreservation.org/projects/c_plus_plus/cfront)

Lightweight C++というのもあるけど、開発が止まっているように見えるってのも、つらい。


2009-02-25 [長年日記]

_ Bluetooth network

電車に乗って、X200などの Bluetooth を内蔵しているマシンを使っていて、[雑記]Bluetooth(http://d.hatena.ne.jp/odawara/20081125/1227623755)の記事を思い出し、ふと Bluetooth のスキャンをしてみるとどうなるだろうと思う。最近はBTの機器が多くなってきているので、ずらずらと出てくるかも知れませんね。

_ /tmp/.ICE-unix/

下記のようにチェック。

yelona:~# ls -la /tmp/.ICE-unix/
合計 24
drwxrwxrwt  2 root   root    4096 2009-02-24 23:37 .
drwxrwxrwt 14 root   root   20480 2009-02-25 12:04 ..
srwxrwxrwx  1 yabuki yabuki     0 2009-02-24 23:37 4411
yelona:~# fuser -av /tmp/.ICE-unix/4411 
                     USER        PID ACCESS COMMAND
/tmp/.ICE-unix/4411: yabuki     4411 F.... x-session-manag

_ CELF Embedded Linux Conference

Debian@event経由で発見。(http://www.embeddedlinuxconference.com/elc_2009/index.html)去年のプレゼンテーションは、(http://www.celinux.org/elc08_presentations/)感じで進んだらしい。

どうでもいいことなんだが、ホテル名が kabuki hotel ってどんなホテルなんだろうねえ...

_ walk a tight rope

いまからの時期に、お金を使い将来のための投資をすることは恐ろしいが、この投資をしない方がもっと恐ろしい。

新大阪近辺の不動産屋さんは水曜日がお休みの所が多いらしい。でも2月や3月はかき入れ時らしくメールの返事が返ってきた。具体的には明日からの手続きになるとのこと。

一ヶ月前には、いま住んでいる物件を明け渡す旨の通告をしないといけないので、かなり walk a tight rope な気分。次のステップのためには3月中旬までには引っ越しの予定なのです。こんなに物件さがしに苦労するとは、会社をやってみないと判らないことだらけです。

逆に、これって困っているスタートアップの法人が一定数いるということなので、ビジネスになるかもしれません。ちゃんとリサーチしないとわかりませんが。

_ M-lab

(http://www.measurementlab.net/measurement-lab-tools)で、提供されているものは

    *      Network Diagnostic Tool
      Test your connection speed and receive sophisticated diagnosis of problems limiting speed.
 
    *      Glasnost
       Test whether BitTorrent is being blocked or throttled.
 
    *      Network Path and Application Diagnosis
       Diagnose common problems that impact last-mile broadband networks.
  
   *      DiffProbe (coming soon)
       Determine whether an ISP is giving some traffic a lower priority than other traffic.
 
   *      NANO (coming soon)
       Determine whether an ISP is degrading the performance of a certain subset of users, applications, or destinations. 
であり、いろいろな立場の人たちにデータを提供する目的だそうだ。About や Who We Are をみると、New America Foundation's Open Technology Institute, the PlanetLab Consortium, Google Inc. がやっているとのこと。

_ lua コマンドライン引数

コマンドラインの引数をこんな感じで使えるんだ。(http://d.hatena.ne.jp/noritsugu/20090203/Lua) for と in, pair でテーブル中の組み合わせを取り出せると。

luaのFAQより、こっちの方がかっこいいなあ


2009-02-26 [長年日記]

_ Debian GNU/Linux Lenny の記事

初心者にも扱いやすくなった Debian GNU/Linux 5.0 (lenny)(http://sourceforge.jp/magazine/09/02/25/0352241)この記事は、私がDebian GNU/Linux Lenny に感じている意見に似ている。

_ 最近のアセンブラやコンパイラーの進歩について行けてなかった。

昔のままで錆び付いていた、知識を新しくする機会があったのでメモ。何をもって「ガチ」とするか。

  • Cのコードの挙動をチェックするために、gcc -Sでアセンブラの出力を見るのは、gccがどれだけ頑張っているかを確認するのは良い。
  • objdump -d と、どのように配置されているか確認にするのに readelf コマンドにて確認しておかないと、「実際」どのようになっているかが確定できない。see also(http://www.mnet.ne.jp/~tnomura/gcc.html)

    アセンブラでも最近のものは、入力したものを「そのまま」出力はしない。パイプラインの関係で依存性がないと判断された命令は順序を変更される可能性がある。そのためgcc -Sの結果だけ見ても実際を反映していない場合がある。また、linkされるので実際のコードがどこへ配置されるかも、メモリ破壊が関係するバグを発見する場合に重要だ。

    逆アセンブラで実際の動きを確認するという点では、可能であれば gdb でソースコードデバッグだけでなく逆アセンブラを確認するのも有効だ。組み込み機器の場合なら gdb がつねにつかえるとは限らないけど。

_ Key Value Store 勉強会

(http://kzk9.net/blog/2009/02/keyvalue_store.html)全国で、多数の勉強会ができてますけど、ここはdeepな勉強会だな。

_ 遅延Ack

Delayed ACKは、RFC1122(http://tools.ietf.org/html/rfc1122)の 4.2.3.2 When to Send an ACK Segment で

      A host that is receiving a stream of TCP data segments can
      increase efficiency in both the Internet and the hosts by
      sending fewer than one ACK (acknowledgment) segment per data
      segment received; this is known as a "delayed ACK" [TCP:5].
      
      A TCP SHOULD implement a delayed ACK, but an ACK should not
      be excessively delayed; in particular, the delay MUST be
      less than 0.5 seconds, and in a stream of full-sized
      segments there SHOULD be an ACK for at least every second
      segment.
      
      DISCUSSION:
      
      A delayed ACK gives the application an opportunity to
      update the window and perhaps to send an immediate
      response.  In particular, in the case of character-mode
      remote login, a delayed ACK can reduce the number of
      segments sent by the server by a factor of 3 (ACK,
      window update, and echo character all combined in one
      segment).
      
      In addition, on some large multi-user hosts, a delayed
      ACK can substantially reduce protocol processing
      overhead by reducing the total number of packets to be
      processed [TCP:5].  However, excessive delays on ACK's
      can disturb the round-trip timing and packet "clocking"
      algorithms [TCP:7].
    
  • TCP/IP Illustrated, Volume 1だと 19章のTCPインタラクティブ・データ・フローのp301 「19.3 遅延確認応答」を見ることになると思う、で20章のTCPバルク・データ・フローで、相手のウィンドウがいっぱいになるまでだったり、実装によっては2つのセグメント分のデータを受信したらackを返す場合もあるが、複数の送信に対して個々にACKを返さない場合があるというのはわかると思う。
  • (http://tiki.is.os-omicron.org/tiki.cgi?c=v&p=TCP%2F%C3%D9%B1%E4ACK)