導航:首頁 > 網路安全 > 如何考察測試對網路協議的理解

如何考察測試對網路協議的理解

發布時間:2022-04-02 15:28:41

如何學習網路協議

網路這東西就是一個靠實踐的東西,只靠看書是不行的。當年在學校還上過史美林教授/張公忠教授所講的計算機網路體系結構課,用的是Tanabaum寫的那本,考試還得了九十多分,可實際還是連TCP和UDP有什麼區別都分不清,就是死記背,到畢業的時候基本上是忘光了,工作後等於重新來過。 上班了要在Linux做一些底層的網路處理,不得不從頭來學Linux和網路,編程部分主要看Richard Stevens的那幾本書:APUE、UNP、TCP/IP Illustraion等,學Linux則看得很雜,市面上各種Linux入門書大都翻了一遍,俺是習慣在書店裡看書,愛看書而不愛買書,汗,,然後就是去各大BBS、論壇把他們的精華區都下載下來狂看,邊看邊實踐,基本上在一個月內熟悉了Linux的操作。 學網路協議剛開始也是看書,但看了之後沒多少印象,那些東西靠死記真是沒法記的,後來找到一個好辦法,就是自己寫個sniffer,自己寫個協議分析器,先學怎麼抓包,就看tcpmp的源碼,然後看libpcap的源碼,知道了什麼是網卡的混雜模式,很快就能抓到網卡上包的。接下來就是對包進行分析,就看作TCP/IP Illustraion,從以太頭、ARP/IP、ICMP/IGMP/TCP/UDP、HTTP/FTP/TELNET/SMTP等這么一點一點、一個欄位一個欄位分析下來,很快就明白了所謂TCP/IP到底是怎麼回事。另外為了學TCP狀態轉換表,根據所抓的包的TCP標志分析通信雙方當前是什麼狀態,剛開始還只能從頭一方發SYN包開始分析,到後來是可從連接中間包如手就能逐漸判斷雙方的TCP狀態,基本上是徹底搞清楚了TCP的狀態轉移是怎麼回事,後來再理解防火牆的狀態檢測原理就很容易了。另外在分析過程中,為徹底掌握IP碎片,還特地ping大包來抓,把抓上來的包自己重組,搞明白了IP頭的碎片offset欄位是怎麼用的。 能抓包後進而又開始學如何自己構造包來「干擾」正常通信了,開始是學怎麼發TCP的RST包來切斷一個正常的TCP連接,就的學會如何計算IP頭校驗和,TCP校驗和,知道了算TCP校驗和時必須加IP偽頭數據,然後是正確計算序列號和確認號,知道了原來SYN和FIN標志也是算一位的,最重要的是理解了什麼是網路序什麼是主機序,現在基本把ntohs(l),htons(l)處理都成了一種編程的本能意識了。學會用RST切斷TCP後,進一步實現了直接發一個頁面信息告訴客戶端訪問了非法信息,也就是以後實現URL過濾時客戶端顯示的拒絕畫面。後來也學發ARP信息胡亂通告MAC地址,也就是以前寫的那篇ARP攻擊的由來。 後來俺寫的這個協議分析器逐步完善,能解析的就解析,不能解析的就列印出16進制數,可列印字元也列印出來,對HTTP、FTP、POP3、SMTP這些文本協議幾乎就一下看明白了,對於非文本協議,如DNS,也根據協議解析了出來,而且解析DNS時不得不用了我一向不愛用的遞歸方法來編程。隨著網路應用的增加,在用到前都先作協議解析,除了各種TCP、UDP的協議,還增加了BPDU、PPPOE、OSPF、ESP、AH、IKE等的解析處理,現在俺的協議分析器也可以分析上百種協議,平時抓包就只用俺這個,TCPDUMP基本不再用了,畢竟自己寫的自己更清楚,如果有不能解析的再現加進去。現在學新協議時,往往先抓包看看協議的基本數據格式,再看RFC了解細節。 學協議剛開始是看書,到後來要更深入了解或追詢最新發展情況就只能看RFC了,畢竟網路的東西變化太快,書的東西只能算入門,說不定很快就出新的了,到現在也看了數百篇的RFC了。 通過編程分析來學協議,慢是慢了點,花了一個多月的時間,但感覺學得扎實,正所謂磨刀不誤砍柴功,而且一通百通。到現在雖然已經好幾年了,IP頭,TCP頭有哪些欄位還是一下就可以說得出來,對理解各種網路攻擊原理從而進行防範更是有幫助,我覺得對我來說這種方法是很有效,如果哪位覺得有更有效的學習方法,可以共同交流一下。

