TCPとの関係UDPソケットのhttpのWebSocket

--- ---復元コンテンツ始まります

OSI&TCP / IPモデル

明確にするためにtcp udp socket http websocket、古典的な知って最初の関係OSI7層モデルを、対応があるTCP/IP4層モデル。

 

TCP / IPモデルはわずか4を有しているOSIモデルは、7つの層を含んでいます。彼らは、ネットワーク層、トランスポート層及びアプリケーション層に対応する機能を有するが、他の層は同じではないが。 

  それぞれ、我々は、一般的に底部7階を使用してネットワークデータ伝送、物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層は、また、OSIの第一層と呼ば順次、第二層、⋯⋯第7層。

  TCP / IPモデルなしの特殊なセッション層とプレゼンテーション層、アプリケーション層への符号化やセッション制御機能を完了するには含まれ、これら二つの層の発現に関連付けられます。また、TCP / IPもOSIモデルとデータリンク層物理層には、ネットワークアクセス層を含みます。 

  OSIモデルのネットワーク層ではコネクションとコネクション指向の2つのサービスをサポートし、トランスポート層は、接続指向サービスをサポートしています。インターネットモデルのTCP / IP層はコネクションレスサービス、トランスポート層の接続指向およびコネクションレスサポートの両方のサービスをサポートしています。 

  TCP /少ないレベルに起因するIP、およびこれは、より簡単なように見えて、インターネット(INTERNET)までの契約上の開発のためのデファクトスタンダードとして、それがネットワーク相互接続となっています。しかし、実際のネットワークは、OSIモデルに基づいて構築されていないがあり、唯一のOSI参照モデルは、広く理論として使用されています。

 

図から分かるように、tcp udpトランスポート層の仕事は、http websocketアプリケーション層で動作するが、socketとして理解することができ、7層モデルのいずれにも属していないsocket隠れ層で作業し、アプリケーション層への中間トランスポート層。

数人の関係

socket自体は、プロトコルではなく、トランスポート層TCP/UDPプロトコルは、内部ユーザから隠され、カプセル化されてTCP/UDP送信は、唯一のインタフェース(API)を提供して完了するために、プログラマに呼び出す方法socketプログラミング。socketインターフェース、我々は使用することができるTCP/UDPプロトコルを。

オペレーティングシステムとインターフェースとの間の関係と同様の関係:ちょうどプロトコルスタック、操作機構のオペレーティングシステムとして、それは特定の実装であるだけでなく、外部のオペレータインタフェースを提供しなければなりません。これは、Win32プログラミング・インタフェースなどの標準プログラミング・インターフェースを提供するオペレーティングシステムのようである、しかし、プログラマが使用するウェブ開発、実行するために、インターフェイスを提供するプログラミング・インターフェースを。socketTCP/UDP
TCP/IPTCP/IPSocket

 

そして、我々は通常のウェブサイトで使用訪れるhttpプロトコルをベースにTCPアプリケーション層プロトコルのプロトコルに。httpプロトコルの最も顕著な特徴は、それが非接続状態であるということです、クライアントは、サーバが要求した後、自動的に接続、解放されます、各要求に対する応答を返送する必要が送り「短い接続を。」

数人の間の関係の概要

以下のように要約することができ、いくつかの関係:

http websocketアプリケーション層プロトコルは、socketインターフェイス呼び出すためtcp udpの通信網を達成するように、他のトランスポート層プロトコル。

tcp udp = "  socket =" http websocket

概要

要約すると、我々は直接呼び出すようにプログラムされていないtcp udpが、彼らのパッケージインタフェースを介してsocket通信します。我々は今、下を介してネットワーク上のほぼすべての通信は、されていることを言うことができますsocket行われ、すべてがありますSocket

 

 

 

 

サプリメント。

TCPとUDPの違い

  TCPはコネクション型であり、信頼性の高い伝送(データはデータの正確性を保証し、その順序を保証するために)、大量のデータ(ストリームモード)を送信するために、ゆっくりと、接続を確立することは、よりオーバヘッド(時間およびシステムリソース)を必要とします。

  TCP是一种流模式的协议,是面向连接的,也就是说,在连接持续的过程中,Socket 中收到的数据都是由同一台主机发出的(劫持什么的不考虑),因此,知道保证数据是有序的到达就行了,至于每次读取多少数据不关心。

  TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

  UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。

  关于TCP是一种流模式的协议,UDP是一种数据报模式的协议,这里要说明一下,TCP是面向连接的,也就是说,在连接持续的过程中,socket 中收到的数据都是由同一台主机发出的(劫持什么的不考虑),因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。

  而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。这时候,如果一次能读取超过一个报文的数据,则会乱套。比如,主机A向发送了报文P1,主机B发送了报文P2,如果能够读取超过一个报文的数据,那么就会将P1和P2的数据合并在了一 起,这样的数据是没有意义的。

 

TCP三次握手

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

  三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在 Socket 编程中,客户端执行connect()时。将触发三次握手。 

首先了解一下几个标志,SYN(synchronous),同步标志,ACK (Acknowledgement),即确认标志,seq应该是Sequence Number,序列号的意思,另外还有四次握手的fin,应该是final,表示结束标志。

  最初のハンドシェーク:クライアントがTCPパケットのSYNフラグを送信し、クライアントの位置がサーバポート接続を望んで示し、初期シーケンス番号X、シーケンス番号(シーケンス番号)フィールドのヘッダーに格納されます。

  第二のハンドシェイク:サーバーが確認パケット(ACK)応答を返します。すなわち、SYNフラグビットおよびACKフラグビットが同時に両方とも1であり、確認応答シーケンス番号(確認応答番号)、すなわち、の顧客のシーケンス番号+1に設定されている、X + 1。

  第三のハンドシェーク:クライアントは再び1に肯定応答パケット(ACK)SYNフラグビットが0である、ACKフラグビットを送信します。シーケンス番号フィールド+ ACKがサーバから送信され、相互に送信フィールドに決定する。書き込ま入れ、データセグメントのシーケンス番号+ 1。

 

ソケットストリーム(SOCK_STREAM)およびデータグラムソケット(SOCK_DGRAM):2つの一般的なタイプはソケットがあります。ストリーミングは、接続指向TCPでのサービスアプリケーションの接続指向のソケットであり、データグラムソケットソケットはコネクションレスで、UDPに対応するコネクションレスサービスです。

 

---終わり---コンテンツを復元

おすすめ

転載: www.cnblogs.com/fengfeng159/p/11104293.html