ネットワークプログラミングのインタビューポイント

1 、簡単にOSI 7層のプロトコル。

    アプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データリンク層、物理層、
    アプリケーション層:ユーザ知覚
    データリンク層は:電気信号のグループを定義します。イーサネットプロトコルがあります。
    イーサネット所定のインターネット・プロトコル・デバイスは、カードへのアクセス権を持っている必要があり、伝送およびアドレスの端を受けるには、NICのアドレスです。
    ネットワーク層:プレゼンスIPプロトコル:プロトコル所定のネットワークアドレス。どのIPアドレスアドレスはIPv4アドレスの普及と定義されます。ネットワークアドレスは、32ビットのバイナリー組成物です。ARPプロトコルは、MACアドレスのターゲットホストのIPアドレスを変換するために存在します。
    トランスポート層:ポートへの通信ポートを確立します。0 -65535ポート範囲。0- ポートシステムの1023年占領。契約TCP、UDPプロトコルがあります。
    
    
    
    
    
    
2.どのようなC / Sであり、B / Sのアーキテクチャ?

C / S:クライアントとサーバー間のアーキテクチャは、クライアント上のアプリケーションをインストールします。
強い相互作用、高速応答が特徴。しかし、別の異なるオペレーティングシステムのソフトウェア開発の必要性、
より高速な製品のアップデートと相まって、プログラム反復非常にしばしば。



B / S:ブラウザとサーバ間のアーキテクチャ
    の特徴:分布と強い、メンテナンスが容易、所有権の簡単な共有と強力な、低コストの開発。しかし、それはブラウザとサーバ間の相互作用の多くが参加する、通信コストが大きく、データセキュリティ、データ伝送速度やその他の問題に関連する問題。


3 、簡単な3ウェイハンドシェイク、4波のプロセス。

    スリーウェイハンドシェイク:
    接続、SYNを確立するために、まず、クライアント要求 =を1、パケット番号の伝送= SEQ X 
    秒の時間、サーバ応答メッセージACK = 1、代表的なGET要求データだけでなく、接続要求、SYNを確立するために=図1に示すように、送信パケット数= SEQあるYの
    第三、クライアントの応答メッセージACK = 1、SEQ = X + 1に送信されたパケットの数
    
    :四光波
    まず、クライアント要求を切断する、FIN = 1、パケットが送信されるSEQ = Uの
    第二は、サーバーが要求を受信し、ACK返信 = 1、パケット番号がSEQ =送信されるVの
    三分の一を、サーバが接続を切断するように要求する必要があり、FIN = 1 =配列に送信されたパケット数wは
    第四は、クライアントが要求を受信し、ACKを返信 = 1、送信されるデータパケット= U + 1が配列され


4 、ARPプロトコルは何ですか?

ARPは、頭字語ARPです。いわゆるアドレス解決は、標的の変換処理のフレームターゲットIPアドレス、MACアドレスを送信する前にホストです。IPアドレスを使用してそのターゲットデバイスは、通信が正常に完了したことを確実にするためには、ターゲットデバイスのMACアドレスを問い合わせます。


5 、TCPとUDPの違いは?
    。1 )、TCPはコネクション型コネクションは、送信データの前に必要とされる、UDP接続は、データ送信の前に確立される必要はなく
     2TCPデータ伝送は、パッケージが、データなしの損失を付着するが、データは安全であると言うことができない)、UDPはできるだけデータの信頼できる配信を保証することである
     3 )、バイト指向のストリームのTCP、UDP指向メッセージ、輻輳制御ビデオなどのリアルタイム・アプリケーションでの使用に多くの呼び出しでので、
     4 )、各TCPコネクションは、多くの状況に多くのポイントをポイントし、多くのUDPサポート、することができます。




7 なぜ、TCPプロトコルベースの通信は、UDPベースの通信プロトコルよりも信頼性はありますか?

    データを送信する、送信端は、データがキャッシュに入れて送信し、ピアのキャッシュにプロトコル制御データを送信する場合、ピアはACKを返し、TCP = 1、独自のキャッシュをクリーンアップするために、送信側ピアが返さ= ACK 0、再送データなので、TCPの信頼。
    UDPデータを送信する場合、ピアは確認応答メッセージを返すは、従って信頼できないではありません。