② 如何理解網路協議,包括物理層,網路層,應用層,越通俗越好,謝謝各位牛人

物理層:這個最好理解了,打個比方我有1台PC,我現在網口沒有插網線,這個就是「物理層」沒有連通,物理層就是代表我們能看得見摸得著的一些東西,比如計算機網口壞掉了,網線斷了什麼的都是屬於物理層的故障。
網路層:簡單點說就是IP地址的問題,比如1台PC它需要連接網路,之前它已經手工指定了一個192.168.1.10的地址,但是這次上層路由器給它分的是192.168.1.11的IP地址,所以這台計算機又上不了網了,這個就是網路層故障,當然網路層的東西還是有很多的,總而言之你可以理解為就是IP地址方面出了點問題。
應用層:這個也是比較好理解的,繼續剛剛的例子,現在這台PC物理層也好了,網路層也好了,比如說你現在通過IE瀏覽器來上網問題,你通過QQ,MSN上網和別人聊天,通過炒股軟體觀察股市行情,這些實際應用我們能夠體驗的到的就叫做應用層。可能有時候計算機的IE瀏覽器奔潰了,你不能通過它來上網了,這個就是IE瀏覽器的應用層出了問題。

PS:樓主可能剛剛接觸網路所以有些東西我寫的比較直白,也難免不夠嚴謹,如果你想再更深入全面的了解網路的東西建議看一些專業的書籍,我說您的這些也只能是對於剛剛開始對於概念不清的同學一點小點解。

③ 計算機網路是如何定義的怎樣理解網路中的協議

簡單地說,計算機網路就是通過電纜、電話線或無線通訊將兩台以上的計算機互連起來的集合。 計算機網路的發展經歷了面向終端的單級計算機網路、計算機網路對計算機網路和開放式標准化計算機網路三個階段。 計算機網路通俗地講就是由多台計算機(或其它計算機網路設備)通過傳輸介質和軟體物理(或邏輯)連接在一起組成的。總的來說計算機網路的組成基本上包括:計算機、網路操作系統、傳輸介質(可以是有形的,也可以是無形的,如無線網路的傳輸介質就是空氣)以及相應的應用軟體四部分。 在定義上非常簡單:網路就是一群通過一定形式連接起來的計算機。 一個網路可以由兩台計算機組成,也可以擁有在同一大樓裡面的上千台計算機和使用者。我們通常指這樣的網路為區域網(LAN, Local Area Network),由LAN再延伸出去更大的范圍,比如整個城市甚至整個國家,這樣的網路我們稱為廣域網(WAN, Wide Area Network),當然您如果要再仔細劃分的話,還可以有MAN(Metropolitan Area Network) 和 CAN(Citywide Area Network),這些網路都需要有專門的管理人員進行維護。 因為我們最常使用的還是LAN,(即使我們從家中連上Internet,其實也是先連上ISP的LAN),所以這里我們主要討論的還是以LAN為主。LAN可以說是眾多網路裡面的最基本單位了,等您對LAN有了一定的認識,再去了解WAN和Internet就比較容易入手了,只不過需要了解更多更復雜的通訊手段而已。 其實,最早出現的名詞應該是 Internet,然後人民將 Internet 的概念和技巧引入到內部的私人網路,可以是獨立的一個 LAN 也可以是專屬的 WAN ,於是就稱為 Intranet 了。它們之間的最大分別是:開放性。Internet 是開放的,不屬於任何人,只要能連接得到您就屬於其中一員,也就能獲得上面開放的資源;相對而言,Intranet 則是專屬的、非開放的,它往往存在於於私有網路之上,只是其結構和服務方式和設計,都參考 Internet 的模式而已。 Internet vs Intranet 至於Extranet,算得上是針對 Intranet 而延伸出來的概念。既然 Intranet 是指內網路部而言,那麼 Extranet 則指外部的網路了。Extranet 通常是企業和 Internet 連接,以向公共提供服務的網路。不過,這並非是單純根據物理或邏輯位置來定義,主要是以連接的形式和功能來區分。例如某個外部網路,如果單純的透過網路來連接我們的 Extranet 或 Intranet ,那它只是一個毫不相關的外部個體而已;但是,如果我們用 VPN 或其它信任形式將對方連接起來,那麼對方也可以屬於 Extranet 或 Internet 的部份。 Internet vs internet Internet 是個專業名詞,特指英特網。 internet 是互聯網的泛指,著重於網路的互連互通,英特網就是由多個互聯網連接而成。網路中的協議協議,就是網路中計算機和計算機(如客戶端和伺服器端)之間溝通的約定,計算機之間數據傳輸,通信的規則。如同,我們人與人之間溝通,需要語言,而需要都能理解的語言,如普通話。 計算機中,對協議的操作和實現,一般有軟體來實現。在我們用的Windwos系統中,有專門的軟體來操作執行相關的協議。如我們用到的瀏覽器,他就要調用相關的專門協議,如tcp/ip ,http等來達到目的。首先說,網路協議肯定不是你說的「協議規則下的工作軟體」。 計算機網路中要做到有條不紊的交換數據,就必須遵守一些事先約好的規則。這些規則明確的說明了所交換的數據的格式以及有關的同步問題。這些為網路中的數據交換而建立的規則、標准或是約定就是網路協議。 打個比方,要想公路上汽車、自行車、行人都能井井有條而不出亂子,就必須遵守交通規則,「網路協議」就類似這個「交通規則」!!

