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

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

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

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

TCP

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

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

ネットワーク

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

Wireshark

Wireshark(ワイヤシャーク)は、ネットワーク・アナライザソフトウェアです。 IP、DHCPなど800以上のプロトコルを解析できる機能があり、 Windows、Linux、BSD、Mac OS Xなどで利用が可能です。

Q&A

3回答

4746閲覧

TCP/UDPを利用しない通信の処理は誰が行うのかを教えてください

774no56

総合スコア12

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

TCP

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

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

ネットワーク

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

Wireshark

Wireshark(ワイヤシャーク)は、ネットワーク・アナライザソフトウェアです。 IP、DHCPなど800以上のプロトコルを解析できる機能があり、 Windows、Linux、BSD、Mac OS Xなどで利用が可能です。

0グッド

0クリップ

投稿2019/03/10 00:03

普通、TCP/UDPのポート番号を見てどのプロセスが処理を行うかが
決定され、プロセスへのパケットの受け渡しが行われるかと思います。
この考えを前提にすると、TCP/UDP以外の通信はどのプロセスが
処理を行うのかを判断できない=OSが処理を行う
と考えられると思っているのですが、正しい理解でしょうか?

例えばICMPの通信はTCP/UDPを用いずにIPパケットの次ICMPのデータ部分が来るので、
PING応答を処理しているのはOSと思ってよいでしょうか。

また、Wiresharkなどはすべての通信を確認できると思いますが、
上記の理解だけでは動作原理が説明できないように思います。
何か別の仕組み(OSが提供する機能など)があるのでしょうか。

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

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

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

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

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

guest

回答3

0

古い知識しかありませんが、一般には、OSに含まれるドライバが担当です。
昔は、ネットワーク関係のハードウェアは標準装備で無かったので、その都度、入れて(インストール)していましたが、今は、一般的なハードウェアについては、OSに標準装備されています。
どのプロセスが、どの通信を扱うかは、OSにプロセスを登録する時に、同時に担当するポート番号とかの設定を行い、そのプロセスが対応するポート番号なりの待受けを行う筈です。(と言うより、受信可能なプロセスが無ければ、OS/ドライバはどこにもデータを送れない)
ハードウェア ⇔ デバイスドライバ ⇔ OS ⇔ 通信プロセス(アプリ)
じゃなかったかと。ここでのOSの役割は、仲介であって特に処理を行う事は無いと思いました。(OSの範囲を狭い意味でとらえた場合)

Wiresharkなどはすべての通信を確認できる

Wireshark等は、通信の横取りをしているだけです。本来のプロセスが通信データを受け取るところを、横取りし、中身を見て、何もなかったように、本来のプロセスにデータを渡すだけ。 ある意味、セキュリティソフト、ウィルスとかと同様の動作です。受信するプロセスが無ければ、そのデータはそのまま、読み捨て。

投稿2019/03/10 05:28

pepperleaf

総合スコア6383

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

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

0

こんにちは。

実際の実装は把握していませんが、ネットワーク通信は、プロトコル・スタックと呼ばれるドライバーが担うOSが多いようです。

インターネット上での通信でIPを使わないケースは(恐らく)存在しないと思います。
そのIPより上位のもの(ICMP、TPC、UDPもその例)については、多数あります。プロトコル・スタック内にOS標準で実装されているものもあれば、そうではないもの(当該プロトコルを使いたい時にドライバをインストールするなど)もあります。
私自身は、ICMP, TCP, UDP, L2TPくらいしか意識して使ったことはないです。少なくともWindowsは結構以前よりこれら全てを標準で搭載しています。(多くのOSは少なくともこれらを搭載している筈です。)

Wiresharkなどはすべての通信を確認できると思いますが、

Windowsの場合は、フィルタ・ドライバという仕組みがあって、ドライバとドライバの間に別のドライバを挿入できます。そのようなドライバをインストールして通信を横流しするのではないかと思います。
また、同時に NICをプロミスキャス・モードに設定して、NICに届く全ての通信を観察できるようにしています。

投稿2019/03/10 03:56

Chironian

総合スコア23272

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

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

0

ICMPやIPルーティングのためのプロトコルは、OSの中のネットワーク管理が処理するはずです。

Wiresharkなどは、PCAPというOSのAPIを使っています。
詳しくは知りませんが、IPパケットの送受の時にコールバックされるんだと思います。

Windowsだと標準でPCAPが無いので、Wiresharkインストール時にWinPCAPもインストールされます。

投稿2019/03/10 00:47

編集2019/03/10 02:04
otn

総合スコア84498

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問