ChatGPTにドメイン知識問題の回答させて自分用の教科書にしました

# ドメイン知識
ドメイン知識の勉強どこまでやればいいの？
そう思いネットの荒波に揉まれること５分。。
見つけました、答え。
###### [こちら](https://note.com/gaijineers/n/n1dc9089479b3)

各分野ごとに**問題集**としてドメイン知識に関する質問が箇条書きで列挙されており、
これだけ覚えときゃいいんじゃね？
と脳筋プレイヤーなボクは思いました。

# 神、降臨す

いざ問題集に向き合い、Google先生に聞きながらまとめようとノートを開いた（訳：VScodeを起動した）その時。。

![Python_Dev -Desktop.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/424984/c61488b6-03d3-30b8-711c-880199ed44ae.jpeg)

神　降　臨

# ここから下は教科書
というわけでドメイン知識問題はChatGPTに託し、
３時のおやつとコーヒーを取りに行ってる間に回答集を作って頂きました。
※画像はネットワーク編のみ

```
[NETWORK]
１、Explain TCP vs UDP.
TCP (Transmission Control Protocol) と UDP (User Datagram Protocol) の主な違いは、TCP は秩序だった通信セッションを必要とするのに対し、UDP はそうでないことです。
TCPは、データの送受信を許可する前に、確認応答とデータパケットの順序付けを使用した3ウェイハンドシェイクを確立しています。このため、エラーに強く、信頼性の高い配信を実現します。
UDPはコネクションレス型であり、データを送信する前に接続を確立することはありません。データの再送を気にする必要がないため、より高速で効率的な通信ができる傾向にあります。

２、What is an IP packet ?
IPパケットは、インターネットプロトコル（IP）パケットとも呼ばれ、インターネット上で送信される一連の情報で、特定のメッセージや通信に関する情報を含んでいます。IPパケットには、送信元と送信先のアドレス、使用されているプロトコル、送信されるペイロードのサイズ、元のデータペイロードが含まれています。

３、What are some TCP optimization you can do ?
TCPを最適化するためには、いくつかの方法があります。
ウィンドウのスケーリング。
ウィンドウスケーリングは、スケーリングファクターに2のべき乗を使用することで、TCPウィンドウを65,535バイトより大きくすることができます。これにより、受信バッファーのサイズが効果的に増加し、より効率的な送信と帯域幅の利用が可能になります。
選択的確認応答（SACK）。
SACKを使用すると、受信者は単に受信した最新のセグメントを確認するのではなく、特定のセグメントを確認することができます。これにより、送信側からの余計な再送信がなくなり、帯域幅をより効率的に利用することができます。
非アクティブ時のタイムアウト。
非アクティブ時のタイムアウトにより、送信者は与えられたウィンドウサイズ内にACKが到着しなかった後のタイムアウトを調整することができます。これは、混雑したリンク上で送信する際のレイテンシーの改善に役立ちます。
Nagle's Algorithm。
Nagleのアルゴリズムは、単一のパケットに合体することによって、受信機に送信される小さなパケットの数を減らすことができます。これにより、輻輳を緩和するとともに、受信機の処理能力を低下させることができる。

４、What is TCP three-way handshake ?
TCP スリーウェイハンドシェイクとは、TCP/IPネットワークにおいて、ローカルホスト/クライアントとサーバーの間で接続を行うために使用されるプロセスです。これは3段階のプロセスで、接続を確立する前に、クライアントとサーバーの両方でSYNとACK（確認応答）パケットを交換する必要があります。
ステップ1：クライアントがサーバーに「SYN」パケットを送信し、接続を開始する。
ステップ2：サーバーは「SYN-ACK」パケットを返し、クライアントからの要求を確認する。
ステップ3：次に、クライアントは「ACK」パケットをサーバーに送信し、「SYN-ACK」パケットの受信を確認し、ハンドシェイクを完了する。

５、How is HTTP/2 differ from HTTP/1.1 ?
HTTP/2は、HTTPプロトコルのメジャーアップデートであり、多くの点でHTTP/1.1よりも効率的です。
HTTP/1.1とHTTP/2の主な違い。
多重化。HTTP/2では、クライアントとサーバー間の複数のリクエストを、1つのTCPコネクション上で同時に実行することができます。これは、リクエストを異なるストリームに分割し、並列ロードを可能にすることで実現されています。
ヘッダー圧縮。HTTP/2は、クライアントとサーバー間で送信する必要があるメッセージのサイズを縮小するヘッダー圧縮とバイナリフレームワークを備えています。これにより、特定のリクエストに対して送受信する必要があるデータ量が削減され、より高速な処理が可能になります。
サーバープッシュ。HTTP/2では、サーバーはクライアントからの要求を待つことなく、プロアクティブにレスポンスをクライアントにプッシュすることができます。ページの読み込みに必要なリソースの一部が事前に送信されるため、ページの読み込み時間を大幅に短縮することができます。
優先順位付け。HTTP/2では、タスク間に優先順位を設定できます。つまり、最も重要なタスクが最初に完了するようになります。これにより、画像やスクリプトなどの優先度の高いタスクが先に読み込まれるため、ページの読み込み時間を大幅に短縮することができます。

６、Explain HTTPS vs HTTP.
HTTPSとHTTPの比較
HTTPS (HyperText Transfer Protocol Secure) と HTTP (HyperText Transfer Protocol) は、Web 上でデータを転送するための 2 つの異なる Web プロトコルです。HTTPSは安全なプロトコルですが、HTTPは安全性が低く、中間者攻撃に対して潜在的な脆弱性があります。
HTTPS
HTTPS は HyperText Transfer Protocol Secure の略で、ユーザーと Web サイトのサーバー間の接続を保護するために Web サイトで使用されます。HTTPSは、ユーザーとWebサイトの間で送信されるデータを暗号化することで機能し、悪意のある行為者が傍受したり読み取ったりすることをはるかに困難にします。HTTPS は HTTP よりもはるかに安全ですが、SSL/TLS 証明書が必要です。
HTTP
HTTPとは、HyperText Transfer Protocolの略で、WebブラウザとWebサーバ間の情報送信に使用されるプロトコルです。Webサイトの通信の基礎となるもので、送信されるデータのセキュリティが確保されていないため、傍受の危険性がある。

７、How does TLS work ?
TLS (Transport Layer Security)
TLSは、2つの機器間の通信を保護するために使用される暗号化プロトコルです。OSIネットワークモデルの第4層であるトランスポート層レベルで動作します。TLSは、インターネット上で2つの機器間で暗号化されたデータを交換し、送信データが転送中に変更または閲覧されないようにすることで機能します。
このプロトコルは、3つの主要なステップを含みます。
認証情報の交換：クライアントとサーバーは、認証情報とサポートされている暗号化アルゴリズムを交換します。
安全なセッションの確立：各当事者は、接続に固有のセッションキーを生成し、合意されたアルゴリズムを使用して暗号化します。
データ転送：クライアントとサーバーは、セッションキーで暗号化されたデータをインターネット上で安全に送信します。
TLSは業界標準のセキュリティ・プロトコルで、特にHTTPS接続による安全なデータ転送のためにインターネット上で広く使用されています。

８、What is a mutual TLS (mTLS) ?
Mutual TLS (mTLS) はトランスポートレイヤーセキュリティの一種で、データを交換する前にクライアントとサーバーの両方を確認するために認証を使用します。mTLSは、接続の各側が身元を証明するための証明書を提供することによって機能します。サーバーは自身を識別するための証明書が必要であり、クライアントは証明書またはユーザー名とパスワードという形で自身の身元を証明するものを提供しなければならない。このネゴシエーションが完了すると、セッションの間、安全なチャネルが確立されます。

９、What does "/24" in "10.0.0.5/24" mean ?
/24は、IPアドレスのサブネットマスクを表現する方法です。IPアドレスのネットワーク部分とホスト部分を識別するために使用されるビット数を表します。10.0.0.5/24の場合、ネットワーク部分が最初の24ビットを占め、最後の8ビットをホスト用に残します。

１０、What is IPV6 for ?
IPV6（Internet Protocol Version 6）は、IPV4の後継として開発された最新世代のインターネットプロトコルです。インターネット通信のための拡張アドレス機能、向上したセキュリティとパフォーマンスを提供します。その結果、より多くのデバイスがインターネットにアクセスできるようになりました。また、より大きなパケットサイズを可能にし、より効率的なトラフィックのルーティングをサポートします。

１１、How does DNS work ?
DNS（Domain Name System）は、人間が親しみやすいドメイン名を、物理的なIPアドレスに変換するシステムです。DNSルートサーバーを使用して、ユーザーからの問い合わせを、問い合わせ対象の特定ドメインを処理する権威あるネームサーバーに解決することで機能します。
このプロセスは、ユーザーがホスト名（例：www.example.com）を入力するところから始まります。ブラウザは、ローカルDNSサーバーに問い合わせを行い、ホスト名を解決するか、ルートDNSサーバーにリクエストを伝達して、ドメインexample.comを担当する権威あるネームサーバーを探します。
ローカルDNSサーバーはキャッシュをチェックし、ローカルにリクエストを解決しようとします。
ローカルDNSサーバーが答えを見つけることができない場合、それはルートDNSサーバーから始まる再帰的なネームサーバーの階層を上にしてリクエストを渡します。
ルートサーバーは、ローカルDNSサーバーに応答を送り返します。
ローカルDNSサーバーは、example.comの権威あるネームサーバー（ドメインの所有者によって管理されている）の1つから詳細を要求します。
要求された情報が見つかると、その値はキャッシュされ、新しいデータがユーザーに返されます。
このプロセスから、ユーザーは探していたウェブサイトのIPアドレスを受け取り、接続を確立することができます。

１２、What happened when you open an URL in a browser ?
ブラウザでURLを開くと、ブラウザはまず、そのWebサイトをホストしているWebサーバーにHTTPリクエストを送ります。Webサーバーはそのリクエストに対して、ステータスコードとリクエストされたコンテンツ（HTML、CSS、JavaScript、画像など）をブラウザに返します。ブラウザは、そのページの内容をユーザーの画面に表示します。
```

# ありがとうございます。