同じセグメント内のホスト同士の通信では、何を使って通信するか
LANで使われているプロトコル
Internet_Protocol 
 同じセグメント内のホスト同士の通信では、そのLANで使われているプロトコルを使って通信する。そのためIPの各実装では、そのLANで使われているプロトコルから完全に独立することはできない。
Transport_Layer_Security 
 第一のフェーズではサーバ・クライアント間で通信に必要情報の合意を図る。このフェーズでは、まずクライアントからサーバにClientHelloが送信され、次にサーバからクライアントにServerHelloが送信される。 Internet_Control_Message_Protocol 
 宛先となっているホストがエコー要求を受け取ると、発信元と宛先のアドレスを入れ替え、タイプを0（エコー応答）に書き換え、チェックサムを再計算する。識別子とシーケンス番号はエコー要求で指定された値をそのまま返し、どの要求に対応する応答なのかを発信元で判別する際に使う。また、データフィールドも要求の内容をそのまま返す。 Internet_Control_Message_Protocol 
 ゲートウェイから送信元に対して、今後は他のゲートウェイを使うよう指示する。元のデータグラムも破棄せずに転送する。経路変更要求ICMPメッセージを受け取ったホストはルーティングテーブルに追記し、該当する次のデータグラムからは指示されたゲートウェイへ送るようになる。 Transport_Layer_Security 
 ClientHelloはTLSのバージョン、乱数、セッションID、通信に用いる暗号方式やハッシュアルゴリズムのリスト (cipher_suites)、通信内容の圧縮方法、および拡張領域の6つからなる。乱数は鍵共有におけるリプレイ攻撃を防ぐためのものである。 Transport_Layer_Security 
 一方、証明書を使い分けず、1つの証明書を複数のバーチャルホストで使い回す方式も広く利用されている。[[X.509]]証明書のフォーマットについて記述した[[RFC5280]]では、発行先ホスト名を保持するsubjectAltNameはひとつの証明書に複数のエントリを作成できると規定している。これを利用して、ホストに収容されたすべてのバーチャルホストに対応したsubjectAltNameを保持する証明書をクライアントに提示すれば良い。 Transport_Layer_Security 
 ここまでのプロトコルにより、サーバとクライアントの間でpremaster secretが共有された事になる。DH_anonであればpremaster secretはである。premaster secretを鍵にした擬似ランダム関数にServerHelloとClientHelloの乱数などを並べたものを入力した結果得られたものがmaster secretである。 Transport_Layer_Security 
 前者はアプリケーション層のプロトコルをまったく変更しなくてすむことが利点である。その反面、平文で接続を開始する実装と共存できなくなるため、既存のポート番号とは別にTLS対応用のポート番号が必要となる。実態としては、SSL/TLSの最初の適用例であるHTTPSをはじめとして、前者の方式を使うことが多い。ただし、この方式はバーチャルホストを構成する際に問題となる可能性がある。詳細は#バーチャルホストの節を参照。 Transport_Layer_Security 
 TLSの拡張機能を定義するRFC 6066では、ネゴシエーション時にホスト名を伝える手段として[[Server Name Indication]] (SNI) を規定している。用例としては、[[HTTP]]の最新バージョンである[[HTTP/2]]においてTLSを利用する際はSNIの利用が必須とされている。 Internet_Control_Message_Protocol 
 コード0は、IPヘッダのTime to live（TTL；存在回数）が0になっても宛先ホストに到達しなかったことを通知する。コード1は、断片の再統合を行う際、制限時間内に断片が揃わなかったことを通知する。 Transport_Layer_Security 
 ServerKeyExchangeは鍵共有プロトコルに依存して送るデータが異なるが、DH_anonであれば、という形のデータを送る。ここではサーバの秘密の乱数である。鍵共有プロトコルがDHE_DSS、DHE_RSA、DH_anonでは何らかのserver_key_exchangeを送るが、RSA、DH_DSS、DH_RSAでは何も送らない。