網(wǎng)絡(luò)的的一些總結(jié)

網(wǎng)絡(luò)概念第一天

兩臺(tái)電腦怎么通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)?怎樣才能知道傳輸?shù)氖菙?shù)據(jù)?誰(shuí)摸過(guò)網(wǎng)線?

看電影,怎么看的?
通過(guò)電流,把數(shù)據(jù)傳過(guò)來(lái),主機(jī)操作系統(tǒng)會(huì)把電流轉(zhuǎn)換成二進(jìn)制。
對(duì)數(shù)據(jù)做了打包封裝,傳到網(wǎng)絡(luò)上。
在網(wǎng)絡(luò)線路上看到很多路,條條大路通羅馬,得選一個(gè)最優(yōu)路徑,以確保最快最安全的到達(dá)目的地。

OSI七層模型(開(kāi)放系統(tǒng)互連參考模型 )

  • (了解)開(kāi)放系統(tǒng)互連參考模型 (Open System Interconnect 簡(jiǎn)稱OSI)是國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電報(bào)電話咨詢委員會(huì)(CCITT)聯(lián)合制定的開(kāi)放系統(tǒng)互連參考模型,為開(kāi)放式互連信息系統(tǒng)提供了一種功能結(jié)構(gòu)的框架。,它從低到高分別是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。

  • (了解)物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。每一層的功能是獨(dú)立的。它利用其下一層提供的服務(wù)并為其上一層提供服務(wù),而與其他層的具體實(shí)現(xiàn)無(wú)關(guān)。這里所謂的“服務(wù)”就是下一層向上一層提供的通信功能和層之間的會(huì)話規(guī)定,一般用通信原語(yǔ)實(shí)現(xiàn)。兩個(gè)開(kāi)放系統(tǒng)中的同等層之間的通信規(guī)則和約定稱之為協(xié)議。通常把1~4層協(xié)議稱為下層協(xié)議,5~7層協(xié)議稱為上層協(xié)議。

  • 物理層:主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型、光纖的接口類型、各種傳輸介質(zhì)的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉(zhuǎn)化為電流強(qiáng)弱來(lái)進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為1、0,也就是我們常說(shuō)的數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換)。這一層是數(shù)據(jù)的比特流。例:摸網(wǎng)線

  • 數(shù)據(jù)鏈路層:定義了如何讓格式化數(shù)據(jù)以進(jìn)行傳輸,以及如何讓控制對(duì)物理介質(zhì)的訪問(wèn)。這一層通常還提供錯(cuò)誤檢測(cè)和糾正,是一種對(duì)比特流的一種包裝,以確保數(shù)據(jù)的可靠傳輸和可識(shí)別。這一層是數(shù)據(jù)的幀。


  • 網(wǎng)絡(luò)層:在位于不同地理位置的網(wǎng)絡(luò)中的兩個(gè)主機(jī)系統(tǒng)之間提供連接和路徑選擇。Internet的發(fā)展使得從世界各站點(diǎn)訪問(wèn)信息的用戶數(shù)大大增加,而網(wǎng)絡(luò)層正是管理這種連接的層。這一層數(shù)據(jù)傳送的單位是分組或包。


  • 傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(hào)(如HTTP的端口80等),TCP(傳輸控制協(xié)議,傳輸效率低,可靠性強(qiáng),可以用于傳輸可靠性要求高,數(shù)據(jù)量大的數(shù)據(jù)),UDP(用戶數(shù)據(jù)報(bào)協(xié)議,與TCP特性恰恰相反,用于傳輸可靠性要求不高,數(shù)據(jù)量小的數(shù)據(jù),如QQ聊天數(shù)據(jù)就是通過(guò)這種方式傳輸?shù)模?主要是從下層接收的數(shù)據(jù)進(jìn)行分段和傳輸,到達(dá)目的地址后再進(jìn)行重組。常常把這一層數(shù)據(jù)叫做報(bào)文段。

  • 會(huì)話層:通過(guò)傳輸層(端口號(hào):傳輸端口與接收端口)建立數(shù)據(jù)傳輸?shù)耐贰V饕谀愕南到y(tǒng)之間發(fā)起會(huì)話或者接受會(huì)話請(qǐng)求(設(shè)備之間需要互相認(rèn)識(shí)可以是IP也可以是MAC或者是主機(jī)名)

  • 表示層:可確保一個(gè)系統(tǒng)的應(yīng)用層所發(fā)送的信息可以被另一個(gè)系統(tǒng)的應(yīng)用層讀取。例如,PC程序與另一臺(tái)計(jì)算機(jī)進(jìn)行通信,其中一臺(tái)計(jì)算機(jī)使用擴(kuò)展二一十進(jìn)制交換碼(EBCDIC),而另一臺(tái)則使用美國(guó)信息交換標(biāo)準(zhǔn)碼(ASCII)來(lái)表示相同的字符。如有必要,表示層會(huì)通過(guò)使用一種通格式來(lái)實(shí)現(xiàn)多種數(shù)據(jù)格式之間的轉(zhuǎn)換。

    *
  • 應(yīng)用層: 是最靠近用戶的OSI層。這一層為用戶的應(yīng)用程序(例如電子郵件、文件傳輸和終端仿真)提供網(wǎng)絡(luò)服務(wù)。

什么是客戶端服務(wù)器

  • 服務(wù)端的特征:
    被動(dòng)的角色(從)。 等待來(lái)自客戶端的要求。 處理要求并傳回結(jié)果。

  • 客戶端的特征:
    主動(dòng)的角色(主)。 發(fā)送要求。 等待直到收到回應(yīng)。 服務(wù)器可是有狀態(tài)或者無(wú)狀態(tài)的。無(wú)狀態(tài)的服務(wù)器不會(huì)保留任何兩個(gè)請(qǐng)求之間的信息,有狀態(tài)服務(wù)器會(huì)記住請(qǐng)求之間的信息。這些信息的作用域可以是全局的或者某個(gè)事務(wù) (session)的。靜態(tài) HTML 頁(yè)面服務(wù)器是一個(gè)無(wú)狀態(tài)服務(wù)器的例子,Apache Tomcat 是一個(gè)有狀態(tài)服務(wù)器。

  • C/S框架和p2p(peer to peer)P2P 框架比較
    另一種已知的網(wǎng)絡(luò)架構(gòu)類型是點(diǎn)對(duì)點(diǎn)技術(shù)(peer-to-peer architecture),不同于客戶端服務(wù)器,網(wǎng)絡(luò)上的每個(gè)使用端或程式的實(shí)體都擁有相同的等級(jí),同時(shí)扮演用戶端與服務(wù)器的角色。Peer to peer 常被縮寫(xiě)成 P2P。
    此兩種架構(gòu)目前都被廣范使用,可以找尋有關(guān)中心式網(wǎng)絡(luò)(Client-Server)或非中心式網(wǎng)絡(luò)(Peer-to-peer)得到更詳細(xì)的資訊,此兩種架構(gòu)都可于 Windows 與Linux上面使用

傳輸層協(xié)議和傳輸協(xié)議一樣嗎?