④ 如何理解網路協議時水平的,有事垂直的

為了減少網路設計的復雜性,絕大多數網路採用分層設計方法。所謂分層設計方法,就是按照信息的流動過程將網路的整體功能分解為一個個的功能層,不同機器上的同等功能層之間採用相同的協議,同一機器上的相鄰功能層之間通過介面進行信息傳遞。為了便於理解介面和協議的概念,我們首先以郵政通信系統為例進行說明。人們平常寫信時,都有個約定,這就是信件的格式和內容。首先,我們寫信時必須採用雙方都懂的語言文字和文體,開頭是對方稱謂,最後是落款等。這樣,對方收到信後,才可以看懂信中的內容,知道是誰寫的,什麼時候寫的等。當然還可以有其他的一些特殊約定,如書信的編號、間諜的密寫等。信寫好之後,必須將信封裝並交由郵局寄發,這樣寄信人和郵局之間也要有約定,這就是規定信封寫法並貼郵票。在中國寄信必須先寫收信人地址、姓名,然後才寫寄信人的地址和姓名。郵局收到信後,首先進行信件的分揀和分類,然後交付有關運輸部門進行運輸,如航空信交民航,平信交鐵路或公路運輸部門等。這時,郵局和運輸部門也有約定,如到站地點、時間、包裹形式等等。信件運送到目的地後進行相反的過程,最終將信件送到收信人手中,收信人依照約定的格式才能讀懂信件。如圖所示,在整個過程中,主要涉及到了三個子系統、即用戶子系統,郵政子系統和運輸子系統。各種約定都是為了達到將信件從一個源點送到某一個目的點這個目標而設計的,這就是說,它們是因信息的流動而產生的。可以將這些約定分為同等機構間的約定,如用戶之間的約定、郵政局之間的約定和運輸部門之間的約定,以及不同機構間的約定,如用戶與郵政局之間的約定、郵政局與運輸部門之間的約定。雖然兩個用戶、兩個郵政局、兩個運輸部門分處甲、乙兩地,但它們都分別對應同等機構,同屬一個子系統;而同處一地的不同機構則不在一個子系統內,而且它們之間的關系是服務與被服務的關系。很顯然,這兩種約定是不同的,前者為部門內部的約定,而後者是不同部門之間的約定。


