第一篇:TCPIP詳解-卷一-協(xié)議-12.5小結(jié)
12.5小結(jié)
廣播是將數(shù)據(jù)報(bào)發(fā)送到網(wǎng)絡(luò)中的所有主機(jī)(通常是本地相連的網(wǎng)絡(luò)),而多播是將數(shù)據(jù)報(bào)發(fā)送到網(wǎng)絡(luò)的一個(gè)主機(jī)組。這兩個(gè)概念的基本點(diǎn)在于當(dāng)收到送往上一個(gè)協(xié)議棧的數(shù)據(jù)幀時(shí)采用不同類型的過濾。每個(gè)協(xié)議層均可以因?yàn)椴煌睦碛蓙G棄數(shù)據(jù)報(bào)。
目前有四種類型的廣播地址:受限的廣播、指向網(wǎng)絡(luò)的廣播、指向子網(wǎng)的廣播和指向所有子網(wǎng)的廣播。最常用的是指向子網(wǎng)的廣播。受限的廣播通常只在系統(tǒng)初始啟動(dòng)時(shí)才會(huì)用到。試圖通過路由器進(jìn)行廣播而發(fā)生的問題,常常是因?yàn)槁酚善鞑涣私饽康木W(wǎng)絡(luò)的子網(wǎng)掩碼。結(jié)果與多種因素有關(guān):廣播地址類型、配置參數(shù)等等。D類IP地址被稱為多播組地址。通過將其低位23bit映射到相應(yīng)以太網(wǎng)地址中便可實(shí)現(xiàn)多播組地址到以太網(wǎng)地址的轉(zhuǎn)換。由于地址映射是不唯一的,因此需要其他的協(xié)議實(shí)現(xiàn)額外的數(shù)據(jù)報(bào)過濾。
習(xí)題
12.1廣播是否增加了網(wǎng)絡(luò)通信量?
12.2考慮一個(gè)擁有50臺(tái)主機(jī)的以太網(wǎng):20臺(tái)運(yùn)行TCP/IP,其他30臺(tái)運(yùn)行其他的協(xié)議族。主機(jī)如何處理來自運(yùn)行另一個(gè)協(xié)議族主機(jī)的廣播?
12.3登錄到一個(gè)過去從來沒有用過的Unix系統(tǒng),并且打算找出所有支持廣播的接口的指向子網(wǎng)的廣播地址。如何做到這點(diǎn)?
12.4如果我們用ping程序向一個(gè)廣播地址發(fā)送一個(gè)長的分組,如
它正常工作,但將分組的長度再增加一個(gè)字節(jié)后出現(xiàn)如下差錯(cuò): sun%ping140.252.13.631473
PING140.252.13.63:1473databytessendto:Messagetoolong究竟出了什么問題?
12.5重做習(xí)題10.6,假定8個(gè)RIP報(bào)文是通過多播而不是廣播(使用RIP版本2)。有什么變化?
第二篇:TCPIP詳解-卷一-協(xié)議-第一章-概述-1.17小結(jié)
1.17小結(jié)
本章快速地瀏覽了TCP/IP協(xié)議族,介紹了在后面的章節(jié)中將要詳細(xì)討論的許多術(shù)語和協(xié)議。
TCP/IP協(xié)議族分為四層:鏈路層、網(wǎng)絡(luò)層、運(yùn)輸層和應(yīng)用層,每一層各有不同的責(zé)任。在TCP/IP中,網(wǎng)絡(luò)層和運(yùn)輸層之間的區(qū)別是最為關(guān)鍵的:網(wǎng)絡(luò)層(IP)提供點(diǎn)到點(diǎn)的服務(wù),而運(yùn)輸層(TCP和UDP)提供端到端的服務(wù)。
一個(gè)互聯(lián)網(wǎng)是網(wǎng)絡(luò)的網(wǎng)絡(luò)。構(gòu)造互聯(lián)網(wǎng)的共同基石是路由器,它們?cè)贗P層把網(wǎng)絡(luò)連在一起。第一個(gè)字母大寫的Internet是指分布在世界各地的大型互聯(lián)網(wǎng),其中包括1萬多個(gè)網(wǎng)絡(luò)和超過100萬臺(tái)主機(jī)。
在一個(gè)互聯(lián)網(wǎng)上,每個(gè)接口都用IP地址來標(biāo)識(shí),盡管用戶習(xí)慣使用主機(jī)名而不是IP地址。域名系統(tǒng)為主機(jī)名和IP地址之間提供動(dòng)態(tài)的映射。端口號(hào)用來標(biāo)識(shí)互相通信的應(yīng)用程序。服務(wù)器使用知名端口號(hào),而客戶使用臨時(shí)設(shè)定的端口號(hào)。
習(xí)題
1.1 請(qǐng)計(jì)算最多有多少個(gè)A類、B類和C類網(wǎng)絡(luò)號(hào)。
1.2 用匿名FTP(見27.3節(jié))從主機(jī)nic.merit.edu上獲取文件nsfnet/statistics/ history.netcount。該文件包含在NSFNET網(wǎng)絡(luò)上登記的國內(nèi)和國外的網(wǎng)絡(luò)數(shù)。畫一坐標(biāo)系,橫坐標(biāo)代表年,縱坐標(biāo)代表網(wǎng)絡(luò)總數(shù)的對(duì)數(shù)值??v坐標(biāo)的最大值是習(xí)題1.1的結(jié)果。如果數(shù)據(jù)顯示一個(gè)明顯的趨勢(shì),請(qǐng)估計(jì)按照當(dāng)前的編址體制推算,何時(shí)會(huì)用完所有的網(wǎng)絡(luò)地址(3.10節(jié)討論解決該難題的建議)。
1.3 獲取一份主機(jī)需求RFC拷貝[Braden1989a],閱讀有關(guān)應(yīng)用于TCP/IP協(xié)議族每一層的穩(wěn)健性原則。這個(gè)原則的參考對(duì)象是什么? 1.4 獲取一份最新的賦值RFC拷貝。“quoteoftheday”協(xié)議的有名端口號(hào)是什么?哪個(gè)RFC對(duì)該協(xié)議進(jìn)行了定義?
1.5 如果你有一個(gè)接入TCP/IP互聯(lián)網(wǎng)的主機(jī)帳號(hào),它的主IP地址是多少?這臺(tái)主機(jī)是否接入了Internet?它是多接口主機(jī)嗎?
1.6 獲取一份RFC1000的拷貝,了解RFC這個(gè)術(shù)語從何而來。
1.7 與Internet協(xié)會(huì)聯(lián)系,isoc@isoc.org或者+***,了解有關(guān)加入的情況。1.8 用匿名FTP從主機(jī)is.internic.net處獲取文件about-internic/informationabout-the-internic。
第三篇:TCPIP協(xié)議的應(yīng)用
TCP/IP協(xié)議的應(yīng)用
學(xué)生:
摘要: Trans mission Control Protocol/Internet Protocol的簡(jiǎn)寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。
關(guān)鍵詞:TCP/IP;計(jì)算機(jī);因特網(wǎng);應(yīng)用
引言:到了今天,它已經(jīng)成為網(wǎng)絡(luò)世界中運(yùn)用最廣泛,最有生命力的通信協(xié)議,如今電腦上Internet都需要它的設(shè)置。顯然它已經(jīng)成為地球村“人與人”之間的“牽手協(xié)議”隨著當(dāng)前電腦的普及,使得網(wǎng)絡(luò)得到了快速發(fā)展,TCP/IP 定義了電子設(shè)備如何連入因特,最網(wǎng),以及數(shù)據(jù)標(biāo)準(zhǔn)。而這個(gè)協(xié)議也是屬于眾多TCP/IP中的一部分對(duì)設(shè)計(jì)TCP/IP的相關(guān)概念予以解釋。TCP/IP協(xié)議概述
1.1TCP/IP協(xié)議的簡(jiǎn)單說明:
在Internet沒有形成之前,各個(gè)地方已經(jīng)建立了很多小型的網(wǎng)絡(luò),稱為局域網(wǎng),Internet的中文意義是“網(wǎng)際網(wǎng)”。然而,在連接之前的各式各樣的局域網(wǎng)卻存在不同的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)傳輸規(guī)則,將這些小網(wǎng)連接起來后各網(wǎng)之間要通過什么樣的規(guī)則來傳輸數(shù)據(jù)呢? TCP/IP協(xié)議正是Internet上的“世界語”。
1.2TCP/IP協(xié)議的層次概述
從協(xié)議分層模型方面來講,TCP/IP由四個(gè)層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。
1.3TCP/IP協(xié)議的數(shù)據(jù)格式
數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾(幀頭包括源和目標(biāo)主機(jī)MAC地址及類型,幀尾是校驗(yàn)
字)
IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息(IP頭包括源和目標(biāo)主機(jī)IP地址、類型、生存期等)TCP數(shù)據(jù)信息:TCP頭部+實(shí)際數(shù)據(jù)(TCP頭包括源和目標(biāo)主機(jī)端口號(hào)、順序號(hào)、確認(rèn)號(hào)、校驗(yàn)字等)
1.4TCP/IP協(xié)議的主要特點(diǎn)
1.開放的協(xié)議標(biāo)準(zhǔn),可以免費(fèi)使用,并且獨(dú)立于特定的計(jì)算機(jī)硬件與操作系統(tǒng)
2.獨(dú)立于特定的網(wǎng)絡(luò)硬件,可以運(yùn)行在局域網(wǎng)、廣域網(wǎng),更適用于互聯(lián)網(wǎng)中
3.統(tǒng)一的網(wǎng)絡(luò)地址分配方案,使得整個(gè)TCP/IP設(shè)備在網(wǎng)中都具有惟一的地址
4.標(biāo)準(zhǔn)化的高層協(xié)議,可以提供多種可靠的用戶服務(wù)。TCP/IP協(xié)議的優(yōu)勢(shì)
一個(gè)專有的網(wǎng)絡(luò)開發(fā)出來用于特定目的。如果它工作很好,用戶將接受它。
為了便利提供IP服務(wù),經(jīng)常用于訪問電子郵件或者聊天,通常以某種方式通過專有網(wǎng)絡(luò)隧道實(shí)現(xiàn)。隧道方式最初可能非常沒有效率,因?yàn)殡娮余]件和聊天只需要很低的帶寬。
通過一點(diǎn)點(diǎn)的投資IP 基礎(chǔ)設(shè)施逐漸在專有數(shù)據(jù)網(wǎng)絡(luò)周邊出現(xiàn)。
用IP取代專有服務(wù)的需求出現(xiàn),經(jīng)常是一個(gè)用戶要求。
IP替代品過程遍布整個(gè)因特網(wǎng),這使IP替代品比最初的專有網(wǎng)絡(luò)更加有價(jià)值(由于網(wǎng)絡(luò)效應(yīng))。
專有網(wǎng)絡(luò)受到壓制。許多用戶開始維護(hù)使用IP替代品的復(fù)制品。
IP包的間接開銷很小,少于1%,這樣在成本上非常有競(jìng)爭(zhēng)性。人們開發(fā)了一種能夠?qū)P帶到專有網(wǎng)絡(luò)上的大部分用戶的不昂貴的傳輸媒介。TCP/IP協(xié)議的運(yùn)作機(jī)制
3.1IP
IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。
3.2TCP
TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊時(shí)完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。
TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來實(shí)現(xiàn)傳輸?shù)目煽啃?。TCP還采用一種稱為“滑動(dòng)窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。
TCP將它的信息送到更高層的應(yīng)用程序。
3.3UDP
UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息,由于通訊不需要連接,所以可以實(shí)現(xiàn)廣播發(fā)送。
UDP通訊時(shí)不需要接收方確認(rèn),屬于不可靠的傳輸,可能會(huì)出丟包現(xiàn)象,實(shí)際應(yīng)用中要求在程序員編程驗(yàn)證。
3.4CMP
ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問題。TCP/IP協(xié)議的版本更新
IPv4,是互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)的第四版,也是第一個(gè)被廣泛使用,構(gòu)成現(xiàn)今互聯(lián)網(wǎng)技術(shù)的基石的協(xié)議。1981年Jon Postel 在RFC791中定義了IP,Ipv4可以運(yùn)行在各種各樣的底層網(wǎng)絡(luò)上,比如端對(duì)端的串行數(shù)據(jù)鏈路(PPP協(xié)議和SLIP協(xié)議),衛(wèi)星鏈路等等。局域網(wǎng)中最常用的是以太網(wǎng)。
IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“互聯(lián)網(wǎng)協(xié)議”。IPv6是IETF(互聯(lián)網(wǎng)工程任務(wù)組,Internet Engineering Task Force)設(shè)計(jì)的用于替代現(xiàn)行版本IP協(xié)議(IPv4)的下一代IP協(xié)議。
與IPV4相比,IPV6具有以下幾個(gè)優(yōu)勢(shì):
一,IPv6具有更大的地址空間。
二,IPv6使用更小的路由表。
三,IPv6增加了增強(qiáng)的組播(Multicast)支持以及對(duì)流的支持(Flow Control)。四,IPv6加入了對(duì)自動(dòng)配置(Auto Configuration)的支持。TCP/IP協(xié)議的協(xié)議測(cè)試
全面的測(cè)試應(yīng)包括局域網(wǎng)和互聯(lián)網(wǎng)兩個(gè)方面,因此應(yīng)從局域網(wǎng)和互聯(lián)網(wǎng)兩個(gè)方面測(cè)試,以下是在實(shí)際工作中利用命令行測(cè)試TCP/IP配置步驟:
1.單擊“開始”/“運(yùn)行”,輸入CMD按回車,打開命令提示符窗口。
2.首先檢查IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器地址是否正確,輸入命令ipconfig /all,按回車。此時(shí)顯示了你的網(wǎng)絡(luò)配置,觀查是否正確。
3.輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”,表明配置差錯(cuò)或網(wǎng)絡(luò)有問題。
4.Ping一個(gè)互聯(lián)網(wǎng)地址,看是否有數(shù)據(jù)包傳回,以驗(yàn)證與互聯(lián)網(wǎng)的連接性。
5.Ping 一個(gè)局域網(wǎng)地址,觀查與它的連通性。
6.用nslookup測(cè)試DNS解析是否正確,輸入如nslookup,查看是否能解析。TCP/IP的協(xié)議重置
如果需要重新安裝 TCP/IP 以使TCP/IP 堆?;謴?fù)為原始狀態(tài)??梢允褂肗etShell 實(shí)用程序重置TCP/IP 堆棧,使其恢復(fù)到初次安裝操作系統(tǒng)時(shí)的狀態(tài)。具體操作如下:
1.單擊 開始--> 運(yùn)行,輸入“CMD” 后單擊“確定”;
2.在命令行模式輸入命令
運(yùn)行此命令的結(jié)果與刪除并重新安裝TCP/IP 協(xié)議的效果相同。
7結(jié)論
通過此次對(duì)TCP/IP協(xié)議的查詢與了解。我們關(guān)于網(wǎng)絡(luò)的知識(shí)又有了進(jìn)一步的提升。我們了解了TPC/IP協(xié)議的重要功能。正是由于這個(gè)協(xié)議,才有了我們?nèi)缃竦摹暗厍虼濉?。TPC/IP協(xié)議是我們?nèi)缃窬W(wǎng)絡(luò)層中最基本同時(shí)也是最重要的協(xié)議。我相信隨著如今現(xiàn)代科技的飛速發(fā)展,這份協(xié)議也會(huì)更加臻于完美。
參考資料:
第四篇:http、TCPIP協(xié)議與socket之間的區(qū)別
http、TCP/IP協(xié)議與socket之間的區(qū)別
1、TCP/IP連接手機(jī)能夠使用聯(lián)網(wǎng)功能是因?yàn)槭謾C(jī)底層實(shí)現(xiàn)了TCP/IP協(xié)議,可以使手機(jī)終端通過無線網(wǎng)絡(luò)建立TCP連接。TCP協(xié)議可以對(duì)上層網(wǎng)絡(luò)提供接口,使上層網(wǎng)絡(luò)數(shù)據(jù)的傳輸建立在“無差別”的網(wǎng)絡(luò)之上。
建立起一個(gè)TCP連接需要經(jīng)過“三次握手”:
第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
握手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)。理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動(dòng)關(guān)閉連接之前,TCP 連接都將被一直保持下去。斷開連接時(shí)服務(wù)器和客戶端均可以主動(dòng)發(fā)起斷開TCP連接的請(qǐng)求,斷開過程需要經(jīng)過“四次握手”(過程就不細(xì)寫了,就是服務(wù)器和客戶端交互,最終確定斷開).2、HTTP連接
HTTP協(xié)議即超文本傳送協(xié)議(Hypertext Transfer Protocol),是Web聯(lián)網(wǎng)的基礎(chǔ),也是手機(jī)聯(lián)網(wǎng)常用的協(xié)議之一,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應(yīng)用。
HTTP連接最顯著的特點(diǎn)是客戶端發(fā)送的每次請(qǐng)求都需要服務(wù)器回送響應(yīng),在請(qǐng)求結(jié)束后,會(huì)主動(dòng)釋放連接。從建立連接到關(guān)閉連接的過程稱為“一次連接”。
1)在HTTP 1.0中,客戶端的每次請(qǐng)求都要求建立一次單獨(dú)的連接,在處理完本次請(qǐng)求后,就自動(dòng)釋放連接。
2)在HTTP 1.1中則可以在一次連接中處理多個(gè)請(qǐng)求,并且多個(gè)請(qǐng)求可以重疊進(jìn)行,不需要等待一個(gè)請(qǐng)求結(jié)束后再發(fā)送下一個(gè)請(qǐng)求。
由于HTTP在每次請(qǐng)求結(jié)束后都會(huì)主動(dòng)釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態(tài),需要不斷地向服務(wù)器發(fā)起連接請(qǐng)求。通常的做法是即時(shí)不需要獲得任何數(shù)據(jù),客戶端也保持每隔一段固定的時(shí)間向服務(wù)器發(fā)送一次“保持連接”的請(qǐng)求,服務(wù)器在收到該請(qǐng)求后對(duì)客戶端進(jìn)行回復(fù),表明知道客戶端“在線”。若服務(wù)器長時(shí)間無法收到
客戶端的請(qǐng)求,則認(rèn)為客戶端“下線”,若客戶端長時(shí)間無法收到服務(wù)器的回復(fù),則認(rèn)為網(wǎng)絡(luò)已經(jīng)斷開。
3、SOCKET原理3.1套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過同一個(gè) TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過Socket接口,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
3.2 建立socket連接
建立Socket連接至少需要一對(duì)套接字,其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket。
套接字之間的連接過程分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。
服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請(qǐng)求。
客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。
連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請(qǐng)求時(shí),就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。
4、SOCKET連接與TCP/IP連接
創(chuàng)建Socket連接時(shí),可以指定使用的傳輸層協(xié)議,Socket可以支持不同的傳輸層協(xié)議(TCP或UDP),當(dāng)使用TCP協(xié)議進(jìn)行連接時(shí),該Socket連接就是一個(gè)TCP連接。
socket則是對(duì)TCP/IP協(xié)議的封裝和應(yīng)用(程序員層面上)。也可以說,TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù) 如何在網(wǎng)絡(luò)中傳輸,而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。關(guān)于TCP/IP和HTTP協(xié)議的關(guān)系,網(wǎng)絡(luò)有一段比較容易理解的介紹:
“我們?cè)趥鬏敂?shù)據(jù)時(shí),可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話,如 果沒有應(yīng)用層,便無法識(shí)別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應(yīng)用層協(xié)議,應(yīng)用層協(xié)議有很多,比如HTTP、FTP、TELNET等,也 可以自己定義應(yīng)用層協(xié)議。WEB使用HTTP協(xié)議作應(yīng)用層協(xié)議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡(luò)上?!?/p>
我們平時(shí)說的最多的socket是什么呢,實(shí)際上socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。實(shí)際上,Socket跟TCP/IP協(xié)議沒有必然的聯(lián)系。Socket編程接口在設(shè)計(jì)的時(shí)候,就希望也能適應(yīng)其他的網(wǎng)絡(luò)協(xié)議。所以說,Socket的出現(xiàn) 只是使得程序員更方便地使用TCP/IP協(xié)議棧而已,是對(duì)TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口,比如create、listen、connect、accept、send、read和write等等。網(wǎng)絡(luò)有一段關(guān)于socket和TCP/IP協(xié)議關(guān)系的說法比較容易理解:
“TCP/IP只是一個(gè)協(xié)議棧,就像操作系統(tǒng)的運(yùn)行機(jī)制一樣,必須要具體實(shí)現(xiàn),同時(shí)還要提供對(duì)外的操作接口。這個(gè)就像操作系統(tǒng)會(huì)提供標(biāo)準(zhǔn)的編程接口,比如win32編程接口一樣,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口?!?/p>
實(shí)際上,傳輸層的TCP是基于網(wǎng)絡(luò)層的IP協(xié)議的,而應(yīng)用層的HTTP協(xié)議又是基于傳輸層的TCP協(xié)議的,而Socket本身不算是協(xié)議,就像上面所說,它只是提供了一個(gè)針對(duì)TCP或者UDP編程的接口。socket是對(duì)端口通信開發(fā)的工具,它要更底層一些.5、Socket連接與HTTP連接
由于通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開始相互發(fā)送數(shù)據(jù)內(nèi)容,直到雙方連接斷開。但在實(shí)際網(wǎng)絡(luò)應(yīng)用中,客戶端到服務(wù)器之間的通信往往需要穿越多個(gè)中間節(jié)點(diǎn),例如路由器、網(wǎng)關(guān)、防火墻等,大部分防火墻默認(rèn)會(huì)關(guān)閉長時(shí)間處于非活躍狀態(tài)的連接而導(dǎo)致 Socket 連接斷連,因此需要通過輪詢告訴網(wǎng)絡(luò),該連接處于活躍狀態(tài)。
而HTTP連接使用的是“請(qǐng)求—響應(yīng)”的方式,不僅在請(qǐng)求時(shí)需要先建立連接,而且需要客戶端向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。
很多情況下,需要服務(wù)器端主動(dòng)向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。此時(shí)若雙方建立的是Socket連接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端;若雙方建立的是HTTP連接,則服務(wù)器需要等到客戶端發(fā)送一次請(qǐng)求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時(shí)向服務(wù)器端發(fā)送連接請(qǐng)求,不僅可以保持在線,同時(shí)也是在“詢問”服務(wù)器是否有新的數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端。
http協(xié)議是應(yīng)用層的協(xié)義
有個(gè)比較形象的描述:HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。
兩個(gè)計(jì)算機(jī)之間的交流無非是兩個(gè)端口之間的數(shù)據(jù)通信,具體的數(shù)據(jù)會(huì)以什么樣的形式展現(xiàn)`是以不同的應(yīng)用層協(xié)議來定義的`如HTTP`FTP`
第五篇:第02講_TCPIP協(xié)議架構(gòu)_電子教案
第2講 TCP/IP協(xié)議架構(gòu)
教學(xué)目標(biāo)
1、掌握網(wǎng)絡(luò)基本知識(shí):什么是網(wǎng)絡(luò)、網(wǎng)絡(luò)類型、對(duì)等網(wǎng)和主從式網(wǎng)絡(luò)
2、掌握網(wǎng)絡(luò)協(xié)議
3、了解OSI七層模型
4、掌握TCP/IP協(xié)議的架構(gòu)(含ARP、IP地址分類、TCP/UDP、端口號(hào)等)
重點(diǎn)難點(diǎn)
1、網(wǎng)絡(luò)的概念
2、TCP/IP協(xié)議的架構(gòu) 應(yīng) 知
1、網(wǎng)絡(luò)類型
2、OSI七層模型 應(yīng) 會(huì)
1、TCP/IP協(xié)議中的IP協(xié)議的作用、IP地址的分類、分配;
2、TCP/IP協(xié)議中的TCP/UDP 協(xié)議的作用、區(qū)別,TCP協(xié)議的三次握手;
3、TCP/IP協(xié)議中的ARP協(xié)議的作用、工作原理;
4、TCP/IP協(xié)議中的ICMP協(xié)議的作用、工作原理; 教學(xué)方法
1、宏觀上采用“理論聯(lián)系實(shí)踐”、從實(shí)際問題入手”、“形象比喻”的方法,把抽象、枯燥的理論,形象化、生動(dòng)化。
2、微觀上采用多種教學(xué)工具—ethereal,讓學(xué)生看到實(shí)際的TCP/IP協(xié)議的數(shù)據(jù)封裝過程。
3、在課堂上注意多提問,多聯(lián)系實(shí)際,注重與學(xué)生的互動(dòng),充分調(diào)動(dòng)學(xué)生的積極性。教學(xué)過程
1、問題引入
(1)為什么需要計(jì)算機(jī)網(wǎng)絡(luò)?(2)在網(wǎng)絡(luò)中為什么需要協(xié)議?
2、課程過程
? 通過第一個(gè)問題:為什么需要計(jì)算機(jī)網(wǎng)絡(luò)?讓學(xué)生根據(jù)已有的直觀知識(shí),自己總結(jié)出來。
? 然后深入講解相關(guān)的網(wǎng)絡(luò)概念。
? 讓學(xué)生根據(jù)已有的直觀知識(shí),自己總結(jié)網(wǎng)絡(luò)的作用。
? 借用交通規(guī)則,引入第二個(gè)問題:在網(wǎng)絡(luò)中為什么需要協(xié)議? ? 通過操作系統(tǒng)的協(xié)議棧,介紹不同的協(xié)議、不同的模型。
? 通過ethereal,讓學(xué)生看到實(shí)際的TCP/IP協(xié)議的數(shù)據(jù)封裝過程。
? 打開網(wǎng)絡(luò)鄰居,讓學(xué)生觀察網(wǎng)絡(luò)參數(shù)中IP地址的分配,進(jìn)而講解IP地址的作用、分類,以及規(guī)劃。
? 通過netstat命令,讓學(xué)生理解端口的概念,引出TCP/UDP 協(xié)議的作用、區(qū)別。? 通過ethereal捕獲的數(shù)據(jù)包,觀察TCP協(xié)議三次握手的過程。
? 打開操作系統(tǒng)的ARP緩存,觀察操作系統(tǒng)的ARP緩存的內(nèi)容,進(jìn)一步講解ARP協(xié)議的作用、工作原理。引申出目前的ARP類的黑客攻擊、ARP類的病毒。? 通過ping命令, 讓學(xué)生理解ICMP協(xié)議的作用、工作原理。
? 從數(shù)據(jù)鏈路層開始介紹,重點(diǎn)放在網(wǎng)絡(luò)層IP協(xié)議、傳輸層TCP/UDP協(xié)議。小結(jié) ? ? 這是非常重要的一章,是本課程的基礎(chǔ),貫徹課程的始終,所以對(duì)學(xué)生強(qiáng)調(diào)重要性,使學(xué)生扎實(shí)的掌握本單元的內(nèi)容
重點(diǎn)講解TCP/IP協(xié)議中的內(nèi)容:IP地址、ARP、TCP/UDP協(xié)議。