中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

地方網(wǎng)站怎么做推廣什么平臺(tái)可以發(fā)廣告引流

地方網(wǎng)站怎么做推廣,什么平臺(tái)可以發(fā)廣告引流,做網(wǎng)站的工作流程,鄂州網(wǎng)站建設(shè)哪家好文章目錄 第五章 運(yùn)輸層5.1 運(yùn)輸層協(xié)議概述5.1.1 進(jìn)程之間的通信5.1.2 運(yùn)輸層的兩個(gè)主要協(xié)議5.1.3 運(yùn)輸層的端口 5.2 用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP5.2.1 UDP概述5.2.2 UDP的首部格式 5.3 傳輸控制協(xié)議TCP概述5.3.1 TCP最主要的特點(diǎn)5.3.2 TCP的連接 5.4 可靠傳輸?shù)墓ぷ髟?.4.1 停止等待協(xié)…

文章目錄

  • 第五章 運(yùn)輸層
    • 5.1 運(yùn)輸層協(xié)議概述
      • 5.1.1 進(jìn)程之間的通信
      • 5.1.2 運(yùn)輸層的兩個(gè)主要協(xié)議
      • 5.1.3 運(yùn)輸層的端口
    • 5.2 用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP
      • 5.2.1 UDP概述
      • 5.2.2 UDP的首部格式
    • 5.3 傳輸控制協(xié)議TCP概述
      • 5.3.1 TCP最主要的特點(diǎn)
      • 5.3.2 TCP的連接
    • 5.4 可靠傳輸?shù)墓ぷ髟?/li>
      • 5.4.1 停止等待協(xié)議
      • 5.4.2 連續(xù)ARQ協(xié)議
    • 5.5 TCP報(bào)文段的首部格式
    • 5.6 TCP可靠傳輸?shù)膶?shí)現(xiàn)
      • 5.6.1 以字節(jié)為單位的滑動(dòng)窗口
      • 5.6.2 超時(shí)重傳時(shí)間的選擇
      • 5.6.3 選擇確認(rèn)SACK
    • 5.7 TCP的流量控制
      • 5.7.1 利用滑動(dòng)窗口實(shí)現(xiàn)流量控制
      • 5.7.2 TCP的傳輸效率
    • 5.8 TCP的擁塞控制
      • 5.8.1 擁塞控制的一般原理
      • 5.8.2 TCP的擁塞控制方法
      • 5.8.3 主動(dòng)隊(duì)列管理AQM
    • 5.9 TCP的運(yùn)輸連接管理
      • 5.9.1 TCP的連接建立
      • 5.9.2 TCP的連接釋放
      • 5.9.3 TCP的有限狀態(tài)機(jī)


第五章 運(yùn)輸層

  • 運(yùn)輸層的作用
  • 端口和套接字的意義
  • 無(wú)連接的UDP的特點(diǎn)
  • 面向連接的TCP的特點(diǎn)
  • 在不可靠網(wǎng)絡(luò)上時(shí)先可靠傳輸?shù)脑?/li>
  • TCP的滑動(dòng)窗口,流量控制,擁塞控制和連接管理

5.1 運(yùn)輸層協(xié)議概述

5.1.1 進(jìn)程之間的通信

網(wǎng)絡(luò)層為主機(jī)之間提供通信,運(yùn)輸層為應(yīng)用進(jìn)程提供端到端的邏輯通信。
通信的真正端點(diǎn)是主機(jī)中的進(jìn)程,即應(yīng)用進(jìn)程之間的通信是端到端的通信。
運(yùn)輸層的復(fù)用和分用
即發(fā)送方的不同進(jìn)程通過(guò)不同的端口號(hào)使用同一個(gè)運(yùn)輸層協(xié)議,接收方的運(yùn)輸層則把收到的報(bào)文根據(jù)端口號(hào)分發(fā)給不同的進(jìn)程。

5.1.2 運(yùn)輸層的兩個(gè)主要協(xié)議

運(yùn)輸層的兩個(gè)主要協(xié)議是 傳輸控制協(xié)議 TCP 和 用戶(hù)數(shù)據(jù)報(bào)協(xié)議 UDP,他們都有復(fù)用和分用,和檢錯(cuò)的功能。
UDP 的特點(diǎn):無(wú)連接、盡最大努力交付、面向報(bào)文、無(wú)擁塞控制、支持一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多,首部開(kāi)銷(xiāo)小。
TCP 的特點(diǎn):面向連接的、點(diǎn)對(duì)點(diǎn)通信、提供可靠傳輸、全雙工通信、面向字節(jié)流。
UDP
接收方的主機(jī)收到 UDP 后不需要發(fā)出確認(rèn)。
TCP
TCP 傳送數(shù)居前要建立連接,傳送完成后要釋放連接。
TCP 不提供廣播或多播服務(wù)。
因?yàn)?TCP 的功能較多,所以首部很長(zhǎng),且占用處理器資源。


在這里插入圖片描述


5.1.3 運(yùn)輸層的端口

運(yùn)輸層使用 16 位(即兩字節(jié))端口號(hào)來(lái)標(biāo)志一個(gè)端口。端口號(hào)用來(lái)標(biāo)志本計(jì)算機(jī)應(yīng)用層中的不同進(jìn)程。不同計(jì)算機(jī)間的端口沒(méi)有關(guān)聯(lián)。
這里的端口是軟件端口,作為交互的地址使用,不同于路由器上的硬件端口。
端口號(hào)的分配
運(yùn)輸層的端口號(hào)分為服務(wù)器端使用的端口號(hào)和客戶(hù)端使用的端口號(hào)。
服務(wù)器端的端口號(hào)包括 0~49151,其中 0~1023 是熟知端口號(hào)(又稱(chēng)系統(tǒng)端口號(hào)),剩下的是登記端口號(hào)。
客戶(hù)端使用的端口號(hào)包括 49152~65535。這些端口號(hào)是給某個(gè)客戶(hù)進(jìn)程暫時(shí)使用的,通信結(jié)束后端口號(hào)就要恢復(fù)未分配狀態(tài)。


在這里插入圖片描述


5.2 用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP

5.2.1 UDP概述

UDP 的特點(diǎn):無(wú)連接、盡最大努力交付、面向報(bào)文、無(wú)擁塞控制、支持一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多,首部開(kāi)銷(xiāo)小。

5.2.2 UDP的首部格式