答:傳輸層(TransportLayer)是OSI中最重要,答:最關(guān)鍵的一層,是唯一負(fù)責(zé)總體的數(shù)據(jù)傳輸和數(shù)據(jù)控制的一層.傳輸層提供端到端的交換數(shù)據(jù)的機(jī)制,檢查分組編號(hào)與次序。傳輸層對(duì)其上三層如會(huì)話層等,提供可靠的傳輸服務(wù),對(duì)網(wǎng)絡(luò)層提供可靠的目的地站點(diǎn)信息.

傳輸層中的協(xié)議(了解)

傳輸層(又稱主機(jī)到主機(jī)傳輸層)為應(yīng)用層提供會(huì)話和數(shù)據(jù)報(bào)通信服務(wù)。傳輸層承擔(dān)OSI傳輸層的職責(zé)。傳輸層的核心協(xié)議是TCP和UDP。TCP提供一對(duì)一的、面向連接的可靠通信服務(wù)。TCP建立連接,對(duì)發(fā)送的數(shù)據(jù)包進(jìn)行排序和確認(rèn),并恢復(fù)在傳輸過(guò)程中丟失的數(shù)據(jù)包。與TCP不同,UDP提供一對(duì)一或一對(duì)多的、無(wú)連接的不可靠通信服務(wù)。
不論是TCP/IP還是在OSI參考模型中,任意相鄰兩層的下層為服務(wù)提供者,上層為服務(wù)調(diào)用者。下層為上層提供的服務(wù)可分為兩類:面向連接服務(wù)和無(wú)連接服務(wù)。

  1. 面向連接的網(wǎng)絡(luò)服務(wù)

面向連接的網(wǎng)絡(luò)服務(wù)又稱為虛電路(Virtual Circuit)服務(wù),它具有網(wǎng)絡(luò)連接建立、數(shù)據(jù)傳輸和網(wǎng)絡(luò)連接釋放三個(gè)階段。是按順序傳輸可靠的報(bào)文分組方式,適用于指定對(duì)象、長(zhǎng)報(bào)文、會(huì)話型傳輸要求。
面向連接服務(wù)以電話系統(tǒng)為模式。要和某個(gè)人通話,首先拿起電話,撥號(hào)碼,通話,然后掛斷。同樣在使用面向連接的服務(wù)時(shí),用戶首先要建立連接,使用連接,然后釋放連接。連接本質(zhì)上像個(gè)管道:發(fā)送者在管道的一端放入物體,接收者在另一端按同樣的次序取出物體;其特點(diǎn)是收發(fā)的數(shù)據(jù)不僅順序一致,而且內(nèi)容也相同。

  1. 無(wú)連接的網(wǎng)絡(luò)服務(wù)

無(wú)連接網(wǎng)絡(luò)服務(wù)的兩實(shí)體之間的通信不需要事先建立好一個(gè)連接。無(wú)連接網(wǎng)絡(luò)服務(wù)有3種類型:數(shù)據(jù)報(bào)(Datagram)、確認(rèn)交付(Confirmed Delivery)與請(qǐng)求回答(Request reply。
無(wú)連接服務(wù)以郵政系統(tǒng)為模式。每個(gè)報(bào)文(信件)帶有完整的目的地址,并且每一個(gè)報(bào)文都獨(dú)立于其他報(bào)文,由系統(tǒng)選定的路線傳遞。在正常情況下,當(dāng)兩個(gè)報(bào)文發(fā)往同一目的地時(shí),先發(fā)的先到。但是,也有可能先發(fā)的報(bào)文在途中延誤了,后發(fā)的報(bào)文反而先收到;而這種情況在面向連接的服務(wù)中是絕對(duì)不可能發(fā)生的。

傳輸控制協(xié)議(TCP)(重點(diǎn)了解)

TCP全稱是Transmission Control Protocol,中文名為傳輸控制協(xié)議

  1. TCP工作原理 :TCP的連接建立過(guò)程又稱為T(mén)CP三次握手。

    • 首先客戶端向服務(wù)器發(fā)起一個(gè)建立連接的同步(SYN)請(qǐng)求;
    • 服務(wù)器在收到這個(gè)請(qǐng)求后向客戶端回復(fù)一個(gè)同步/確認(rèn)(SYN/ACK)應(yīng)答;
    • 客戶端收到此應(yīng)答確認(rèn)之后再向服務(wù)器發(fā)送一個(gè)確認(rèn)(ACK),,此時(shí)TCP連接成功建立.
    • 一旦初始的三次握手完成,在發(fā)送和接收主機(jī)之間將按順序發(fā)送和確認(rèn)數(shù)據(jù)段,數(shù)據(jù)傳輸完成之后,關(guān)閉連接之前,TCP使用類似的握手過(guò)程驗(yàn)證兩個(gè)主機(jī)是否都完成發(fā)送和接收全部數(shù)據(jù)。
  2. 它可以提供可靠的、面向連接的網(wǎng)絡(luò)數(shù)據(jù)傳遞服務(wù)。傳輸控制協(xié)議主要包含下列任務(wù)和功能。

    • 確保IP數(shù)據(jù)報(bào)的成功傳遞。
    • 對(duì)程序發(fā)送的大塊數(shù)據(jù)進(jìn)行分段和重組。
    • 確保正確排序及按順序傳遞分段的數(shù)據(jù)。
    • 通過(guò)計(jì)算校驗(yàn)和,進(jìn)行傳輸數(shù)據(jù)的完整性檢查。
    • 根據(jù)數(shù)據(jù)是否接收成功發(fā)送肯定消息。通過(guò)使用選擇性確認(rèn),也對(duì)沒(méi)有收到的數(shù)據(jù)發(fā)送否定確認(rèn)。
      為必須使用可靠的、基于會(huì)話的數(shù)據(jù)傳輸程序,如客戶端/服務(wù)器數(shù)據(jù)庫(kù)和電子郵件程序,提供首選傳輸方法。

TCP工作過(guò)程比較復(fù)雜,包括的內(nèi)容如下。

*TCP連接關(guān)閉*:客戶端和服務(wù)器建立TCP連接并完成數(shù)據(jù)傳輸后,會(huì)發(fā)送一個(gè)結(jié)束標(biāo)記值1的數(shù)據(jù)包,以關(guān)閉這個(gè)TCP連接,并同時(shí)釋放該連接占用的緩沖區(qū)資源。
*TCP重置*:TCP允許在傳輸?shù)倪^(guò)程中突然中斷連接。
*TCP數(shù)據(jù)排序和確認(rèn)*:在傳輸?shù)倪^(guò)程中使用序列號(hào)和確認(rèn)號(hào)來(lái)跟蹤數(shù)據(jù)的接收情況。
*TCP重傳*:在TCP的傳輸過(guò)程中,如果在重傳超時(shí)的時(shí)間內(nèi)沒(méi)有收到客戶端對(duì)某數(shù)據(jù)包的確認(rèn)回復(fù),客戶端就認(rèn)為此數(shù)據(jù)包丟失,并再次向服務(wù)器發(fā)送這個(gè)數(shù)據(jù)包。
*TCP延遲確認(rèn)*:TCP并不總是在接收到數(shù)據(jù)后立即對(duì)其進(jìn)行確認(rèn),它允許主機(jī)在接收數(shù)據(jù)的同時(shí)發(fā)送自己的確認(rèn)信息給對(duì)方。
*TCP數(shù)據(jù)保護(hù)*(校驗(yàn)):TCP是可靠傳輸?shù)膮f(xié)議,它提供校驗(yàn)和計(jì)算來(lái)實(shí)現(xiàn)數(shù)據(jù)在傳輸過(guò)程中的完整性。
  • TCP與端口號(hào)

