インタビューの概要 - コンピュータネットワークの部分(1)

1、OSI 7層モデルとTCP / IP 5層モデル

Aは、OSI 7層モデル
OSIは、(物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層)7ネットワーク相互接続フレームの、すなわちISO開放型システム間相互接続参照モデルを定義します。各層は、それぞれの機能およびプロトコル、および完全な隣接層を通信するためのインタフェースを達成します。OSIサービスの定義は、それぞれの層が提供するサービスを指定します。サービス層との界面を介してより高いレベルを提供する層を低下させる能力、の層です。それぞれの層が提供するこれらのサービスおよびサービスは、どのように達成するかとは無関係です。

各層の機能が定義され
、各層の実際の複雑さは層であるため、OSI層は概ね機能に詳述されているだけのため、それは、詳細には触れません。
全体のプロセスは、説明するための例として商業引用A社とB社に送られます。

<1>アプリケーションレイヤ
OSI参照モデルのレイヤのユーザに最も近いは、アプリケーションがコンピュータにユーザインタフェースを提供する、直接ネットワークサービスの様々なユーザーに提供します。Webサービスは、私たちの共通のアプリケーション層のプロトコルです:HTTP、HTTPS、FTP、POP3 、SMTP など。
A社の実際の所有者は、彼が送信されるユーザーの皆様、および商用の引用で提供されるネットワークアプリケーションレイヤのサービスである、もちろん、上司も、他のサービスを選択することができ、たとえば、ビジネス契約書を送って、毛問い合わせ、および上そう。

<2>のレイヤを表す
プレゼンテーション層、アプリケーション層データは、アプリケーション層を識別するために他のシステムに送信することができるようにするシステム、アプリケーション層のデータをコード変換さまざまな機能を提供します。必要であれば、層は、通信に使用される標準的な表現にコンピュータの内部データ形式を変換するための標準的な表現を提供することができます。データ圧縮及び暗号化機能は、表現を提供することができる変換層の一つです。
A社とB社は、通信の言語として英語に統一し、それらの間で合意異なる国の企業、であるため、ので、この場合には、プレゼンテーション層(会社秘書)は、英語に翻訳情報のターンのアプリケーション層を転送することです。一方、他の企業を防ぐために、人A社は、この引用の暗号化処理の一部を行いますことがわかります。これは、表現の役割、アプリケーション層のデータ変換翻訳したものです。

<3>のセッションでは、レイヤ
セッション層は、確立、管理、および層の間の通信セッションを終了するための責任があるエンティティを表します。組成物の適用における異なるデバイス間のサービス要求と応答による通信層。
同僚の後、セッション層の同僚は、変換されたプレゼンテーション層の情報(類似会社のセッション層同僚リエゾン)、当社と同社は実際の転送されている情報、他の多くの企業を把握することがセッション層の同僚を取得しますプロセスエンティティ。彼らは外の世界との会社の連絡先に会話の多くを管理する必要があります。データプレゼンテーション層を受け取った後、セッション層が作成され、このセッションを記録されます、彼は最初の会社Bのアドレス情報を見つける必要があり、その後、全体のデータエンベロープに、アドレスや連絡先情報を書きました。データを送信する準備ができました。見積書を受け取った後、セッションが終了した場合でも、リエゾン部門の同僚がセッションを終了しますまで、B社が決定されます。

<4>トランスポート層
トランスポート層は、リンクのホスト側の役割を確立するために、トランスポート層は、エンドデータ伝送サービス及び透明な上部層プロトコルに信頼性の高いエンドを提供するために、処理を含むエラー制御とは、制御問題を流れます。上部層は、ユーザが、ユーザ、および信頼性のあるデータ経路によって2つのホストおよび制御設定との間で転送するためにホストエンティティにのみ高い見るように、基礎となるデータの通信の詳細を遮蔽します。私たちは通常、TCP、UDPは、このレベルである、と言います。ポート番号の両方「終了します。」
トランスポート層の担当者は、トランシーバに宅配会社または郵便局への1回の配信に送信するデータを担当する同社独自の宅配便を、メールの会社を表現するのと同じです。

<5>ネットワーク層
この層は、トランスポート層の転送先アドレスに応じて、エラーなしで、トランスポート層は、適切なルーティングおよびスイッチングノードを選択し、ソースパケットが送信されるIPは、2つのノード間の接続をアドレッシングを介して確立されます。それは、多くの場合、IPレイヤと言われています。この層は、我々は多くの場合、IPプロトコル層と言うものです。IPプロトコルは、インターネットの基盤です。
ネットワーク層は、大きな宅配会社の宅配便ネットワーク、異なる国家の物流センターに相当し、例えば、深センSF Expressから北京に送られた(例えば、土地のためにああ、空気と北京に直接飛ぶように見える)、SFに最初に行きます深センの物流センター、物流センター、その後、北京順義の流通センターから武漢へ武漢物流センター、物流センターから深センへ送られ、その後送りました。ネットワーク内のIPノードに相当流通センターそれぞれ、。