UDP 的首部總共 8 個(gè)字節(jié),只有四個(gè)字段:源端口、目的端口、長(zhǎng)度、檢驗(yàn)和。
如果接收方發(fā)現(xiàn)報(bào)文中的目的端口號(hào)不對(duì),就丟棄報(bào)文,并使用 ICMP 發(fā)送“端口不可達(dá)”差錯(cuò)報(bào)文給發(fā)送方。ICMP 的應(yīng)用 tracert 就是使用了 UDP 報(bào)文。
因?yàn)?UDP 的通信之間是無(wú)連接的,所以雖然要用到端口號(hào),但是不用套接字(TCP 必須要在套接字之間建立連接)。
UDP 的檢驗(yàn)和用來(lái)檢驗(yàn)整個(gè) UDP 報(bào)文的差錯(cuò)。
UDP 的差錯(cuò)檢驗(yàn)方法是各個(gè) 4 字節(jié)段的反碼求和,和作為檢驗(yàn)和序列放入檢驗(yàn)和字段。檢驗(yàn)時(shí)對(duì)數(shù)據(jù)報(bào)各個(gè) 4 字節(jié)段反碼求和,若每一位都是 1 則無(wú)錯(cuò)。
這種差錯(cuò)檢驗(yàn)方法的檢錯(cuò)能力不強(qiáng),但是處理起來(lái)快。

5.3 傳輸控制協(xié)議TCP概述

5.3.1 TCP最主要的特點(diǎn)

TCP 的特點(diǎn):面向連接的、點(diǎn)對(duì)點(diǎn)通信、提供可靠傳輸、全雙工通信、面向字節(jié)流。
面向連接:使用 TCP 前要先建立連接,通信完后要釋放連接。
點(diǎn)對(duì)點(diǎn)通信。
可靠傳輸:無(wú)差錯(cuò)、不丟失、無(wú)重復(fù)、按序到達(dá)。
全雙工通信:TCP 的兩端都設(shè)有發(fā)送緩存和接收緩存。發(fā)送時(shí),應(yīng)用程序把數(shù)據(jù)放到 TCP 的發(fā)送緩存后,TCP 在合適的時(shí)候把數(shù)據(jù)發(fā)送出去。接收時(shí),TCP 把收到的數(shù)據(jù)放入接收緩存,應(yīng)用進(jìn)程合適時(shí)讀取緩存中的數(shù)據(jù)。
面向字節(jié)流:流是流入到進(jìn)程或從進(jìn)程流出的字節(jié)序列。TCP 把應(yīng)用進(jìn)程交下來(lái)的數(shù)據(jù)看成一串無(wú)結(jié)構(gòu)的字節(jié)流。
TCP 的報(bào)文長(zhǎng)度是根據(jù)接收窗口和網(wǎng)絡(luò)擁塞程度決定。如果應(yīng)用進(jìn)程一次往發(fā)送緩存中放了很長(zhǎng)的數(shù)據(jù),那 TCP 可能會(huì)把它劃分為多個(gè)短的數(shù)據(jù)塊發(fā)送,如果應(yīng)用進(jìn)程一次只發(fā)來(lái)一個(gè)字節(jié),TCP 也可以等積累足夠多的字節(jié)后再把它們構(gòu)成報(bào)文段發(fā)出去。


在這里插入圖片描述


5.3.2 TCP的連接

IP 地址加上端口號(hào)稱(chēng)為套接字,套接字就是 TCP 連接的端點(diǎn)。
套接字不是應(yīng)用進(jìn)程,也不是端口。
套接字的格式: IP地址:端口號(hào)(如 192.168.100.2:80)
每一條 TCP 連接唯一地被它地兩個(gè)端點(diǎn)的套接字所確定。

5.4 可靠傳輸?shù)墓ぷ髟?/h3>

5.4.1 停止等待協(xié)議

停止等待協(xié)議用來(lái)在不可靠的傳輸網(wǎng)絡(luò)上實(shí)現(xiàn)可靠通信。
原理:每發(fā)送完一個(gè)分組就停止發(fā)送,等待對(duì)方的確認(rèn),收到確認(rèn)后再發(fā)送下一個(gè)分組。分組需要進(jìn)行編號(hào)。
出現(xiàn)差錯(cuò)
如果發(fā)送方發(fā)送的數(shù)據(jù)在傳輸過(guò)程丟失了,或者到達(dá)了接收方但是報(bào)文內(nèi)容出了差錯(cuò),那么接收方都不會(huì)發(fā)送任何信息。這時(shí)發(fā)送方超時(shí)沒(méi)有收到確認(rèn),就會(huì)進(jìn)行重傳。
超時(shí)重傳是超過(guò)一定時(shí)間沒(méi)收到確認(rèn)就要重傳剛發(fā)送過(guò)的分組。實(shí)現(xiàn)方式是每發(fā)送完一個(gè)分組就設(shè)置一個(gè)超時(shí)計(jì)時(shí)器,重傳時(shí)間比平均往返時(shí)間長(zhǎng)一些,這又稱(chēng)自動(dòng)重傳請(qǐng)求 ARQ。
這里要注意:
發(fā)送方在發(fā)送完一個(gè)分組后,必須暫時(shí)保留已發(fā)送的分組的副本,以在超時(shí)重傳時(shí)使用,只有收到相應(yīng)的確認(rèn)后才能清除保留的副本(對(duì)照發(fā)送緩存和發(fā)送窗口的后沿來(lái)理解)
分組和確認(rèn)分組都需要進(jìn)行編號(hào),以明確是哪個(gè)分組收到了確認(rèn),哪個(gè)沒(méi)有收到(對(duì)照 TCP 報(bào)文首部中的序號(hào)和確認(rèn)號(hào)來(lái)理解)。
超時(shí)計(jì)時(shí)器的重傳時(shí)間要比平均往返時(shí)間長(zhǎng)一些,具體重傳時(shí)間設(shè)為多少是一個(gè)很復(fù)雜的問(wèn)題。
確認(rèn)丟失和確認(rèn)遲到
如果接收方發(fā)送給發(fā)送方的確認(rèn)丟失或遲到了,那么發(fā)送方超時(shí)未收到確認(rèn),也會(huì)進(jìn)行重傳。而接收方收到重傳的報(bào)文后,會(huì)丟棄這個(gè)重復(fù)的報(bào)文,并向發(fā)送方發(fā)送確認(rèn)。發(fā)送方收到了重復(fù)的確認(rèn)會(huì)直接丟棄。
若對(duì)方收到重復(fù)分組,就丟棄該分組,同時(shí)還要發(fā)送確認(rèn)。接收方收到重復(fù)的確認(rèn)后不做任何操作。
提高信道利用率
停止等待協(xié)議的信道利用率很低,為了提高效率,采用了流水線(xiàn)傳輸方式,這用到了連續(xù) ARQ 協(xié)議和滑動(dòng)窗口協(xié)議
流水線(xiàn)傳輸就是發(fā)送方可以連續(xù)發(fā)送多個(gè)分組,而不必每發(fā)完一個(gè)分組都要停下來(lái)等待對(duì)方的確認(rèn)。


