站群雲伺服器可以分出不同的連接
㈠ 雲伺服器,vps和普通伺服器它們三個之間的區別及特點介紹
一、雲計算和傳統IDC在服務類型上的區別
常用的傳統IDC服務包括實體伺服器託管和租用兩類。前者是由用戶自行購買硬體發往機房託管,期間設備的監控和管理工作均由用戶單方獨立完成,IDC數據中心提供IP接入、帶寬接入、電力供應和網路維護等,後者是由IDC數據中心租用實體設備給客戶使用,同時負責環境的穩定,用戶無需購買硬體設備。而雲計算提供的服務是從基礎設施(Iaas)到業務基礎平台(PaaS)再到應用層(SaaS)的連續的整體的全套服務。IDC數據中心將規模化的硬體伺服器整合虛擬到雲端,為用戶提供的是服務能力和IT效能。用戶無需擔心任何硬體設備的性能限制問題,例如小鳥雲的可彈性擴展資源用量來獲得具備高擴展性和高可用的計算能力。
二、雲計算和傳統IDC在資源集約化速度和規模上的區別
傳統IDC,只是在硬體伺服器的基礎進行有限的整合,例如多台虛擬機共享一台實體伺服器性能。但這種簡單的集約化受限於單台實體伺服器的資源規模,遠遠不如雲計算那樣跨實體伺服器,甚至跨數據中心的大規模有效整合。更重要的是,傳統IDC提供的資源難以承受短時間內的快速再分配。而像小鳥雲伺服器那樣,使用雲計算可以實現橫向/縱向的彈性資源擴展和快速調度。
三、雲計算和傳統IDC在資源分配時滯上的區別
眾所周知,由於部署和配置實體硬體的緣故,傳統IDC資源的交付通常需要數小時甚至數天,將增加企業承受的時間成本,以及更多的精力消耗,並且難以做到實時、快速的資源再分配,且容易造成資源閑置和浪費。雲計算,則通過更新的技術實現資源的快速再分配,可以在數分鍾甚至幾十秒內分配資源實現快速可用,並且雲端虛擬資源池中龐大的資源規模使海量資源的快速再分配得以承受,並以此有效地規避資源閑置的風險,使用小鳥雲不僅節省IT運營成本,還能提高資源的有效利用率。
四、雲計算和傳統IDC在平台運行效率上的區別
更加靈活的資源應用方式、更高的技術提升,使雲服務商擁有集合優勢創新資源利用方式,促進整個平台運作效率提升。例如,根據不同用戶需求優化伺服器設計和伺服器軟體更新、網路專線接入等。並且,和傳統IDC服務不同,雲計算使用戶從硬體設備的管理和運維工作中解脫出來,專注內部業務的開發和創新,由雲服務商負責雲平台本身的穩定。這種責任分擔模式使整個平台的運行效率獲得提升。
㈡ 雲伺服器和傳統伺服器之間的區別在哪裡
1、傳統伺服器有產權,而雲主機則只是一種服務而已,沒有任何產權;
2、傳統伺服器是獨立的伺服器,所有功能由自己完成,而雲主機則是一個集群,他們的功能需要相互之間的協助才能完成;
3、傳統伺服器在性能上更加穩定,而雲主機在性能上比傳統的伺服器相對較差;
4、傳統伺服器在國內已經非常成熟,而雲主機的真正技術國內沒有人掌握,
所以目前國內市場上很多所謂的雲主機都是假的;
5、雲主機相對於傳統伺服器,性價比更高;
6、雲主機是按需購買,成本控制上更加靈活;
7、雲主機相對於傳統伺服器而言,效率更高,但是穩定性則不如傳統伺服器;
雲主機的客戶一般集中在對網路穩定性以及對主機性能要求不高的小型企業和手遊行業,
而大中型企業一般對網路穩定性以及主機性能要求都比較高,所以他們都會選擇傳統伺服器。
㈢ 雲伺服器和傳統伺服器之間的區別在哪裡
物理伺服器指的是獨立的伺服器。物理伺服器的構成包含CPU、硬碟、內存、系統線路等。類似通常的計算機架構。殊不知,由於需要提供可靠性高的服務,對處理能力、穩定性、可靠性、安全性和管理性有很高的要求。
雲伺服器是一種簡單效、安全穩定、處理能力靈活的計算服務。其管理模式比物理伺服器簡單高效。用戶可以快速的建立或釋放任意多個雲伺服器,而不需要事先購買硬體配置。雲伺服器可以幫助用戶快速的構建更穩定、更安全的APP,減少開發和維護的難度系數和整體信息技術成本費,使您能夠更加關注核心業務的創新。
一句話總結,雲伺服器就是使用了物理機集群,能虛擬化生成幾千台雲伺服器,我們選配、升配、降配幾乎都是隨時隨地完成,是不需要停機。而物理伺服器是獨立的一台伺服器,類似家中的電腦,我們只要改動任意一項配置,均需要關機,伺服器和雲伺服器推薦RAKsmart,主機偵探上有更多介紹。
㈣ 做站群的話,是不是那些站都要不同的ip,要不然會被百度懲罰的嗎
站群被發現都會被懲罰,跟IP無關。不同IP只是降低被發現的可能,並不代表,使用不同IP就絕對安全。
㈤ 雲伺服器跟普通的伺服器的區別
雲伺服器與傳統伺服器有什麼區別:
1、高度靈活性
雲伺服器的硬體配置可以根據需要(不同時期的網路配置)靈活配置與擴展,如CPU、內存、SSD數據盤。
2、高性能
雲服務環境採用高端伺服器進行部署,同時採用集中的管理與監控,確保業務穩定可靠。更強的主機性能,總體性能遠高於vps,強於部分獨立伺服器。
3、便捷性
對於一些中小型的企業來說,隨著業務的不斷擴大,可能後期需要進行擴容和升級等操作,使用雲主機,在後期就不需要對軟硬體進行相應的升級操作。
4、網路安全性
伺服器最怕出現故障,網站的運營就會不能正常進行,雲產品一般是不會出現這種情況的,就算是網站的運營出現了問題也會自動轉移到其他的機器上,黑客攻擊也會很困難。
5、低成本
雲伺服器租用支持月付、年付,靈活計費方式,無需押金,按需彈性擴容,只需為使用的存儲能力、計算能力與資源支付費用,需要多大就買多大,不會造成資源的浪費。
以上回答這些內容,希望能夠幫到你,詳細信息可在阿里雲了解。
㈥ 雲計算伺服器對比傳統伺服器有哪些不同
傳統的伺服器就是實實在在看得見的硬體,有獨立的CPU、內存條、硬碟,這種伺服器浪費率很高,有的買一台裡面的資源用不完是浪費,不夠用也只能再買一台或采購硬體來擴展資源,總之成本高,浪費率高,不夠劃算。所以,這種方式現在也逐漸被拋棄。
雲伺服器就是將多個傳統的伺服器連接在一起,形成一個大的超級計算機,這個超級計算機里有多個類似獨立伺服器的部分,可以根據用戶的需求提供給予其使用。由於可以按需付費,並且可以彈性伸縮,所以成本低廉,是現在很多企業傾向於選擇的一種方式。而且現在做雲伺服器提供商越來越多,這也是市場的需求和選擇,最著名的肯定就是BAT,還有一些專業型的比如小鳥雲計算這一類公司,所以個人認為,這應該是一種時代趨勢吧。
㈦ 站群伺服器是什麼
站群伺服器是什麼?隨著網路的發展,企業或是用戶如果想組建多個網站,就需要用到站群伺服器了。所謂的站群,就是單獨為一個網站或多個網站配置獨立IP的一種伺服器。
雲霸天下IDC站群伺服器租用
站群伺服器的作用
站群伺服器能提高搜索引擎的友愛度,提高網站文章的收錄以及網站的權重,這也是網站SEO優化的重要一步。
如果這些網站結構或內容大致相同,那更需要獨立IP去支撐,否則這類網站域名都解析到同一個IP,搜索引擎會輕易認定是垃圾網站,網站權重自然不會提升。而站群伺服器就是為客戶提供多種IP,專門為多個網站做優化的。
站群伺服器選擇類型
站群伺服器有很多類型可供選擇,香港、美國、韓國等等不同類型的站群伺服器,使用最多的類型還是香港主機和美國伺服器。
1、香港站群伺服器
做站群伺服器,香港多IP伺服器是個不錯的選擇,在速度與穩定性方面比較快,有優質的售後,一般可以與技術直接溝通交流。因為性能比較不錯,所以在價格方面會相對貴一點。
2、美國站群伺服器
美國站群伺服器也是比較好的,擁有比較豐富的網路資源,硬體配備,其穩定性也是比較高的,速度比不上香港空間,比較距離擺在那,但也可以作為考慮的對象。
㈧ tcp協議通過什麼來區分不同的連接
TCP/IP
不同的計算機系統,就好像語言不同的兩個人互相見了面,完全不能交流信息。因而他們需要定義一些共通的東西來進行交流,TCP/IP就是為此而生。TCP/IP不是一個協議,而是一個協議族的統稱。裡麵包括了IP協議,IMCP協議,TCP協議,以及我們更加熟悉的http、ftp、pop3協議等等。電腦有了這些,就好像學會了外語一樣,就可以和其他的計算機終端做自由的交流了。
TCP/IP 層次
應用層(http、ftp、smtp) -->傳輸層(TCP、UDP)-->網路層(IP)-->數據鏈路層
域名系統 :域名系統是一個分布的資料庫,它提供將主機名(就是網址啦)轉換成IP地址的服務。
埠號(port): 注意,這個號碼是用在TCP,UDP上的一個邏輯號碼,並不是一個硬體埠,我們平時說把某某埠封掉了,也只是在IP層次把帶有這個號碼的IP包給過濾掉了而已。
應用編程介面:現在常用的編程介面有socket和TLI。
數據鏈路層
數據鏈路層有三個目的:
為IP模塊發送和 接收IP數據報。
為ARP模塊發送ARP請求和接收ARP應答。
為RARP發送RARP請 求和接收RARP應答
ip大家都聽說過。至於ARP和RARP,ARP叫做地址解析協議,是用IP地址換MAC地址的一種協議,而RARP則叫做逆地址解析協議.
--
IP 、ARP 、RARP 協議
三者都是在網路層 ,ARP協議用來找到目標主機的Ethernet網卡Mac地址,IP則承載要發送的消息。數據鏈路層可以從ARP得到數據的傳送信息,而從IP得到要傳輸的數據信息。
IP 協議
IP協議是TCP/IP協議的核心,所有的TCP,UDP,IMCP,IGCP的數據都以IP數據格式傳輸。要注意的是,IP不是可靠的協議,這是說,IP協議沒有提供一種數據未傳達以後的處理機制--這被認為是上層協議:TCP或UDP要做的事情。所以這也就出現了TCP是一個可靠的協議,而UDP就沒有那麼可靠的區別。
協議頭
八位的TTL欄位,還記得這個欄位是做什麼的么?這個欄位規定該數據包在穿過多少個路由之後才會被拋棄(這里就體現出來IP協議包的不可靠性,它不保證數據被送達),某個ip數據包每穿過一個路由器,該數據包的TTL數值就會減少1,當該數據包的TTL成為零,它就會被自動拋棄。這個欄位的最大值也就是255,也就是說一個協議包也就在路由器裡面穿行255次就會被拋棄了,根據系統的不同,這個數字也不一樣,一般是32或者是64,Tracerouter這個工具就是用這個原理工作的,tranceroute的-m選項要求最大值是255,也就是因為這個TTL在IP協議裡面只有8bit。
現在的ip版本號是4,所以也稱作IPv4。現在還有IPv6,而且運用也越來越廣泛了。
IP路由選擇
當一個IP數據包準備好了的時候,IP數據包(或者說是路由器)是如何將數據包送到目的地的呢?它是怎麼選擇一個合適的路徑來"送貨"的呢?
最特殊的情況是目的主機和主機直連,那麼主機根本不用尋找路由,直接把數據傳遞過去就可以了。至於是怎麼直接傳遞的,這就要靠ARP協議了。
稍微一般一點的情況是,主機通過若干個路由器(router)和目的主機連接。那麼路由器就要通過ip包的信息來為ip包尋找到一個合適的目標來進行傳遞,比如合適的主機,或者合適的路由。路由器或者主機將會用如下的方式來處理某一個IP數據包
如果IP數據包的TTL(生命周期)以到,則該IP數據包就被拋棄。
搜索路由表,優先搜索匹配主機,如果能找到和IP地址完全一致的目標主機,則將該包發向目標主機
搜索路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要「子網掩碼(1.3.)」的協助。如果找到路由器,則將該包發向路由器。
搜索路由表,如果匹配同子網路由器失敗,則匹配同網號路由器,如果找到路由器,則將該包發向路由器。
搜索路由表,如果以上都失敗了,就搜索默認路由,如果默認路由存在,則發包
如果都失敗了,就丟掉這個包
這再一次證明了,ip包是不可靠的。因為它不保證送達。
ARP協議
還記得數據鏈路層的乙太網的協議中,每一個數據包都有一個MAC地址頭么?我們知道每一塊乙太網卡都有一個MAC地址,這個地址是唯一的,那麼IP包是如何知道這個MAC地址的?這就是ARP協議的工作。
ARP(地址解析)協議是一種解析協議,本來主機是完全不知道這個IP對應的是哪個主機的哪個介面,當主機要發送一個IP包的時候,會首先查一下自己的ARP高速緩存(就是一個IP-MAC地址對應表緩存),如果查詢的IP-MAC值對不存在,那麼主機就向網路發送一個ARP協議廣播包,這個廣播包裡面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機都會查詢自己的IP地址,如果收到廣播包的某一個主機發現自己符合條件,那麼就准備好一個包含自己的MAC地址的ARP包傳送給發送ARP廣播的主機,而廣播主機拿到ARP包後會更新自己的ARP緩存(就是存放IP-MAC對應表的地方)。發送廣播的主機就會用新的ARP緩存數據准備好數據鏈路層的的數據包發送工作。
arp -a 可以查詢自己的arp緩存
這樣的高速緩存是有時限的,一般是20分鍾(伯克利系統的衍生系統)。
--
ICMP協議
--
UDP 協議
UDP是傳輸層協議,和TCP協議處於一個分層中,但是與TCP協議不同,UDP協議並不提供超時重傳,出錯重傳等功能,也就是說其是不可靠的協議。
1 、UDP 的埠號
由於很多軟體需要用到UDP協議,所以UDP協議必須通過某個標志用以區分不同的程序所需要的數據包。埠號的功能就在於此,例如某一個UDP程序A在系統中注冊了3000埠,那麼,以後從外面傳進來的目的埠號為3000的UDP包都會交給該程序。埠號理論上可以有2^16這么多。因為它的長度是16個bit
2 、UDP 的檢驗和
這是一個可選的選項,並不是所有的系統都對UDP數據包加以檢驗和數據(相對TCP協議的必須來說),但是RFC中標准要求,發送端應該計算檢驗和。
UDP檢驗和覆蓋UDP協議頭和數據,這和IP的檢驗和是不同的,IP協議的檢驗和只是覆蓋IP數據頭,並不覆蓋所有的數據。UDP和TCP都包含一個偽首部,這是為了計算檢驗和而攝制的。偽首部甚至還包含IP地址這樣的IP協議裡面都有的信息,目的是讓UDP兩次檢查數據是否已經正確到達目的地。如果發送端沒有打開檢驗和選項,而接收端計算檢驗和有差錯,那麼UDP數據將會被悄悄的丟掉(不保證送達),而不產生任何差錯報文。
3 、UDP 的長度
UDP可以很長很長,可以有65535位元組那麼長。但是一般網路在傳送的時候,一次一般傳送不了那麼長的協議(涉及到MTU的問題),就只好對數據分片,當然,這些是對UDP等上級協議透明的,UDP不需要關心IP協議層對數據如何分片。
4 、IP 分片
IP在從上層接到數據以後,要根據IP地址來判斷從那個介面發送數據(通過選路),並進行MTU的查詢,如果數據大小超過MTU就進行數據分片。數據的分片是對上層和下層透明,而數據也只是到達目的地還會被重新組裝,不過不用擔心,IP層提供了足夠的信息進行數據的再組裝。
在IP頭裡面,16bit識別號唯一記錄了一個IP包的ID,具有同一個ID的IP片將會被重新組裝;而13位片偏移則記錄了某IP片相對整個包的位置;而這兩個表示中間的3bit標志則標示著該分片後面是否還有新的分片。這三個標示就組成了IP分片的所有信息,接受方就可以利用這些信息對IP數據進行重新組織(就算是後面的分片比前面的分片先到,這些信息也是足夠了)。
因為分片技術在網路上被經常的使用,所以偽造IP分片包進行流氓攻擊的軟體和人也就層出不窮。
5 、ICMP源站抑制差錯
當目標主機的處理速度趕不上數據接收的速度,因為接受主機的IP層緩存會被占滿,所以主機就會發出一個「我受不了」的一個ICMP報文。
--
單播廣播和多播
單播
單播是說,對特定的主機進行數據傳送。例如給某一個主機發送IP數據包。這時候,數據鏈路層給出的數據頭裡面是非常具體的目的地址,對於乙太網來 說,就是網卡的MAC地址(不是FF-FF-FF-FF-FF-FF這樣的地址)。現在的具有路由功能的主機應該可以將單播數據定向轉發,而目的主機的網 絡介面則可以過濾掉和自己MAC地址不一致的數據。
廣播
廣播是主機針對某一個網路上的所有主機發送數據包。這個網路可能是網路,可能是子網,還可能是所有的子網。如果是網路,例如A類網址的廣播就是 netid.255.255.255,如果是子網,則是netid.netid.subnetid.255;如果是所有的子網(B類IP)則是則是 netid.netid.255.255。廣播所用的MAC地址FF-FF-FF-FF-FF-FF。網路內所有的主機都會收到這個廣播數據,網卡只要把 MAC地址為FF-FF-FF-FF-FF-FF的數據交給內核就可以了。一般說來ARP,或者路由協議RIP應該是以廣播的形式播發的。
多播
可以說廣播是多播的特例,多播就是給一組特定的主機(多播組)發送數據,這樣,數據的播發范圍會小一些(實際上播發的范圍一點也沒有變小),多播的MAC地址是最高位元組的低位為一,例 如01-00-00-00-00-00。多播組的地址是D類IP,規定是224.0.0.0-239.255.255.255。
雖然多播比較特殊,但是究其原理,多播的數據還是要通過數據鏈路層進行MAC地址綁定然後進行發送。所以一個乙太網卡在綁定了一個多播IP地址之後,必 定還要綁定一個多播的MAC地址,才能使得其可以像單播那樣工作。這個多播的IP和多播MAC地址有一個對應的演算法,在書的p133到p134之間。可以看到 這個對應不是一一對應的,主機還是要對多播數據進行過濾。
--
TCP
TCP和UDP處在同一層---運輸層,但是TCP和UDP最不同的地方是,TCP提供了一種可靠的數據傳輸服務,TCP是面向連接的,也就是說,利用TCP通信的兩台主機首先要經歷一個「撥打電話」的過程,等到通信准備結束才開始傳輸數據,最後結束通話。所以TCP要比UDP可靠的多,UDP是把數據直接發出去,而不管對方是不是在收信,就算是UDP無法送達,也不會產生ICMP差錯報文,這一經時重申了很多遍了。
把TCP保證可靠性的簡單工作原理:
應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的 數據報長度將保持不變。由TCP傳遞給IP的信息單位稱為報文段或段
當TCP發出一個段後,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能 及時收到一個確認,將重發這個報文段.
當TCP收到發自TCP連接另一端的數據,它將發送一個確認。這個確認不是立即發送,通常將推遲幾分之一秒.
TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸 過程中的任何變化。如果收到段的檢驗和有差錯, T P將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發)。
既然TCP報文段作為IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段 的到達也可能會失序。如果必要, TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發送接收端緩沖區所能接納的數據。這將防止較快主機致使較慢主機的緩沖區溢出。
從這段話中可以看到,TCP中保持可靠性的方式就是超時重發,這是有道理的,雖然TCP也可以用各種各樣的ICMP報文來處理這些,但是這也不是可靠的,最可靠的方式就是只要不得到確認,就重新發送數據報,直到得到對方的確認為止。
TCP的首部和UDP首部一樣,都有發送埠號和接收埠號。但是顯然,TCP的首部信息要比UDP的多,可以看到,TCP協議提供了發送和確認所需要的所有必要的信息。可以想像一個TCP數據的發送應該是如下的一個過程。
雙方建立連接
發送方給接受方TCP數據報,然後等待對方的確認TCP數據報,如果沒有,就重新發,如果有,就發送下一個數據報。
接受方等待發送方的數據報,如果得到數據報並檢驗無誤,就發送ACK(確認)數據報,並等待下一個TCP數據報的到來。直到接收到FIN(發送完成數據報)
中止連接
可以想見,為了建立一個TCP連接,系統可能會建立一個新的進程(最差也是一個線程),來進行數據的傳送
--
TCP協議
TCP是一個面向連接的協議,在發送輸送之前 ,雙方需要確定連接。而且,發送的數據可以進行TCP層的分片處理。
TCP連接的建立過程 ,可以看成是三次握手 。而連接的中斷可以看成四次握手 。
1.連接的建立
在建立連接的時候,客戶端首先向伺服器申請打開某一個埠(用SYN段等於1的TCP報文),然後伺服器端發回一個ACK報文通知客戶端請求報文收到,客戶端收到確認報文以後再次發出確認報文確認剛才伺服器端發出的確認報文(繞口么),至此,連接的建立完成。這就叫做三次握手。如果打算讓雙方都做好准備的話,一定要發送三次報文,而且只需要三次報文就可以了。
可以想見,如果再加上TCP的超時重傳機制,那麼TCP就完全可以保證一個數據包被送到目的地。
2.結束連接
TCP有一個特別的概念叫做half-close,這個概念是說,TCP的連接是全雙工(可以同時發送和接收)連接,因此在關閉連接的時候,必須關閉傳和送兩個方向上的連接。客戶機給伺服器一個FIN為1的TCP報文,然後伺服器返回給客戶端一個確認ACK報文,並且發送一個FIN報文,當客戶機回復ACK報文後(四次握手),連接就結束了。
3.最大報文長度
在建立連接的時候,通信的雙方要互相確認對方的最大報文長度(MSS),以便通信。一般這個SYN長度是MTU減去固定IP首部和TCP首部長度。對於一個乙太網,一般可以達到1460位元組。當然如果對於非本地的IP,這個MSS可能就只有536位元組,而且,如果中間的傳輸網路的MSS更加的小的話,這個值還會變得更小。
4.客戶端應用程序的狀態遷移圖
客戶端的狀態可以用如下的流程來表示:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
以上流程是在程序正常的情況下應該有的流程,從書中的圖中可以看到,在建立連接時,當客戶端收到SYN報文的ACK以後,客戶端就打開了數據交互地連接。而結束連接則通常是客戶端主動結束的,客戶端結束應用程序以後,需要經歷FIN_WAIT_1,FIN_WAIT_2等狀態,這些狀態的遷移就是前面提到的結束連接的四次握手。
5.伺服器的狀態遷移圖
伺服器的狀態可以用如下的流程來表示:
CLOSED->LISTEN->SYN收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED
在建立連接的時候,伺服器端是在第三次握手之後才進入數據交互狀態,而關閉連接則是在關閉連接的第二次握手以後(注意不是第四次)。而關閉以後還要等待客戶端給出最後的ACK包才能進入初始的狀態。
6.TCP伺服器設計
前面曾經講述過UDP的伺服器設計,可以發現UDP的伺服器完全不需要所謂的並發機制,它只要建立一個數據輸入隊列就可以。但是TCP不同,TCP伺服器對於每一個連接都需要建立一個獨立的進程(或者是輕量級的,線程),來保證對話的獨立性。所以TCP伺服器是並發的。而且TCP還需要配備一個呼入連接請求隊列(UDP伺服器也同樣不需要),來為每一個連接請求建立對話進程,這也就是為什麼各種TCP伺服器都有一個最大連接數的原因。而根據源主機的IP和埠號碼,伺服器可以很輕松的區別出不同的會話,來進行數據的分發。
TCP的交互數據流
對於交互性要求比較高的應用,TCP給出兩個策略來提高發送效率和減低網路負擔:(1)捎帶ACK。(2)Nagle演算法(一次盡量多的發數據)
捎帶ACK的發送方式
這個策略是說,當主機收到遠程主機的TCP數據報之後,通常不馬上發送ACK數據報,而是等上一個短暫的時間,如果這段時間裡面主機還有發送到遠程主機的TCP數據報,那麼就把這個ACK數據報「捎帶」著發送出去,把本來兩個TCP數據報整合成一個發送。一般的,這個時間是200ms。可以明顯地看到這個策略可以把TCP數據報的利用率提高很多。
Nagle演算法
上過bbs的人應該都會有感受,就是在網路慢的時候發貼,有時鍵入一串字元串以後,經過一段時間,客戶端「發瘋」一樣突然回顯出很多內容,就好像數據一下子傳過來了一樣,這就是Nagle演算法的作用。
Nagle演算法是說,當主機A給主機B發送了一個TCP數據報並進入等待主機B的ACK數據報的狀態時,TCP的輸出緩沖區裡面只能有一個TCP數據報,並且,這個數據報不斷地收集後來的數據,整合成一個大的數據報,等到B主機的ACK包一到,就把這些數據「一股腦」的發送出去。雖然這樣的描述有些不準確,但還算形象和易於理解,我們同樣可以體會到這個策略對於低減網路負擔的好處。
在編寫插口程序的時候,可以通過TCP_NODELAY來關閉這個演算法。並且,使用這個演算法看情況的,比如基於TCP的X窗口協議,如果處理滑鼠事件時還是用這個演算法,那麼「延遲」可就非常大了。
2.TCP的成塊數據流
對於FTP這樣對於數據吞吐量有較高要求的要求,將總是希望每次盡量多的發送數據到對方主機,就算是有點「延遲」也無所謂。TCP也提供了一整套的策略來支持這樣的需求。TCP協議中有16個bit表示「窗口」的大小,這是這些策略的核心。
2.1.傳輸數據時ACK的問題
在解釋滑動窗口前,需要看看ACK的應答策略,一般來說,發送端發送一個TCP數據報,那麼接收端就應該發送一個ACK數據報。但是事實上卻不是這樣,發送端將會連續發送數據盡量填滿接受方的緩沖區,而接受方對這些數據只要發送一個ACK報文來回應就可以了,這就是ACK的累積特性,這個特性大大減少了發送端和接收端的負擔。
2.2.滑動窗口
滑動窗口本質上是描述接受方的TCP數據報緩沖區大小的數據,發送方根據這個數據來計算自己最多能發送多長的數據。如果發送方收到接受方的窗口大小為0的TCP數據報,那麼發送方將停止發送數據,等到接受方發送窗口大小不為0的數據報的到來。
2.3.數據擁塞
上面的策略用於區域網內傳輸還可以,但是用在廣域網中就可能會出現問題,最大的問題就是當傳輸時出現了瓶頸(比如說一定要經過一個slip低速鏈路)所產生的大量數據堵塞問題(擁塞),為了解決這個問題,TCP發送方需要確認連接雙方的線路的數據最大吞吐量是多少。這,就是所謂的擁塞窗口。
擁塞窗口的原理很簡單,TCP發送方首先發送一個數據報,然後等待對方的回應,得到回應後就把這個窗口的大小加倍,然後連續發送兩個數據報,等到對方回應以後,再把這個窗口加倍(先是2的指數倍,到一定程度後就變成現行增長,這就是所謂的慢啟動),發送更多的數據報,直到出現超時錯誤,這樣,發送端就了解到了通信雙方的線路承載能力,也就確定了擁塞窗口的大小,發送方就用這個擁塞窗口的大小發送數據。要觀察這個現象是非常容易的,我們一般在下載數據的時候,速度都是慢慢「沖起來的」
--
TCP的超時和重傳
超時重傳是TCP協議保證數據可靠性的另一個重要機制,其原理是在發送某一個數據以後就開啟一個計時器,在一定時間內如果沒有得到發送的數據報的ACK報文,那麼就重新發送數據,直到發送成功為止。
超時
超時時間的計算是超時的核心部分,TCP要求這個演算法能大致估計出當前的網路狀況,雖然這確實很困難。要求精確的原因有兩個:(1)定時長久會造成網路利用率不高。(2)定時太短會造成多次重傳,使得網路阻塞。所以,書中給出了一套經驗公式,和其他的保證計時器准確的措施。
計時器的使用
一個連接中,有且僅有一個測量定時器被使用。也就是說,如果TCP連續發出3組數據,只有一組數據會被測量。
ACK數據報不會被測量,原因很簡單,沒有ACK的ACK回應可以供結束定時器測量。
重傳
前面曾經提到過,數據在傳輸的時候不能只使用一個窗口協議,我們還需要有一個擁塞窗口來控制數據的流量,使得數據不會一下子都跑到網路中引起「擁塞」。也曾經提到過,擁塞窗口最初使用指數增長的速度來增加自身的窗口,直到發生超時重傳,再進行一次微調。但是沒有提到,如何進行微調,擁塞避免演算法和慢啟動門限就是為此而生。
所謂的慢啟動門限就是說,當擁塞窗口超過這個門限的時候,就使用擁塞避免演算法,而在門限以內就採用慢啟動演算法。所以這個標准才叫做門限,通常,擁塞窗口記做cwnd,慢啟動門限記做ssthresh。下面我們來看看擁塞避免和慢啟動是怎麼一起工作的
演算法概要
對一個給定的連接,初始化cwnd為1個報文段,ssthresh為65535個位元組。
TCP輸出常式的輸出不能超過cwnd和接收方通告窗口的大小。擁塞避免是發送方使用 的流量控制,而通告窗口則是接收方進行的流量控制。前者是發送方感受到的網路擁塞的估 計,而後者則與接收方在該連接上的可用緩存大小有關。
當擁塞發生時(超時或收到重復確認),ssthresh被設置為當前窗口大小的一半(cwnd 和接收方通告窗口大小的最小值,但最少為2個報文段)。此外,如果是超時引起了擁塞,則 cwnd被設置為1個報文段(這就是慢啟動)。
當新的數據被對方確認時,就增加cwnd,但增加的方法依賴於我們是否正在進行慢啟 動或擁塞避免。如果cwnd小於或等於ssthresh,則正在進行慢啟動,否則正在進行擁塞避免。 慢啟動一直持續到我們回到當擁塞發生時所處位置的半時候才停止(因為我們記錄了在步驟2 中給我們製造麻煩的窗口大小的一半),然後轉為執行擁塞避免。
快速重傳和快速恢復演算法
這是數據丟包的情況下給出的一種修補機制。一般來說,重傳發生在超時之後,但是如果發送端接受到3個以上的重復ACK的情況下,就應該意識到,數據丟了,需要重新傳遞。這個機制是不需要等到重傳定時器溢出的,所以叫做快速重傳,而重新傳遞以後,因為走的不是慢啟動而是擁塞避免演算法,所以這又叫做快速恢復演算法。流程如下:
當收到第3個重復的ACK時,將ssthresh設置為當前擁塞窗口cwnd的一半。重傳丟失的 報文段。設置cwnd為ssthresh加上3倍的報文段大小。
每次收到另一個重復的ACK時, cwnd增加1個報文段大小並發送1個分組(如果新的 cwnd允許發送)。
當下一個確認新數據的ACK到達時,設置cwnd為ssthresh(在第1步中設置的值)。這個 ACK應該是在進行重傳後的一個往返時間內對步驟1中重傳的確認。另外,這個ACK也應該 是對丟失的分組和收到的第1個重復的ACK之間的所有中間報文段的確認。這一步採用的是擁 塞避免,因為當分組丟失時我們將當前的速率減半。
TCP的其它定時器
堅持定時器
用於防止通告窗口為0以後雙方互相等待死鎖的情況
堅持定時器的原理是簡單的,當TCP伺服器收到了客戶端的0滑動窗口報文的時候,就啟動一個定時器來計時,並在定時器溢出的時候向向客戶端查詢窗口是否已經增大,如果得到非零的窗口就重新開始發送數據,如果得到0窗口就再開一個新的定時器准備下一次查詢。通過觀察可以得知,TCP的堅持定時器使用1,2,4,8,16……64秒這樣的普通指數退避序列來作為每一次的溢出時間。
2.保活定時器
保活定時器更加的簡單,還記得FTP或者Http伺服器都有Sesstion Time機制么?因為TCP是面向連接的,所以就會出現只連接不傳送數據的「半開放連接」,伺服器當然要檢測到這種連接並且在某些情況下釋放這種連接,這就是保活定時器的作用。其時限根據伺服器的實現不同而不通。另外要提到的是,當其中一端如果崩潰並重新啟動的情況下,如果收到該端「前生」的保活探察,則要發送一個RST數據報文幫助另一端結束連接。
㈨ 什麼是站群伺服器
站群伺服器是單獨為一個網站或者多個網站配置獨立IP的一種伺服器。企業或是用戶如果想組建多個網站的話就需要用站群伺服器了。站群伺服器可以提高搜索引擎多個網站的關注度,提高網站文章的收錄以及網站文章的訪問量,這也是網站SEO優化的重要一步。如果這些網站結構或者內容大致相同,那麼就需要獨立的IP去支撐,如果這些網站域名都解析到同一個IP,那搜索引擎會輕易認定是垃圾網站,網站許可權以及訪問量自然不會提升。而站群伺服器對外部鏈接的促進作用很明顯,就是為了給客戶提供多種IP資源,為多個網站做優化的。