<6>のデータリンク層
バイトにビットを、次いでバイト組み合わせフレーミング、媒体にアクセスするためのリンク層アドレス(イーサネットMACアドレス)の使用、および実行エラー検出。
データリンク層は、2つの副層に分割される:論理リンク制御副層(LLC)サブレイヤ、メディアアクセス制御(MAC)。
MAC副層ハンドルCSMA / CDアルゴリズム、データ、フレーミングなどをチェックし、エラー; LLC副層は、最後のフィールドは、データリンク層のプロトコルを共有することができます定義されています。実際の使用では、LLC副層は必要ありません。
これは、右の例を見つけることができませんでした

物理層<7>
最終信号の伝送は、実際には、物理層の実装です。ビットストリームは、物理媒体を介して送信されます。レベル、速度およびケーブルピンの規定。共通機器(物理デバイスのさまざまな)ハブ、リピータ、モデム、ケーブル、ツイストペア、同軸ケーブル。これらの層は、物理的な伝送媒体です。
、自動車、電車、飛行機、船などの輸送中の配達、私たちの物理層と同等のものを、表現しています。

OSI通信機能:ピア通信のピアは
ソースから宛先へデータ・パケットを作成するために、OSIモデルの各層のソースは、ピア先層と通信しなければならない、ピアツーピア通信、この層は、ピア通信と呼ばれ通信。通信処理の各レイヤにおいて、独自のプロトコルを使用して、この層。

二つは、TCP / IP 5層モデル
TCP / IP 5層と7層OSIプロトコル対応は次の通りです。

各レイヤでは、そのような私たちは、データリンク層で使用している仕事上のスイッチなど、さまざまな作業装置、ネットワーク層での一般的なルータの作品です。

また、各層、異なるサービスの、すなわち、それぞれの層を達成するために、様々なプロトコルである。マップは、各層の主要プロトコルを示します。

図2に示すように、一般的なアプリケーション層プロトコルおよびトランスポート層、ネットワーク層プロトコル、例えばルータ等に層としてハードウェア

3つの一般的なアプリケーション層プロトコル:HTTP、FTP、SMTPの
トランスポート層:伝送制御プロトコルTCP、ユーザデータグラムプロトコル(UDP)
ネットワークレイヤ4つのプロトコル:ARPプロトコル、IPプロトコル、ICMPプロトコル、IGMPプロトコル。

ハブへの物理層は、スイッチは、データリンク層、ネットワーク層内のルータで動作します。

TCPプロトコルに基づいている3、TCPとUDPの違いやシナリオ、UDPベースの何

違い:
アプリケーションのニーズに応じて、トランスポート層は、異なるトランスポートプロトコル、コネクション指向のTCPおよびUDP接続の2種類が必要です。以下は、信頼できないネットワーク(のみベストエフォートサービス)であるが、TCPトランスポート層コネクション型プロトコルを使用する場合は、その後確実に全二重チャネルに相当この論理通信チャネル。論理的な通信路であるコネクションレスのUDPプロトコルを使用する場合、まだ信頼できないチャネルです。

应用场景:
TCP:提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

UDP:在传送数据之前不需要先建立连接。远地主机的传输层在收到UDP数据报后不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP却是一种最有效的工作方式。

基于TCP和UDP的协议:
基于TCP的有FTP、Telnet、SMTP、HTTP、POP3与DNS
基于UDP的有TFTP、SNMP与DNS
其中DNS既可以基于TCP,也可以基于UDP。

使用TCP和UDP的应用和应用层协议

TCP和UDP协议比较

4、TCP可靠传输的保证,拥塞控制目和过程

TCP通过下列方式来提供可靠性:

1、应用数据被分割成TCP认为最适合发送的数据块。TCP在三次握手建立连接过程中,会在SYN报文中使用MSS(Maximum Segment Size)选项功能,协商交互双方能够接收的最大段长MSS值。MSS是传输层TCP协议范畴内的概念,顾名思义,其标识TCP能够承载的最大的应用数据段长度,因此,MSS=MTU-20字节TCP报头-20字节IP报头,那么在以太网环境下,MSS值一般就是1500-20-20=1460字节。但是如果主机没有填写这一项,该值的默认大小为536字节。客户端与服务器端分别根据自己发包接口的MTU值计算出相应MSS值,并通过SYN报文告知对方.MSS是控制TCP报文段的大小,发送窗口(TCP中发送方可发送的最大数据)的大小由窗口值和拥塞窗口值共同确定;

2、 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。 (校验出包有错,丢弃报文段,不给出响应,TCP发送数据端,超时时会重发数据).

3、超时重传机制:当TCP发出一个数据后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。在未收到确认之前,这些已经发送的数据报将留在发送缓冲区,直到收到确认之后才清除已发送的数据.

4、既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。(对失序数据进行重新排序,然后才交给应用层).如果TCP的接收端必须丢弃重复的数据。(对于重复数据,能够丢弃重复数据)

5、TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。(TCP可以进行流量控制,防止较快主机致使较慢主机的缓冲区溢出)。一旦有一方来不及接受数据,势必会造成数据的丢失!!