在這里插入圖片描述


5.4.2 連續(xù)ARQ協(xié)議

連續(xù) ARQ 協(xié)議用來(lái)提高利用率,它規(guī)定:
發(fā)送方維持一個(gè)發(fā)送窗口,凡位于發(fā)送窗口內(nèi)的分組都可以連續(xù)發(fā)送出去,而不需要等待對(duì)方確認(rèn)。發(fā)送方每收到一個(gè)確認(rèn),就根據(jù)確認(rèn)號(hào)將發(fā)送窗口向前滑動(dòng)一定距離。
接收方采用累積確認(rèn):不必對(duì)收到的分組逐個(gè)發(fā)送確認(rèn),而是只需對(duì)按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn),表明這個(gè)分組以前的所有分組都正確收到。
由上可見(jiàn),連續(xù) ARQ 協(xié)議是在滑動(dòng)窗口上實(shí)現(xiàn)的?;瑒?dòng)窗口協(xié)議是 TCP 協(xié)議的精髓。

5.5 TCP報(bào)文段的首部格式

TCP 傳輸?shù)臄?shù)據(jù)單元是報(bào)文段,一個(gè) TCP 報(bào)文段分為首部和數(shù)據(jù)兩部分。
TCP 報(bào)文段首部的前 20 個(gè)字節(jié)是固定的,后面有 4N 個(gè)字節(jié)是按需增加的選項(xiàng)。


在這里插入圖片描述


首部各字段的作用:
序號(hào):在一個(gè) TCP 連接中傳送的字節(jié)流中的每一個(gè)字節(jié)都要按順序編號(hào)。首部中的序號(hào)字段存儲(chǔ)本報(bào)文段發(fā)送的數(shù)據(jù)(是數(shù)據(jù),不包含首部)的第一個(gè)字節(jié)的序號(hào)。序號(hào)字段只有 32 位,序號(hào)值不能超過(guò) 2^32。
理解:數(shù)據(jù)部分的每個(gè)字節(jié)都會(huì)占用一個(gè)序號(hào)。
確認(rèn)號(hào):首部中的確認(rèn)號(hào)是期望收到對(duì)方下一個(gè)報(bào)文端的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。若確認(rèn)號(hào)為 N,表明到 N-1 為止的數(shù)據(jù)都已正確收到。
數(shù)據(jù)偏移:數(shù)據(jù)部分距報(bào)文起始點(diǎn)的偏移,實(shí)際等于首部長(zhǎng)度。首部長(zhǎng)度在 20~60 字節(jié)之間。
保留。保留為今后使用。
6個(gè)控制位:
緊急 URG:當(dāng) URG=1,此報(bào)文段需要盡快傳送,優(yōu)先級(jí)高。
確認(rèn) ACK:當(dāng) ACK=1,確認(rèn)號(hào)字段有效。連接建立后的所有報(bào)文段都必須令 ACK=1。
推送 PSH:當(dāng) PSH=1,接收方收到報(bào)文后盡快交付應(yīng)用進(jìn)程,而非等緩存滿(mǎn)了再交付。
復(fù)位 RST:當(dāng) RST=1,表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(cuò),需要釋放連接再重新建立連接。
同步 SYN:當(dāng) SYN=1,表明這個(gè)一個(gè)連接報(bào)文。如果 ACK=0 則是連接請(qǐng)求報(bào)文,如果 ACK=1 表明這是連接接受報(bào)文。
終止 FIN:當(dāng) FIN=1,表明發(fā)送方已發(fā)送完數(shù)據(jù),并要求釋放連接。
窗口:窗口指的是發(fā)送本報(bào)文段的一方的接收窗口。首部中的窗口字段指出了從本報(bào)文段中的確認(rèn)號(hào)算起,當(dāng)前允許對(duì)方發(fā)送的數(shù)據(jù)量(以字節(jié)為單位)。
檢驗(yàn)和:檢驗(yàn)整個(gè)數(shù)據(jù)報(bào)。
緊急指針,當(dāng) URG=1 時(shí)才有意義,指出本報(bào)文段中的緊急數(shù)據(jù)的字節(jié)數(shù)。即使在窗口為 0 時(shí)也可以發(fā)送緊急數(shù)據(jù)。
選項(xiàng):長(zhǎng)度可變,最長(zhǎng) 40 字節(jié)。選項(xiàng)有最大報(bào)文段長(zhǎng)度 MSS、窗口擴(kuò)大選項(xiàng)、時(shí)間戳選項(xiàng)、選擇確認(rèn)選項(xiàng)等。
最大報(bào)文段長(zhǎng)度 MSS
最大報(bào)文段長(zhǎng)度 MSS 是每一個(gè) TCP 報(bào)文段中的數(shù)據(jù)字段的最大長(zhǎng)度,而不是整個(gè) TCP 報(bào)文段的最大長(zhǎng)度。
MSS 并不是一個(gè)標(biāo)準(zhǔn)固定值,而是可以由連接雙方各自確定的值,且兩個(gè)傳送方向可以有不同的 MSS 值。MSS 的值可能達(dá)到幾千字節(jié)。
連接建立時(shí),雙方都把自己支持的 MSS 寫(xiě)入這個(gè)選項(xiàng)字段中,以后就按照這個(gè)值傳送數(shù)據(jù)。
如果未填寫(xiě)這一選項(xiàng),那么 MSS 的默認(rèn)值是 536 字節(jié)長(zhǎng)。
窗口擴(kuò)大選項(xiàng)
TCP 中窗口字段長(zhǎng)度是 16 位,因此最大的窗口大小是 64K 字節(jié)。但是對(duì)于衛(wèi)星網(wǎng)絡(luò),因?yàn)閭鞑r(shí)延和帶寬都很大,為了獲得高吞吐率就需要更大的窗口。
時(shí)間戳選項(xiàng)
時(shí)間戳選項(xiàng)字段中包括時(shí)間戳值字段和時(shí)間戳回送回答字段。
時(shí)間戳選項(xiàng)用來(lái)計(jì)算往返時(shí)間 RTT。發(fā)送方把發(fā)送報(bào)文時(shí)的時(shí)間放入時(shí)間戳字段,接收方在確認(rèn)該報(bào)文時(shí)把時(shí)間戳字段值復(fù)制到它的時(shí)間戳回送回答字段中。這樣發(fā)送方收到確認(rèn)報(bào)文后就可以計(jì)算出 RTT 來(lái)。
另一方面時(shí)間戳選項(xiàng)還可以用來(lái)防止序號(hào)繞回,因?yàn)?TCP 序號(hào)字段只有 32 位,序號(hào)值不能超過(guò) 2^32,所以可能出現(xiàn)具有相同序號(hào)的報(bào)文段,時(shí)間戳可以用來(lái)區(qū)分這樣的報(bào)文段。

