ネットワーク通信インフラ() - HTTP(TCP / IP)通信プロトコル

HTTP(ハイパーテキスト転送プロトコル)ハイパーテキスト転送プロトコル

ハイパーテキスト:

元のコンピュータだけの単純なテキスト形式、テキストはコンピュータの発達で、単純なテキスト形式を指して、そこにビデオ、写真、音楽および他のフォーマットがあって、ハイパーテキストは、元のテキストは、意味の拡張であります

トランスミッション:

送達媒体(例えば、同軸ケーブル、電話線、ケーブル)を送信(転送)と呼ばれるプロセスにおいて他の端末にコンピュータ端末によって送信されたバイナリデータパケットの原因であります

協定:

議定書は、条約や規範である、我々は規範を遵守する必要があり、唯一の情報交換の秩序ある行動に同じ仕様を使用し、一般的なプロトコルは以下のとおりです。SMTPTCPUDPFTP

ISO 7層のネットワークモデルとTCP / IPの4層モデルの概念

TCP/IP四层概念模型ISOモデルは、IOSの単純化モデルに基づいて確立され、より広く実用的なアプリケーションでは、次の2つのモデル間の関係は次のとおりです。
ネットワークの階層モデル

ISO 7層ネットワークモデル

ここに画像を挿入説明

TCP / IPの4層の概念モデル

TCP/IP四层概念模型

HTTPリクエストは、ネットワーク全体の要求を処理します

送信プロセス

場合と、アプリケーションTCPデータの送信は、データがプロトコルスタックに送られ、その後、個々の層まで、ネットワークを介してストリームに一連のビットとして扱います。受信されたデータの各レイヤは、いくつかのヘッダ情報を追加する必要があり、前記
发送过程

レセプション

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用
接收过程
在接收报文的过程中,报文的每一跳都会拆开MAC头,和封装入新的MAC头,具体的报文转发过程可以参考以下博文

浅谈通信网络(四)——报文转发(IP/MAC)

为什么有了 MAC 层还要走 IP 层呢?

mac 地址就好像个人的身份证号,人的身份证号和人户口所在的城市,出生的日期有关,但是和人所在的位置没有关系,人是会移动的,知道一个人的身份证号,并不能找到它这个人,mac 地址类似,它是和设备的生产者,批次,日期之类的关联起来,知道一个设备的 mac,并不能在网络中将数据发送给它,除非它和发送方的在同一个网络内。所以要实现机器之间的通信,还需要有 ip 地址的概念,ip 地址表达的是当前机器在网络中的位置,类似于城市名+道路号+门牌号的概念。通过 ip 层的寻址,我们能知道按何种路径在全世界任意两台 Internet 上的的机器间传输数据。

IP协议和TCP/UDP协议

IP协议

TCPUDP 是两种最为著名的传输层协议,他们都是使用 IP 作为网络层协议。IP协议提供了一组数据报文服务,每组分组报文都是由网络独立处理和分发,就像寄送快递包裹一样,为了实现这个功能,每个 IP 报文必须包含一个目的地址的字段;就像我们寄送快递都需要写明收件人信息,但是和我们寄送快递一样,也可能会出现包裹丢失问题,所以 IP 协议只是一个“尽力而为”的协议,在网络传输过程中,可能会发生报文丢失、报文顺序打乱,重复发送的情况。IP 协议层之上的传输层,提供了两种可以选择的协议,TCPUPD。这两种协议都是建立在 IP 层所提供的服务基础上,根据应用程序的不同需求选择不同方式的传输;

TCP/IP

TCP/IP 协议你一定听过,TCP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP 协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDPICMPARP 等等,共同构成了一个复杂但有层次的协议栈。

TCP 协议能够检测和恢复 IP 层提供的主机到主机的通信中可能发生的报文丢失、重复及其他错误。TCP 提供了一个可信赖的字节流通道,这样应用程序就不需要考虑这些问题。同时,TCP 协议是一种面向连接的协议,在使用 TCP 进行通信之前,两个应用程序之间需要建立一个 TCP 连接,而这个连接又涉及到两台电脑需要完成握手消息的交换。

TCP三次握手

由于 TCP 协议是一种可信的传输协议,所以在传输之前,需要通过三次握手建立一个连接,所谓的三次握手,就是在建立 TCP 链接时,需要客户端和服务端总共发送 3 个包来确认连接的建立
三次握手