6.以字节为单位的滑动窗口:

滑动窗口的基本原理可表示如下:

可以看到数据发送方维持了一个大小为20的发送窗口,其中发送前沿向前移动,强烈建议不向后移动,这个时候我们可以看到,当前发送方可以发送的字节序列从31-50为止,现在发送方可以发送的数据为20字节。

A已经发送了从31到41之间的11个字节序,其中32和33已经到达接收方,但31没有按序到达;

此时,B向A发出31的确认(表示31号没有收到),此时窗口值依然为20,因为此时B发送的是对31号的确认,A的发送窗口不能向前移动;随后B收到了31号字节,发送给A一个确认包,这个包的窗口值依然为20(假设窗口值不变),但此时确认号为34,这表明B已经收到了截至33号的所有数据,并把它们交付给了主机,然后将它们删除,B将接收窗口向后挪动3个单位,那么接受范围从34到53;随后,A接收到了B对31-33号数据的接收确认,A将发送窗口向后挪动3个单位,其中p2位置不变,此时代表A可以发送的字节序列为34-53;随后A的p2指针和p3重合,代表已经将所有可以发送的数据全部发送,但是还没有收到确认;

TCP的连接过程可表示为:

所以总结一下这个收发过程就是:
(1)客户端和服务器端各自建立套接字,通过彼此的套接字进行通信;
(2)服务器端绑定监听端口,然后监听,循环等待来自客户端的连接;
(3)一旦收到来自客户端的连接,进行三次握手,一旦连成功就fork()一个子进程来处理和当前客户端的连接,然后父进程继续监听客户端的连接;
(4)此后就是数据传输过程(如上图所示);
(5)一旦数据传输完毕就是放连接;

7.选择确认ACK:
选择确认是针对没有出错但是未按序到达的报文段,如果中间只是缺少一些报文段,那么发送方就可以不重传已发送的所有数据,而只是重传缺少的数据。课本上的具体例子如下:

拥塞控制:
1、产生拥塞的原因:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。即对资源的需求的总和大于可用资源
注意拥塞控制与流量控制的区别:拥塞控制是防止过多的数据注入网络中,使得网络中路由器或链路不致过载,有一个前提是,网络能够承受现有的网络负荷,是一个全局性过程;流量控制是指点对点通信的控制,做的是抑制发送端发送数据的速率,便于接收端来得及接收。
2、拥塞控制是一个动态的过程,通常使用网络负载(单位时间输入给网络的分组数量)和吞吐量(单位时间从网络输出的分组的数量)来进行比较:
当网络负载大于吞吐量,网络进入拥塞,严重甚至会产生死锁。

二、TCP拥塞控制方法
主要有四种算法:慢开始、拥塞避免、快重传、快恢复。

1、慢开始和拥塞避免
基于窗口的拥塞控制,在发送方维护一个拥塞窗口(cwnd),大小等于发送窗口,通过出现了超时来判断网络出现拥塞。慢开始的思路是一开始发送方发送一个字节,在收到接收方的确认,然后发送的字节数量增大一倍(也就是按照指数增长的速率),从小到大逐步增大cwnd,直到cwnd 达到慢开始门限(ssthresh),停止慢开始算法,使用拥塞避免算法,拥塞避免算法思路是增长速率变为线性增长,也就是每经过一个往返时间RTT就把发送方的cwnd加1,所以综上:
当cwnd < ssthresh ,使用慢开始算法;
当cwnd = ssthresh,可以使用慢开始算法,也可以使用拥塞算法;
当cwnd > ssthresh,使用拥塞算法;

2、快重传和快恢复
通过上面两个算法可以使得网络传输速率一直增大,直到出现超时,这时候需要将cwnd重新调整到1个字节开始,使用慢开始算法,同时需要将慢开始门限ssthresh调整为cwnd(超时点)的一半,继续执行慢开始、拥塞避免算法。如果收到3-ACK(发送方一连接收到3个对同一个报文段的重复确认),这种可能的情况是,并不是发生了拥塞,可能是报文丢失,所以发送方不执行慢开始算法,直接使用快重传算法,立即发送缺失的报文段。同时执行快恢复算法,将门限值(ssthresh)调整为此时cwnd的一半,并执行拥塞避免算法。

三、总结
从宏观上看,在连接建立开始到连接终止这个过程中,TCP传输的速率需要流量控制和拥塞控制,共同调整发送方的窗口,所以最终发送方的发送窗口的上限值为Min(rwnd,cwnd)。而拥塞控制,主要调控发送方的网络负载和吞吐量的相对大小,从慢开始(指数增长,增长率大)、拥塞避免算法(线性增长,增长率不变)一直增大速率,期间算法切换条件是慢开始门限值(ssthresh),若此增大期间出现超时,都需要将ssthresh = cwnd / 2, cwnd = 1(之后执行慢开始算法);若此增大期间出现3-ACK,则ssthresh=cwnd / 2, cwnd = ssthresh(之后执行拥塞避免算法),直至到连接终止结束。

おすすめ

転載: www.cnblogs.com/xjtu-lyh/p/12416763.html