5.6 TCP可靠傳輸?shù)膶?shí)現(xiàn)

5.6.1 以字節(jié)為單位的滑動(dòng)窗口

滑動(dòng)窗口是以字節(jié)為單位的,每個(gè)字節(jié)都有序號(hào)。


在這里插入圖片描述


TCP 使用滑動(dòng)窗口機(jī)制。發(fā)送窗口里的序號(hào)表示允許發(fā)送的序號(hào),發(fā)送窗口后沿的后面部分表示已發(fā)送且已收到了確認(rèn),發(fā)送窗口前沿的前面部分表示不允許發(fā)送。發(fā)送窗口的前沿會(huì)不斷向前移動(dòng)(也可能不動(dòng)或后移),發(fā)送窗口的后沿可能不動(dòng)(沒(méi)有收到新的確認(rèn))也可能前移(收到了新的確認(rèn)),不可能后移。
接收方會(huì)把接收窗口的值放到窗口字段中發(fā)給發(fā)送方,發(fā)送窗口的大小不能超過(guò)接收方傳來(lái)的報(bào)文首部中的窗口字段值。
接收方發(fā)回的確認(rèn)號(hào)是自己按序收到的數(shù)據(jù)的最高序號(hào)加1。
發(fā)送方會(huì)根據(jù)接收方發(fā)來(lái)的確認(rèn)號(hào)和窗口字段來(lái)構(gòu)造自己的發(fā)送窗口,確認(rèn)號(hào)決定了發(fā)送窗口的后沿,窗口字段值和擁塞窗口共同決定發(fā)送窗口的大小。
發(fā)送窗口中的數(shù)據(jù)是可以直接連續(xù)發(fā)送出去的,所以發(fā)送窗口越大,可能獲得的傳輸效率越高。

一個(gè)使用滑動(dòng)窗口進(jìn)行可靠傳輸?shù)睦?br /> A 為發(fā)送方,B 為接收方。
例子的開(kāi)始時(shí),A 根據(jù) B 發(fā)來(lái)的窗口值(20)和確認(rèn)號(hào)(31)構(gòu)建了自己的發(fā)送窗口,如上圖所示。此時(shí)發(fā)送窗口內(nèi)的數(shù)據(jù)都是允許發(fā)送但尚未發(fā)送的數(shù)據(jù)。
現(xiàn)在 A 發(fā)送了 11 個(gè)字節(jié)的數(shù)據(jù)(序號(hào) 31-41),如下圖所示。此時(shí)發(fā)送窗口內(nèi)的數(shù)據(jù)包含已發(fā)送但未收到確認(rèn)(P1P2)的數(shù)據(jù)和允許發(fā)送但尚未發(fā)送的數(shù)據(jù)(P2P3)兩部分。
這時(shí)發(fā)送窗口的狀態(tài)需要三個(gè)指針來(lái)描述:P1 指向發(fā)送窗口的后沿,P2 指向允許發(fā)送但尚未發(fā)送的第一個(gè)字節(jié),P3 指向發(fā)送窗口的前沿外即將進(jìn)入發(fā)送窗口的字節(jié)。P2~P3 之間的部分又稱(chēng)可用窗口。
然后 B 收到了序號(hào)為 32,33 的數(shù)據(jù),但是沒(méi)有收到序號(hào)為 31 的數(shù)據(jù),因?yàn)?B 只對(duì)按序收到的數(shù)據(jù)中的最高序號(hào)進(jìn)行確認(rèn),所以此時(shí) B 發(fā)送給 A 的確認(rèn)報(bào)文段中確認(rèn)號(hào)仍為 31。


在這里插入圖片描述


接下來(lái) B 收到了序號(hào)為 31 的數(shù)據(jù),并把 31~33 的數(shù)據(jù)交付給應(yīng)用進(jìn)程,然后刪除了這些數(shù)據(jù)。B 的接收窗口也向前移動(dòng)了 3 個(gè)序號(hào),同時(shí)給 A 發(fā)送確認(rèn)號(hào)為 34 的確認(rèn)報(bào)文。
A 收到確認(rèn)號(hào)為 33 的報(bào)文后,也將發(fā)送窗口向前滑動(dòng)了 3 個(gè)序號(hào),此時(shí)發(fā)送窗口大小沒(méi)變,但是可用窗口變大了。


在這里插入圖片描述


接下來(lái) A 繼續(xù)把可用窗口中的數(shù)據(jù)發(fā)送完后,P2 指針向前移動(dòng)和 P3 重合,此時(shí) A 的可用窗口已減小到 0,要暫時(shí)停止發(fā)送,等待收到確認(rèn)。
如果 A 超時(shí)未收到確認(rèn)報(bào)文,就重傳這部分?jǐn)?shù)據(jù),直到收到 B 的確認(rèn)報(bào)文為止。


在這里插入圖片描述


