freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序員復(fù)習(xí)資料全-資料下載頁

2025-04-17 07:45本頁面
  

【正文】 數(shù)據(jù)的物理媒體?! ≡谶@一層,數(shù)據(jù)的單位稱為比特(bit)?! 儆谖锢韺佣x的典型規(guī)范代表包括:eia/tia rs23eia/tia rs44rj45等?! ?shù)據(jù)鏈路層(data link layer)  數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸。該層的作用包括:物理地址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯(cuò)、重發(fā)等?! ≡谶@一層,數(shù)據(jù)的單位稱為幀(frame)?! ?shù)據(jù)鏈路層協(xié)議的代表包括:sdlc、hdlc、ppp、stp、幀中繼等?! 【W(wǎng)絡(luò)層(network layer)  網(wǎng)絡(luò)層負(fù)責(zé)對(duì)子網(wǎng)間的數(shù)據(jù)包進(jìn)行路由選擇。此外,網(wǎng)絡(luò)層還可以實(shí)現(xiàn)擁塞控制、網(wǎng)際互連等功能。  在這一層,數(shù)據(jù)的單位稱為數(shù)據(jù)包(packet)?! 【W(wǎng)絡(luò)層協(xié)議的代表包括:ip、ipx、rip、ospf等。  傳輸層(transport layer)  傳輸層是第一個(gè)端到端,即主機(jī)到主機(jī)的層次。傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯(cuò)控制和流量控制問題?! ?在這一層,數(shù)據(jù)的單位稱為數(shù)據(jù)段(segment)?! 鬏攲訁f(xié)議的代表包括:tcp、udp、spx等?! ?huì)話層(session layer)  會(huì)話層管理主機(jī)之間的會(huì)話進(jìn)程,即負(fù)責(zé)建立、管理、終止進(jìn)程之間的會(huì)話。會(huì)話層還利用在數(shù)據(jù)中插入校驗(yàn)點(diǎn)來實(shí)現(xiàn)數(shù)據(jù)的同步?! ?huì)話層協(xié)議的代表包括:netbios、zip(appletalk區(qū)域信息協(xié)議)等?! ”硎緦?presentation layer)  表示層對(duì)上層數(shù)據(jù)或信息進(jìn)行變換以保證一個(gè)主機(jī)應(yīng)用層信息可以被另一個(gè)主機(jī)的應(yīng)用程序理解。表示層的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)的加密、壓縮、格式轉(zhuǎn)換等。  表示層協(xié)議的代表包括:ascii、jpeg、mpeg等?! ?yīng)用層(application layer)  應(yīng)用層為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口?! ?yīng)用層協(xié)議的代表包括:telnet、ftp、snmp等。  集線器hub工作在OSI參考模型的(物理)層?! 【W(wǎng)卡工作在OSI參考模型的(物理)層?! ÷酚善鱮outer工作在OSI參考模型的(網(wǎng)絡(luò))層?! 〗粨Q機(jī)Switch工作在OSI參考模型的(數(shù)據(jù)鏈路)層。附)tcp建立連接為什么要三次握手?  tcp是一個(gè)面向連接的協(xié)議,在傳送數(shù)據(jù)以前,必須要首先建立一條連接。連接的建立需要經(jīng)過三次握手。為什么要經(jīng)過三次握手呢,每次握手雙方都做了些什么?  1)什么是tcp報(bào)文?  tcp報(bào)文就是通過tcp協(xié)議發(fā)送的數(shù)據(jù)包,由tcp頭和數(shù)據(jù)段組成?! cp頭是固定的20個(gè)字節(jié),它的格式為:  2)第一次握手做什么?  請(qǐng)求端(客戶端)會(huì)向服務(wù)端(被請(qǐng)求端)發(fā)送一個(gè)tcp報(bào)文,申請(qǐng)打開某一個(gè)端口。因?yàn)闆]有數(shù)據(jù),所以這個(gè)報(bào)文僅包含一個(gè)tcp頭。其中:  SYN=1。當(dāng)建立一個(gè)新的連接時(shí), SYN標(biāo)志變1?! ⌒蛱?hào)。序號(hào)用來標(biāo)識(shí)從客戶端向服務(wù)端發(fā)送的數(shù)據(jù)字節(jié)流。  此時(shí)客戶端進(jìn)入SYN_SENT狀態(tài)?! ?)第二次握手做什么?  服務(wù)端收到客戶端的SYN包,也會(huì)發(fā)一個(gè)只包含tcp頭的報(bào)文給客戶端?! CK=1。服務(wù)端確認(rèn)收到信息  確認(rèn)序號(hào)??蛻舳诵蛱?hào)+1,作為應(yīng)答  SYN=1。因?yàn)閠cp的連接是雙向的,服務(wù)端作為應(yīng)答的同時(shí)請(qǐng)求建立連接?! 〈藭r(shí)服務(wù)端進(jìn)入SYN_RECV狀態(tài)  4)第三次握手做什么?  ACK=1??蛻舳舜_認(rèn)收到信息  確認(rèn)序號(hào)。服務(wù)端序號(hào)+1,作為應(yīng)答  此時(shí)客戶端進(jìn)入ESTABLISHED狀態(tài),服務(wù)端收到ACK后也會(huì)進(jìn)入此狀態(tài)  可見,客戶端和服務(wù)端都保留了對(duì)方的序號(hào),這三次握手缺少任何一步都無法實(shí)現(xiàn)這一目標(biāo)。在三次握手過程中,出現(xiàn)了一些中間狀態(tài)?! ?)什么是半連接隊(duì)列?  第一次握手完成后,服務(wù)端發(fā)送ACK+SYN包到客戶端,在收到客戶端返回前的狀態(tài)為SYN_RECV,服務(wù)端為此狀態(tài)維護(hù)一個(gè)半連接隊(duì)列。當(dāng)服務(wù)端收到客戶的確認(rèn)包時(shí),刪除該條目,服務(wù)端進(jìn)入ESTABLISHED狀態(tài)。Listen中的backlog參數(shù)表示這兩個(gè)狀態(tài)合的最大值。若客戶端完成第一次握手后不再發(fā)送ACK包,導(dǎo)致服務(wù)端未完成隊(duì)列溢出,達(dá)到Dos攻擊的目的?! ?)什么是SYNACK 重傳?  Dos攻擊可以達(dá)到目的的一個(gè)重要因素是服務(wù)端在發(fā)送完SYN+ACK包后會(huì)等待客戶端的確認(rèn)包,如果等待時(shí)間內(nèi)未收到,服務(wù)端會(huì)進(jìn)行首次重傳,等待一段時(shí)間仍未收到客戶確認(rèn)包,會(huì)進(jìn)行第二次重傳,直到重傳次數(shù)超過系統(tǒng)規(guī)定的最大值,系統(tǒng)將該連接信息從半連接隊(duì)列中刪除。如果系統(tǒng)刪除的頻率小于半連接狀態(tài)的增長頻率,服務(wù)端就無法正常提供服務(wù)。7)Tcp關(guān)閉連接需要四次握手,這又是為什么呢?  這是由tcp半關(guān)閉(harfclose)造成的。既然一個(gè)TCP連接是全雙工(即數(shù)據(jù)在兩個(gè)方向上能同時(shí)傳遞),因此每個(gè)方向必須單獨(dú)地進(jìn)行關(guān)閉。即一方發(fā)送一個(gè)FIN,另一方收到后發(fā)送一個(gè)ACK,這就是所謂的四次握手了?! ?)第一次握手做什么?  客戶端發(fā)送一個(gè)FIN(這個(gè)客戶端是主動(dòng)發(fā)起關(guān)閉的一端,與建立連接時(shí)的客戶端不一定是同一主機(jī))  此時(shí)客戶端進(jìn)入FIN_WAIT_1狀態(tài)?! ?)第二次握手做什么?  服務(wù)端收到FIN,發(fā)回客戶端一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1(因?yàn)镕IN和SYN一樣,會(huì)占用一個(gè)序號(hào))??蛻舳耸盏紸CK之后會(huì)進(jìn)入FIN_WAIT_2狀態(tài),服務(wù)端會(huì)進(jìn)入CLOSE_WAIT狀態(tài)。  10)第三次握手做什么?  服務(wù)端發(fā)送給客戶端一個(gè)FIN。服務(wù)端進(jìn)入LAST_ACK狀態(tài)?! ?1)第四次握手做什么?  客戶端收到FIN,發(fā)回服務(wù)端一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1??蛻舳藭?huì)進(jìn)入TIME_WAIT狀態(tài),2MSL超時(shí)后進(jìn)入CLOSE狀態(tài)。服務(wù)端收到ACK后也會(huì)進(jìn)入CLOSE狀態(tài)。  其實(shí)我們通俗的說每次握手其實(shí)就是發(fā)一次數(shù)據(jù)包的過程。建立連接時(shí)雙方共發(fā)送了3個(gè)包,關(guān)閉連接時(shí)發(fā)送和確認(rèn)的兩次握手決定了一端數(shù)據(jù)流的關(guān)閉,四次握手可以保證兩方都關(guān)閉?! ?2)為什么建立連接是三次握手,而關(guān)閉連接是四次呢?  建立連接時(shí),服務(wù)端可以把應(yīng)答ACK和同步SYN放在一個(gè)報(bào)文里進(jìn)行發(fā)送。而關(guān)閉連接時(shí),收到FIN通知僅僅表示對(duì)方?jīng)]有數(shù)據(jù)發(fā)送過來了,并不表示自己的數(shù)據(jù)全部發(fā)送給了對(duì)方。所以ACK和FIN是分了兩次進(jìn)行發(fā)送。如果服務(wù)端收到FIN,恰恰自己也沒有數(shù)據(jù)要發(fā),是不是ACK和FIN可以一起發(fā)給客戶端呢,這樣就可以少一次數(shù)據(jù)流了。世界是美好的,經(jīng)典的TCP連接狀態(tài)圖中也考慮到了這種情況,tcp關(guān)閉連接確實(shí)是只有三次數(shù)據(jù)流動(dòng),服務(wù)端將ACK和FIN放在一個(gè)包里進(jìn)行發(fā)送,但四次握手這個(gè)概念卻已經(jīng)根深蒂固無法更改了?! ?3)Tcp的各個(gè)狀態(tài)是怎樣的?  客戶端的正常tcp狀態(tài):  CLOSEDSYN_SENT(第1次)ESTABLISHED(第3次)FIN_WAIT_1(第1次)FIN_WAIT_2(第2次)TIME_WAIT(第4次)CLOSED  服務(wù)端的正常tcp狀態(tài):  CLOSEDLISTENSYN_RCVD(第2次)ESTABLISHED(第3次)CLOSE_WAIT(第2次)LAST_ACK(第3次)CLOSED(第4次)  tcp還有其他的非正常狀態(tài),在此不做討論?!?數(shù)組和鏈表的優(yōu)缺點(diǎn)  數(shù)組,在內(nèi)存上給出了連續(xù)的空間。鏈表,內(nèi)存地址上可以是不連續(xù)的,每個(gè)鏈表的節(jié)點(diǎn)包括原來的內(nèi)存和下一個(gè)節(jié)點(diǎn)的信息(單向的一個(gè),雙向鏈表的話,會(huì)有兩個(gè))?! ?shù)組優(yōu)于鏈表的:  A. 內(nèi)存空間占用的少,因?yàn)殒湵砉?jié)點(diǎn)會(huì)附加上一塊或兩塊下一個(gè)節(jié)點(diǎn)的信息。  但是數(shù)組在建立時(shí)就固定了。所以也有可能會(huì)因?yàn)榻⒌臄?shù)組過大或不足引起內(nèi)存上的問題?! . 數(shù)組內(nèi)的數(shù)據(jù)可隨機(jī)訪問,但鏈表不具備隨機(jī)訪問性。這個(gè)很容易理解,數(shù)組在內(nèi)存里是連續(xù)的空間,比如如果一個(gè)數(shù)組地址從100到200,且每個(gè)元素占用兩個(gè)字節(jié),那么100200之間的任何一個(gè)偶數(shù)都是數(shù)組元素的地址,可以直接訪問?! ℃湵碓趦?nèi)存地址可能是分散的。所以必須通過上一節(jié)點(diǎn)中的信息找能找到下一個(gè)節(jié)點(diǎn)?! . 查找速度上。這個(gè)也是因?yàn)閮?nèi)存地址的連續(xù)性的問題,不羅索了?! ℃湵韮?yōu)于數(shù)組的:  A. 插入與刪除的操作。如果數(shù)組的中間插入一個(gè)元素,那么這個(gè)元素后的所有元素的內(nèi)存地址都要往后移動(dòng)。刪除的話同理。只有對(duì)數(shù)據(jù)的最后一個(gè)元素進(jìn)行插入刪除操作時(shí),才比較快。鏈表只需要更改有必要更改的節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)信息就夠了。并不需要更改節(jié)點(diǎn)的內(nèi)存地址?! . 內(nèi)存地址的利用率方面。不管你內(nèi)存里還有多少空間,如果沒辦法一次性給出數(shù)組所需的要空間,那就會(huì)提示內(nèi)存不足,磁盤空間整理的原因之一在這里。而鏈表可以是分散的空間地址?! . 鏈表的擴(kuò)展性比數(shù)組好。因?yàn)橐粋€(gè)數(shù)組建立后所占用的空間大小就是固定的,如果滿了就沒法擴(kuò)展,只能新建一個(gè)更大空間的數(shù)組。而鏈表不是固定的,可以很方便的擴(kuò)展。1C++操作符優(yōu)先級(jí):  記憶方法:  去掉一個(gè)最高的,去掉一個(gè)最低的,剩下的是一、二、三、賦值。雙目運(yùn)算符中,順序?yàn)樗阈g(shù)、關(guān)系和邏輯,移位和邏輯位插入其中。摘自《C語言程序設(shè)計(jì)實(shí)用問答》  問題:如何記住運(yùn)算符的15種優(yōu)先級(jí)和結(jié)合性?  解答:C語言中運(yùn)算符種類比較繁多,優(yōu)先級(jí)有15種,結(jié)合性有兩種?! ∪绾斡洃泝煞N結(jié)合性和15種優(yōu)先級(jí)?下面講述一種記憶方法?! 〗Y(jié)合性有兩種,一種是自左至右,另一種是自右至左,大部分運(yùn)算符的結(jié)合性是自左至右,只有單目運(yùn)算符、三目運(yùn)算符的賦值運(yùn)算符的結(jié)合性自右至左。  優(yōu)先級(jí)有15種,記憶方法如下:  記住一個(gè)最高的:構(gòu)造類型的元素或成員以及小括號(hào)?! ∮涀∫粋€(gè)最低的:逗號(hào)運(yùn)算符?! ∈S嗟氖且弧⒍?、三、賦值——意思是單目、雙目、三目和賦值運(yùn)算符。  在諸多運(yùn)算符中,又分為:算術(shù)、關(guān)系、邏輯。  兩種位操作運(yùn)算符中,移位運(yùn)算符在算術(shù)運(yùn)算符后邊,邏輯位運(yùn)算符在邏輯運(yùn)算符的前面。  再細(xì)分如下:  算術(shù)運(yùn)算符*,/,%高于+。  關(guān)系運(yùn)算符中:,=,和=高于==,!=?! ∵壿嬤\(yùn)算符中,除了邏輯求反(!)是單目外,邏輯與(amp。amp。)高于邏輯或(||)?! ∵壿嬑贿\(yùn)算符中,除了邏輯按位求反(~)外,按位與(amp。)高于按位半加(^),高于按位或(|)。Prece denceOperatorDescriptionExampleOver loadableAssociativity1::Scope resolution operatorClass::age = 2。noleft to right2()Function callprintf(“Hello world\n”)。yesleft to right()Member initalizationc_tor(int x, int y) : _x(x), _y(y * 10) {}yes[]Array accessarray[4] = 2。yesMember access from a pointerptrage = 34。yes.Member access from an object = 34。no++Postincrementfor (int i = 0。 i 10。 i++) cout i。yesPostdecrementfor (int i = 10。 i 0。 i) cout i。yesdynamic_castRuntimechecked type conversionYamp。 y = dynamic_castYamp。(x)。nostatic_castUnchecked type conversionYamp。 y = static_castYamp。(x)。noreinterpret_castReinterpreting type conversionint const* p = reinterpret_castint const*(0x1234)。noconst_castCast away/Add constnessint* q = const_castint*(p)。notypeidGet type informationstd::type_info constamp。 t = typeid(x)。no3!Logical negationif (!done) ...yesright to leftnotAlternate spelling for !~Bitwise plementflags = ~flags。yesplAlternate spelling for ~++Preincrementfor (i = 0。 i 10。 ++i) cout i。yesPredecrementfor (i = 10。 i 0。 i) cout i。yesUnary minusint i = 1。yes+Unary plusint i = +1。yes*Dereferenceint data = *intPtr。yesamp。Address ofint *intPtr = amp。data。yessizeofSize (of the type) of the operand in bytessize_t s = sizeof(int)。nonewDynamic memory allocationlong* pVar = new long。yesnew []Dynamic memory allocation of arraylong* array = new long[20]。yesdeleteDeallocating the memorydelete pVar。yesdelete []Deallocating the memory of arraydelete [] array。yes(type)Cast to a given typeint i = (int)floatNum。yes4*Member pointer selectorptr*var = 24。yesleft to right.*Member object selectorobj.*var = 24。no5*Multiplicationint i = 2 * 4。yesleft to right/Divisionfl
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1