TCP和UDP都是IP層面的傳輸協(xié)議,是IP與上層之間的處理接口。TCP和UDP端口號(hào)被設(shè)計(jì)來(lái)區(qū)分運(yùn)行在單個(gè)設(shè)備上的多重應(yīng)用程序的IP地址。由于同一臺(tái)計(jì)算機(jī)上可能會(huì)運(yùn)行多個(gè)網(wǎng)絡(luò)應(yīng)用程序,所以計(jì)算機(jī)需要確保目標(biāo)計(jì)算機(jī)上接收源主機(jī)數(shù)據(jù)包的軟件應(yīng)用程序的正確性,以及響應(yīng)能夠被發(fā)送到源主機(jī)的正確應(yīng)用程序上。該過(guò)程正是通過(guò)使用TCP或UDP端口號(hào)來(lái)實(shí)現(xiàn)的。
在TCP和UDP頭部分,有“源端口”和“目標(biāo)端口”段, 主要用于顯示發(fā)送和接收過(guò)程中的身份識(shí)別信息。IP 地址和端口號(hào)合在一起被稱為“套接字”。TCP端口比較復(fù)雜,其工作方式與UDP端口不同。UDP端口對(duì)于基于UDP的通信作為單一消息隊(duì)列和網(wǎng)絡(luò)端點(diǎn)來(lái)操作,而所有TCP通信的終點(diǎn)都是唯一的連接。每個(gè)TCP連接由兩個(gè)端點(diǎn)唯一識(shí)別。由于所有TCP連接由兩對(duì) IP 地址和TCP端口唯一識(shí)別(每個(gè)所連主機(jī)都有一個(gè)地址/端口對(duì)),因此每個(gè)TCP服務(wù)器端口都能提供對(duì)多個(gè)連接的共享訪問(wèn)

用戶數(shù)據(jù)報(bào)協(xié)議(UDP)(重點(diǎn)了解)

UDP全稱是User Datagr2am Protocol,中文名為用戶數(shù)據(jù)報(bào)協(xié)議。UDP 提供無(wú)連接的網(wǎng)絡(luò)服務(wù),該服務(wù)對(duì)消息中傳輸?shù)臄?shù)據(jù)提供不可靠的、最大努力傳送。這意味著它不保證數(shù)據(jù)報(bào)的到達(dá),也不保證所傳送數(shù)據(jù)包的順序是否正確。
同學(xué)們也許會(huì)問(wèn):“既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有這種協(xié)議的出現(xiàn)是為什么呢?”其實(shí)在有些情況下UDP可能會(huì)變得非常有用。因?yàn)閁DP具有效率優(yōu)勢(shì)。雖然TCP中植入了各種安全保障功能,正因?yàn)橛邪踩愕谋U希詫?duì)效率的保障就會(huì)很低,在實(shí)際執(zhí)行的過(guò)程中會(huì)占用大量的系統(tǒng)開(kāi)銷(xiāo),無(wú)疑效率受到嚴(yán)重的影響。反觀UDP由于排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來(lái)完成,極大地降低了執(zhí)行時(shí)間,使效率得到了保證。

網(wǎng)關(guān):網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。(了解)

  • 網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。默認(rèn)網(wǎng)關(guān)在網(wǎng)絡(luò)層上以實(shí)現(xiàn)網(wǎng)絡(luò)互連,是最復(fù)雜的網(wǎng)絡(luò)互連設(shè)備,僅用于兩個(gè)高層協(xié)議不同的網(wǎng)絡(luò)互連。網(wǎng)關(guān)的結(jié)構(gòu)也和路由器類似,不同的是互連層。網(wǎng)關(guān)既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。
  • 在OSI中,網(wǎng)關(guān)有兩種:一種是面向連接的網(wǎng)關(guān),一種是無(wú)連接的網(wǎng)關(guān)。
    (簡(jiǎn)單理解下:舉例)把自己想成網(wǎng)絡(luò)數(shù)據(jù),從一個(gè)房間走到另一個(gè)房間,相當(dāng)于從一個(gè)網(wǎng)絡(luò)走到另一個(gè)網(wǎng)絡(luò),需要穿過(guò)一扇門(mén),這扇門(mén)就是起到的網(wǎng)關(guān)的作用。通過(guò)網(wǎng)關(guān)才能進(jìn)入下一個(gè)房間,也就是一個(gè)網(wǎng)絡(luò)進(jìn)入下一個(gè)網(wǎng)絡(luò)。這個(gè)門(mén)就是網(wǎng)關(guān),他管理你的進(jìn)出,也就是管理網(wǎng)絡(luò)的連接和解析數(shù)據(jù)。

(了解)局域網(wǎng)(Local Area Network,LAN)是在一個(gè)局部的地理范圍內(nèi)(如一個(gè)學(xué)校、工廠和機(jī)關(guān)內(nèi)),一般是方圓幾千米以內(nèi),將各種計(jì)算機(jī),外部設(shè)備和數(shù)據(jù)庫(kù)等互相聯(lián)接起來(lái)組成的計(jì)算機(jī)通信網(wǎng)

(了解)廣域網(wǎng)(WAN,Wide Area Network)也稱遠(yuǎn)程網(wǎng)(long haul network )。通常跨接很大的物理范圍,所覆蓋的范圍從幾十公里到幾千公里,它能連接多個(gè)城市或國(guó)家,或橫跨幾個(gè)洲并能提供遠(yuǎn)距離通信,形成國(guó)際性的遠(yuǎn)程網(wǎng)絡(luò)

傳輸協(xié)議概念廣泛的多,基本上所有的協(xié)議都是做數(shù)據(jù)傳輸?shù)摹?/p>

常見(jiàn)的傳輸協(xié)議有哪些?

ARP(Address Resolution Protocol)地址解析協(xié)議
  它是用于映射計(jì)算機(jī)的物理地址和臨時(shí)指定的網(wǎng)絡(luò)地址。
啟動(dòng)時(shí)它選擇一個(gè)協(xié)議(網(wǎng)絡(luò)層)地址,并檢查這個(gè)地址是否已經(jīng)有別的計(jì)算機(jī)使用,
如果沒(méi)有被使用,此結(jié)點(diǎn)被使用這個(gè)地址,如果此地址已經(jīng)被別的計(jì)算機(jī)使用,
正在使用此地址的計(jì)算機(jī)會(huì)通告這一信息,只有再選另一個(gè)地址了。
DHCP(Dynamic Host Configuration Protocol)動(dòng)態(tài)主機(jī)配置協(xié)議
  它是在TCP/IP網(wǎng)絡(luò)上使客戶機(jī)獲得配置信息的協(xié)議,它是基于BOOTP協(xié)議,