發(fā)送緩存
發(fā)送方維持一個(gè)發(fā)送緩存,其中存放
準(zhǔn)備發(fā)送的數(shù)據(jù)。
已經(jīng)發(fā)送但尚未收到確認(rèn)的數(shù)據(jù)。
發(fā)送窗口是發(fā)送緩存的一部分。已被確認(rèn)的的數(shù)據(jù)會(huì)被從發(fā)送緩存中刪除,因此發(fā)送緩存和發(fā)送窗口的后沿是重合的。
應(yīng)用進(jìn)程向發(fā)送緩存寫(xiě)入數(shù)據(jù)時(shí)不能太快,否則填滿(mǎn)發(fā)送緩沖后就沒(méi)有存放數(shù)據(jù)的空間了。
實(shí)際發(fā)送/接收緩存和窗口中的字節(jié)數(shù)是非常大的。
接收緩存
接收方維持一個(gè)接收緩存,用來(lái)存放:
按序到達(dá)的、尚未被接收應(yīng)用程序讀取的數(shù)據(jù)。
未按序到達(dá)的數(shù)據(jù)。
接收窗口是接收緩存的一部分。如果應(yīng)用程序來(lái)不及讀取收到的數(shù)據(jù),接收緩存就會(huì)被填滿(mǎn),使接收窗口減小到 0,反之接收窗口會(huì)增大,但最大不能超過(guò)接收緩存的大小。
TCP 沒(méi)有明確規(guī)定如何處理未按序到達(dá)的數(shù)據(jù),但通常是先臨時(shí)存放在接收窗口中,等字節(jié)流中缺少的字節(jié)到達(dá)后,再交付給上層的應(yīng)用進(jìn)程。
累積確認(rèn)
TCP 要求接收方必須有累積確認(rèn)的功能,這樣可以減小傳輸開(kāi)銷(xiāo)。
接收方可以在合適的時(shí)候發(fā)送確認(rèn),也可以在自己有數(shù)據(jù)要發(fā)送時(shí)把確認(rèn)信息捎帶上。
但是注意接收方不能過(guò)分推遲發(fā)送確認(rèn),以避免發(fā)送方產(chǎn)生不必要的重傳。如果收到一連串具有最大長(zhǎng)度的報(bào)文段,則必須每隔一個(gè)報(bào)文段就發(fā)送一個(gè)確認(rèn)。
TCP 的通信是全雙工通信。通信中每一方都在發(fā)送和接收?qǐng)?bào)文段,因此每一方都有自己的發(fā)送窗口和接收窗口。

5.6.2 超時(shí)重傳時(shí)間的選擇

重傳時(shí)間的選擇是 TCP 最復(fù)雜的問(wèn)題之一。
因?yàn)?TCP 的報(bào)文可能只在一個(gè)高速局域網(wǎng)中傳送,也可能要經(jīng)過(guò)多個(gè)低速率的網(wǎng)絡(luò),所以重傳時(shí)間不能設(shè)為固定值。
TCP 采用了一種自適應(yīng)算法,它依據(jù)往返時(shí)間 RTT 來(lái)設(shè)置超時(shí)重傳時(shí)間。
TCP 保留了一個(gè) 歷史 RTT 的加權(quán)平均結(jié)果 RTTs。
RTTs 的計(jì)算方式:新的 RTTs = (1-a)舊的 RTTs + a新的RTT。a 建議取 0.125。
超時(shí)重傳時(shí)間 RTO 比 RTTs 略大:RTO = RTTs + 4*RTTd。
RTTd 是 RTT 的偏差的加權(quán)平均值:新的 RTTd = (1-b)舊的 RTTd + b|RTTs - 新的RTT|。b 建議取 0.25。
具體實(shí)現(xiàn)
要解決當(dāng)報(bào)文重傳的特殊情況。
實(shí)現(xiàn)方式:報(bào)文段每重傳一次,就把 RTO 增加一倍,當(dāng)不重傳了,就繼續(xù)使用上述公式計(jì)算 RTO。

5.6.3 選擇確認(rèn)SACK

當(dāng)報(bào)文未按序到達(dá)(到達(dá)的字節(jié)不連續(xù),一段一段的),發(fā)送方需要重傳收到的確認(rèn)號(hào)之后的所有報(bào)文,而有些確認(rèn)號(hào)之后的不連續(xù)的報(bào)文實(shí)際上已經(jīng)到了,全部重傳會(huì)浪費(fèi)資源。選擇確認(rèn)用來(lái)解決這種情況。
首部的選項(xiàng)中可以有選擇確認(rèn) SACK 字段。SACK 使用兩個(gè)字節(jié)塊分別指明一個(gè)連續(xù)字段的開(kāi)始位置和長(zhǎng)度。最多可以指出 4 個(gè)連續(xù)字節(jié)塊的邊界情況。
SACK 應(yīng)用不多。

5.7 TCP的流量控制

流量控制是為了讓發(fā)送方的發(fā)送速率不要太快,要讓接收方來(lái)得及接收。

5.7.1 利用滑動(dòng)窗口實(shí)現(xiàn)流量控制

流量控制是通過(guò)滑動(dòng)窗口實(shí)現(xiàn)的。接收方會(huì)把接收窗口的大小放到給發(fā)送方的報(bào)文的窗口字段中。
發(fā)送方的發(fā)送窗口不能超過(guò)接收方給出的窗口字段的數(shù)值。
死鎖
當(dāng)接收方的接收窗口減小到 0,發(fā)送方停止發(fā)送數(shù)據(jù)后。過(guò)了一段時(shí)間 B 的接收窗口恢復(fù)了一些,但是它發(fā)給發(fā)送方的報(bào)文丟失了,然后 A 就會(huì)一直等待 B 發(fā)送的非零窗口的通知,而 B 也一直等待 A 發(fā)送的數(shù)據(jù),這時(shí)就進(jìn)入了死鎖狀態(tài)。
死鎖的解決:TCP 每一個(gè)連接都設(shè)有一個(gè)持續(xù)計(jì)時(shí)器。只要 TCP 連接的一方收到對(duì)方的零窗口通知,就啟動(dòng)持續(xù)計(jì)時(shí)器。若持續(xù)計(jì)時(shí)器的時(shí)間到期,就發(fā)送一個(gè)零窗口探測(cè)報(bào)文段,對(duì)方則在返回這個(gè)探測(cè)報(bào)文段的確認(rèn)報(bào)文時(shí)給出窗口值。

5.7.2 TCP的傳輸效率

應(yīng)用進(jìn)程把數(shù)據(jù)傳送到 TCP 的發(fā)送緩存后,剩下的發(fā)送任務(wù)就交給 TCP 來(lái)完成了。
Nagle 算法
TCP 的實(shí)現(xiàn)中廣泛使用了 Nagle 算法:
發(fā)送方先把到達(dá)發(fā)送緩存的第一個(gè)數(shù)據(jù)字節(jié)發(fā)送出去,收到確認(rèn)后,再把發(fā)送緩存中剩下的數(shù)據(jù)組裝成報(bào)文段發(fā)送。
收到前一個(gè)報(bào)文段的確認(rèn)后再發(fā)送下一個(gè)報(bào)文段。
當(dāng)緩存中的數(shù)據(jù)達(dá)到發(fā)送窗口的一半大小或報(bào)文段最大長(zhǎng)度后,就立即發(fā)送一個(gè)報(bào)文段。
Nagle 算法用來(lái)避免發(fā)送方發(fā)送很小的報(bào)文段。

