• 締切済み

IPヘッダの識別番号とTCPヘッダのシーケンス番号の違いってなんですか

ネットワークの勉強を始めたばかりのものです。質問文に不可解な文章があるかもしれませんが、ご了承ください。 私の読んでいる参考書で、識別番号は「MTUによってデータを分割配送する際に使用する」と書いてあり、シーケンス番号は「ある程度データサイズが大きい場合、MMSによってデータを固定長に分割し、分割の組み立てに使用する」とありました。 つまり、送信側がMMSによってデータをA・B・Cの3つに分解し、Aを送信したところ、MTUがAのデータ量以下だったので、Aをパケットで分割して送信し、受信側で組み立てる・・・という見解で合っていますか? もし合っていた場合、「パケット1つが届いたよー」という確認応答は送信側に送られるのでしょうか?それとも確認応答はパケットの組み立てが終ってから送られるのでしょうか?

みんなの回答

  • naniwacchi
  • ベストアンサー率47% (942/1970)
回答No.1

MMSではなくて、MSSのことですよね。 まず、MTUとMSSの違いをしっかり意識することが大事です。 MTUはレイヤ3(IPヘッダ)で、MSSはレイヤ4(TCPヘッダ)でそれぞれ使われるものです。 大雑把な表現ですが、 ・MSSはエンド間(PCとサーバ間など)での制御になり、OSでおこなわれます。 ・MTUは途中のノード(ルータ)でも制御がおこなわれます。 となります。