并在BOOTP協(xié)議的基礎(chǔ)上添加了自動(dòng)分配可用網(wǎng)絡(luò)地址等功能。
這兩個(gè)協(xié)議可以通過(guò)一些機(jī)制互操作。
DHCP協(xié)議在安裝TCP/IP協(xié)議和使用TCP/IP協(xié)議進(jìn)行通迅時(shí),
必須配置IP地址、子網(wǎng)掩碼、缺省網(wǎng)關(guān)三個(gè)參數(shù),這三個(gè)參數(shù)可以手動(dòng)配置,也可以使用DHCP自動(dòng)配置。

Discard Protocol拋棄協(xié)議
  它的作用就是接收到什么拋棄什么,它對(duì)調(diào)試網(wǎng)絡(luò)狀態(tài)的一定的用處。
基于TCP的拋棄服務(wù),如果服務(wù)器實(shí)現(xiàn)了拋棄協(xié)議,服務(wù)器就會(huì)在TCP端口9檢測(cè)拋棄協(xié)議請(qǐng)求,在建立連接后并檢測(cè)到請(qǐng)求后,就直接把接收到的數(shù)據(jù)直接拋棄,直到用戶中斷連接。而基于UDP協(xié)議的拋棄服務(wù)和基于TCP差不多,檢測(cè)的端口是UDP端口9,功能也一樣。

Echo Protocol協(xié)議
  這個(gè)協(xié)議主要用于調(diào)試和檢測(cè)中。這個(gè)協(xié)議的作用也十分簡(jiǎn)單,接收到什么原封發(fā)回就是了。
它可以基于TCP協(xié)議,服務(wù)器就在TCP端口7檢測(cè)有無(wú)消息,如果有發(fā)送來(lái)的消息直接返回就是了。
如果使用UDP協(xié)議的基本過(guò)程和TCP一樣,檢測(cè)的端口也是7。

FTP(File Transfer Protocol)文件傳輸協(xié)議
  它是一個(gè)標(biāo)準(zhǔn)協(xié)議,是在計(jì)算機(jī)和網(wǎng)絡(luò)之間交換文件的最簡(jiǎn)單的方法。
像傳送可顯示文件的HTTP和電子郵件的SMTP一樣,F(xiàn)TP也是應(yīng)用TCP/IP協(xié)議的應(yīng)用協(xié)議標(biāo)準(zhǔn)。
FTP通常用于將網(wǎng)頁(yè)從創(chuàng)作者上傳到服務(wù)器上供人使用,
而從服務(wù)器上下傳文件也是一種非常普遍的使用方式。
作為用戶,您可以用非常簡(jiǎn)單的DOS界面來(lái)使用FTP,
也可以使用由第三方提供的圖形界面的FTP來(lái)更新(刪除,重命名,移動(dòng)和復(fù)制)服務(wù)器上的文件。
現(xiàn)在有許多服務(wù)器支持匿名登錄,允許用戶使用FTP和ANONYMOUS作為用戶名進(jìn)行登錄,
通常可使用任何口令或只按回車(chē)鍵。

HDLC(High-Level Data Link Control)高層數(shù)據(jù)鏈路協(xié)議
  它是一組用于在網(wǎng)絡(luò)結(jié)點(diǎn)間傳送數(shù)據(jù)的協(xié)議。
在HDLC中,數(shù)據(jù)被組成一個(gè)個(gè)的單元(稱為幀)通過(guò)網(wǎng)絡(luò)發(fā)送,并由接收方確認(rèn)收到。
HDLC協(xié)議也管理數(shù)據(jù)流和數(shù)據(jù)發(fā)送的間隔時(shí)間。HDLC是在數(shù)據(jù)鏈路層中最廣泛最使用的協(xié)議之一。
現(xiàn)在作為ISO的標(biāo)準(zhǔn),HDLC是基于IBM的SDLC協(xié)議的,SDLC被廣泛用于IBM的大型機(jī)環(huán)境之中。
在HDLC中,屬于SDLC的被稱為通響應(yīng)模式(NRM)。
在通常響應(yīng)模式中,基站(通常是大型機(jī))發(fā)送數(shù)據(jù)給本地或遠(yuǎn)程的二級(jí)站。
不同類型的HDLC被用于使用X.25協(xié)議的網(wǎng)絡(luò)和幀中繼網(wǎng)絡(luò),
這種協(xié)議可以在局域網(wǎng)或廣域網(wǎng)中使用,無(wú)論此網(wǎng)是公共的還是私人的。

HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本傳輸協(xié)議-版本1.1
  它是用來(lái)在Internet上傳送超文本的傳送協(xié)議。
它是運(yùn)行在TCP/IP協(xié)議族之上的HTTP應(yīng)用協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。
任何服務(wù)器除了包括HTML文件以外,還有一個(gè)HTTP駐留程序,用于響應(yīng)用用戶請(qǐng)求。
您的瀏覽器是HTTP客戶,向服務(wù)器發(fā)送請(qǐng)求,
當(dāng)瀏覽器中輸入了一個(gè)開(kāi)始文件或點(diǎn)擊了一個(gè)超級(jí)鏈接時(shí),瀏覽器就向服務(wù)器發(fā)送了HTTP請(qǐng)求,
此請(qǐng)求被送往由IP地址指定的URL。駐留程序接收到請(qǐng)求,在進(jìn)行必要的操作后回送所要求的文件。

HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議
  它是由Netscape開(kāi)發(fā)并內(nèi)置于其瀏覽器中,用于對(duì)數(shù)據(jù)進(jìn)行壓縮和解壓操作,
并返回網(wǎng)絡(luò)上傳送回的結(jié)果。
HTTPS實(shí)際上應(yīng)用了Netscape的完全套接字層(SSL)作為HTTP應(yīng)用層的子層。
(HTTPS使用端口443,而不是象HTTP那樣使用端口80來(lái)和TCP/IP進(jìn)行通信。)
SSL使用40 位關(guān)鍵字作為RC4流加密算法,這對(duì)于商業(yè)信息的加密是合適的。
HTTPS和SSL支持使用X.509數(shù)字認(rèn)證,如果需要的話用戶可以確認(rèn)發(fā)送者是誰(shuí)。

ICMP(Internet Control Message Protocol)Internet控制信息協(xié)議
  它是一個(gè)在主機(jī)和網(wǎng)關(guān)之間消息控制和差錯(cuò)報(bào)告協(xié)議。