在計算機網路環境中,兩台計算機中兩個進程之間進行通信的過程與郵政通信的過程十分相似。用戶進程對應於用戶,計算機中進行通信的進程(也可以是專門的通信處理機〕對應於郵局,通信設施對應於運輸部門。為了減少計算機網路設計的復雜性,人們往往按功能將計算機網路劃分為多個不同的功能層。網路中同等層之間的通信規則就是該層使用的協議,如有關第N層的通信規則的集合,就是第N層的協議。而同一計算機的不同功能層之間的通信規則稱為介面(interface),在第N層和第(N+1)層之間的介面稱為N/(N+1)層介面。總的來說,協議是不同機器同等層之間的通信約定,而介面是同一機器相鄰層之間的通信約定。不同的網路,分層數量、各層的名稱和功能以及協議都各不相同。然而,在所有的網路中,每一層的目的都是向它的上一層提供一定的服務。協議層次化不同於程序設計中模塊化的概念。在程序設計中,各模塊可以相互獨立,任意拼裝或者並行,而層次則一定有上下之分,它是依數據流的流動而產生的。組成不同計算機同等層的實體稱為對等進程(peerprocess)。對等進程不一定非是相同的程序,但其功能必須完全一致,且採用相同的協議。分層設計方法將整個網路通信功能劃分為垂直的層次集合後,在通信過程中下層將向上層隱蔽下層的實現細節。但層次的劃分應首先確定層次的集合及每層應完成的任務。劃分時應按邏輯組合功能,並具有足夠的層次,以使每層小到易於處理。同時層次也不能太多,以免產生難以負擔的處理開銷。計算機網路體系結構是網路中分層模型以及各層功能的精確定義。對網路體系結構的描述必須包括足夠的信息,使實現者可以為每一功能層進行硬體設計或編寫程序,並使之符合相關協議。但我們要注意的是,網路協議實現的細節不屬於網路體系結構的內容,因為它們隱含在機器內部,對外部說來是不可見的。現在我們來考查一個具體的例子:在圖所示的5層網路中如何向其最上層提供通信。在第5層運行的某應用進程產生了消息M,並把它交給第4層進行發送。第4層在消息M前加上一個信息頭(header),信息頭主要包括控制信息(如序號)以便目標機器上的第4層在低層不能保持消息順序時,把亂序的消息按原序裝配好。在有些層中,信息頭還包括長度、時間和其他控制欄位。在很多網路中,第4層對接收的消息長度沒有限制,但在第3層通常存在一個限度。因此,第3層必須將接收的入境消息分成較小的單元如報文分組(packet),並在每個報文分組前加上一個報頭。在本實例中,消息M被分成兩部分:M1和M2。第3層確定使用哪一條輸出線路,並將報文傳給第2層。第2層不僅給每段消息加上頭部信息,而且還要加上尾部信息,構成新的數據單元,通常稱為幀(frame),然後將其傳給第1層進行物理傳輸。在接收方,報文每向上遞交一層,該層的報頭就被剝掉,決不可能出現帶有N層以下報頭的報文交給接收方第N層實體的情況。要理解圖1-11示意圖,關鍵要理解虛擬通信與物理通信之間的關系,以及協議與介面之間的區別。比如,第4層的對等進程,在概念上認為它們的通信是水平方向地應用第四層協議。每一方都好像有一個叫做「發送到另一方去」的過程和一個叫做「從另一方接收」的過程,盡管實際上這些過程是跨過3/4層介面與下層通信而不是直接同另一方通信。抽象出對等進程這一概念,對網路設計是至關重要的。有了這種抽象技術,網路設計者就可以把設計完整的網路這種難以處理的大問題,劃分成設計幾個較小的且易於處理的問題,即分別設計各層。

⑤ 對於網路協議的理解 請指教

你的理解很對 協議就是一套規則 跟這個協議有關的都要遵循這套協議來運轉 就比如為什麼思科的路由器和華為的路由器不兼容一樣 某些配置在他們2個之間不能實現 原因就是協議不同
各層的協議所規定的功能分別由哪部分硬體和軟體來完成?
各層協議分別由各層設備和介面來完成 套用你的話打個比方 汽車靠右行駛 這是個協議 當汽車准備駛入高速口的時候 這個高速口就是個介面 這個介面定義的上層協議和下層協議的轉換 當你進入高速以後 協議轉變 多出個協議 就是最低時速要超過80 我個人認為這個 高速公路就是硬體 定義的速度規則就是個協議
網路層所實現的功能是由路由器來實現的嗎?
網路層屬於第三層 在通信中實現2個功能 路由和選址 其實這2個功能確實由路由器來實現的

所以就一句話 我們理解協議棧之間的轉換 不要理解硬體和軟體 該理解硬體和介面 每層之間的介面決定啟用什麼協議

⑥ 如何理解網路協議

是網路傳輸的規范約定。
比如是怎麼收包怎麼解包,速度多少,遵循什麼標准這些。遵循協議方能傳輸數據。

⑦ 如何測試TCP/IP協議

下載網路抓包工具,可以對網路協議進行詳細的分析

⑧ 怎麼理解網路協議

[1]協議是用來描述進程之間信息交換數據時的規則術語。在計算機網路中,兩個相互通信的實體處在不同的地理位置,其上的兩個進程相互通信,需要通過交換信息來協調它們的動作和達到同步,而信息的交換必須按照預先共同約定好的過程進行。
一個網路協議至少包括三要素:
語法 用來規定信息格式;數據及控制信息的格式、編碼及信號電平等。
語義 用來說明通信雙方應當怎麼做;用於協調與差錯處理的控制信息。
時序(定時 )詳細說明事件的先後順序;速度匹配和排序等。
[編輯本段]網路協議的工作方式
網路上的計算機之間又是如何交換信息的呢?就像我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是網路協議,不同的計算機之間必須使用相同的網路協議才能進行通信。
網路協議是網路上所有設備(網路伺服器、計算機及交換機、路由器、防火牆等)之間通信規則的集合,它規定了通信時信息必須採用的格式和這些格式的意義。大多數網路都採用分層的體系結構,每一層都建立在它的下層之上,向它的上一層提供一定的服務,而把如何實現這一服務的細節對上一層加以屏蔽。一台設備上的第 n層與另一台設備上的第n層進行通信的規則就是第n層協議。在網路的各層中存在著許多協議,接收方和發送方同層的協議必須一致,否則一方將無法識別另一方發出的信息。網路協議使網路上各種設備能夠相互交換信息。常見的協議有:TCP/IP協議、IPX/SPX協議、NetBEUI協議等。
網路上的計算機之間又是如何交換信息的呢?就象我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是網路協議,不同的計算機之間必須使用相同的網路協議才能進行通信。當然了,網路協議也有很多種,具體選擇哪一種協議則要看情況而定。Internet上的計算機使用的是TCP/IP協議。
ARPANET網成功的主要原因是因為它使用了TCP/IP標准網路協議,TCP/IP(Transmission Control Protocol/Internet Protocol)----傳輸控制協議/互連網協議是Internet採用的一種標准網路協議。它是由ARPA於1977年到1979年推出的一種網路體系結構和協議規范。隨著Internet網的發展,TCP/IP也得到進一步的研究開發和推廣應用,成為Internet網上的"通用語言"。
[編輯本段]網路協議的層次結構
由於網路節點之間聯系的復雜性,在制定協議時,通常把復雜成分分解成一些簡單成分,然後再將它們復合起來。最常用的復合技術就是層次方式,網路協議的層次結構如下:
(1)結構中的每一層都規定有明確的服務及介面標准。
(2)把用戶的應用程序作為最高層
(3)除了最高層外,中間的每一層都向上一層提供服務,同時又是下一層的用戶。
(4)把物理通信線路作為最低層,它使用從最高層傳送來的參數,是提供服務的基礎。
[編輯本段]網路協議層次的劃分
為了使不同計算機廠家生產的計算機能夠相互通信,以便在更大的范圍內建立計算機網路,國際標准化組織(ISO)在1978年提出了「開放系統互聯參考模型」,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它將計算機網路體系結構的通信協議劃分為七層,自下而上依次為:物理層(Physics Layer)、數據鏈路層(Data Link Layer)、網路層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。
其中低四層完成數據傳送服務,上面三層面向用戶。對於每一層,至少制定兩項標准:服務定義和協議規范。前者給出了該層所提供的服務的准確定義,後者詳細描述了該協議的動作和各種有關規程,以保證服務的提供。
[2]TCP/IP協議毫無疑問是這三大協議中最重要的一個,作為互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議。不過TCP/IP協議也是這三大協議中配置起來最麻煩的一個,單機上網還好,而通過區域網訪問互聯網的話,就要詳細設置IP地址,網關,子網掩碼,DNS伺服器等參數。
TCP/IP盡管是目前最流行的網路協議,但TCP/IP協議在區域網中的通信效率並不高,使用它在瀏覽「網上鄰居」中的計算機時,經常會出現不能正常瀏覽的現象。此時安裝NetBEUI協議就會解決這個問題。
NetBEUI即NetBios Enhanced User Interface ,或NetBios增強用戶介面。它是NetBIOS協議的增強版本,曾被許多操作系統採用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI協議在許多情形下很有用,是WINDOWS98之前的操作系統的預設協議。NetBEUI協議是一種短小精悍、通信效率高的廣播型協議,安裝後不需要進行設置,特別適合於在「網路鄰居」傳送數據。所以建議除了TCP/IP協議之外,小型區域網的計算機也可以安上NetBEUI協議。另外還有一點要注意,如果一台只裝了TCP/IP協議的WINDOWS98機器要想加入到WINNT域,也必須安裝NetBEUI協議。
IPX/SPX協議本來就是Novell開發的專用於NetWare網路中的協議,但是現在也非常常用--大部分可以聯機的游戲都支持IPX/SPX協議,比如星際爭霸,反恐精英等等。雖然這些游戲通過TCP/IP協議也能聯機,但顯然還是通過IPX/SPX協議更省事,因為根本不需要任何設置。除此之外,IPX/SPX協議在區域網絡中的用途似乎並不是很大,如果確定不在區域網中聯機玩游戲,那麼這個協議可有可無。
[編輯本段]以用途劃分的網路協議
網路層協議:包括:IP協議、ICMP協議、ARP協議、RARP協議。
傳輸層協議:TCP協議、UDP協議。
應用層協議:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。

⑨ 網路協議的理解

網路上的計算機之間又是如何交換信息的呢?就像我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是網路協議,不同的計算機之間必須使用相同的網路協議才能進行通信。
網路上的計算機之間又是如何交換信息的呢?就象我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是網路協議,不同的計算機之間必須使用相同的網路協議才能進行通信。當然了,網路協議也有很多種,具體選擇哪一種協議則要看情況而定。Internet上的計算機使用的是TCP/IP協議。
ARPANET網成功的主要原因是因為它使用了TCP/IP標准網路協議,TCP/IP(Transmission Control Protocol/Internet Protocol)----傳輸控制協議/互連網協議是Internet採用的一種標准網路協議。它是由ARPA於1977年到1979年推出的一種網路體系結構和協議規范。隨著Internet網的發展,TCP/IP也得到進一步的研究開發和推廣應用,成為Internet網上的"通用語言"。

⑩ 面試android的時候面試官提問"對網路通信協議熟悉嗎對socket和http了解嗎能解釋下嗎",跪求幫助

我學網路專業,對網路通信協議還是比較熟悉的,「先講下7層協議,然後從7層協議中引出socket和http」
套接字(socket)是通信的基石,是支持TCP/IP協議的網路通信的基本操作單元。它是網路通信過程中端點的抽象表示,包含進行網路通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議埠,遠地主機的IP地址,遠地進程的協議埠。

應用層通過傳輸層進行數據通信時,TCP會遇到同時為多個應用程序進程提供並發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個
TCP協議埠傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了套接字(Socket)介面。應用層可以和傳輸層通過Socket介面,區分來自不同應用程序進程或網路連接的通信,實現數據傳輸的並發服務。
建立Socket連接至少需要一對套接字,其中一個運行於客戶端,稱為ClientSocket ,另一個運行於伺服器端,稱為ServerSocket 。
套接字之間的連接過程分為三個步驟:伺服器監聽,客戶端請求,連接確認。

伺服器監聽:伺服器端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網路狀態,等待客戶端的連接請求。

客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是伺服器端的套接字。為此,客戶端的套接字必須首先描述它要連接的伺服器的套接字,指出伺服器端套接字的地址和埠號,然後就向伺服器端套接字提出連接請求。

連接確認:當伺服器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把伺服器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。而伺服器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連接請求。
HTTP協議即超文本傳送協議(Hypertext Transfer Protocol
),是Web聯網的基礎,也是手機聯網常用的協議之一,HTTP協議是建立在TCP協議之上的一種應用。

HTTP連接最顯著的特點是客戶端發送的每次請求都需要伺服器回送響應,在請求結束後,會主動釋放連接。從建立連接到關閉連接的過程稱為「一次連接」。

1)在HTTP 1.0中,客戶端的每次請求都要求建立一次單獨的連接,在處理完本次請求後,就自動釋放連接。