TCP四次挥手

四次挥手表示 TCP 断开连接的时候,需要客户端和服务端总共发送 4 个包以确认连接的断开;客户端或服务器均可主动发起挥手动作(因为 TCP 是一个全双工协议),在socket 编程中,任何一方执行 close() 操作即可产生挥手
四次挥手

为什么握手只需要3次,挥手需要四次

三次握手是因为因为当 Server 端收到 Client 端的 SYN 连接请求报文后,可以直接发送 SYN+ACK 报文。其中 ACK 报文是用来应答的,SYN 报文是用来同步的。但是关闭连
接时,当 Server 端收到 FIN 报文时,很可能并不会立即关闭 SOCKET(因为可能还有消息没处理完),所以只能先回复一个 ACK 报文,告诉 Client 端,“你发的 FIN 报文我收到了”。只有等到我 Server 端所有的报文都发送完了,我才能发送 FIN 报文,因此不能一起发送。故需要四次挥手。

TCP数据传输过程的流量控制(滑动窗口)和拥塞控制

建立可靠连接以后,就开始进行数据传输了。在通信过程中,最重要的是数据包,也就是协议传输的数据。如果数据的传送与接收过程当中出现收方来不及接收的情况,这时就需要对发方进行控制以免数据丢失。利用滑动窗口机制可以很方便的在 TCP 连接上实现对发送方的流量控制。TCP 的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数。

(1)滑动窗口协议

滑动窗口(Sliding window)是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,同时发送数据,导致中间节点阻塞掉包,谁也发不了数据,所以就有了滑动窗口机制来解决此问题;发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口

(2)发送窗口

就是发送端允许连续发送的幀的序号表。发送端可以不等待应答而连续发送的最大幀数称为发送窗口的尺寸。

(3)接收窗口

接收方允许接收的帧的序号表,凡落在 接收窗口内的帧,接收方都必须处理,落在接收窗口外的帧被丢弃。接收方每次允许接收的幀数称为接收窗口的尺寸。

(4)滑动窗口调整过程(慢开始&线性增长)

作業プロセスの輻輳制御

UDP / IP

UDP契約はしませんIP修理に作ら間違った層が、の単純な拡張IP、プロトコル「ベストエフォート」データパケットサービスの代わりにホスト間でのアプリケーションは、その使用の間の仕事に彼を可能にUDP合意私たちは、オーダーの問題のうち、アカウントのパケット損失を考慮する必要があります。典型的なアプリケーションは、ライブです。

TCPとUDPの違い

  • TCPこれは、接続指向であるUDPコネクションレスであります
  • UDP プログラムの構造は、「ベストエフォート」の送信の唯一のHTTP拡張は比較的簡単です
  • TCPストリームは、バイト指向でUDP報告されたデータに基づいています
  • TCPデータの精度を確認し、UDPパケットロス月
  • TCP保証データの順序、UDP保証するものではありません。

なぜTCPの送信は信頼性があるのですか?

  1. 信頼性の高い接続を確保するためのスリーウェイハンドシェイク・プロトコル
  2. フォー信頼性の高い伝送を確保するためのプロトコルを振っ
  3. 謝辞再送メカニズム
    • 両国間の同期「確認番号のシーケンス番号+ +ウィンドウサイズ情報は」再送信、フロー制御の基礎確認された場合に接続を確立するためのスリーウェイハンドシェイク
    • 送信処理、チェックサム検証が失敗した場合、パケットの損失や遅延、送信側再送
  4. パケット並べ替え
    • 専用のTCPシーケンス番号SNフィールド、リオーダーのデータが提供されてもよいです
  5. 流量制御
    • ウィンドウとタイマーを使用してください。TCPウィンドウは、当事者で送受信できるデータの最大量を指定します
  6. 輻輳制御
    TCP輻輳制御アルゴリズムは、4つのコアコンポーネントで構成されます。
    • 「スロースタート」(スロースタート)
    • 「輻輳回避」(輻輳回避)
    • 「高速再送信」(高速再送信)
    • 「クイックリカバリ」(高速リカバリ)
公開された18元の記事 ウォンの賞賛1 ビュー3677

おすすめ

転載: blog.csdn.net/weixin_29053561/article/details/103944787