ICMP使用IP數(shù)據(jù)報(bào),但消息由TCP/IP軟件處理,對(duì)于應(yīng)用程序使用者是不可見(jiàn)的。
在被稱為Catenet的系統(tǒng)中,IP協(xié)議被用作主機(jī)到主機(jī)的數(shù)據(jù)報(bào)服務(wù)。網(wǎng)絡(luò)連接設(shè)備稱為網(wǎng)關(guān)。
這些網(wǎng)關(guān)通過(guò)網(wǎng)關(guān)到網(wǎng)關(guān)協(xié)議(GGP)相互交換用于控制的信息。
通常,贍養(yǎng)或目的主機(jī)將和源主機(jī)通信,例如,為報(bào)告在數(shù)據(jù)報(bào)過(guò)程中的錯(cuò)誤。
為了這個(gè)目的才使用了ICMP,它使用IP做于底層支持,好象它是一個(gè)高層協(xié)議,
而實(shí)際上它是IP的一部分,必須由其它IP模塊實(shí)現(xiàn)。
ICMP消息在以下幾種情況下發(fā)送:當(dāng)數(shù)據(jù)報(bào)不能到達(dá)目的地時(shí),
當(dāng)網(wǎng)關(guān)的已經(jīng)失去緩存功能,當(dāng)網(wǎng)關(guān)能夠引導(dǎo)主機(jī)在更短路由上發(fā)送。
IP并非設(shè)計(jì)為設(shè)計(jì)為絕對(duì)可靠,這個(gè)協(xié)議的目的是為了當(dāng)網(wǎng)絡(luò)出現(xiàn)問(wèn)題的時(shí)候返回控制信息,
而不是使IP協(xié)議變得絕對(duì)可靠,并不保證數(shù)據(jù)報(bào)或控制信息能夠返回。
一些數(shù)據(jù)報(bào)仍將在沒(méi)有任何報(bào)告的情況下丟失。

IMAP4(Internet Mail Access Protocol Version 4)Internet郵件訪問(wèn)協(xié)議-版本4它是用于從本地服務(wù)器上訪問(wèn)電子郵件的標(biāo)準(zhǔn)協(xié)議,它是一個(gè)C/S模型協(xié)議,
用戶的電子郵件由服務(wù)器負(fù)責(zé)接收保存。
IMAP4改進(jìn)了POP3的不足,用戶可以通過(guò)瀏覽信件頭來(lái)決定是不是要下載此信,
還可以在服務(wù)器上創(chuàng)建或更改文件夾或郵箱,刪除信件或檢索信件的特定部分。
在用戶訪問(wèn)電子電子郵件時(shí),IMAP4需要持續(xù)訪問(wèn)服務(wù)器。
在POP3中,信件是保存在服務(wù)器上的,當(dāng)用戶閱讀信件時(shí),所有內(nèi)容都會(huì)被立刻下載到用戶的機(jī)器上。
我們有時(shí)可以把IMAP4看成是一個(gè)遠(yuǎn)程文件服務(wù)器,把POP3可以看成是一個(gè)存儲(chǔ)轉(zhuǎn)發(fā)服務(wù)。

IPv6(Internet Protocol Version 6)Internet協(xié)議-版本6
  它是Internet協(xié)議的最新版本,已作為IP的一部分并被許多主要的操作系統(tǒng)所支持。
IPv6也被稱為“Ipng”(下一代IP),它對(duì)現(xiàn)行的IP(版本4)進(jìn)行重大的改進(jìn)。
使用IPv4和IPv6的網(wǎng)絡(luò)主機(jī)和中間結(jié)點(diǎn)可以處理IP協(xié)議中任何一層的包。
用戶和服務(wù)商可以直接安裝IPv6而不用對(duì)系統(tǒng)進(jìn)行什么重大的修改。
相對(duì)于版本4,新版本的最大改進(jìn)在于將IP地址從32位改為128位,
這一改進(jìn)是為了適應(yīng)網(wǎng)絡(luò)快速的發(fā)展對(duì)IP地址的需求,也從根本上改變了IP地址短缺的問(wèn)題。
簡(jiǎn)化IPv4首部字段被刪除或者成為可選字段,減少了一般情況下包的處理開(kāi)銷(xiāo)以及IPv6首部占用的帶寬。
改進(jìn)IP 首部選項(xiàng)編碼方式的修改導(dǎo)致更加高效的傳輸,在選項(xiàng)長(zhǎng)度方面更少的限制,
以及將來(lái)引入新的選項(xiàng)時(shí)更強(qiáng)的適應(yīng)性。加入一個(gè)新的能力,
使得那些發(fā)送者要求特殊處理的屬于特別的傳輸流的包能夠貼上標(biāo)簽,
比如非缺省質(zhì)量的服務(wù)或者實(shí)時(shí)服務(wù)。
為支持認(rèn)證,數(shù)據(jù)完整性以及(可選的)數(shù)據(jù)保密的擴(kuò)展都在IPv6中說(shuō)明。
本文描述IPv6基本首部以及最初定義的IPv6 擴(kuò)展首部和選項(xiàng)。
還將討論包的大小問(wèn)題,數(shù)據(jù)流標(biāo)簽和傳輸類別的語(yǔ)法,以及IPv6對(duì)上層協(xié)議的影響。
IPv6 地址的格式和語(yǔ)法在其它文章中單獨(dú)說(shuō)明。IPv6版的 ICMP 是所有IPv6應(yīng)用都需要包含的。

IPX/SPX(Internetwork Packet Exchange/Sequential PacketExchange)
互連網(wǎng)包交換/順序包交換
  它是由Novell提出的用于客戶/服務(wù)器相連的網(wǎng)絡(luò)協(xié)議。
使用IPX/SPX協(xié)議能運(yùn)行通常需要NetBEUI支持的程序,通過(guò)IPX/SPX協(xié)議可以跨過(guò)路由器訪問(wèn)其他網(wǎng)絡(luò)。

MIME(Multi-Purpose Internet Mail Extensions)多功能Internet郵件擴(kuò)展
  MIME是擴(kuò)展SMTP協(xié)議,是1991年Nathan Borenstein向IETF提出。
在傳輸字符數(shù)據(jù)的同時(shí),允許用戶傳送另外的文件類型,
如聲音,圖像和應(yīng)用程序,并將其壓縮在MIME附件中。
因此,新的文件類型也被作為新的被支持的IP文件類型。

POP3(Post Office Protocol Version 3)郵局協(xié)議-版本3
  它是一個(gè)關(guān)于接收電子郵件的客戶/服務(wù)器協(xié)議。
電子郵件由服務(wù)器接收并保存,在一定時(shí)間之后,由客戶電子郵件接收程序檢查郵箱并下載郵件。
POP3它內(nèi)置于IE和Netscape瀏覽器中。另一個(gè)替代協(xié)議是交互郵件訪問(wèn)協(xié)議(IMAP)。
使用IMAP您可以將服務(wù)器上的郵件視為本地客戶機(jī)上的郵件。
在本地機(jī)上刪除的郵件還可以從服務(wù)器上找到。
E-mail 可以被保存在服務(wù)器上,并且可以從服務(wù)器上找回。

PPP(Point to Point Protocol)點(diǎn)對(duì)點(diǎn)協(xié)議
  它是用于串行接口的兩臺(tái)計(jì)算機(jī)的通信協(xié)議,
是為通過(guò)電話線連接計(jì)算機(jī)和服務(wù)器而彼此通信而制定的協(xié)議。
網(wǎng)絡(luò)服務(wù)提供商可以提供您點(diǎn)對(duì)點(diǎn)連接,這樣提供商的服務(wù)器就可以響應(yīng)您的請(qǐng)求,
將您的請(qǐng)求接收并發(fā)送到網(wǎng)絡(luò)上,然后將網(wǎng)絡(luò)上的響應(yīng)送回。
PPP是使用IP協(xié)議,有時(shí)它被認(rèn)為是TCP/IP協(xié)議族的一員。
PPP協(xié)議可用于不同介質(zhì)上包括雙絞線,光纖和衛(wèi)星傳輸?shù)娜p工協(xié)議,它使用HDLC進(jìn)行包的裝入。
PPP協(xié)議既可以處理同步通信也可以處理異步通信,可以允許多個(gè)用戶共享一個(gè)線路,
又可發(fā)進(jìn)行SLIP協(xié)議所沒(méi)有的差錯(cuò)控制。