2)在HTTP
1.1中則可以在一次連接中處理多個請求,並且多個請求可以重疊進行,不需要等待一個請求結束後再發送下一個請求。

由於HTTP在每次請求結束後都會主動釋放連接,因此HTTP連接是一種「短連接」,要保持客戶端程序的在線狀態,需要不斷地向伺服器發起連接請求。通常的做法是即時不需要獲得任何數據,客戶端也保持每隔一段固定的時間向伺服器發送一次「保持連接」的請求,伺服器在收到該請求後對客戶端進行回復,表明知道客戶端「在線」。若伺服器長時間無法收到客戶端的請求,則認為客戶端「下線」,若客戶端長時間無法收到伺服器的回復,則認為網路已經斷開。
由於通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開始相互發送數據內容,直到雙方連接斷開。但在實際網路應用中,客戶端到伺服器之間的通信往往需要穿越多個中間節點,例如路由器、網關、防火牆等,大部分防火牆默認會關閉長時間處於非活躍狀態的連接而導致
Socket 連接斷連,因此需要通過輪詢告訴網路,該連接處於活躍狀態。

而HTTP連接使用的是「請求—響應」的方式,不僅在請求時需要先建立連接,而且需要客戶端向伺服器發出請求後,伺服器端才能回復數據。

很多情況下,需要伺服器端主動向客戶端推送數據,保持客戶端與伺服器數據的實時與同步。此時若雙方建立的是Socket連接,伺服器就可以直接將數據傳送給客戶端;若雙方建立的是HTTP連接,則伺服器需要等到客戶端發送一次請求後才能將數據傳回給客戶端,因此,客戶端定時向伺服器端發送連接請求,不僅可以保持在線,同時也是在「詢問」伺服器是否有新的數據,如果有就將數據傳給客戶端。

閱讀全文

與如何考察測試對網路協議的理解相關的資料

熱點內容
怎麼用唯品會顯示網路異常 瀏覽:383
上海網路電視需多少兆 瀏覽:27
WIN7系統安裝哪個網路適配器 瀏覽:552
道路養護與管理計算機網路技術 瀏覽:419
手機抖音網路歌曲 瀏覽:708
蘋果網路允許設置 瀏覽:272
為什麼有網路嗶哩嗶哩視頻 瀏覽:95
廣東廣電網路u點家庭服務ip是多少 瀏覽:942
校園無線網路工程 瀏覽:821
投訴河北廣電網路打哪個電話投訴 瀏覽:828
移動網路最差嗎 瀏覽:31
黑鯊4如何提高游戲網路 瀏覽:307
挑戰無線網路加速 瀏覽:457
電腦插網線網路熱點打不開 瀏覽:894
網路共享是不是要比一般的多 瀏覽:98
搭建一個網路工作室需要多少錢 瀏覽:536
計算機網路英語閱讀 瀏覽:114
康佳電視網路設置在哪 瀏覽:701
網路五米是多少錢 瀏覽:445
連接wifi老是提示網路 瀏覽:287

友情鏈接