• ベストアンサー

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

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

質問者が選んだベストアンサー

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

>データはパケットに分割されます まず、この時点で思い違い。 パケットに分割されるのではなくパケットが最小単位であり基本。 パケットの中身は大雑把に言うとヘッダー部とデータ部に分かれておりヘッダー部にIPアドレス(発信元や送信先)やデータ部の長さなど制御用データが含まれています。 それと「ネットワーク層」も関連しますので勉強しておいて損はないでしょう。 https://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%B1%A4 固定フォーマットではなく可変フォーマットと考えて間違いではないでしょう。ですからTCP/IPに関する技術書籍を買って勉強してください。 O'Reillyが昔から有名です。

BinBin4949
質問者

お礼

ありがとうございます。誤解が溶けました。私は元データを分割したものをパケットと思い込んでいました。そうではなく、元データを分割して、宛先などの情報が付加されたヘッダー部と分割されたデータを合わせてパケットというのですね。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

> シーケンス番号とはデータとパケットを紐付けるIDのようなものですか? シーケンス番号はパケットのシーケンスを表します。 「データとパケットを紐付ける」の意味が曖昧です。 > どのようにパケットを集めてデータにするのでしょうか。 受信したパケットのシーケンス番号が、待っているシーケンス番号より大きければ、貯めておいて順番が来たら使います。

  • asciiz
  • ベストアンサー率70% (6803/9675)
回答No.2

どこから書いたらいいもんだかわからないので、ザックリ参考ページの紹介をさせていただきます^^; >TCP/IPにおける実装 >https://prev.net-newbie.com/tcpip/stack/tcpip-impl.html 「誤り制御」(届かないパケットがある場合に再送要求する)や「シーケンス制御」(パケットの順番を認識する)は、「トランスポート層」の「TCP」にて行っています。 TCPの実装は以下のページのようになっています。 >TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう >https://employment.en-japan.com/engineerhub/entry/2020/02/13/103000 「IP通信」では、指定されたIPの機器まで、データを送ることはします。 しかし、違う経路を通ったり、経路によっては無限ループに陥ったりして、必ずしも相手にすべて届くとは限りません。 そこで「TCP」の実装により、セッションを張った相手と順番のチェックと再送要求を行い、データが揃ったところで上位層に受け渡します。 シーケンス番号は、そのセッションを張った相手とだけ順番の確認ができればよいので、単純に1から始まっていると思います。 通信の下位層が自動的にそのような仕事をしてくれるため、上位層(アプリケーション層)では、「データをきちんと受け取れたなら、その内容は順番通りで、エラーもない」ことを前提に、処理を進めることができます。

関連するQ&A