RIP(Routing Infomation Protocol)路由信息協(xié)議
  RIP是最早的路由協(xié)議之一,而且現(xiàn)在仍然在廣泛使用。
它從類別上應(yīng)該屬于內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)類,它是距離向量路由式協(xié)議,
這種協(xié)議在計(jì)算兩個(gè)地方的距離時(shí)只計(jì)算經(jīng)過(guò)的路由器的數(shù)目,
如果到相同目標(biāo)有兩個(gè)不等速或帶寬不同的路由器,但是經(jīng)過(guò)的路由器的個(gè)數(shù)一樣,
RIP認(rèn)為兩者距離一樣,而實(shí)際傳送數(shù)據(jù)時(shí),很明顯一個(gè)快一個(gè)慢,
這就是RIP協(xié)議的不足之處,而OSPF在它的基礎(chǔ)上克服了RIP的缺點(diǎn)。

SLIP(Serial Line Internet Protocol)串行線路Internet協(xié)議
  它是一個(gè)TCP/IP協(xié)議,它用于在兩臺(tái)計(jì)算機(jī)之間通信。
通常計(jì)算機(jī)與服務(wù)器連接的線路是串行線路,而不是如T1的多路線路或并行線。
您的服務(wù)器提供商可以向您提供SLIP連接,這樣他的服務(wù)器就可以響應(yīng)您的請(qǐng)求,
并將請(qǐng)求發(fā)送到網(wǎng)絡(luò)上,然后將網(wǎng)絡(luò)返回的結(jié)果送至您的計(jì)算機(jī)。
現(xiàn)已逐漸被功能更好的PPP點(diǎn)對(duì)點(diǎn)協(xié)議所取代。

SMTP(Simple Mail Transfer Protocol)簡(jiǎn)單郵件傳送協(xié)議
  它是用來(lái)發(fā)送電子郵件的TCP/IP協(xié)議。它的內(nèi)容由IETF的RFC 821定義。
另外一個(gè)和SMTP相同功能的協(xié)議是X.400。
SMTP的一個(gè)重要特點(diǎn)是它能夠在傳送中接力傳送郵件,傳送服務(wù)提供了進(jìn)程間通信環(huán)境(IPCE),
此環(huán)境可以包括一個(gè)網(wǎng)絡(luò),幾個(gè)網(wǎng)絡(luò)或一個(gè)網(wǎng)絡(luò)的子網(wǎng)。
理解到傳送系統(tǒng)(或IPCE)不是一對(duì)一的是很重要的。
進(jìn)程可能直接和其它進(jìn)程通過(guò)已知的IPCE通信。郵件是一個(gè)應(yīng)用程序或進(jìn)程間通信。
郵件可以通過(guò)連接在不同IPCE上的進(jìn)程跨網(wǎng)絡(luò)進(jìn)行郵件傳送。
更特別的是,郵件可以通過(guò)不同網(wǎng)絡(luò)上的主機(jī)接力式傳送。

Talk協(xié)議
  Talk協(xié)議能使遠(yuǎn)程計(jì)算機(jī)上的兩個(gè)用戶以實(shí)時(shí)方式進(jìn)行通信。

TCP/IP(Transmission Control Protocol/Internet Protocol)傳輸控制協(xié)議/Internet協(xié)議
  TCP/IP協(xié)議起源于美國(guó)國(guó)防高級(jí)研究計(jì)劃局。
提供可靠數(shù)據(jù)傳輸?shù)膮f(xié)議稱為傳輸控制協(xié)議TCP,好比貨物裝箱單,保證數(shù)據(jù)在傳輸過(guò)程中不會(huì)丟失;
提供無(wú)連接數(shù)據(jù)報(bào)服務(wù)的協(xié)議稱為網(wǎng)絡(luò)協(xié)議IP,好比收發(fā)貨人的地址姓名,保證數(shù)據(jù)到達(dá)指定的地點(diǎn)。
TCP/IP協(xié)議是互聯(lián)網(wǎng)上廣泛使用的一種協(xié)議,
使用TCP/IP協(xié)議的因特網(wǎng)等網(wǎng)絡(luò)提供的主要服務(wù)有:
電子郵件、文件傳送、遠(yuǎn)程登錄、網(wǎng)絡(luò)文件系統(tǒng)、電視會(huì)議系統(tǒng)和萬(wàn)維網(wǎng)。
它是Interent的基礎(chǔ),它提供了在廣域網(wǎng)內(nèi)的路由功能,而且使Internet上的不同主機(jī)可以互聯(lián)。
從概念上,它可以映射到四層:
網(wǎng)絡(luò)接口層,這一層負(fù)責(zé)在線路上傳輸幀并從線路上接收幀;Internet層,這一層中包括了IP協(xié)議,
IP協(xié)議生成Internet數(shù)據(jù)報(bào),進(jìn)行必要的路由算法,
IP協(xié)議實(shí)際上可以分為四部分:ARP,ICMP,IGMP和IP;
再上向就是傳輸層,這一層負(fù)責(zé)管理計(jì)算機(jī)間的會(huì)話,這一層包括兩個(gè)協(xié)議TCP和UDP,
由應(yīng)用程序的要求不同可以使用不同的協(xié)議進(jìn)行通信;最后一層是應(yīng)用層,
就是我們熟悉的FTP,DNS,TELNET等。熟悉TCP/IP是熟悉Internet的必由之路。

TELNET Protocol虛擬終端協(xié)議
  TELNET協(xié)議的目的是提供一個(gè)相對(duì)通用的,雙向的,面向八位字節(jié)的通信方法,
它主要的目標(biāo)是允許接口終端設(shè)備的標(biāo)準(zhǔn)方法和面向終端的相互作用。
是讓用戶在遠(yuǎn)程計(jì)算機(jī)登錄,并使用遠(yuǎn)程計(jì)算機(jī)上對(duì)外開(kāi)放的所有資源。

Time Protocol時(shí)間協(xié)議
  該協(xié)議提供了一個(gè)獨(dú)立于站點(diǎn)的,機(jī)器可讀的日期和時(shí)間信息。
時(shí)間服務(wù)返回的是以秒數(shù),是從1900年1月1日午夜到現(xiàn)在的秒數(shù)。
設(shè)計(jì)這個(gè)協(xié)議的一個(gè)重要目的在于,網(wǎng)絡(luò)上的許多主機(jī)并沒(méi)有時(shí)間的觀念,在分布式的系統(tǒng)上,
我們可以想一想,北京的時(shí)間和東京的時(shí)間如何分呢?
主機(jī)的時(shí)間往往可以人為改變,而且因?yàn)闄C(jī)器時(shí)鐘內(nèi)的誤差而變得不一致,
因此需要使用時(shí)間服務(wù)器通過(guò)選舉方式得到網(wǎng)絡(luò)時(shí)間,讓服務(wù)器有一個(gè)準(zhǔn)確的時(shí)間觀念。
不要小看時(shí)間,這對(duì)于一些以時(shí)間為標(biāo)準(zhǔn)的分布運(yùn)行的程序簡(jiǎn)單是太重要了。
這個(gè)協(xié)議可以工作在TCP和UDP協(xié)議下。
時(shí)間是由32位表示的,是自1900年1月1日0時(shí)到當(dāng)前的秒數(shù),我們可以計(jì)算一下,
這個(gè)協(xié)議只能表示到2036年就不能用了,但是我們也知道計(jì)算機(jī)發(fā)展速度這么快,
到時(shí)候可能就會(huì)有更好的協(xié)議代替這個(gè)協(xié)議.