関連するQ&A

  • TCP/IPでのエラーシーケンス

    TCP/IPで1台のサーバSから複数のコンピュータA,B,C...に データを送信している途中で、 Cがハングパップした時のエラーシーケンスを知りたいのですが。 例えば、 サーバSからA,B,Cに1つのデータを複数のパケットに分けて送信するときに、 送信途中でCがハングアップ(通信不能)した場合に、 サーバSがCにパケットを送信しなくなるのは、どのタイミングなのでしょうか? 例えば、5つ目のパケットで通信不能になった時は Cへのそれ以降のパケットを送信しないのでしょうか? 初歩できなことですが、お願いいたします。 ここら辺のことで、参考になる文献がある場合にも教えて頂きたく思います。

  • TCP/IP通信時のパケット分割について、パケットがMTU以下なのになぜ分割されるの?

    Linux-PCと組み込みボード間でTCP/IP(Ethernetで)で通信を行ったときの なぜ?な現象について質問です。 Linux上のプログラムでボードに対して1300バイトのデータを送信(write) しているのですがTCPDUMPでモニタしたところ1024/276バイトに分割されて 送信されています。Linux側のMTUが1500になっているのになぜパケットが 分割されてしまうのでしょうか? ちなみにCygwin上でテストしたときには1つのパケットで送信されていま した。

  • TCPヘッダにある確認応答番号とウィンドウサイズについて

    はじめまして。 質問があります。 参考書によると、 送信側のトランスポート層で作られたセグメントを受信側の同層で 受け取ったとき、そのセグメントに付加されているTCPヘッダ内の 確認応答番号と、ウィンドウサイズは、受信側で書き込むらしいの ですが、どういうことなのでしょうか?もしかしたら、受信側が 送信側に送る確認応答のヘッダは、送信側でセグメントに付加した TCPヘッダを使いまわしているという解釈でよろしいのでしょうか? わけがわかりません。どうかご教授お願いします。

  • TCP/IPでの通信の仕組み(パケット分割)について

    TCP/IPでのパケットの分割の仕組みで疑問に思ったことがあったので質問します。 本を見ると(日経NETWORK 新ネットワーク超入門より) TCPの役割:IP機能の負荷を減らすため、データが伝送途中で分割されないで送れる最大サイズになるように区切る。 ルータの役割:ルータ内のIP機能が、転送先の回線で決められたサイズに合わせて分割したりする。 と書いてあったのですが、 端末A -- ルータ1 -- ルータ2 -- サーバ (MTU:1500B) (1000B) (500B) (それぞれ、端末A ルータ1 MTU 1500B ルータ1 ルータ2 MTU 1000B ルータ2 サーバ MTU 500B と仮定) のようなトポロジを仮定した場合 端末Aがサーバと通信する場合はどのように通信が行なわれるのでしょうか?

  • e-TAX 利用者識別番号について

    昨年度確定申告書作成コーナー画面から自宅PCを使って確定申告しました。利用者識別番号を控えておいたのですが、番号違いでログインできません。 昨年度の入力内容で引き継げるデータは利用したいのですが、あらたに利用者識別番号を 取得するとまたはじめから入力が必要となりますか。 昨年度の申告データファイル、が今つかっているPCとは別のところにあるPCに保存されて いて、利用者識別番号を確認できなくて、方法がないかとおもっています。 それと、今回のように作成途中あるいは、送信後のデータファイルを保管する場所ですが、 クラウドコンピューティング?でSkyDriveに保管しておけばどちらのPCから確定申告の作業が できますか?クラウドについてあまりくわしくないので、この点もご教示いただければ幸いです。

  • インターネット通信に関する質問です。

    ユーザーとwebサーバー間で送受信されるデータはパケットに分割されます。そのパケットが集まって一つのデータとして認識されるためにはシーケンス番号を割り当てる必要があります。シーケンス番号とはデータとパケットを紐付けるIDのようなものですか?また、どのようにパケットを集めてデータにするのでしょうか。よろしくお願いいたします。

  • 固体識別番号の送信

    Advanced/W-Zero3[es]を使用しています。 あるコミュニティーサイトに登録しようと思って招待までされたのですが、登録するときに、 『携帯固体識別番号の取得に失敗しました。携帯端末の設定で携帯識別番号の送信がオフにされている場合は、オンに変更して再度登録を行ってください。』 となって登録できません。 固体識別番号ばまず何かわからないのですが、送信するように設定できるのでしょうか。 もし、わかる方がいらっしゃいましたら、回答をお願いします。

  • TCP/IPで同じパケットが2つ送信される。なぜ?

    Windows8 PC上のブラウザから、LAN上の機器(HTTPサーバ)にアクセスしようとしています。 Wiresharkでそのときの通信を覗いてみると、PCから送信されるパケットはなぜか2回同じものが短時間の間に連続して送信されているようです。その理由に心当たりがある方がいらっしゃいましたら、教えて下さいませんか? また、設定で回避できるのであれば、その設定項目などもわかるとありがたいです。 詳しい状況です。Wiresharkのキャプチャ画像と合わせて見て下さい。 *PC側IPは192.168.0.12、HTTPサーバは192.168.0.18です。 *Wiresharkでは、パケット6と7、9と11、10と12、14と15は内容的に同じパケットのようです(seqとackが同じ) *同じパケットのうち、前の方のパケットではIPパケットのチェックサムが0000hとなっているようです(チェックサムオフロード?)。後の方のパケットには、具体的なチェックサムの値が入っています。 *前のパケットが短い場合(54バイトとか)、後のパケットにはパディングとして00hが追加されて、60バイト長となるようです。それ以上の長さのパケットは、前述のチェックサム以外には違いは見られません。 *同じ2つのパケットは、極短い期間で連続して送信されているので、HTTPサーバからの応答タイムアウトで再送しているという風には思えないです。 *PC側のブラウザは、ChromeでもIEでも同じように2つの同じパケットが送信されていました。しかし、LANの外(ルーター外のインターネット)に接続するときは、このように2つの同じパケットはWiresharkで見ると出ていないようです。 *ちなみに、PC側のLANはRealtekのGigabit Ether(有線)です。 よろしくお願いいたします。

  • TCP/IP のパケットの分断と結合について

    linux で socket を使ってプログラムを作っております。 パケットの頭に、どんな種類のパケットかの情報を入れ、それに続く部分にデータを入れて送っております。受信側では、届いたパケットの頭の情報を見て必要な処理を行う、という流れになっております。 ところが、時々、次のような現象が発生して困っております。 ・送信側で一回のsendで送ったはずのデータが受信側では一回のrecvで届かず、二回のrecvで届く。 ・送信側では二回のsendで送ったつもりなのに、受信側では一回のrecvで2つのパケットが結合したデータが届く。 これはsendとrecvでは普通に起こると想定しなければならない現象なのでしょうか? それとも、linuxマシンの設定に問題があるのでしょうか?

  • etherealのシーケンス番号について

    ethereal(ver0.10.11)を使用し、 キャプチャしたデータを表示すると、 TCPのシーケン ス番号が必ず0番からの値で表示されてしまいます。 ACK についても同じです。 ただし、同じデータを、バージョンの古いethereal (ver0.9.16) を使用して見た場合は、開始シーケンス が3300051524等と表示されます(こっちの情報の方が 正しいと思います) 上記の件に関し、情報をお持ちの方がいらっしゃいま したら、教えてください。