5.8 TCP的擁塞控制

5.8.1 擁塞控制的一般原理

擁塞就是當(dāng)前對(duì)網(wǎng)絡(luò)中某一資源的需求超過(guò)了該資源所能提供的可用部分,網(wǎng)絡(luò)性能變壞。
概括而言擁塞的條件就是:對(duì)資源的需求 > 可用資源。
網(wǎng)絡(luò)擁塞的成因往往十分復(fù)雜,并擁塞常常趨于惡化。比如因?yàn)榫W(wǎng)絡(luò)擁塞有報(bào)文未能按時(shí)到達(dá),那么發(fā)送方就會(huì)超時(shí)重傳使更多的分組進(jìn)入網(wǎng)絡(luò),加劇網(wǎng)絡(luò)擁塞。
擁塞控制就是防止過(guò)多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,使網(wǎng)絡(luò)中的路由器或鏈路不致過(guò)載。
流量控制是端到端的問(wèn)題,是接收端抑制發(fā)送端發(fā)送數(shù)據(jù)的速率。擁塞控制是全局性的問(wèn)題,涉及到所有的主機(jī)、路由器及相關(guān)因素。
TCP 連接的端點(diǎn)只要遲遲收不到對(duì)方的確認(rèn)信息,就猜想網(wǎng)絡(luò)中某處可能出現(xiàn)了擁塞。


在這里插入圖片描述


上圖中橫坐標(biāo)代表單位時(shí)間內(nèi)輸入到網(wǎng)絡(luò)中的分組數(shù),縱坐標(biāo)代表單位時(shí)間內(nèi)從網(wǎng)絡(luò)輸出的分組數(shù)。
擁塞控制很復(fù)雜。網(wǎng)絡(luò)擁塞的指標(biāo)有:被丟棄的分組數(shù),平均隊(duì)列長(zhǎng)度、超時(shí)重傳的分組數(shù)、平均分組時(shí)延等。

5.8.2 TCP的擁塞控制方法

TCP 的擁塞控制采取了慢開(kāi)始、擁塞避免、快重傳、快恢復(fù)四種算法。
這種方法是基于窗口的擁塞控制。發(fā)送方維持一個(gè)擁塞窗口,并讓自己的發(fā)送窗口等于擁塞窗口(實(shí)際上發(fā)送窗口取擁塞窗口和接收窗口中的較小者)。
控制擁塞窗口的原則是:只要網(wǎng)絡(luò)中沒(méi)有出現(xiàn)擁塞,就把擁塞窗口增大一些;但只要網(wǎng)絡(luò)出現(xiàn)擁塞或可能出現(xiàn)了擁塞,就把擁塞窗口減小一些。
判斷網(wǎng)絡(luò)擁塞的依據(jù)是出現(xiàn)超時(shí)。當(dāng)出現(xiàn)擁塞就使擁塞窗口減小,反之增大。
慢開(kāi)始
初始擁塞窗口很小,然后由小到大逐漸增大發(fā)送窗口。
初始擁塞窗口一般不超過(guò) 2-4 個(gè) SMSS(發(fā)送方最大報(bào)文段)長(zhǎng)度。每收到一個(gè)新的確認(rèn)后,就增加一次擁塞窗口。
使用慢開(kāi)始算法,每經(jīng)過(guò)一個(gè)傳輸輪次,擁塞窗口 cwnd 就會(huì)加倍。
擁塞避免
擁塞避免算法是讓擁塞窗口緩慢地增大,不像慢開(kāi)始那樣加倍增長(zhǎng)。
當(dāng) cwnd 大于一個(gè)界限值時(shí),就使用擁塞避免算法,小于時(shí)就使用慢開(kāi)始算法。
當(dāng)出現(xiàn)超時(shí),擁塞窗口就恢復(fù)初始值重新進(jìn)行慢開(kāi)始,且界限值減半。


在這里插入圖片描述


快重傳
快重傳要求當(dāng)接收方收到報(bào)文段后立即發(fā)送確認(rèn)。
當(dāng)接收方收到的報(bào)文段出現(xiàn)丟失,它后面不論收到什么報(bào)文段,發(fā)回的確認(rèn)號(hào)都是對(duì)失序之前的那個(gè)報(bào)文段的確認(rèn)。
當(dāng)發(fā)送方連續(xù)收到 3 個(gè)對(duì)同一報(bào)文段的重復(fù)確認(rèn)(表明下一個(gè)報(bào)文段未收到),就立即重傳下一個(gè)報(bào)文段,這樣就可以避免超時(shí)。
這是為了避免出現(xiàn)超時(shí),使發(fā)送方誤判為網(wǎng)絡(luò)擁塞。
快恢復(fù)
對(duì)于一般的超時(shí),界限值減半,擁塞窗口直接置為初始值;對(duì)于快重傳情況下,界限值減半,擁塞窗口設(shè)置為和界限值一樣,以實(shí)現(xiàn)快恢復(fù)。


在這里插入圖片描述


發(fā)送方的發(fā)送窗口實(shí)際設(shè)置為接收方窗口 rwnd 和擁塞窗口 cwnd 中較小的一個(gè)。

5.8.3 主動(dòng)隊(duì)列管理AQM

在網(wǎng)絡(luò)層,路由器可以通過(guò)采用主動(dòng)隊(duì)列管理 AQM 來(lái)減少網(wǎng)絡(luò)擁塞的發(fā)生。
主動(dòng)隊(duì)列管理就是路由器采取的一種分組丟棄策略。
路由器的隊(duì)列中的分組是先進(jìn)先出,在隊(duì)列滿(mǎn)了之后到達(dá)的分組就直接丟棄。
主動(dòng)隊(duì)列管理就是在隊(duì)列長(zhǎng)度還未滿(mǎn)時(shí)就丟棄后面的分組。但是具體丟棄策略尚未標(biāo)準(zhǔn)化。

5.9 TCP的運(yùn)輸連接管理

TCP 連接有三個(gè)階段:連接建立、數(shù)據(jù)傳送、連接釋放。
主動(dòng)發(fā)起 TCP 連接的應(yīng)用進(jìn)程是客戶(hù),另一方是服務(wù)器。
TCP 的連接開(kāi)始前客戶(hù)和服務(wù)器都會(huì)創(chuàng)建一個(gè)傳輸控制塊 TCB,其中存儲(chǔ)如 TCP 連接表、指向發(fā)送/接收緩存的指針、指向重傳隊(duì)列的指針等。連接釋放后刪除。