8 、ソケットは何ですか?説明ソケットベースの通信プロトコル処理TCP。

    これは、アプリケーション層とトランスポート層との間にソケット抽象層である、と彼TCP / いくつかの簡単な界面層の呼び出しでIP複雑な操作抽象供給は、プロセス間通信は、ネットワーク内で達成されます。
    サーバー:、ソケットを作成するポート番号ポートが,,, ,,クライアントのリクエストを受信リスニングバインド
    バイトを読み取るために、送信されたバイトが通路を閉じ、
    クライアントを:ソケットを作成し、ポート指定のコンピュータを接続し、書き込みデータが読み込まれますチャネルを閉じます。
    

9 、スティックパッケージは何ですか?理由のソケット原因スティックパッケージとは何ですか?現象が発生した場合、パッケージをスティック?

    スティックパッケージは言い、私たちは、TCPソケットを作成するときに、カーネルが送信バッファと受信バッファを作成します。送信されたバイト数が長すぎると連続短すぎる送信されたバイト数は、バッファ内に待機していることになるならば、それは、スプリットTCPパケットを複数に送信されます、バッファを待っていることはほぼいっぱいである、または彼らが優れているまで過去に作られました。バッファがいっぱいになるまで、あなたが待って、我々はデータの受信を開始する必要がある場合ので、受信側で、このような緩衝機構の存在を、いくつかのTCPデータが既に存在していること、または受信者の可能性が、それは問題がパッケージを固執原因となります。その場合には、パケットバッファを受信します。
    

    
    理由:受信者がデータのバイト数は、結果として抽出される方法を知らない、メッセージ間の限界を知りません。伝送効率を向上させるために、TCPプロトコル自体、送信者はしばしばTCPセグメントの後に送信するための十分なデータを収集するためにつながります。いくつかのデータが連続して送信した場合、受信側は、粘着性のデータパケットを受信するように、これらのデータは、最適化アルゴリズムに従ってTCPセグメント伝送時間にわたって合成後TCPう。
    
    
    何が起こるか:
    :ケース1のバッファは、スティックのパッケージで、その結果、一杯になるまでだけ、送信側は、連続的に送信されるデータの量を送り出す
    ;各時刻が小さい
    受信パケットバッファに沿って受信される複数のパケットで、その結果、遅すぎる受信側:ケース2レセプション。または受信したデータが小さすぎると、次回は、バッファからの最後の残りのデータを取らなければなりません。
    
    パッケージの溶液粘度は:
    
    ;実現する構造体のモジュールを使用して固定長パケットの場合、それは、与えられた固定長に必要となる
    可変長パケットが明示的エンドパッケージのシンボル境界位置を与えることができるため。

    
   
11 、ファイアウォールや役割は何ですか?

    コンピュータネットワークのためのセキュリティシステムとして。
    役割:そのネットワークスキャンを流れる、あなたには、いくつかの攻撃をフィルタリングすることができます。
    通信のうち、特定のポートをブロックすることができ、特定のサイトからのアクセスを禁止しています。
    


21、ルータやスイッチの違いは?

    ルータが自動的に仮想LAN IPダイヤルに割り当てることができます
    のみ配布するためのスイッチ、データネットワーク
    
    のネットワーク層にルータがTCPルータアドレス、IPアドレスに従って処理することができる / IPプロトコル
    スイッチは、中継層に、アドレス指定のMACアドレスに基づいてすることはできません
    
    ルータができ唯一の外部IPショーを使用して複数のホストに割り当てられているIP入れ
    、スイッチが複数のホストに接続することができ、独自の外のIPと各
    
    ファイアウォールを提供することができますルータを、スイッチはこの機能は提供されません
    

 22 、DNSは何を?

    これは、IPするドメイン名を変換する

 24 モデルの、生産者-消費者のシナリオと利点を?


分析:

 1 )、データ処理には時間がかかり、スレッドの排他的、生産データないのにもフィードバックしています。
その理由は、ログに書き込まれ、例えば、厳密な順序が参加するスレッドがキューキューにはないので、順序が不明で、問題がある、排他的なスレッドです。
2 )、並行プログラミングにおける消費者の使用パターンの生産者は、生産と糸消費スレッドを動作させる能力のバランスをとることにより、データ処理プログラムの速度を上げるために、全体的なパターンを同時実行の問題のほとんどを解決することができます。


シーン:ベースの生産者-消費者モデル地区