TFTP(Trivial File Transfer Protocol)小文件傳輸協(xié)議
  它是一個(gè)網(wǎng)絡(luò)應(yīng)用程序,它比FTP簡(jiǎn)單也比FTP功能少。
它在不需要用戶權(quán)限或目錄可見(jiàn)的情況下使用,它使用UDP協(xié)議而不是TCP協(xié)議。

UDP(User Datagram Protocol)用戶數(shù)據(jù)報(bào)協(xié)議
  它是定義用來(lái)在互連網(wǎng)絡(luò)環(huán)境中提供包交換的計(jì)算機(jī)通信的協(xié)議,
此協(xié)議默認(rèn)認(rèn)為網(wǎng)路協(xié)議(IP)是其下層協(xié)議。
UDP是TCP的另外一種方法,象TCP一樣,UDP使用IP協(xié)議來(lái)獲得數(shù)據(jù)單元(叫做數(shù)據(jù)報(bào)),不象TCP的是,
它不提供包(數(shù)據(jù)報(bào))的分組和組裝服務(wù)。
而且,它還不提供對(duì)包的排序,這意味著,程序程序必須自己確定信息是否完全地正確地到達(dá)目的地。
如果網(wǎng)絡(luò)程序要加快處理速度,那使用UPD就比TCP要好。
UDP提供兩種不由IP層提供的服務(wù),它提供端口號(hào)來(lái)區(qū)別不同用戶的請(qǐng)求,而且可以提供奇偶校驗(yàn)。
在OSI模式中,UDP和TCP一樣處于第四層,傳輸層。

UUCP(UNIX-to-UNIX Copy Protocol)UNIX至UNIX拷貝協(xié)議
  它是一組用于在不同UNIX系統(tǒng)之間復(fù)制(傳送)文件或傳送用于其它UNIX系統(tǒng)執(zhí)行命令的一組指令,
是UNIX網(wǎng)絡(luò)的基礎(chǔ)。

X.25協(xié)議
  它是CCITT標(biāo)準(zhǔn)的通訊協(xié)議,制定于1976年,用于定義同步傳輸?shù)臄?shù)據(jù)包。
是國(guó)際上分組數(shù)據(jù)網(wǎng)(PDN)上使用的一種協(xié)議。
它允許不同網(wǎng)絡(luò)中的計(jì)算機(jī)通過(guò)一臺(tái)工作在網(wǎng)絡(luò)層的中間計(jì)算機(jī)進(jìn)行相互通信。

X.400協(xié)議
  它是一個(gè)電子郵件協(xié)議,它由ITU-TS制定,它可以發(fā)揮和SMTP相同的功能。
X.400在歐洲和加拿大使用比較多,它實(shí)際上是一個(gè)標(biāo)準(zhǔn)集,每個(gè)標(biāo)準(zhǔn)的序號(hào)都在此400到499之間。
X.400地址能夠提供許多SMTP地址所不能夠提供的功能,因此X.400的地址會(huì)比較長(zhǎng)而且比較麻煩。
X.400的確提供了比SMTP更多的功能,然而這些功能卻很少能夠用到。
X.400的主要部分有以下幾個(gè):用戶代理(UA),消息傳送代理(MTA)和消息傳輸系統(tǒng)(MTS)。

Z39.50協(xié)議
  它是一個(gè)標(biāo)準(zhǔn)的通信協(xié)議,它用于檢索和獲得在線數(shù)據(jù)庫(kù)中的著書(shū)目錄。
Z39.50用于在互聯(lián)網(wǎng)上檢索圖書(shū)館的在線公共訪問(wèn)目錄(Online Public Access Catalogues,OPAC),
也可以用于把多個(gè)分離的OPAC連接起來(lái),它是ANSI/NISO標(biāo)準(zhǔn)

Socket(重點(diǎn))

Socket原意為插座,意譯為套接字

本地上的兩個(gè)進(jìn)程如何通信?

  1. 內(nèi)存共享
  2. 消息隊(duì)列
  3. 管道 NSPipe NSTask
  4. RPC remote protocol control
  5. 本地Socket

網(wǎng)絡(luò)上的兩個(gè)進(jìn)程如何通信?

  • 本地進(jìn)程間通信(IPC)通過(guò)PID可以唯一確定彼此,然后通過(guò)共享內(nèi)存,消息隊(duì)列等來(lái)通信。
  • 網(wǎng)絡(luò)上的兩個(gè)進(jìn)程確定彼此需要IP與端口號(hào),通過(guò)傳輸層(TCP/UDP)協(xié)議進(jìn)行通信
    socket的特點(diǎn)—>在TCP/UDP 加一個(gè)端口綁定

由于端口號(hào)是被進(jìn)程獨(dú)占,因此socket通信經(jīng)常與進(jìn)程通信畫(huà)上等號(hào)

假設(shè)電腦是一個(gè)大插座,有不同的插座型號(hào),socket就是遍布在上面的插孔,可以為不同的插頭提供服務(wù)
這個(gè)比喻不恰當(dāng)?shù)牡胤绞且粋€(gè)插孔可以讓多個(gè)插頭插進(jìn)來(lái)
反過(guò)來(lái)
上述比喻中,服務(wù)端進(jìn)程即為服務(wù)本身,區(qū)別一臺(tái)主機(jī)的不同服務(wù)則是通過(guò)端口來(lái)區(qū)分
因此只要是在這個(gè)特定的端口建立起來(lái)的TCP/IP連接就應(yīng)該通往對(duì)應(yīng)的進(jìn)程
所以唯一確定這個(gè)socket的前提是找到這個(gè)插板(主機(jī)IP),找到這個(gè)插孔(端口)
Socket通信就是一種確定了端口號(hào)的TCP/IP通信
上面那句話寫(xiě)成這樣也要認(rèn)識(shí): Socket通信與IP通信差別就是端口確定,協(xié)議確定

端口的打開(kāi)是雙方的,很多人在C/S結(jié)構(gòu)的TCP連接中只注意到S的端口(監(jiān)聽(tīng)的),實(shí)際上C也開(kāi)了一個(gè)端口,而C端的端口是動(dòng)態(tài)端口,TCP連接建立的時(shí)候,C端的端口會(huì)在三次握手結(jié)束后確定,動(dòng)態(tài)打開(kāi)一個(gè),這個(gè)端口不受用戶/程序員的控制

