




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精心整理計(jì)算機(jī)網(wǎng)絡(luò)? OSI與TCP/IP各層的結(jié)構(gòu)與功能,都有哪些協(xié)議。ISO/OSI 模型用途主要作用協(xié)議應(yīng)用層進(jìn)程間通信為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提TFTP , HTTP ,供訪問網(wǎng)絡(luò)服務(wù)的接口。JSNMP , FTP,SMTP, DNS ,Telnetl:表示層數(shù)據(jù)表示(編碼)解決用戶信息的 語法表示問題。|無協(xié)議提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù)。數(shù)據(jù)的 壓縮和解壓縮,?加密和解密等工作都由表示層 負(fù)責(zé)。 -、會(huì)話層建立和管理主機(jī) 間的會(huì)話會(huì)話層不參與具體的傳輸,它提 供包括訪問驗(yàn)證和會(huì)話管理在 內(nèi)的建立和維護(hù)應(yīng)用之間通信的機(jī)制。如服務(wù)器驗(yàn)證用戶登錄 便是由會(huì)話層完成的。(以上統(tǒng)稱報(bào)文)無
2、協(xié)議傳輸層端到端鏈接.” >1 1 打 '1 1 1 - '、1提供主機(jī)之間連接,屏蔽技術(shù)細(xì) 節(jié)。將分組組成報(bào)文,可靠傳輸、 流量控制。為上層提供端到端 1 (最終用戶到最終用戶)的透明1TCP,UDP的、可靠的數(shù)據(jù)傳輸服務(wù)。網(wǎng)絡(luò)層尋址路徑選擇為傳輸層提供建立、維護(hù)和網(wǎng)絡(luò)連接,解決路由選擇。數(shù)據(jù)單元-分組 packetIP,ICMP,RIP,OSPF,BGP,IGMP數(shù)據(jù)鏈路層占用傳輸介質(zhì)數(shù)據(jù)鏈路層在不可靠的物理介?SLIP, CSLIP, PPP,質(zhì)上提供可靠的傳輸。建立相鄰ARP,RARP,MTU結(jié)點(diǎn)之間的數(shù)據(jù)鏈路, 通過差錯(cuò)控制提供數(shù)據(jù)幀(Frame)在信道上無差錯(cuò)
3、的傳輸。作用; 物理|地址尋址、數(shù)據(jù)的成幀、流量控精心整理制、數(shù)據(jù)的檢錯(cuò)、重發(fā)。物理層比特傳輸實(shí)現(xiàn)相鄰節(jié)點(diǎn)之間比特?cái)?shù)據(jù)流 的透明傳送,盡可能屏蔽具體傳 輸介質(zhì)和物理設(shè)備的差異。建立、維護(hù)和拆除物理鏈路連接ISO2110,IEEE802,IEEE802.2TCP/IPTCP/IP模型用途主要作用協(xié)議應(yīng)用層為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口。HTTP:超文本傳輸FTP:文件傳輸SMTP :電子郵件Tele nt :遠(yuǎn)程登錄SNMP :網(wǎng)絡(luò)管理DNS:域名管理傳輸層使源主機(jī)和目標(biāo)主機(jī) 對等實(shí)體之間會(huì)話, 端到端鏈接。r11傳輸控制協(xié)議 TCP (鏈 接):誤差、流量控制用戶數(shù)據(jù)報(bào)協(xié)議 U
4、DP(無 連接)IP層網(wǎng)絡(luò)間屬地傳輸主要 依賴于網(wǎng)間網(wǎng)層中的IP協(xié)議1,1 'IP (無連接的最佳傳送 路由選擇):1.管理In ternet中地址;2.路由選擇;3.數(shù)據(jù)報(bào)分片 與重組ICMP:報(bào)告差錯(cuò)、傳輸控 制信息;ARP:將IP地址 轉(zhuǎn)換成物理地址;RARP: 物理地址到IP地址網(wǎng)絡(luò)接口層用某種協(xié)議與網(wǎng)絡(luò)連 接,以便通過網(wǎng)絡(luò)傳 遞IP分組。相似之處:基于獨(dú)立的協(xié)議族,層的功能劃分相似差異:ISO/OSI :從概念模型到協(xié)議實(shí)現(xiàn);TCP/IP:從協(xié)議實(shí)現(xiàn)到概念描述層次數(shù)量差別;? 2.TCP與UDP的區(qū)別。UDP ( UserDatagramProtocol ):不提供復(fù)雜的控制
5、機(jī)制,利用IP提供面向無連接的通信服務(wù) 。并且他是將應(yīng)用程序發(fā)來的數(shù)據(jù)在收到那一刻,立刻按照原樣發(fā)送到網(wǎng)絡(luò)上的一種機(jī)制。即使出現(xiàn)網(wǎng)絡(luò)擁堵,UDP也無法進(jìn)行流量控制等避免擁塞的行為。如果傳輸途中出現(xiàn)丟包,也不負(fù)責(zé)重發(fā)。甚至出現(xiàn)包的到達(dá)亂序時(shí)也沒有糾正功能。如果需要這些細(xì)節(jié)控制,要交給采用UDP的應(yīng)用程序處理。UDP將控制轉(zhuǎn)移到應(yīng)用程序,.只提供作為傳輸層協(xié)議的最基本功能。TCP( TransmissionControlProtocol ): TCP充分實(shí)現(xiàn)了數(shù)據(jù)傳輸時(shí)的各種控制功能,可以進(jìn)行丟包的重發(fā)控制、對亂序的分包進(jìn)行順序控制 。此外,TCP作為一種面向有鏈接的協(xié)議,只有在確認(rèn)通信對端存在時(shí)
6、才會(huì) 發(fā)送數(shù)據(jù),從而可以 控制通信流量的浪費(fèi)。TCP通過檢驗(yàn)和、序列號、確認(rèn)應(yīng)答、重發(fā)控制、連接管理以及窗口控制等機(jī)制實(shí)現(xiàn)可靠性傳輸。如何加以區(qū)分使用?TCP用于傳輸層有必要實(shí)現(xiàn)可靠性傳輸?shù)那闆r。UDP主要用于對高速傳輸和實(shí)時(shí)性有較高要求的通信或廣播通信。區(qū)別:1) TCP面向連接;UDP是無連接的,發(fā)送數(shù)據(jù)之前不需要建立連接。2) TCP提供可靠的服務(wù)。TCP傳送的數(shù)據(jù)無差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,不保 證可靠交付。 j 弋二二“3) TCP面向字節(jié)流,實(shí)際上 TCP把數(shù)據(jù)看成一串無結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的,UDP沒有擁塞控制, 網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的
7、發(fā)送速率降低。I I4) 每一條TCP連接只能是點(diǎn)對點(diǎn)的;UDP支持一對一、一對多、多對一和多對多的交互通信5) TCP首部開銷20字節(jié);UDP首部開銷8字節(jié);6) TCP邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道? 3.TCP報(bào)文結(jié)構(gòu)。IP結(jié)構(gòu)首部固定長度20字節(jié),所有IP數(shù)據(jù)報(bào)必須具有??蛇x字段,長度可變。版本:占4位,值IP協(xié)議的版本,當(dāng)前IP協(xié)議版本號為4 (IPv4)首部長度:4位,表示最大數(shù)值是 15個(gè)單位(一個(gè)單位 4字節(jié)),首部最大值為60字節(jié)。 區(qū)分服務(wù):未被使用。總長度:占16位,值首部和數(shù)據(jù)之和的長度,單位為字節(jié),數(shù)據(jù)報(bào)最大長度65535字節(jié),總長度不超過最大傳
8、送單元 MTU( 1500)標(biāo)識:占16位,它是一個(gè)計(jì)數(shù)器,用來產(chǎn)生數(shù)據(jù)報(bào)標(biāo)識。標(biāo)志:占3位,只有前兩位有意義。標(biāo)志字段最低位MF (morefragment )MF=1表示"還有分片”。MF=0表示最后一個(gè)分片。標(biāo)志字段中間位DF( Don tfragment )當(dāng)DF=0允許分片。片偏移:12位,較長的分組在分片后某片在原分組中的相對位置。以8字節(jié)為偏移單位。生成時(shí)間:TTL, 8位,數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過的路由器的最大值。協(xié)議:8位,指出數(shù)據(jù)報(bào)寫的數(shù)據(jù)所用的協(xié)議,以便目的主機(jī)的IP層將數(shù)據(jù)上交那個(gè)處理過程。(TCP、UDP、ICMP、IGMP、OSPF)首部校驗(yàn)和:16位,只建安
9、數(shù)據(jù)報(bào)的首部。不采用CRC,采用簡單計(jì)算方法源地址、目的地址:各占 4字節(jié)? TCP結(jié)構(gòu)? 源端口、目的端口:各 占兩個(gè)字節(jié)。端口是傳輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過 端口實(shí)現(xiàn)。 /:么 I.? 序號:4字節(jié)。本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的編號 . I 嚴(yán)-二一二丿? 確認(rèn)號:4字節(jié),期望收到對方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)序號。I ;? 數(shù)據(jù)偏移:4位,表示首部長度,以 4字節(jié)為計(jì)算單位。? 保留:6位,未使用? URG :為1時(shí),表明緊急指針字段有效。通知系統(tǒng)此報(bào)文段有緊急數(shù)據(jù),應(yīng)盡快傳送(優(yōu)先級高的數(shù)據(jù))? ACK:為1是確認(rèn)號字段有效,為0時(shí)無效.? PS
10、H:接收到的PSH=1的報(bào)文,盡快交付應(yīng)用進(jìn)程,不等待整個(gè)緩沖區(qū)填滿。? RST:為1表明TCP連接中出現(xiàn)差錯(cuò),必須釋放連接,然后重新建立。? SYN:為1表示這是一個(gè)連接請求或連接接受報(bào)文。FIN :用來釋放一個(gè)連接。為1表明該報(bào)文段的發(fā)送端的數(shù)據(jù)已經(jīng)發(fā)送完畢,要求釋放連接。? 窗口: 2字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù)。? 校驗(yàn)和:2字節(jié),校驗(yàn)范圍包括首部和數(shù)據(jù)。在計(jì)算校驗(yàn)和時(shí),要在TCP報(bào)文段前加12個(gè)字節(jié)的偽首部。?緊急指針:16位,指出本報(bào)文段中緊急數(shù)據(jù)有多少字節(jié)(放在本報(bào)文段數(shù)據(jù)的最前面)? 選項(xiàng):MSS,告訴TCP緩存所能接受的報(bào)文段的數(shù)據(jù)字段的最大長度是MSS個(gè)字節(jié)。? 填充
11、? 4.TCP的三次握手與四次揮手過程,各個(gè)狀態(tài)名稱與含義,TIMEWAITI / _.的作用。TimeWait 作用:1) 為了保證客戶端發(fā)送的最后一個(gè)ACK報(bào)文能夠到達(dá) B。2) 防止“已失效連接請求報(bào)文段”出現(xiàn)在本連接中。經(jīng)過 2MSL (最大報(bào)文段生存時(shí)間),可以使本來連接持續(xù)時(shí) 間內(nèi)產(chǎn)生的所有報(bào)文段,都從網(wǎng)絡(luò)中消失,這樣就可以使下一個(gè)新的連接中不會(huì)出現(xiàn)就得連接請求報(bào)文。? 5.TCP擁塞控制。什么是擁塞?在某段時(shí)間,若對網(wǎng)絡(luò)中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)性能變壞,這種情況叫擁塞。擁塞控制就是防止過多的數(shù)據(jù)注入網(wǎng)絡(luò),使網(wǎng)絡(luò)中的路由器或鏈路不至過載。擁塞控制是一個(gè)全
12、局性的過程,和流量控制不同,流量控制是點(diǎn)對點(diǎn)通信量的控制。擁塞窗口 cwnd :發(fā)送方維持一個(gè)擁塞窗口的狀態(tài)變量。其大小取決于網(wǎng)絡(luò)的擁塞程度,并且動(dòng)態(tài)變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口。如果考慮接收方的接收能力, 發(fā)送窗口可能小于擁塞窗口。控制擁塞窗口原則:'I - . I ;只要網(wǎng)絡(luò)沒有出現(xiàn)擁塞,窗口就增大一些,只要出現(xiàn)擁塞,窗口就減小一些。慢開始與擁塞避免慢開始算法:剛開始發(fā)送報(bào)文是,設(shè)置 cwnd=1,每收到一個(gè)新的確認(rèn),擁塞窗口加1,直到MSS。慢開始門限狀態(tài)變量 ssthresh :當(dāng)cwnd<ssthresh,使用慢開始算法;當(dāng) cwnd>ssthresh
13、時(shí),停止使用慢開始改用擁塞避免算法;cwnd=ssthresh時(shí),兩種方法都可以。擁塞避免算法: 讓擁塞窗口 cwnd緩慢增大,每經(jīng)過一個(gè)往返時(shí)間RTT把發(fā)送發(fā)的擁塞窗口 cwnd加1,不是加倍,是擁塞窗口 cwnd線性增長。當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí):無論是慢開始階段還是擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞(根據(jù)是沒有按時(shí)收到確認(rèn)),把慢開始門限ssthresh設(shè)置為出現(xiàn)擁塞時(shí)發(fā)送方窗口的一般。然后把擁塞窗口 cwnd重新設(shè)置為1,執(zhí)行慢開始算法。這樣可以迅速減少主機(jī)發(fā)送到網(wǎng)絡(luò)中的分組數(shù),使得發(fā)生擁塞的路由器有足夠時(shí)間把擠壓的分組處理完畢??熘貍骱涂旎謴?fù)快重傳:接收方每收到一個(gè)失序的報(bào)文段就立即發(fā)
14、出重復(fù)確認(rèn)。讓發(fā)送方及早知道有報(bào)文段沒有到達(dá)接收方。發(fā)送方只要一連接收到三個(gè)重復(fù)確認(rèn)就立即重傳對方尚未收到的報(bào)文段??旎謴?fù):當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的確認(rèn)是,把慢開始門限ssthresh減半,但不執(zhí)行慢開始算法。由于發(fā)送方現(xiàn)在認(rèn)為網(wǎng)絡(luò)很可能沒有發(fā)生擁塞(因?yàn)榭梢允盏饺齻€(gè)連續(xù)重復(fù)確認(rèn)),因此不執(zhí)行慢開始算法,而是將 cwnd設(shè)置為慢開始門限ssthresh減半后的數(shù)值,開始執(zhí)行擁塞避免算法。發(fā)送窗口的上限值:發(fā)送方的發(fā)送窗口的上限值應(yīng)當(dāng)取為接收方rwnd和擁塞窗口 cwnd中較小的一個(gè)。當(dāng)rwnd<cwnd時(shí),是接收方的接收能力限制發(fā)送窗口的最大值。當(dāng)cwnd<rwnd時(shí),是網(wǎng)絡(luò)的擁
15、塞限制發(fā)送方窗口的最大值。隨機(jī)早起檢測RED路由器的隊(duì)列維持兩個(gè)參數(shù),即隊(duì)列長度最小門限THmin和最大門限THmaxRED對每個(gè)到達(dá)的數(shù)據(jù)報(bào)先計(jì)算平均隊(duì)列長度Lav.Lav<THmin,則將新到達(dá)的數(shù)據(jù)報(bào)放入隊(duì)列排隊(duì)。Lav>THmax,則將新到達(dá)的數(shù)據(jù)報(bào)丟棄。Lav介于之間時(shí),按照概率 p將新到達(dá)的數(shù)據(jù)報(bào)丟棄。? 6.TCP滑動(dòng)窗口與回退N針協(xié)議。TCP滑動(dòng)窗口:發(fā)送方和接收方都會(huì)維護(hù)一個(gè)數(shù)據(jù)幀的序列,這個(gè)序列被稱為窗口。發(fā)送方的窗口大小由接收方確定,目的在于控制發(fā)送速度, 以免接收方的緩沖不夠大, 導(dǎo)致溢出,同時(shí)流量控制可以避免網(wǎng)絡(luò)擁塞。1比特滑動(dòng)窗口協(xié)議(停等協(xié)議):接收方
16、和發(fā)送方的窗口大小都是1。發(fā)送方每次只能發(fā)送一個(gè),并且必須等待這個(gè)數(shù)據(jù)報(bào)的 ACK,才能發(fā)送下一個(gè)。ARQ(AutomaticRepeatreQuest)自動(dòng)重傳請求。重傳的請求是自動(dòng)進(jìn)行的。接收方不需要請求發(fā)送方重傳某 個(gè)出錯(cuò)的分組。回退N (Go-back-N )表示需要再退回來重傳已發(fā)送的N個(gè)分組。累計(jì)確認(rèn):不必對收到的分組逐個(gè)發(fā)送確認(rèn),而是對按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn)。優(yōu)點(diǎn)是容易實(shí)現(xiàn), 即使確認(rèn)丟失也不必重傳。缺點(diǎn)是:不能向發(fā)送方反映接收方已經(jīng)正確收到的所有分組。選擇確認(rèn)SACK接收方收到了不連續(xù)的字節(jié)塊。如果這些字節(jié)塊的序號在接收窗口內(nèi),那么接收方收下這些數(shù)據(jù),但要把這些信息準(zhǔn)確
17、的告訴發(fā)送方,是發(fā)送方不再發(fā)送重復(fù)的數(shù)據(jù)。選擇重傳協(xié)議:后退 N協(xié)議的問題是,當(dāng)有錯(cuò)誤幀出現(xiàn)后,要重發(fā)之后的所有幀,會(huì)是網(wǎng)絡(luò)狀況惡化。重 傳協(xié)議是用來解決這個(gè)問題的。接收端總會(huì)緩存所有收到的幀,當(dāng)某個(gè)幀出錯(cuò)時(shí),值要求重傳這一個(gè)幀。缺 點(diǎn)在于接收端要更多的緩存。? 7.Http的報(bào)文結(jié)構(gòu)。方法:對所請求的對象進(jìn)行的操作,實(shí)際上就是一些命令。包括 getpostoptionheadputdeletetraceconnectURL:所請求的資源的 URL。版本:HTTP的版本。版本:HTTP的版本狀態(tài)碼:1XX表示通知信息,如請求收到了或正在進(jìn)行處理。2XX表示成功,如接受或知道了。3XX表示重定向
18、,表示要完成的請求還必須采取進(jìn)一步行動(dòng)。4XX表示客戶的差錯(cuò),如請求中有錯(cuò)誤的語法或不能完成。5XX表示服務(wù)器的差錯(cuò),如服務(wù)器失效無法完成請求。? 8.Http的狀態(tài)碼含義。' I 宀二2?狀態(tài)碼:1XX表示通知信息,如請求收到了或正在進(jìn)行處理。I;?2XX表示成功,如接受或知道了。?3XX表示重定向,表示要完成的請求還必須采取進(jìn)一步行動(dòng)。?4XX表示客戶的差錯(cuò),如請求中有錯(cuò)誤的語法或不能完成。?5XX表示服務(wù)器的差錯(cuò),如服務(wù)器失效無法完成請求。? 9.Httprequest的幾種類型。getpostoptio nheadputdeletetracec onn ect? IO.Http
19、l.1 和 Httpl.O 的區(qū)別HTTP1.0規(guī)定瀏覽器與服務(wù)器 只保持短暫的連接,瀏覽器每次請求都需要與服務(wù)器建立一個(gè)TCP連接,服務(wù)器完成請求處理后立即斷開 TCP連接,服務(wù)器也不跟蹤每個(gè)客戶也不記錄過去的請求。HTTP1.1支持持久連接,在一個(gè)TCP連接上可以傳送多個(gè) HTTP請求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延 遲。HTTP1.1還允許客戶端不用等待上一次請求結(jié)果返回,就可以發(fā)出下一次請求(流水線),但服務(wù)器端必須按照收到客戶端請求的先后順序依次回送響應(yīng)結(jié)果,以保證客戶端能夠區(qū)分出每次請求的響應(yīng)內(nèi)容,這樣顯著減少了所需時(shí)間。I / _.HTTP1.0不支持Host請求頭字段,在
20、 HTTP1.1中增加了 Host請求頭字段,WEB瀏覽器可以使用主機(jī)頭名來明 確表示要訪問服務(wù)器上的哪個(gè) WEB站點(diǎn),實(shí)現(xiàn)了在一臺 WEB服務(wù)器上可以在同一個(gè) IP地址和端口號上使用不 同的主機(jī)名來創(chuàng)建多個(gè)虛擬 WEB站點(diǎn)。HTTP1.1還提供了與 身份認(rèn)證、狀態(tài)管理和 Cache緩存機(jī)制相關(guān)的請求頭和響應(yīng)頭。? 11.Http怎么處理長連接。判斷長連接是否需要結(jié)束?Keep-Alive:timeout=20 ,表示這個(gè) TCP通道可以保持 20秒。另外還可能有 max=XXX,表示這個(gè)長連接最多接 收XXX次請求就斷開。對于客戶端來說,如果服務(wù)器沒有告訴客戶端超時(shí)時(shí)間也沒關(guān)系,服務(wù)端可能主
21、動(dòng)發(fā)起 四次握手?jǐn)嚅_TCP連接,客戶端能夠知道該 TCP連接已經(jīng)無效;另外 TCP還有心跳包來檢測當(dāng)前連接是否還活 著,方法很多,避免浪費(fèi)資源。? 12.Cookie與Session的作用于原理。 I 2二2? 13.電腦上訪問一個(gè)網(wǎng)頁,整個(gè)過程是怎么樣的:DNS、HTTP、TCP、I * IOSPF、IP、ARP。? 14.Ping的整個(gè)過程。ICMP報(bào)文是什么。ICMP (InternetControlMessageProtocol )報(bào)文:網(wǎng)際控制報(bào)文協(xié)議。通過它可以知道故障的具體原因和位 置。由于IP不是為可靠傳輸服務(wù)設(shè)計(jì)的 ,ICMP的目的主要是用在 TCP/IP網(wǎng)絡(luò)中發(fā)送出錯(cuò)和控制
22、消息。ICMP數(shù) 據(jù)包是封裝在IP數(shù)據(jù)包里的。ICMP的錯(cuò)誤報(bào)告只能通知出錯(cuò)數(shù)據(jù)報(bào)的源主機(jī)。ICMP報(bào)文三種:差錯(cuò)報(bào)告(IP不可靠傳輸)、控制報(bào)文(用于重定向)、請求應(yīng)答報(bào)文(測試路由是否可達(dá) ping )。Ping的整個(gè)過程:1) 同一網(wǎng)段內(nèi):如果主機(jī)A要去ping主機(jī)B。主機(jī)A就要查詢自己的 MAC地址表,如果沒有找到 B的MAC地址,就會(huì)向 外發(fā)送一個(gè)ARP廣播包。首先,交換機(jī)會(huì)收到這個(gè)報(bào)文,交換機(jī)有學(xué)習(xí) MAC地址的功能,他會(huì)檢索自己有沒有保存主機(jī)B的MAC地址,如果有,就返回給主機(jī) A,沒有,就會(huì)向所有端口發(fā)送ARP廣播,其他主機(jī)收到后,發(fā)現(xiàn)不是找自己,就丟棄報(bào)文。主機(jī) B收到報(bào)文后
23、,就立即響應(yīng),發(fā)送自己的MAC地址,同時(shí)學(xué)習(xí)到主機(jī) A的MAC地址,并按照同樣的 ARP報(bào)文格式返回主機(jī) A。這時(shí),主機(jī) A學(xué)到了主機(jī)B的MAC地址,就把這個(gè) MAC地址封裝到ICMP協(xié)議的二層報(bào)文中向 B發(fā)送,BI / _.收到這個(gè)報(bào)文后,發(fā)現(xiàn)是 A的ICMP回顯請求,就按同樣格式返回一個(gè)值給 A,完成ping.2) 不同網(wǎng)段內(nèi)主機(jī)A要ping主機(jī)C,兩者不在一個(gè)網(wǎng)段,A需要找網(wǎng)關(guān)轉(zhuǎn)發(fā),為了學(xué)習(xí)網(wǎng)關(guān)的MAC地址,A發(fā)送一個(gè)ARP廣播,學(xué)到后,再發(fā)封裝 ICMP報(bào)文給網(wǎng)關(guān)路由器。路由器接收到 A的ICMP報(bào)文,查找路由表的目的IP,得到一個(gè)出口指針, 加上自己的MAC地址向主機(jī)C轉(zhuǎn)發(fā)。路由器端
24、口 2和主機(jī)C相互學(xué)習(xí)MAC地址,路由器2端口轉(zhuǎn)發(fā)非1端口,1已經(jīng)學(xué)到A的MAC地址,將ICMP 的回顯請求回復(fù)。? 15.C/S模式下使用socket通信,幾個(gè)關(guān)鍵函數(shù)。什么是Socket?WinSock(WindowsSockets)是處理網(wǎng)絡(luò)通信的 WindowsAPI。許多函數(shù)與在 BSD中使用的 Berkely套接字函數(shù)是相 同的。套接字,簡單的說就是通信雙方的一種約定,用套接字中的 相關(guān)函數(shù)來完成通信過程 。 . I 十二二應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP和UDP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過同一個(gè)TCP協(xié)議端口傳
25、輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字 (Socket)的接口。區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接,主要有3個(gè)參數(shù):通信的目的IP地址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號。Socket原意是“插座”,通過將這3個(gè)參數(shù)結(jié)合起來,與一個(gè)“插座” Socket綁定,應(yīng)用層就 可以和傳輸層通過套接字接口區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。Socket 類型;傳輸套接字主要有兩類:流式套接字(SOCK_STREAM)和數(shù)據(jù)報(bào)套接字(SOCK_DGRAM )。流類型的套接字是為需要可靠連接
26、的應(yīng)用程序設(shè)計(jì)的。這些程序通常使用連續(xù)的數(shù)據(jù)流。用于這種類型套接字的協(xié)議是TCP,適合FTP這類實(shí)現(xiàn)。流套接字是最常用的,一些眾所周知的協(xié)議如HTTP、TCP、SMTP、POP3等都是基于面向流的協(xié)議。它是為那數(shù)據(jù)報(bào)套接字使用UDP做為下層協(xié)議,是無連接的,有一個(gè)最大緩沖區(qū)大小(數(shù)據(jù)包大小的最大值)些需要發(fā)送小數(shù)據(jù)包, 并且對可靠性要求不高的應(yīng)用程序設(shè)計(jì)的。與流式套接字不同, 數(shù)據(jù)報(bào)套接字并不保證數(shù)據(jù)會(huì)到達(dá)終端,也不保證它是以正確的順序到來的。數(shù)據(jù)報(bào)套接字的傳輸效率相當(dāng)高,它經(jīng)常用于音頻或視頻應(yīng)用程序。對這些程序來說,速度比可靠性更加重要。二、基本socket 函數(shù)1、socket 函數(shù)包含頭
27、文件<sys/socket.h>?功能:創(chuàng)建一個(gè)套接字用于通信?原型:in tsocket(i ntdoma in ,i nttype,i ntprotocol);?參數(shù)?domain :指定通信協(xié)議族(protocolfamily ),AF_INET、AF_INET6、AF_UNIX 等?type :指定socket類型,流式套接字 SOCK_STREAM ,數(shù)據(jù)報(bào)套接字 SOCK_DGRAM ,原始套接字 SOCK_RAW?protocol :協(xié)議類型,IPPROTO_TCP 等;一般由前兩個(gè)參數(shù)就決定了協(xié)議類型,設(shè)置為 0即可。? 返回值:成功返回非負(fù)整數(shù),它與文件描述符類似
28、,我們把它稱為套接口描述字,簡稱套接字。失敗返回-12、bi nd函數(shù)包含頭文件<sys/socket.h>?功能:綁定一個(gè)本地地址到套接字?原型:intbin d(i ntsockfd,c on ststructsockaddr*addr,sockle n_taddrle n);?參數(shù)?sockfd : socket函數(shù)返回的套接字 ?addr :要綁定的地址?addrlen :地址長度?返回值:成功返回 0,失敗返回-13、listen 函數(shù)包含頭文件<sys/socket.h>?功能:將套接字用于監(jiān)聽進(jìn)入的連接?原型:in tliste n(i ntsockfd,
29、i ntbacklog);?參數(shù)?sockfd : socket函數(shù)返回的套接字 ?backlog :規(guī)定內(nèi)核為此套接字排隊(duì)的最大連接個(gè)數(shù)?返回值:成功返回 0,失敗返回-1一般來說,listen函數(shù)應(yīng)該在調(diào)用 socket和bind函數(shù)之后,調(diào)用函數(shù)accept之前調(diào)用。?對于給定的監(jiān)聽套接口,內(nèi)核要維護(hù)兩個(gè)隊(duì)列:?1、 已由客戶發(fā)出并到達(dá)服務(wù)器,服務(wù)器正在等待完成相應(yīng)的TCP三路握手過程?2、已完成連接的隊(duì)列如下圖所示:4、accept 函數(shù)包含頭文件<sys/socket.h>?功能:從已完成連接隊(duì)列返回第一個(gè)連接,如果已完成連接隊(duì)列為空,則阻塞。?原型:in taccept
30、(i ntsockfd,structsockaddr*addr,sockle n_t*addrle n);?參數(shù)?sockfd :服務(wù)器套接字?addr :將返回對等方的套接字地址?addrlen :返回對等方的套接字地址長度?返回值:成功返回非負(fù)整數(shù),失敗返回-15、connect 函數(shù)包含頭文件<sys/socket.h>?功能:建立一個(gè)連接至addr所指定的套接字?原型:intconn ect(i ntsockfd,c on ststructsockaddr*addr,sockle n_taddrle n);? 參數(shù)?sockfd :未連接套接字?addr :要連接的套接字地址 ?addrlen :第二個(gè)參數(shù) addr長度?返回值:成功返回0,失敗返回-1? 16.IP地址
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石家莊貨運(yùn)從業(yè)資格考試模擬考試題目及答案
- 茉莉花茶代理合同7篇
- 古箏采購合同范本
- 廠區(qū)道路修路合同范本
- 企業(yè)經(jīng)營貸款服務(wù)合同范本
- 上半年工作總結(jié)開頭
- 儒學(xué)大師邀請合同范本
- 動(dòng)物防疫練習(xí)題庫與答案
- 病理學(xué)與病理生理學(xué)習(xí)題庫與參考答案
- 一年級法制教育教案
- 礦山機(jī)械傷害安全培訓(xùn)
- 2025貴州省黔東南州直屬事業(yè)單位招聘202人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年語文高考復(fù)習(xí)計(jì)劃解析
- 新生兒腸道病毒感染
- 2025年度專業(yè)酒店裝修承攬合同
- 2025年度5G基站建設(shè)勞務(wù)合同范本
- (完整版)班主任量化考核細(xì)則
- 2025年中國鐵路鄭州局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年上半年永春縣農(nóng)文旅發(fā)展集團(tuán)限公司公開招聘若干名工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 家庭康復(fù)服務(wù)的商業(yè)價(jià)值與發(fā)展趨勢
- 2025年危化企業(yè)安全教育培訓(xùn)計(jì)劃
評論
0/150
提交評論