質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

4回答

296閲覧

データリンク層のデータから内容を読み取ることは可能か?

km_beginner

総合スコア15

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2018/12/20 13:18

##知りたいこと
データリンク層では二進数でデータを持ちますが、この0と1の並び順から、このデータの内容を知る・読み取ることって可能なのでしょうか? またどのような手法で二進数に書き換えられているのでしょうか?

##具体的には
例えば、ユーザにとって以下のような場面はよくあると思います。

アカウント登録する場面において 1) 名前等の情報を入力し 2) 「登録する」ボタンをクリックする 3) 登録完了の画面に遷移

この 2) と 3)の間は、OSI参照モデルの各階層を通る際、データリンク層では情報が二進法に変換されると認識しています。

これは、もしデータリンク層でのデータの持ち方が "10001・・・" だった時に "佐藤 花子" と読むこともできるのでしょうか。 また、その手法が対応表なのか、特別な数式なのか、どのように二進法に変換されているとかご教示いただけると幸いです。

質問をした背景

この質問をした背景は、n進数の勉強している際、ふと気になったためです。 知り合いにn進数が使われている具体的な場面を用いながら教えられたらと思い、質問させていただきました。

##質問者の知識について
ネットワークにはOSI参照モデルで各階層に区切られており、私たちはPCで通信できている、くらいの初心者の知識を持ち合わせています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

そもそも、どの階層でも、通信の時点で0と1です。コンピューターの中も全て0と1です。
とある文字をどのような0と1のパターンと対応させるかの対応表があって、文字に対応する0と1のパターンを文字コードと言います。例えば、Aはよく使われている文字コードでは01000001です。

(0と1だけで表現すると文字数が多くなるので、多くの場合4桁ずつ区切って2進数4文字を16進数1文字で表現することが多いですが、本質的な違いは無いです。)

投稿2018/12/20 13:27

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

km_beginner

2018/12/22 05:23

ご指摘いただき&分かりやすく解説いただき、ありがとうございました!
guest

0

ご質問の内容が
・データリンク層の生バイナリのみから意味のあるデータへ変換できるか?
ということであれば、結論から言うと理論上はできます。

ただし、L2の時点でもとのデータは断片化されており、さらに通信に必要な情報が付与されています。
例えば、TCPを利用する場合、完全な情報を復元するためにシーケンスNoが付与されますし、IPで通信する為には宛先IPや送信元IP等が付与されます(各層で付与されるデータはこれに限りませんが、詳述すると日が暮れるので一部の例示のみとします)。
それらのデータを全て取り除き、元データのバイナリをすべて適切に組み合わせる。更にデータを受け取るアプリケーションを特定し、デコード方法を類推できれば、理論上、意味のあるデータへ復元できるでしょう。
ただし、通信は基本的に暗号化されていますし、並大抵の技術力ではもとのデータに戻すことは不可能です(というかパケットスニファ程度で簡単に情報盗まれるようならオンライン取引なんかは実現していません)。

なので回答としては「理論上可能だが実際に行うとなると不可能に近い」です。
ご参考になれば幸いです。

投稿2018/12/21 00:33

mishura

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

OSI参照モデルの理解が間違っているようです。概要についてざっくり記載します。
7.アプリケーション層:0,1のデータの送受信でどのような機能を提供するか(HTTPなど)
6.プレゼンテーション層:0,1のデータをどうやって表現するか(文字コードなど)
5.セッション層:0,1のデータのどこからどこまでがプログラムの通信なのか(TCPでの3ウェイハンドシェイク等)
4.トランスポート層:0,1のデータにエラーなどが発生した際にどうするか(TCP/UDP)
3.ネットワーク層:0,1のデータをどうやって別のネットワークの端末まで届けるか(IPアドレスを使用)
2.データリンク層:0,1のデータをどうやって同じネットワークの端末まで届けるか(MACアドレスを使用)
1.物理層:LANケーブルや無線LAN(電波)を使用して0,1のデータをどうやって送受信するか

現代のTCP/IPスタックでは7,6,5層は全てアプリケーション層(HTTP、NTPなど)が機能を提供していると考えて問題ないかと思います。

投稿2018/12/21 00:04

編集2018/12/21 00:05
ozwind918

総合スコア1140

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

データリンク層からデータを読み取ってるからこそ、いまここでネットができていますw

投稿2018/12/20 13:30

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問