服務(wù)端socket通信步驟

  1. 提供一些服務(wù)
  2. 將這個(gè)服務(wù)與自己的IP地址、端口綁定
  3. 監(jiān)聽(tīng)任何到這個(gè)IP+端口的TCP請(qǐng)求
  4. 接受/拒絕 建立這個(gè)TCP連接
  5. 讀寫(xiě) 數(shù)據(jù)
  6. 斷開(kāi)TCP連接

BSD提供了一套底層API來(lái)處理這些過(guò)程

目前基本上互聯(lián)網(wǎng)的所有服務(wù)都基于socketAPI,所以socket通信技術(shù)的基礎(chǔ)。

SocketServer 框架 GCDAsyncSocket

XMPP的框架就是用的她
我們把TCP的Socket 叫做 流式 stream UDP 的socket 叫做 報(bào)文或報(bào)式 Socket

動(dòng)態(tài)端口是大于49151的
可以百度服務(wù)端口了解更多。

  1. 記錄每一個(gè)客戶端的連接信息(IP,端口,連接時(shí)間,斷開(kāi)時(shí)間),以列表的形式展現(xiàn)出來(lái)
  2. 服務(wù)器(MAC應(yīng)用)和客戶端(MAC+iOS)之間能夠進(jìn)行數(shù)據(jù)傳輸
  3. 服務(wù)器能夠?qū)⑺邢⑥D(zhuǎn)發(fā)給其他的客戶端

CoreData (重點(diǎn))

Core Data是iOS5之后才出現(xiàn)的一個(gè)框架,它提供了對(duì)象-關(guān)系映射(ORM)的功能,即能夠?qū)C對(duì)象轉(zhuǎn)化成數(shù)據(jù),保存在SQLite數(shù)據(jù)庫(kù)文件中,也能夠?qū)⒈4嬖跀?shù)據(jù)庫(kù)中的數(shù)據(jù)還原成OC對(duì)象。在此數(shù)據(jù)操作期間,我們不需要編寫(xiě)任何SQL語(yǔ)句,這個(gè)有點(diǎn)類似于著名的Hibernate持久化框架,不過(guò)功能肯定是沒(méi)有Hibernate強(qiáng)大的。簡(jiǎn)單地用下圖描述下它的作用:

CoreData本質(zhì)是一個(gè)ORM框架
ORM Objective-Relational Mapping
這個(gè)映射就是我們的模型文件,一般ORM框架都用XML格式來(lái)映射 實(shí)體Entity+屬性數(shù)據(jù)庫(kù)表,列

托管對(duì)象(entity) —既不是單純的 內(nèi)存對(duì)象,也不是數(shù)據(jù)庫(kù)中的具體的數(shù)據(jù),它介于這兩個(gè)狀態(tài)之間的,我們叫他游離態(tài)的數(shù)據(jù)

CoreData 不能執(zhí)行SQL語(yǔ)句 取而代之,操作的是對(duì)象,
FMDB SQLite 可以直接SQL語(yǔ)句

  • 需要手畫(huà)圖!
    左邊是關(guān)系模型,即數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)里面有張person表,person表里面有id、name、age三個(gè)字段,而且有2條記錄;
    右邊是對(duì)象模型,可以看到,有2個(gè)OC對(duì)象;
    利用Core Data框架,我們就可以輕松地將數(shù)據(jù)庫(kù)里面的2條記錄轉(zhuǎn)換成2個(gè)OC對(duì)象,也可以輕松地將2個(gè)OC對(duì)象保存到數(shù)據(jù)庫(kù)中,變成2條表記錄,而且不用寫(xiě)一條SQL語(yǔ)句。

coredata中的核心對(duì)象


注:黑色表示類名,紅色表示類里面的一個(gè)屬性
開(kāi)發(fā)步驟總結(jié):
1.初始化NSManagedObjectModel對(duì)象,加載模型文件,讀取app中的所有實(shí)體信息
2.初始化NSPersistentStoreCoordinator對(duì)象,添加持久化庫(kù)(這里采取SQLite數(shù)據(jù)庫(kù))
3.初始化NSManagedObjectContext對(duì)象,拿到這個(gè)上下文對(duì)象操作實(shí)體,進(jìn)行CRUD(創(chuàng)建(Create)、更新(Update)、讀取(Read)和刪除(Delete))操作

CoreData的4個(gè)存儲(chǔ)方式:

  1. SQLite NSSQLiteStoreType
  2. XML NSXMLStoreType
  3. Binary NSBinaryStoreType
  4. 內(nèi)存存儲(chǔ) NSInMemoryStoreType

CoreData 持久化協(xié)調(diào)器 - NSPersistentStoreCoordinator

NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]

CoreData 對(duì)象映射模型 - NSManagedObjectModel

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

CoreData 托管對(duì)象上下文 - NSManagedObjectContext

  1. 指定隊(duì)列
    _managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
  2. 指定協(xié)調(diào)器
    [_managedObjectContext setPersistentStoreCoordinator:coordinator];

CoreDate 實(shí)體描述器 - NSEntityDescription

CoreData 托管對(duì)象 - NSManageObject

如何快速?gòu)膇OS開(kāi)發(fā)者角色轉(zhuǎn)換到Mac開(kāi)發(fā)者?

  1. 所有的UI前綴(UIKit)替換成NS前綴(AppKit),基本上都有同類型的類
  2. 從單Window模式快速切換到多Window模式
  3. 所有的NSView 默認(rèn)無(wú)layer,需要調(diào)用setWantsLayer:YES打開(kāi)!
  4. 在viewController->view,Mac中加一個(gè)windowController->viewController->view

NSTableView快速適應(yīng)(相當(dāng)于UI進(jìn)階部分)

  1. NSTableView每個(gè)cell一般都不止一列子cell(多列模式)

  2. 只有兩個(gè)必須的代理(NSTableViewDatasource)
    - (NSInteger)numberOfRowsInTableView:(nonnull NSTableView *)tableView
    - (nullable id)tableView:(NSTableView *)tableView objectValueForTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row

  3. 兩個(gè)重要模式:

    • 基于 text Cell Based
    • 基于 View Cell Based
  4. 基于View的tableView:
    -實(shí)現(xiàn)數(shù)據(jù)源代理:
    - (NSView *) tableView:(nonnull NSTableView *)tableView viewForTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,250評(píng)論 6 530
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 97,923評(píng)論 3 413
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,041評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,475評(píng)論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,253評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,801評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,882評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,023評(píng)論 0 285
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,530評(píng)論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,494評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,639評(píng)論 1 366
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,177評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,890評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,289評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,552評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,242評(píng)論 3 389
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,626評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容

  • 名詞延伸 通俗的說(shuō),域名就相當(dāng)于一個(gè)家庭的門(mén)牌號(hào)碼,別人通過(guò)這個(gè)號(hào)碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,614評(píng)論 2 56
  • 簡(jiǎn)介 用簡(jiǎn)單的話來(lái)定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 5,972評(píng)論 1 13
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,074評(píng)論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,099評(píng)論 6 174
  • 你問(wèn)我老了以后要做什么 我回答說(shuō):“跳傘。” 你問(wèn)我理由。 我說(shuō):“因?yàn)楝F(xiàn)在不敢,所以要到很老才肯放手去做吧。如果...
    籮七閱讀 202評(píng)論 0 4