長いミッション時間、アップロードと処理に対処するためのシーンの後、ユーザーはシステムにファイルをアップロードすることができ、キューに投入されたファイルシステム、(すぐに成功を返すアップロードするユーザーに伝え、?? ? 1  
の消費者は、このようなデータを照会するためのリモートインタフェースを呼び出す(としてキューファイルの取り扱いを、削除するには?2 
数十秒を必要とするクエリリモートサービスインタフェース、(データベース・クエリタスクを配置するアプリケーションへのインターフェイス、???あれば、それは、クエリのためのインタフェースアプリケーションを提供することができます 3 
とのインタフェースはすぐに戻ります。その後、発信者にメッセージを処理した後、サーバー・アクセス・アプリケーションおよびタスクポーリングスレッドで処理されたので、呼び出し側は、データを取得するために、再び別のインターフェイスを呼び出すこと。

前提:全体のロジックを実現することができますか?

質問1:ユーザーが単語の成功を確認するためにアップロードしている場合は、すぐに実行する方法を、アップロードされたファイルから見てみたいですか?それともそれは、与えられた需要が、それは、ユーザーが即座にファイルのアップロードを表示することはできません。それとも、その顧客のニーズを満たすために、ブラウザのキャッシュに直接これらのファイルは見て待つことができませんか?

解決策:ブラウザのキャッシュに見て傾斜
データが正常に保存されていない場合は、その後、彼は次へと、ハング続ける与える


質問2:コンセプトは、リモートインタフェースを呼び出すのですか?それは理解することができます。バックエンドサーバーに加えて、要求を送信し、検索結果がありました、それはすぐに結果を返します。それは結果を得たときに、本文中で述べたように、時間が時間がかかる場合は、このリモートインタフェースは、非同期に行くためにタスクキューを照会し、その結果を通知する前にリクエストを送信するために呼び出すインターフェイスに行き、これはまた、問題3を必要としません。

主な理由は、長く保存するために必要な時間の、まだ行くために、キュー内の非同期クエリを実装することをお勧め:回答。


質問3:あなたが投票結果を見に行くためにこのケースを使用する必要がある場合。しかし、私は理解していないあなたは、データベースにタスクを適用することができるということですか?データベースは読み取りおよび書き込み役割をそれにするだけでなく、このロジックによって実行される機能を持つ必要があるだけではなく?
ANSWER:データベースは、プロシージャ、関数を記憶しているので、実行するタスクがあります。



デカップリング、両者の間に直接的な通信は、ブロッキングキュー、バッファの等価物を介して通信します。

、CDNは何ですか?25は

    、待ち時間技術を低減するために使用されます。コンテンツ配信ネットワーク。
    布に比較的集中した領域をキャッシュサーバ、ユーザーの多くを使用したり、ネットワークを依頼することです。
    ユーザーは一つのグローバル負荷技術を使用して、アクセスすると、ユーザーの要求は、地元の倉庫Jingdongのに似て、過去からサーバーにアクセスします。

26 、およびLVSはどのような影響ですか?

    Linuxは、仮想サーバーです。博士はオープンソースプロジェクトの一つ。これは、Linuxカーネルの一部となっています。主に複数のサーバの負荷分散のために使用。

27 、nginxのと役割は何ですか?

高性能httpとリバースプロキシサーバーです。特徴と少ないメモリ、高い並行性を占めます。

1 )ネットワーク内でデータを取得するために、リバースプロキシ、プロキシサーバに要求を達成するために使用され、その要求の前にクライアントに返されます。
2 )、負荷分散、高同時データトラフィックの場合に圧力を減らすために、各サーバを複数のサーバを共有することができます。タスクを完了するために一緒にクラスタ化します。
3 )、静的および動的の分離、分離を要求する動的および静的な要求を達成します。設定の転送に応じて、異なる要求ごとに異なるん。これは、分離運動の基礎です。


28は、keepalivedのとどのような役割?

生き続ける、それがネットワークに高可用性を維持するために、ソフトウェアの一部でなければなりません。

29 、HAProxyであり、どのような役割?
また、高可用性、負荷分散アプリケーション・エージェント・ソフトウェアを提供しています。


30 、ロード・バランシングとは何ですか?
    複数のサーバに配分高い同時データトラフィックの場合は、各サーバーが圧力を低減します。クラスタによって一緒に作業を完了します。

31RPCとアプリケーションのシナリオは何ですか?
    リモートプロシージャコールプロトコル。

 

おすすめ

転載: www.cnblogs.com/changwenjun-666/p/11470191.html