5.9.1 TCP的連接建立

TCP 的連接采用三次握手機(jī)制:服務(wù)器要確認(rèn)客戶(hù)的連接請(qǐng)求,客戶(hù)要對(duì)服務(wù)器的確認(rèn)進(jìn)行確認(rèn)。


在這里插入圖片描述


連接請(qǐng)求報(bào)文和連接接受報(bào)文段都不能攜帶數(shù)據(jù),但是都消耗一個(gè)序號(hào)。
第三個(gè) ACK 報(bào)文段可以攜帶數(shù)據(jù)也可以不攜帶,若不攜帶則不消耗序號(hào)(即下一個(gè)報(bào)文序號(hào)和此報(bào)文序號(hào)相同)。
SYN-SENT 表示同步已發(fā)送狀態(tài),SYN-RCVD 表示同步收到狀態(tài),ESTABLISHED 表示已連接狀態(tài)。
TCP 有如下規(guī)定:
SYN = 1 的報(bào)文段都不能攜帶數(shù)據(jù),但要消耗掉一個(gè)序號(hào)。所以三次握手中前兩個(gè)報(bào)文都不能攜帶數(shù)據(jù)。
ACK = 1 的報(bào)文段如果不攜帶數(shù)據(jù)則不消耗序號(hào)。
三報(bào)文握手中的第二個(gè)報(bào)文,也就是服務(wù)器發(fā)給客戶(hù)的 SYN 報(bào)文也可以拆分成兩個(gè)報(bào)文段,一個(gè)確認(rèn)報(bào)文段(ACK = 1, ack = x+1)和一個(gè)同步報(bào)文段(SYN = 1, seq = y),那樣就是四報(bào)文握手了。
采用三報(bào)文握手是為了解決客戶(hù)發(fā)送的連接請(qǐng)求報(bào)文中途滯留發(fā)生重傳的情況。當(dāng)發(fā)生重傳情況,客戶(hù)可能連續(xù)發(fā)送了兩個(gè)連接請(qǐng)求,而服務(wù)器也會(huì)回復(fù)兩個(gè)連接接受,此時(shí)發(fā)送端通過(guò)最后一個(gè)確認(rèn)報(bào)文保證只建立一個(gè)連接。
如果不采用三報(bào)文握手,那么只要服務(wù)器發(fā)出確認(rèn),新的連接就建立了。

5.9.2 TCP的連接釋放

TCP 的連接釋放采用四次揮手機(jī)制。任何一方都可以在數(shù)據(jù)傳送結(jié)束后發(fā)出連接釋放的通知,等待對(duì)方確認(rèn)后進(jìn)入半關(guān)閉狀態(tài)。當(dāng)另一方也沒(méi)有數(shù)據(jù)發(fā)送后,則發(fā)送連接釋放通知,對(duì)方確認(rèn)后完全關(guān)閉 TCP 連接。


在這里插入圖片描述


上圖中客戶(hù)發(fā)起了連接釋放報(bào)文(FIN=1),此時(shí)不再傳送數(shù)據(jù)。但是服務(wù)器可能還要傳送數(shù)據(jù),因此在發(fā)送一個(gè) ACK 報(bào)文后,如果有數(shù)據(jù)傳送還要繼續(xù)發(fā)送完。
當(dāng)服務(wù)器發(fā)送完數(shù)據(jù),就發(fā)送連接釋放報(bào)文,接著客戶(hù)端對(duì)此確認(rèn),服務(wù)器收到確認(rèn)后徹底關(guān)閉連接。
TCP 規(guī)定:FIN 報(bào)文即使不攜帶數(shù)據(jù),也要消耗一個(gè)序號(hào)。
四次揮手的詳細(xì)流程
A 向 B 發(fā)送連接釋放報(bào)文(FIN 報(bào)文)后進(jìn)入 FIN-WAIT-1(終止等待1)狀態(tài)。
B 收到連接釋放報(bào)文后立即發(fā)出確認(rèn),然后 B 就進(jìn)入了 CLOSE-WAIT(關(guān)閉等待)狀態(tài)。TCP 服務(wù)器進(jìn)程這時(shí)要通知高層應(yīng)用進(jìn)程,從 A 到 B 方向的連接已經(jīng)釋放了,TCP 連接實(shí)際上已經(jīng)是半關(guān)閉狀態(tài)。
A 收到 B 的確認(rèn)后,就進(jìn)入 FIN-WAIT-2(終止等待2)狀態(tài),等待 B 發(fā)出的連接釋放報(bào)文段。
B 在發(fā)送確認(rèn)報(bào)文后,如果沒(méi)有數(shù)據(jù)要發(fā)送,應(yīng)用進(jìn)程就通知 TCP 釋放連接,這時(shí) B 會(huì)發(fā)送連接釋放報(bào)文(FIN 報(bào)文)。如果 B 還要發(fā)送數(shù)據(jù),就等發(fā)送完數(shù)據(jù)后再發(fā)送連接釋放報(bào)文。這之后 B 進(jìn)入 LAST-ACK(最后確認(rèn))狀態(tài)
A 收到 B 的連接釋放報(bào)文后,要再發(fā)送一個(gè)確認(rèn)報(bào)文段(ACK 報(bào)文),然后進(jìn)入 TIME-WAIT(時(shí)間等待)狀態(tài)。A 會(huì)在這一狀態(tài)保持 2MSL 的時(shí)間(這里有一個(gè)時(shí)間等待計(jì)時(shí)器),之后進(jìn)入 CLOSED 狀態(tài)。
B 收到 A 的確認(rèn)報(bào)文后也會(huì)進(jìn)入 CLOSED 狀態(tài)。B 會(huì)比 A 更早地結(jié)束連接。
MSL 含義是最長(zhǎng)報(bào)文段壽命,RFC 標(biāo)注建議是 2 分鐘,實(shí)際一般小于等于 2 分鐘,因此 TIME-WAIT 的時(shí)長(zhǎng)一般小于等于 4 分鐘。
TIME-WAIT 狀態(tài)的意義
保證 A 發(fā)送的最后一個(gè) ACK 報(bào)文段能夠到達(dá) B。這個(gè) ACK 報(bào)文段可能丟失,當(dāng) B 沒(méi)有收到 A 的 ACK 報(bào)文,會(huì)超時(shí)重傳它之前發(fā)送的連接釋放報(bào)文,這樣 A 就能在 2MSL 時(shí)間內(nèi)收到 B 重傳的 FIN 報(bào)文,然后 A 重傳 ACK 報(bào)文,并重新啟動(dòng) 2MSL 計(jì)時(shí)器。
如果沒(méi)有 TIME-WAIT 狀態(tài),而是發(fā)完 ACK 報(bào)文后就立即釋放連接,就無(wú)法收到 B 重傳的 FIN 報(bào)文段,這樣 B 就無(wú)法正常進(jìn)入 CLOSED 狀態(tài)。
防止已失效的報(bào)文遺留到下一個(gè)連接中,經(jīng)過(guò) 2MSL 在關(guān)閉連接可以使本連接產(chǎn)生的所有報(bào)文都從網(wǎng)絡(luò)中消失。
?;钣?jì)時(shí)器
保活計(jì)時(shí)器:TCP 還會(huì)設(shè)置一個(gè)?;钣?jì)時(shí)器。如果客戶(hù)發(fā)生故障,服務(wù)器不再收到客戶(hù)發(fā)來(lái)地?cái)?shù)據(jù),可以通過(guò)保活計(jì)時(shí)器來(lái)避免服務(wù)器白白等待。
保活計(jì)時(shí)器的工作方式:服務(wù)器每收到一次客戶(hù)的數(shù)據(jù),就重新設(shè)置?;钣?jì)時(shí)器,通常是 2 小時(shí)。如果 2h 每收到客戶(hù)數(shù)據(jù),服務(wù)器就發(fā)送一個(gè)探測(cè)報(bào)文段,之后每隔 75s 發(fā)送一次。如果連續(xù)發(fā)送 10 個(gè)探測(cè)報(bào)文后客戶(hù)仍沒(méi)有響應(yīng),服務(wù)器就認(rèn)為客戶(hù)端出了故障,關(guān)閉當(dāng)前的 TCP 連接。

