




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(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 , HIIP ,供訪問網(wǎng)絡(luò)服務(wù)的接口。SNMP , FTP , SMTP, DNS, Telnet表小層數(shù)據(jù)表示(編碼)解決用戶信息的語法表示問題。無協(xié)議提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)J服務(wù)。數(shù)據(jù)的壓縮和解壓縮,冽 登和解密等工作都由表示層負(fù) 責(zé)。會話層建立和管理主機(jī) 間的會話會話層不參與具體的傳輸, 它提 供包括訪問驗(yàn)證和會話管理在內(nèi)的建立和維護(hù)應(yīng)用之間通信的機(jī)制。如服務(wù)器驗(yàn)證用戶登錄 便是由會話層完成的。(以上統(tǒng)稱報文)無協(xié)議傳輸層端到端鏈接
2、提供主機(jī)之間連接,屏蔽技術(shù)細(xì) 節(jié)。將分組組成報文,可靠傳輸、 流量控制。為上層提供端到端TCP, 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ì)上提供可靠的傳輸。建立相鄰 結(jié)點(diǎn)之間的數(shù)據(jù)鏈路, 通過差錯ARP, RARP, MTU控制提供數(shù)據(jù)幀(Frame)在信道| 上無差錯的傳輸。作用; 物理地|址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯、
3、重發(fā)。物理層比特傳輸實(shí)現(xiàn)相鄰節(jié)點(diǎn)之間 比特數(shù)據(jù)流 的透明傳送,盡可能屏蔽具體傳 輸介質(zhì)和物理設(shè)備的差異。建立、維護(hù)和拆除物理鏈路連接ISO2110, IEEE802IEEE802.2TCP/IPTCP/IP模型用途主要作用協(xié)議應(yīng)用層為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng) 用程序提供訪問網(wǎng)絡(luò) 服務(wù)的接口。HIIP:超文本傳輸FTP:文件傳輸SMTP:電子郵件Telent:遠(yuǎn)程登錄SNMP:網(wǎng)絡(luò)管理DNS:域名管理傳輸層使源主機(jī)和目標(biāo)主機(jī) 對等實(shí)體之間會話, 端到端鏈接。傳輸控制協(xié)議 TCP (鏈 接):誤差、流量控制用戶數(shù)據(jù)報協(xié)議 UDP (無 連接)IP層網(wǎng)絡(luò)間屬地傳輸主要 依賴于網(wǎng)間網(wǎng)層中的IP協(xié)議IP (無連
4、接的最佳傳送 路由選擇):1.管理Internet中地址;2.路由 選擇;3.數(shù)據(jù)報分片與 重組ICMP:報告差錯、傳輸控 制信息;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ù)雜的控制機(jī)制,利用IP 提供面向無連接的通信服務(wù) 。 并且他是將應(yīng)用程序發(fā)來的數(shù)據(jù)在收到那一刻,立刻按照
5、原樣發(fā)送到網(wǎng)絡(luò)上的一種機(jī)制。即使出現(xiàn)網(wǎng)絡(luò)擁堵, UDP 也無法進(jìn)行流量控制等避免擁塞的行為。如果傳輸途中 出現(xiàn)丟包, 也不負(fù)責(zé)重發(fā)。甚至出現(xiàn)包的到達(dá)亂序時也沒有糾正功能。 如果需要這些細(xì)節(jié)控制,要交給采用UDP 的應(yīng)用程序處理。 UDP 將控制轉(zhuǎn)移到應(yīng)用程序,只提供作為傳輸層協(xié)議的最基本功能。TCP( TransmissionControlProtocol ) : TCP 充分實(shí)現(xiàn)了數(shù)據(jù)傳輸時的各種控制功能,可以 進(jìn)行丟包的重發(fā)控制、對亂序的分包進(jìn)行順序控制。 此外, TCP 作為一種面向有鏈接的協(xié)議,只有在確認(rèn)通信對端存在時才會發(fā)送數(shù)據(jù),從而可以控制通信流量的 浪費(fèi) 。TCP 通過檢驗(yàn)和、序
6、列號、確認(rèn)應(yīng)答、重發(fā)控制、連接管理以及窗口控制等機(jī)制實(shí)現(xiàn)可靠性傳輸。如何加以區(qū)分使用?TCP 用于傳輸層有必要實(shí)現(xiàn)可靠性傳輸?shù)?情況。 UDP 主要用于對高速傳輸和實(shí)時性有較高要求的通信或廣播通信。區(qū)別:1 ) TCP 面向連接;UDP 是無連接的,發(fā)送數(shù)據(jù)之前不需要建立連接。2) TCP提供可靠的服務(wù)。TCP傳送的數(shù)據(jù)無差錯,不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,不保證可靠交付。3) TCP 面向字節(jié)流,實(shí)際上TCP 把數(shù)據(jù)看成一串無結(jié)構(gòu)的字節(jié)流;UDP 是面向報文的,UDP 沒有擁塞控制,網(wǎng)絡(luò)出現(xiàn)擁塞不會使源主機(jī)的發(fā)送速率降低。4)每一條TCP連接只能是點(diǎn)對點(diǎn)的;UDP支持一對
7、一、一對多、多對一和多對多的交互通 信5) TCP首部開銷20字節(jié);UDP首部開銷8字節(jié);6) TCP邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道? 3.TCP報文結(jié)構(gòu)。IP結(jié)構(gòu)首部固定長度20 字節(jié),所有IP 數(shù)據(jù)報必須具有??蛇x字段,長度可變。? 版本:占4 位,值 IP 協(xié)議的版本,當(dāng)前IP 協(xié)議版本號為4( IPv4)? 首部長度:4 位,表示最大數(shù)值是15 個單位(一個單位4 字節(jié)) ,首部最大值為60 字節(jié)。? 區(qū)分服務(wù):未被使用。? 總長度:占16 位,值首部和數(shù)據(jù)之和的長度,單位為字節(jié),數(shù)據(jù)報最大長度65535 字節(jié),總長度不超過最大傳送單元MTU( 1500)? 標(biāo)識
8、:占16 位,它是一個計(jì)數(shù)器,用來產(chǎn)生數(shù)據(jù)報標(biāo)識。? 標(biāo)志:占3 位,只有前兩位有意義。標(biāo)志字段最低位MF( morefragment ) MF=1 表示“還有分片”。 MF=0 表示最后一個分片。標(biāo)志字段中間位DF( Don tfragment )當(dāng) DF=0允許分片。? 片偏移:12 位,較長的分組在分片后某片在原分組中的相對位置。以8 字節(jié)為偏移單位。? 生成時間:TTL, 8 位,數(shù)據(jù)報在網(wǎng)絡(luò)中可通過的路由器的最大值。? 協(xié)議: 8 位, 指出數(shù)據(jù)報寫的數(shù)據(jù)所用的協(xié)議,以便目的主機(jī)的IP 層將數(shù)據(jù)上交那個處理過程。 ( TCP、 UDP、 ICMP、 IGMP、 OSPF)? 首部校驗(yàn)
9、和:16位,只建安數(shù)據(jù)報的首部。不采用 CRC,采用簡單計(jì)算方法? 源地址、目的地址:各占4 字節(jié)? TCP結(jié)構(gòu)? 源端口、目的端口:各 占 兩個字節(jié)。端口是傳輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口實(shí)現(xiàn)。? 序號: 4 字節(jié)。本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的編號? 確認(rèn)號:4 字節(jié),期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)序號。數(shù)據(jù)偏移:4 位,表示首部長度,以4 字節(jié)為計(jì)算單位。? 保留: 6 位,未使用? URG: 為 1 時, 表明緊急指針字段有效。通知系統(tǒng)此報文段有緊急數(shù)據(jù),應(yīng)盡快傳送(優(yōu)先級高的數(shù)據(jù))? ACK:為1是確認(rèn)號字段有效,為0時無效.? PSH接
10、收到的PSH=1的報文,盡快交付應(yīng)用進(jìn)程,不等待整個緩沖區(qū)填滿。? RST:為1表明TCP連接中出現(xiàn)差錯,必須釋放連接,然后重新建立。? SYN:為1表示這是一個連接請求或連接接受報文。? FIN:用來釋放一個連接。為 1表明該報文段的發(fā)送端的數(shù)據(jù)已經(jīng)發(fā)送完畢,要求釋放 連接。? 窗口: 2 字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù)。? 校驗(yàn)和: 2 字節(jié), 校驗(yàn)范圍包括首部和數(shù)據(jù)。在計(jì)算校驗(yàn)和時,要在TCP 報文段前加12個字節(jié)的偽首部。? 緊急指針:16 位, 指出本報文段中緊急數(shù)據(jù)有多少字節(jié)(放在本報文段數(shù)據(jù)的最前面)? 選項(xiàng):MSS,告訴TCP緩存所能接受的報文段的數(shù)據(jù)字段的最大長度是MSS
11、個字節(jié)。? 填充? 4.TCP的三次握手與四次揮手過程,各個狀態(tài)名稱與含義,TIMEWAIT的作用。TimeWait 作用:1 ) 為了保證客戶端發(fā)送的最后一個ACK 報文能夠到達(dá)B。2 ) 防止“已失效連接請求報文段”出現(xiàn)在本連接中。經(jīng)過2MSL( 最大報文段生存時間) ,可以使本來連接持續(xù)時間內(nèi)產(chǎn)生的所有報文段,都從網(wǎng)絡(luò)中消失,這樣就可以使下一個新的連接中不會出現(xiàn)就得連接請求報文。? 5.TCP擁塞控制。什么是擁塞?在某段時間,若對網(wǎng)絡(luò)中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)性能變壞,這種情況叫擁塞。擁塞控制就是防止過多的數(shù)據(jù)注入網(wǎng)絡(luò),使網(wǎng)絡(luò)中的路由器或鏈路不至過載。擁塞控制是
12、一個全局性的過程,和流量控制不同,流量控制是點(diǎn)對點(diǎn)通信量的控制。擁塞窗口cwnd :發(fā)送方維持一個擁塞窗口的狀態(tài)變量。其大小取決于網(wǎng)絡(luò)的擁塞程度,并且動態(tài)變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口。如果考慮接收方的接收能力,發(fā)送窗口可能小于擁塞窗口??刂茡砣翱谠瓌t : 只要網(wǎng)絡(luò)沒有出現(xiàn)擁塞,窗口就增大一些,只要出現(xiàn)擁塞,窗口就減小一些。慢開始與擁塞避免慢開始算法:剛開始發(fā)送報文是,設(shè)置cwnd=1, 每收到一個新的確認(rèn),擁塞窗口加1,直到MSS。慢開始門限狀態(tài)變量ssthresh : 當(dāng) cwndssthresh 時,停止使用慢開始改用擁塞避免算法;cwnd=ssthresh 時,兩種方法都可
13、以。擁塞避免算法:讓擁塞窗口 cwnd緩慢增大,每經(jīng)過一個往返時間 RTT把發(fā)送發(fā)的擁塞窗口cwnd 加 1,不是加倍,是擁塞窗口cwnd 線性增長。當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時:無論是慢開始階段還是擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞(根據(jù)是沒有按時收到確認(rèn)), 把慢開始門限ssthresh 設(shè)置為出現(xiàn)擁塞時發(fā)送方窗口的一般。然后把擁塞窗口cwnd 重新設(shè)置為1 ,執(zhí)行慢開始算法。這樣可以迅速減少主機(jī)發(fā)送到網(wǎng)絡(luò)中的分組數(shù),使得發(fā)生擁塞的路由器有足夠時間把擠壓的分組處理完畢。快重傳和快恢復(fù)快重傳 : 接收方每收到一個失序的報文段就立即發(fā)出重復(fù)確認(rèn)。讓發(fā)送方及早知道有報文段沒有到達(dá)接收方。發(fā)送方只要一連
14、接收到三個重復(fù)確認(rèn)就立即重傳對方尚未收到的報文段??旎謴?fù) : 當(dāng)發(fā)送端收到連續(xù)三個重復(fù)的確認(rèn)是,把慢開始門限ssthresh 減半, 但不執(zhí)行慢開始算法。 由于發(fā)送方現(xiàn)在認(rèn)為網(wǎng)絡(luò)很可能沒有發(fā)生擁塞(因?yàn)榭梢允盏饺齻€連續(xù)重復(fù)確認(rèn)),因此不執(zhí)行慢開始算法,而是將cwnd 設(shè)置為慢開始門限ssthresh 減半后的數(shù)值,開始執(zhí)行擁塞避免算法。發(fā)送窗口的上限值:發(fā)送方的發(fā)送窗口的上限值應(yīng)當(dāng)取為接收方rwnd 和擁塞窗口cwnd 中較小的一個。當(dāng) rwndcwnd 時,是接收方的接收能力限制發(fā)送窗口的最大值。當(dāng) cwndrwnd 時,是網(wǎng)絡(luò)的擁塞限制發(fā)送方窗口的最大值。隨機(jī)早起檢測RED路由器的隊(duì)列維持
15、兩個參數(shù),即隊(duì)列長度最小門限THmin 和最大門限THmaxRED對每個到達(dá)的數(shù)據(jù)報先at算平均隊(duì)列長度Lav.LavTHmax ,則將新到達(dá)的數(shù)據(jù)報丟棄。Lav介于之間時,按照概率p將新到達(dá)的數(shù)據(jù)報丟棄。? 6.TCP滑動窗口與回退N針協(xié)議。TCP 滑動窗口:發(fā)送方和接收方都會維護(hù)一個數(shù)據(jù)幀的序列,這個序列被稱為窗口。發(fā)送方的窗口大小由接收方確定,目的在于控制發(fā)送速度,以免接收方的緩沖不夠大,導(dǎo)致溢出,同時流量控制可以避免網(wǎng)絡(luò)擁塞。1 比特滑動窗口協(xié)議(停等協(xié)議): 接收方和發(fā)送方的窗口大小都是1 。 發(fā)送方每次只能發(fā)送一個,并且必須等待這個數(shù)據(jù)報的ACK,才能發(fā)送下一個。ARQ(Autom
16、aticRepeatreQuest) 自動重傳請求。重傳的請求是自動進(jìn)行的。接收方不需 要請求發(fā)送方重傳某個出錯的分組。回退 N( Go-back-N )表示需要再退回來重傳已發(fā)送的N 個分組。累計(jì)確認(rèn):不必對收到的分組逐個發(fā)送確認(rèn),而是對按序到達(dá)的最后一個分組發(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)確的告訴發(fā)送方,是發(fā)送方不再發(fā)送重復(fù)的數(shù)據(jù)。選擇重傳協(xié)議:后退 N 協(xié)議的問題是,當(dāng)有錯誤幀出現(xiàn)后,要重發(fā)之后的所
17、有幀,會是網(wǎng)絡(luò)狀況惡化。重傳協(xié)議是用來解決這個問題的。接收端總會緩存所有收到的幀,當(dāng)某個幀出錯時,值要求重傳這一個幀。缺點(diǎn)在于接收端要更多的緩存。? 7.Http 的報文結(jié)構(gòu)。方法:對所請求的對象進(jìn)行的操作,實(shí)際上就是一些命令。包括 getpostoptionheadputdeletetraceconnectURL:所請求的資源的 URL。版本:HTTP 的版本。版本:HTTP 的版本狀態(tài)碼:1XX 表示通知信息,如請求收到了或正在進(jìn)行處理。2XX 表示成功,如接受或知道了。3XX表示重定向,表示要完成的請求還必須采取進(jìn)一步行動。4XX 表示客戶的差錯,如請求中有錯誤的語法或不能完成。5XX
18、表示服務(wù)器的差錯,如服務(wù)器失效無法完成請求。?8.Http 的狀態(tài)碼含義。?狀態(tài)碼:1XX 表示通知信息,如請求收到了或正在進(jìn)行處理。?2XX表示成功,如接受或知道了。?3XX表示重定向,表示要完成的請求還必須采取進(jìn)一步行動。?4XX 表示客戶的差錯,如請求中有錯誤的語法或不能完成。?5XX 表示服務(wù)器的差錯,如服務(wù)器失效無法完成請求。? 9.Httprequest 的幾種類型。getpostoptionheadputdeletetraceconnect? 10.Http1.1 和 Http1.0 的區(qū)別HTTP1.0 規(guī)定瀏覽器與服務(wù)器只保持短暫的連接, 瀏覽器每次請求都需要與服務(wù)器建立一個
19、TCP 連接,服務(wù)器完成請求處理后立即斷開TCP 連接,服務(wù)器也不跟蹤每個客戶也不記錄過去的請求。HTTP1.1支持持久連接,在一個TCP連接上可以傳送多個 HTTP請求和響應(yīng),減少了建立和 關(guān)閉連接的消耗和延遲。HTTP1.1 還允許客戶端不用等待上一次請求結(jié)果返回,就可以發(fā)出下一次請求(流水線), 但服務(wù)器端必須按照收到客戶端請求的先后順序依次回送響應(yīng)結(jié)果,以保證客戶端能夠區(qū)分出每次請求的響應(yīng)內(nèi)容,這樣顯著減少了所需時間。HTTP1.0不支持Host請求頭字段,在 HTTP1.1中增加了 Host請求頭字段,WEB瀏覽器可以使用主機(jī)頭名來明確表示要訪問服務(wù)器上的哪個WEB 站點(diǎn),實(shí)現(xiàn)了在一
20、臺WEB 服務(wù)器上可以在同一個IP 地址和端口號上使用不同的主機(jī)名來創(chuàng)建多個虛擬WEB 站點(diǎn)。HTTP1.1 還提供了與身份認(rèn)證、狀態(tài)管理和Cache 緩存機(jī)制相關(guān)的請求頭和響應(yīng)頭。? 11.Http 怎么處理長連接。判斷長連接是否需要結(jié)束?Keep-Alive:timeout=20 ,表示這個 TCP通道可以保持 20秒。另外還可能有 max=XXX ,表示這個長連接最多接收XXX 次請求就斷開。對于客戶端來說,如果服務(wù)器沒有告訴客戶端超時時間也沒關(guān)系,服務(wù)端可能主動發(fā)起四次握手?jǐn)嚅_TCP 連接,客戶端能夠知道該TCP連接已經(jīng)無效;另外TCP 還有心跳包來檢測當(dāng)前連接是否還活著,方法很多,避
21、免浪費(fèi)資源。? 12.Cookie與Session的作用于原理。? 13.電腦上訪問一個網(wǎng)頁,整個過程是怎么樣的:DNS、HTTP、 TCP、 OSPF、 IP、 ARP。? 14.Ping 的整個過程。ICMP 報文是什么。ICMP( InternetControlMessageProtocol ) 報文: 網(wǎng)際控制報文協(xié)議。通過它可以知道故障的具體原因和位置。由于 IP 不是為可靠傳輸服務(wù)設(shè)計(jì)的, ICMP 的目的主要是用在TCP/IP 網(wǎng)絡(luò)中 發(fā)送出錯和 控制消息。 ICMP 數(shù)據(jù)包是封裝在IP 數(shù)據(jù)包里的。ICMP 的錯誤報告只能通知出錯數(shù)據(jù)報的源主機(jī)。ICMP報文三種:差錯報告(IP
22、不可靠傳輸)、控制報文(用于重定向)、請求應(yīng)答報文(測試路由是否可達(dá)ping ) 。Ping 的整個過程:1 ) 同一網(wǎng)段內(nèi):如果主機(jī)A 要去 ping 主機(jī)B。 主機(jī) A 就要查詢自己的MAC 地址表, 如果沒有找到B 的MAC 地址,就會向外發(fā)送一個ARP 廣播包。首先,交換機(jī)會收到這個報文,交換機(jī)有學(xué)習(xí)MAC 地址的功能,他會檢索自己有沒有保存主機(jī)B的MAC地址,如果有,就返回給主機(jī)A,沒有,就會向所有端口發(fā)送ARP廣播,其他主機(jī)收到后,發(fā)現(xiàn)不是找自己,就丟棄報文。主機(jī)B 收到報文后,就立即響應(yīng),發(fā)送自己的MAC 地址,同時學(xué)習(xí)到主機(jī)A 的 MAC 地址,并按照同樣的ARP 報文格式返回
23、主機(jī)A。這時, 主機(jī) A 學(xué)到了主機(jī)B 的 MAC 地址, 就把這個MAC 地址封裝到ICMP 協(xié)議的二層報文中向B 發(fā)送,B 收到這個報文后,發(fā)現(xiàn)是A 的 ICMP 回顯請求,就按同樣格式返回一個值給 A,完成ping.2)不同網(wǎng)段內(nèi)主機(jī)A要ping主機(jī)C,兩者不在一個網(wǎng)段,A需要找網(wǎng)關(guān)轉(zhuǎn)發(fā),為了學(xué)習(xí)網(wǎng)關(guān)的MAC地址, A 發(fā)送一個ARP 廣播,學(xué)到后,再發(fā)封裝ICMP 報文給網(wǎng)關(guān)路由器。路由器接收到A 的 ICMP 報文, 查找路由表的目的IP, 得到一個出口指針,加上自己的MAC地址向主機(jī)C 轉(zhuǎn)發(fā)。路由器端口2 和主機(jī) C 相互學(xué)習(xí)MAC 地址,路由器2 端口轉(zhuǎn)發(fā)非1 端口, 1 已經(jīng)學(xué)
24、到A 的MAC 地址,將ICMP 的回顯請求回復(fù)。? 15.C/S 模式下使用socket 通信,幾個關(guān)鍵函數(shù)。什么是 Socket?WinSock(WindowsSockets) 是處理網(wǎng)絡(luò)通信的WindowsAPI 。許多函數(shù)與在BSD 中使用的Berkely 套接字函數(shù)是相同的。套接字,簡單的說就是通信雙方的一種約定,用套接字中的相關(guān)函數(shù)來完成通信過程。應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時,TCP 和 UDP 會遇到同時為多個應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個TCP 連接或多個應(yīng)用程序進(jìn)程可能需要通過同一個TCP 協(xié)議端口傳輸數(shù)據(jù)。 為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用
25、程序與TCP/IP 協(xié)議交互提供了稱為套接字(Socket) 的接口 。區(qū)分 不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接,主要有3 個參數(shù) :通信的目的IP 地址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號。Socket原意是“插座”,通過將這3個參數(shù)結(jié)合起來, 與一個“插座”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ù)報套接字( SOCK_DGRAM ) 。流類型的套接字是為需要可靠連接的應(yīng)用程序設(shè)計(jì)的。這些程序通常使用連續(xù)的數(shù)據(jù)
26、流。用于這種類型套接字的協(xié)議是TCP, 適合 FTP 這類實(shí)現(xiàn)。流套接字是最常用的,一些眾所周知的協(xié)議如HTTP、 TCP、 SMTP、 POP3 等都是基于面向流的協(xié)議。數(shù)據(jù)報套接字使用UDP做為下層協(xié)議,是無連接的,有一個最大緩沖區(qū)大小(數(shù)據(jù)包大小 的最大值)。它是為那些需要發(fā)送小數(shù)據(jù)包,并且對可靠性要求不高的應(yīng)用程序設(shè)計(jì)的。與流式套接字不同,數(shù)據(jù)報套接字并不保證數(shù)據(jù)會到達(dá)終端,也不保證它是以正確的順序到來的。數(shù)據(jù)報套接字的傳輸效率相當(dāng)高,它經(jīng)常用于音頻或視頻應(yīng)用程序。對這些程序來說, 速度比可靠性更加重要。二、基本socket 函數(shù)1、socket 函數(shù)包含頭文件?功能:創(chuàng)建一個套接字用
27、于通信?原型:intsocket(intdomain,inttype,intprotocol);?參數(shù)?domain :指定通信協(xié)議族(protocolfamily ) , AF_INET、AF_INET6、AF_UNIX 等? type :指定socket類型,流式套接字 SOCK_STREAM ,數(shù)據(jù)報套接字 SOCK_DGRAM ,原始套接字 SOCK_RAW?protocol :協(xié)議類型,IPPROTO_TCP 等;一般由前兩個參數(shù)就決定了協(xié)議類型,設(shè)置為0即可。?返回值:成功返回非負(fù)整數(shù),它與文件描述符類似,我們把它稱為套接口描述字,簡稱套接字。失敗返回-12、bind函數(shù)包含頭文件
28、?功能:綁定一個本地地址到套接字?原型:intbind(intsockfd,conststructsockaddr*addr,socklen_taddrlen);?參數(shù)?sockfd : socket函數(shù)返回的套接字?addr :要綁定的地址?addrlen :地址長度?返回值:成功返回 0,失敗返回-1 3、listen 函數(shù)包含頭文件?功能:將套接字用于監(jiān)聽進(jìn)入的連接?原型:intlisten(intsockfd,intbacklog);?參數(shù)?sockfd : socket函數(shù)返回的套接字?backlog :規(guī)定內(nèi)核為此套接字排隊(duì)的最大連接個數(shù)?返回值:成功返回0,失敗返回-1一般來說,
29、listen函數(shù)應(yīng)該在調(diào)用 socket和bind函數(shù)之后,調(diào)用函數(shù)accept之前調(diào)用。?對于給定的監(jiān)聽套接口,內(nèi)核要維護(hù)兩個隊(duì)列:?1、已由客戶發(fā)出并到達(dá)服務(wù)器,服務(wù)器正在等待完成相應(yīng)的TCP三路握手過程?2、已完成連接的隊(duì)列如下圖所示:4、accept 函數(shù)包含頭文件sys/socket.h?功能:從已完成連接隊(duì)列返回第一個連接,如果已完成連接隊(duì)列為空,則阻塞。?原型:intaccept(intsockfd,structsockaddr*addr,socklen_t*addrlen);?參數(shù)?sockfd :服務(wù)器套接字?addr :將返回對等方的套接字地址?addrlen :返回對等方的套接字地址長度?返回值:成功返回非負(fù)整數(shù),失敗返回-15、connect 函數(shù)包含頭文件sys/socket.h?功能:建立一個連接至addr所指定的套接字?原型:intconnect(intsockfd,conststructsockaddr*addr,socklen_taddrlen);?參數(shù)?sockfd :未連接套接字?addr :要連接的套接字地址 ?addrlen :第二個參數(shù) addr長度?返回值:成功返回0,失敗返回-1? 16.IP地址分類。1、A類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美國預(yù)算協(xié)議書
- 小紅本買賣合同協(xié)議書
- 群興控股協(xié)議書
- 氣墊減震車訂購協(xié)議書
- 美國沙特協(xié)議書
- 配套協(xié)作協(xié)議書
- 收糧食承包合同協(xié)議書
- 困難在哪里2025年ACCESS考試試題及答案
- JAVA中的事務(wù)處理機(jī)制分析試題及答案
- JAVA應(yīng)用開發(fā)中的敏捷開發(fā)方法與工具應(yīng)用試題及答案
- 2022國家電網(wǎng)企業(yè)文化、電力與能源戰(zhàn)略題庫(答案)
- 完整的策劃書模板
- 土木工程材料期末考試試題庫
- 模擬電子技術(shù)基礎(chǔ)智慧樹知到期末考試答案章節(jié)答案2024年北京航空航天大學(xué)
- 旅游定制師培訓(xùn)課件
- 中國青光眼指南
- 智慧礦山行業(yè)洞察研究報告 2023
- 《體態(tài)與健康》課件
- 《國有企業(yè)采購操作規(guī)范》【2023修訂版】
- 熱水供水系統(tǒng)運(yùn)營維護(hù)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 軸承安裝施工方案
評論
0/150
提交評論