TIME_WAIT
客戶(hù)端在發(fā)送最后一個(gè)確認(rèn)報(bào)文后不能直接進(jìn)入 CLOSED 狀態(tài),要等待 2MSL 的時(shí)間(一般小于2分鐘)。這是為了保證它發(fā)送的確認(rèn)報(bào)文能夠到達(dá)服務(wù)器。如果未能及時(shí)到達(dá),服務(wù)器會(huì)超時(shí)重傳連接釋放報(bào)文,客戶(hù)就會(huì)重新發(fā)送確認(rèn),并重新計(jì)時(shí)。另外也是保證本次連接產(chǎn)生的所有報(bào)文都從網(wǎng)絡(luò)中消失。

5.9.3 TCP的有限狀態(tài)機(jī)

下面的狀態(tài)機(jī)中虛線(xiàn)表示的是服務(wù)器進(jìn)程的狀態(tài)變遷,實(shí)線(xiàn)表示的是客戶(hù)進(jìn)程的狀態(tài)變遷。


在這里插入圖片描述


http://www.risenshineclean.com/news/5400.html

相關(guān)文章:

  • 做網(wǎng)站設(shè)計(jì)參考文獻(xiàn)寧德市人社局
  • 房產(chǎn)中介如何做網(wǎng)站小紅書(shū)代運(yùn)營(yíng)
  • 做網(wǎng)站干什么百度一下網(wǎng)頁(yè)版瀏覽器百度
  • 梧州網(wǎng)站建設(shè)找資源的關(guān)鍵詞有哪些
  • 企業(yè)建設(shè)網(wǎng)站的步驟是什么意思sem賬戶(hù)托管
  • 深色調(diào)網(wǎng)站北京建公司網(wǎng)站價(jià)格
  • 裝修設(shè)計(jì)那個(gè)網(wǎng)站好企業(yè)自助建站
  • 網(wǎng)上怎么接單做網(wǎng)站博客
  • 網(wǎng)站添加背影音樂(lè)怎么做深圳網(wǎng)絡(luò)營(yíng)銷(xiāo)怎么推廣
  • 網(wǎng)絡(luò)營(yíng)銷(xiāo)的概念和特點(diǎn)商丘搜索引擎優(yōu)化
  • 邢臺(tái)地區(qū)網(wǎng)站建設(shè)痘痘如何去除效果好
  • 惠陽(yáng)營(yíng)銷(xiāo)網(wǎng)站制作免費(fèi)外鏈生成器
  • 北交所公司企業(yè)債券開(kāi)市合肥優(yōu)化排名推廣
  • 網(wǎng)站logo做黑頁(yè)百度首頁(yè)精簡(jiǎn)版
  • qq網(wǎng)頁(yè)版網(wǎng)址優(yōu)化搜索引擎
  • 2017網(wǎng)站備案抽查站長(zhǎng)工具seo診斷
  • 網(wǎng)站限時(shí)搶購(gòu)怎么做網(wǎng)絡(luò)服務(wù)商在哪咨詢(xún)
  • 深圳 電子商務(wù)網(wǎng)站開(kāi)發(fā)青島網(wǎng)站推廣公司排名
  • 網(wǎng)站建設(shè)和推廣大概需要多少費(fèi)用福州seo代理計(jì)費(fèi)
  • 王者榮耀做網(wǎng)站什么軟件可以免費(fèi)發(fā)廣告
  • 怎么用sharepoint做網(wǎng)站成功營(yíng)銷(xiāo)十大經(jīng)典案例
  • 建設(shè)電子商務(wù)網(wǎng)站目的指數(shù)平滑法
  • 營(yíng)銷(xiāo)型網(wǎng)站建設(shè)明細(xì)報(bào)價(jià)表推銷(xiāo)網(wǎng)站
  • 萬(wàn)網(wǎng)的怎么做網(wǎng)站地圖深圳seo優(yōu)化方案
  • 那個(gè)網(wǎng)站做圖片好看電商廣告
  • 項(xiàng)目計(jì)劃書(shū)ppt模板免費(fèi)seo網(wǎng)頁(yè)推廣
  • 網(wǎng)站建設(shè)百度推廣微信營(yíng)銷(xiāo)的方法和技巧
  • 深圳 網(wǎng)站百度網(wǎng)盤(pán)搜索引擎官方入口
  • 帝國(guó)軟件怎么做網(wǎng)站常州網(wǎng)絡(luò)推廣哪家好
  • 鄭州制作個(gè)人網(wǎng)站品牌策劃公司排名