一、什么是TCP/IP
網(wǎng)絡(luò)和協(xié)議
1. TCP/IP是一類(lèi)協(xié)議系統(tǒng),它是一套支持網(wǎng)絡(luò)通信的協(xié)議集合。網(wǎng)絡(luò)是計(jì)算機(jī)或類(lèi)似計(jì)算機(jī)的設(shè)備之間通過(guò)常用的傳輸介質(zhì)進(jìn)行通信的集合。
2. 網(wǎng)絡(luò)協(xié)議就是一套通用規(guī)則,用來(lái)幫助定義復(fù)雜數(shù)據(jù)傳輸?shù)倪^(guò)程。數(shù)據(jù)傳輸從一臺(tái)計(jì)算機(jī)上的應(yīng)用程序開(kāi)始,通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)硬件,經(jīng)過(guò)傳輸介質(zhì)到正確目的地,然后上傳到目的地計(jì)算機(jī)網(wǎng)絡(luò)硬件,最后到達(dá)負(fù)責(zé)接收的應(yīng)用程序。
3. TCP/IP協(xié)議定義了網(wǎng)絡(luò)通信過(guò)程,更重要的是,定義了數(shù)據(jù)單元的格式和內(nèi)容,以便接收計(jì)算機(jī)能夠正確解釋接收到的消息。TCP/IP被稱為協(xié)議簇。
4. TCP/IP標(biāo)準(zhǔn)定義了TCP/IP網(wǎng)絡(luò)的通信規(guī)則;TCP/IP實(shí)現(xiàn)是一個(gè)軟件組件,計(jì)算機(jī)通過(guò)它參與到TCP/IP網(wǎng)絡(luò)中。
TCP/IP的特性
1. 邏輯編址:TCP/IP通過(guò)邏輯編址提供了子網(wǎng)化的能力。邏輯地址是一個(gè)同過(guò)網(wǎng)絡(luò)軟件來(lái)配置的地址。在TCP/IP中,計(jì)算機(jī)的邏輯地址稱為IP地址。
2. 路由選擇:路由器是一種特殊的設(shè)備,能夠讀取邏輯地址信息,并將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)直接傳送到它的目的地。在局域網(wǎng)中,數(shù)據(jù)傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)或設(shè)備時(shí),不用經(jīng)過(guò)路由器,因此不會(huì)給大型網(wǎng)絡(luò)的傳輸線路帶來(lái)負(fù)擔(dān)。如果數(shù)據(jù)要傳送到子網(wǎng)以外的計(jì)算機(jī)上,路由器將負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)。
3. 名稱解析:域名到IP地址的映射稱為名稱解析。域名服務(wù)器的專(zhuān)用計(jì)算機(jī)中存儲(chǔ)了用于顯示域名和IP地址轉(zhuǎn)換方式的表。
4. 錯(cuò)誤控制和流量控制:TCP/IP協(xié)議簇提供了確保數(shù)據(jù)在網(wǎng)絡(luò)中可靠傳送的特性。這些特性包括檢查數(shù)據(jù)的傳輸錯(cuò)誤(確保到達(dá)的數(shù)據(jù)與發(fā)送的數(shù)據(jù)一致)和確認(rèn)成功接收到網(wǎng)絡(luò)信息。
5. 應(yīng)用支持:同一臺(tái)計(jì)算機(jī)可以運(yùn)行多種網(wǎng)絡(luò)應(yīng)用程序。協(xié)議軟件必須提供某些方法來(lái)判斷接收到的數(shù)據(jù)包屬于哪個(gè)應(yīng)用程序。在TCP/IP中,這個(gè)通過(guò)系統(tǒng)的邏輯通道實(shí)現(xiàn)從網(wǎng)絡(luò)到應(yīng)用程序的接口被稱為端口。
二、TCP/IP的工作方式
TCP/IP協(xié)議系統(tǒng)
1. TCP/IP協(xié)議系統(tǒng)必須要完成的任務(wù):
2. TCP/IP模型的協(xié)議層:應(yīng)用層-傳輸層-網(wǎng)際層-網(wǎng)絡(luò)訪問(wèn)層(數(shù)據(jù)鏈路層-物理層)
3. 網(wǎng)絡(luò)訪問(wèn)層:提供了與物理網(wǎng)絡(luò)連接的接口。針對(duì)傳輸介質(zhì)設(shè)置數(shù)據(jù)的格式,根據(jù)硬件的物理地址實(shí)現(xiàn)數(shù)據(jù)的尋址,對(duì)數(shù)據(jù)在物理網(wǎng)絡(luò)中的傳遞提供錯(cuò)誤控制。
4. 網(wǎng)際層:提供獨(dú)立于硬件的邏輯尋址,從而讓數(shù)據(jù)能夠在具有不同物理結(jié)構(gòu)的子網(wǎng)之間傳遞。提供路由功能來(lái)降低流量,支持網(wǎng)間的數(shù)據(jù)傳遞。實(shí)現(xiàn)物理地址與邏輯地址的轉(zhuǎn)換。
5. 傳輸層:為網(wǎng)絡(luò)提供了流量控制、錯(cuò)誤控制和確認(rèn)服務(wù)。充當(dāng)網(wǎng)絡(luò)應(yīng)用程序的接口。
6. 應(yīng)用層:為網(wǎng)絡(luò)排錯(cuò)、文件傳輸、遠(yuǎn)程控制和internet操作提供了應(yīng)用程序。
TCP/IP和OSI模型
1. 開(kāi)放系統(tǒng)互連模型——OSI
2.
數(shù)據(jù)包
1. 在數(shù)據(jù)發(fā)送的過(guò)程中,其流程是從堆棧的上到下,每一層都把相關(guān)的信息(成為“報(bào)頭”)捆綁到實(shí)際的數(shù)據(jù)上。包含報(bào)頭信息和數(shù)據(jù)的數(shù)據(jù)包就作為下一層的數(shù)據(jù),再次被添加報(bào)頭信息和重新打包。
2.
3. 每一層封裝報(bào)頭的原因:接收設(shè)備上的每個(gè)協(xié)議層需要不同的信息來(lái)處理收到的數(shù)據(jù),所以發(fā)送設(shè)備上的沒(méi)一些就封裝相應(yīng)的報(bào)頭信息。
三、網(wǎng)絡(luò)訪問(wèn)層
協(xié)議和硬件
1. 網(wǎng)絡(luò)訪問(wèn)層管理為物理網(wǎng)絡(luò)準(zhǔn)備數(shù)據(jù)所必須的服務(wù)與功能:與計(jì)算機(jī)網(wǎng)絡(luò)適配器的連接;根據(jù)合適的訪問(wèn)方式調(diào)整數(shù)據(jù)傳輸;把數(shù)據(jù)轉(zhuǎn)化為電子流或模擬脈沖的形式,以在傳輸介質(zhì)上進(jìn)行傳輸;對(duì)接收到的數(shù)據(jù)進(jìn)行錯(cuò)誤檢查;給發(fā)送的數(shù)據(jù)添加錯(cuò)誤檢查信息,從而讓接收端計(jì)算機(jī)能夠?qū)?shù)據(jù)進(jìn)行錯(cuò)誤檢查。
2. 網(wǎng)絡(luò)訪問(wèn)層定義了與網(wǎng)絡(luò)硬件交互和訪問(wèn)傳輸介質(zhì)的過(guò)程。
網(wǎng)絡(luò)訪問(wèn)層與OSI模型
1. 網(wǎng)絡(luò)訪問(wèn)層大致對(duì)應(yīng)OSI模型的物理層和數(shù)據(jù)鏈路層。
2. 物理層負(fù)責(zé)把數(shù)據(jù)幀轉(zhuǎn)化為適合于傳輸介質(zhì)的比特流。在接收端,物理層把這些脈沖重新組合為數(shù)據(jù)幀。
3. 數(shù)據(jù)鏈路層執(zhí)行兩個(gè)獨(dú)立的任務(wù):介質(zhì)訪問(wèn)控制(MAC)——這個(gè)子層提供與網(wǎng)絡(luò)適配器連接的接口。實(shí)際上,網(wǎng)絡(luò)適配器驅(qū)動(dòng)程序通常被稱為MAC驅(qū)動(dòng);邏輯鏈路控制(LLC)——這個(gè)子層對(duì)經(jīng)過(guò)子網(wǎng)傳遞的幀進(jìn)行錯(cuò)誤檢查,并且管理子網(wǎng)上通信設(shè)備之間的鏈路。
網(wǎng)絡(luò)體系
1. 網(wǎng)絡(luò)體系具有一系列的規(guī)范來(lái)管理介質(zhì)訪問(wèn)、物理尋址、計(jì)算機(jī)與傳輸介質(zhì)的交互。在決定網(wǎng)絡(luò)體系時(shí),實(shí)際上是在決定如何設(shè)計(jì)網(wǎng)絡(luò)訪問(wèn)層。
2. 網(wǎng)絡(luò)體系包含對(duì)物理網(wǎng)絡(luò)的定義,以及該物理網(wǎng)絡(luò)上定義的通信規(guī)范。
3. 網(wǎng)絡(luò)訪問(wèn)層的軟件必須伴隨于特定的硬件設(shè)計(jì)。TCP/IP協(xié)議棧的設(shè)計(jì)保證了與硬件交互相關(guān)的細(xì)節(jié)都發(fā)生在網(wǎng)絡(luò)訪問(wèn)層,使得TCP/IP能夠工作于多種不同的傳輸介質(zhì)。以下是集中網(wǎng)絡(luò)體系的類(lèi)型:
物理尋址
1. 網(wǎng)絡(luò)訪問(wèn)層需要把邏輯IP地址與網(wǎng)絡(luò)適配器的固定物理地址相關(guān)聯(lián)。
2. 物理尋址是由介質(zhì)訪問(wèn)控制(MAC)子層負(fù)責(zé)的。
3. TCP/IP使用地址解析協(xié)議(ARP)和逆向地址解析協(xié)議(RARP)把IP地址關(guān)聯(lián)到網(wǎng)絡(luò)適配器的物理地址。ARP和RARP為用戶提供的邏輯IP地址與局域網(wǎng)上使用的硬件地址建立了一個(gè)對(duì)應(yīng)關(guān)系。
以太網(wǎng)
1. 以太網(wǎng)是目前使用最廣泛的局域網(wǎng)技術(shù),是當(dāng)今現(xiàn)有局域網(wǎng)采用的最通用的通信協(xié)議標(biāo)準(zhǔn)。
2. 在典型的以太網(wǎng)上,全部計(jì)算機(jī)共享同一個(gè)傳輸介質(zhì)。以太網(wǎng)使用成為載波偵聽(tīng)多路訪問(wèn)/沖突檢測(cè)(CSMA/CD)的方法,來(lái)判斷計(jì)算機(jī)何時(shí)可以把數(shù)據(jù)發(fā)送到訪問(wèn)介質(zhì)。通過(guò)CSMA/CD,所有計(jì)算機(jī)都監(jiān)視傳輸介質(zhì)的狀態(tài),在傳輸之前等待線路空閑。如果兩臺(tái)計(jì)算機(jī)嘗試同時(shí)發(fā)送數(shù)據(jù),就會(huì)發(fā)生沖突,計(jì)算機(jī)就會(huì)停止發(fā)送,等待一個(gè)隨機(jī)的時(shí)間間隔,然后再次嘗試發(fā)送。
3. 傳統(tǒng)以太網(wǎng)在中低負(fù)載情況下運(yùn)行良好,但在大負(fù)載情況下會(huì)由于沖突的增多而影響性能。在現(xiàn)代以太網(wǎng)中,像網(wǎng)絡(luò)交換機(jī)這樣的設(shè)備會(huì)對(duì)流量進(jìn)行管理,減少?zèng)_突的發(fā)生,從而讓以太網(wǎng)的運(yùn)行更具效率。
剖析以太網(wǎng)幀
1. 網(wǎng)絡(luò)訪問(wèn)層的軟件從網(wǎng)際層接收數(shù)據(jù)報(bào),把它轉(zhuǎn)化符合物理網(wǎng)絡(luò)規(guī)范的形式。在以太網(wǎng)中,網(wǎng)絡(luò)訪問(wèn)層的軟件必須把數(shù)據(jù)轉(zhuǎn)化成能夠通過(guò)網(wǎng)絡(luò)適配器硬件進(jìn)行傳輸?shù)男问健?/p>
2.
四、網(wǎng)際層
尋址與發(fā)送
1. 物理尋址方式適合單個(gè)局域網(wǎng)網(wǎng)段。由不間斷介質(zhì)連接在一起的若干臺(tái)計(jì)算機(jī)利用物理地址就可以實(shí)現(xiàn)所需要的功能。只需使用網(wǎng)絡(luò)訪問(wèn)層的低級(jí)協(xié)議就可以把數(shù)據(jù)從網(wǎng)絡(luò)適配器直接傳遞另一個(gè)網(wǎng)絡(luò)適配器。但是,在路由式網(wǎng)絡(luò)中,不能利用物理地址實(shí)現(xiàn)數(shù)據(jù)傳輸,因?yàn)楦鶕?jù)物理地址進(jìn)行傳輸所需的過(guò)程不能跨越路由接口來(lái)進(jìn)行。
2. TCP/IP隱藏了物理地址,以一種邏輯化、層次化的尋址方案對(duì)網(wǎng)絡(luò)進(jìn)行組織。這種邏輯尋址方案由網(wǎng)際層的IP協(xié)議維護(hù),而邏輯地址被稱為IP地址。
3. 在一個(gè)路由式網(wǎng)絡(luò)中,TCP/IP要使用如下策略在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù):
網(wǎng)際協(xié)議
1. IP協(xié)議提供了一種分層的、與硬件無(wú)關(guān)的尋址系統(tǒng),具有在復(fù)雜的路由式網(wǎng)絡(luò)中傳遞數(shù)據(jù)所需的服務(wù)。TCP/IP網(wǎng)絡(luò)上的每個(gè)網(wǎng)絡(luò)適配器都有一個(gè)唯一的IP地址。
2. IP地址分為兩個(gè)部分:網(wǎng)絡(luò)ID和主機(jī)ID。網(wǎng)絡(luò)必須提供一種方式來(lái)判斷IP地址的哪一部分是網(wǎng)絡(luò)ID,哪一部分是主機(jī)ID。
IP報(bào)頭字段
1. 每個(gè)IP數(shù)據(jù)報(bào)都以一個(gè)IP報(bào)頭開(kāi)始。源計(jì)算機(jī)的TCP/IP軟件構(gòu)造這個(gè)IP報(bào)頭,目的計(jì)算機(jī)的TCP/IP軟件利用IP報(bào)頭中封裝的信息處理數(shù)據(jù)。IP報(bào)頭包含大量信息,包括源IP地址、目的IP地址、數(shù)據(jù)報(bào)長(zhǎng)度、IP版本號(hào)和路由器的特殊指令。
2. IP數(shù)據(jù)報(bào)由報(bào)頭和數(shù)據(jù)兩部分組成。報(bào)頭由一個(gè)20字節(jié)的固定長(zhǎng)度和一個(gè)可任選任意長(zhǎng)度部分組成。IP數(shù)據(jù)報(bào)最長(zhǎng)為65535字節(jié)。
IP尋址
1. 劃分網(wǎng)絡(luò)ID和主機(jī)ID的最初方案是使用地址分類(lèi)。
2. A類(lèi):0.0.0.0~127.255.255.255
B類(lèi):128.0.0.0~191.255.255.255
C類(lèi):192.0.0.0~223.255.255.255
D類(lèi):224.0.0.0~239.255.255.255
E類(lèi):240.0.0.0~247.255.255.255
規(guī)定首字節(jié)不能是127、0、255,主機(jī)各位不能同時(shí)為0和1
3. 網(wǎng)絡(luò)管理員可以把網(wǎng)絡(luò)劃分為更小的次級(jí)網(wǎng)絡(luò),這被稱為子網(wǎng)。劃分子網(wǎng)的是指就是借用主機(jī)ID中的一些為,在網(wǎng)絡(luò)內(nèi)創(chuàng)建額外的網(wǎng)絡(luò)。AB類(lèi)地址會(huì)廣泛應(yīng)用子網(wǎng)劃分技術(shù)。
地址解析協(xié)議——ARP
1. ARP把IP地址映射為物理地址。主機(jī)必須知道目的網(wǎng)絡(luò)適配器的物理地址才能向它發(fā)送數(shù)據(jù)。
2. 網(wǎng)段上每臺(tái)主機(jī)在內(nèi)存中都保存著一個(gè)被稱為ARP表或ARP緩存的表格,其中包含了網(wǎng)段上其他主機(jī)的IP地址與物理地址的對(duì)應(yīng)關(guān)系。當(dāng)主機(jī)需要向網(wǎng)段上的其他主機(jī)發(fā)送數(shù)據(jù)時(shí),它會(huì)查看ARP緩存來(lái)獲得目的的物理地址。ARP緩存是動(dòng)態(tài)變化的,如果要接收數(shù)據(jù)的地址當(dāng)前并不存在于ARP緩存中,主機(jī)就會(huì)發(fā)送一個(gè)名為ARP請(qǐng)求幀的廣播。
ARP請(qǐng)求幀包含為解析的IP地址,還包含發(fā)送這個(gè)請(qǐng)求的主機(jī)的IP地址和物理地址。網(wǎng)段上的其他主機(jī)接收到這個(gè)ARP請(qǐng)求,擁有這個(gè)未解析IP地址的主機(jī)會(huì)向發(fā)出請(qǐng)求的主機(jī)發(fā)送自己的物理地址。這個(gè)新的IP地址與物理地址的對(duì)應(yīng)關(guān)系就會(huì)添加到請(qǐng)求主機(jī)的ARP緩存中。 逆向地址解析協(xié)議——RARP:在知道物理地址而不知道IP地址時(shí),應(yīng)該使用RARP。
INTERNET控制消息協(xié)議——ICMP
1. 發(fā)送到遠(yuǎn)程計(jì)算機(jī)的數(shù)據(jù)通常會(huì)經(jīng)過(guò)一個(gè)或多個(gè)路由器,這些路由器在把數(shù)據(jù)傳輸?shù)阶罱K目的地的過(guò)程中可能發(fā)生多種問(wèn)題。路由器利用ICMP協(xié)議把問(wèn)題通知給源IP。ICMP還有用于調(diào)試和排錯(cuò)的功能。
2.
五、子網(wǎng)劃分和CIDR
子網(wǎng)
1. 子網(wǎng)劃分可以利用IP地址系統(tǒng)把物理網(wǎng)絡(luò)分解為更小的邏輯實(shí)體——子網(wǎng)。
2. 子網(wǎng)的概念最早源自于地址分類(lèi)系統(tǒng),而且在ABC類(lèi)地址中能夠得到很好的展現(xiàn)。然而硬件廠商和internet社區(qū)建立了一種解析地址的新系統(tǒng),名為無(wú)類(lèi)別域間路由(CIDR),它不需要關(guān)心地址類(lèi)別。
劃分網(wǎng)絡(luò)
1. ABC類(lèi)網(wǎng)絡(luò)ID來(lái)識(shí)別網(wǎng)段具有一些局限性,主要是在網(wǎng)絡(luò)級(jí)別之下不能對(duì)地址空間進(jìn)行任何邏輯細(xì)分。數(shù)據(jù)報(bào)到達(dá)某個(gè)網(wǎng)關(guān)(90.0.0.0)地址空間,但如果要考慮它在這個(gè)地址空間中是如何傳遞的,這個(gè)就會(huì)變得非常復(fù)雜,因?yàn)锳類(lèi)網(wǎng)絡(luò)能夠容納超過(guò)1600萬(wàn)臺(tái)主機(jī)。
2. 為了在大型網(wǎng)絡(luò)里實(shí)現(xiàn)更高效的數(shù)據(jù)傳輸,地址空間被劃分為較小的網(wǎng)段。唯一可行的解決辦法是在網(wǎng)絡(luò)標(biāo)ID下對(duì)地址空間進(jìn)行某種細(xì)分,讓主機(jī)和路由器能夠根據(jù)IP地址判斷應(yīng)該把數(shù)據(jù)發(fā)送到哪個(gè)網(wǎng)段。
3. TCP/IP的設(shè)計(jì)者借用了主機(jī)ID里的一些位來(lái)形成子網(wǎng)地址。一個(gè)名為子網(wǎng)掩碼的參數(shù)指明了地址中多少位用于子網(wǎng)ID,保留多少位作為實(shí)際的主機(jī)ID。
4. 像IP地址一樣,子網(wǎng)掩碼是個(gè)32位的二進(jìn)制值。子網(wǎng)掩碼里的每一位代表IP地址中的一個(gè)位,用1表示IP地址中屬于網(wǎng)絡(luò)ID或子網(wǎng)ID的位,用0表示IP地址里屬于主機(jī)ID的位。
5. 在子網(wǎng)網(wǎng)絡(luò)上,路由器和主機(jī)所使用的路由表包含了每個(gè)IP地址相關(guān)的子網(wǎng)掩碼信息。數(shù)據(jù)報(bào)根據(jù)網(wǎng)絡(luò)ID被路由到目標(biāo)網(wǎng)絡(luò),而這個(gè)網(wǎng)絡(luò)ID是由地址類(lèi)別決定的。當(dāng)數(shù)據(jù)報(bào)到達(dá)目標(biāo)網(wǎng)絡(luò)之后,它根據(jù)子網(wǎng)ID路由到合適的網(wǎng)段。在到達(dá)這個(gè)網(wǎng)段之后,再根據(jù)主機(jī)ID傳輸?shù)秸_的計(jì)算機(jī)。
使用子網(wǎng)
1. 子網(wǎng)掩碼決定了網(wǎng)絡(luò)ID之后又多少位是作為子網(wǎng)ID的。子網(wǎng)ID的長(zhǎng)度不是固定的,取決于子網(wǎng)掩碼的值。子網(wǎng)ID越長(zhǎng),留給主機(jī)ID的位數(shù)就越少。
2. 全0或全1的主機(jī)ID是不能分配的
3.
無(wú)類(lèi)別域間路由——CIDR
1. CIDR技術(shù)使用一個(gè)名為CIDR前綴的值指定地址中作為網(wǎng)絡(luò)ID的位數(shù)。這個(gè)前綴有時(shí)也被稱為變長(zhǎng)子網(wǎng)掩碼。
2. 這個(gè)前綴可以位于地址空間的任何位置,讓管理者能夠以更靈活的方式定義子網(wǎng),以簡(jiǎn)便的形式指定地址網(wǎng)絡(luò)ID部分與主機(jī)ID部分。
3. CIDR標(biāo)記使用一個(gè)斜線/,后面跟一個(gè)十進(jìn)制數(shù)值來(lái)表示地址中網(wǎng)絡(luò)部分所占的位數(shù)。
4. 例如一個(gè)ISP被分配了一些C類(lèi)網(wǎng)絡(luò),這個(gè)ISP準(zhǔn)備把這些C類(lèi)網(wǎng)絡(luò)分配給各個(gè)用戶群,已經(jīng)分配了三個(gè)C類(lèi)網(wǎng)段給用戶,如果沒(méi)有實(shí)施CIDR技術(shù).ISP的路由器的路由表中會(huì)有三條下連網(wǎng)段的路由條目,并且會(huì)把它通告給Internet上的路由器.通過(guò)實(shí)施CIDR技術(shù),我們可以在ISP的路由器上把這三個(gè)網(wǎng)段198.168.1.0,198.168.2.0,198.168.3.0匯聚成一條路由198.168.0.0/16.這樣ISP路由器只向Internet通告198.168.0.0/16這一條路由,大大減少了路由表的數(shù)目.從而為網(wǎng)絡(luò)路由器節(jié)省出了存儲(chǔ)空間。 值得注意的是,使用CIDR技術(shù)匯聚的網(wǎng)絡(luò)地址的比特位必須是一致的,如上例所示.如果上例所示的ISP連接了一個(gè)172.178.1.0網(wǎng)段,這些網(wǎng)段路由將無(wú)法匯聚,無(wú)法實(shí)現(xiàn)CIDR技術(shù).
5. CIDR建立于“超級(jí)組網(wǎng)”的基礎(chǔ)上,“超級(jí)組網(wǎng)”是“子網(wǎng)劃分”的派生詞,可看作子網(wǎng)劃分的逆過(guò)程。子網(wǎng)劃分時(shí),從地址主機(jī)部分借位,將其合并進(jìn)網(wǎng)絡(luò)部分;而在超級(jí)組網(wǎng)中,則是將網(wǎng)絡(luò)部分的某些位合并進(jìn)主機(jī)部分。這種無(wú)類(lèi)別超級(jí)組網(wǎng)技術(shù)通過(guò)將一組較小的無(wú)類(lèi)別網(wǎng)絡(luò)匯聚為一個(gè)較大的單一路由表項(xiàng),減少了Internet路由域中路由表?xiàng)l目的數(shù)量。
六、傳輸層
傳輸層簡(jiǎn)介
1. 傳輸層需要提供如下功能:
2. 傳輸層為網(wǎng)絡(luò)應(yīng)用程序提供了一個(gè)接口。
3. 傳輸控制協(xié)議——TCP:TCP提供了完善的錯(cuò)誤控制和流量控制,能夠確保數(shù)據(jù)正確傳輸,它是一個(gè)面向連接的協(xié)議。
4. 用戶數(shù)據(jù)報(bào)協(xié)議——UDP:UDP只提供了非常基本的錯(cuò)誤檢測(cè),用于不需要TCP精細(xì)控制功能的場(chǎng)合,它是一個(gè)無(wú)連接的協(xié)議。
面向連接協(xié)議和無(wú)連接協(xié)議
1. 面向連接協(xié)議:會(huì)在通信計(jì)算機(jī)之間建立并維護(hù)一個(gè)連接,并且在通信過(guò)程中監(jiān)視連接狀態(tài)。通過(guò)網(wǎng)絡(luò)傳輸?shù)拿總(gè)數(shù)據(jù)包都會(huì)有一個(gè)確認(rèn),發(fā)送端計(jì)算機(jī)會(huì)記錄狀態(tài)信息來(lái)確保每個(gè)數(shù)據(jù)包都被正確無(wú)誤的接收了,并且在需要時(shí)會(huì)重發(fā)數(shù)據(jù)。當(dāng)數(shù)據(jù)傳輸結(jié)束后,發(fā)送端和接收端計(jì)算機(jī)會(huì)以適當(dāng)方式關(guān)閉連接。
2. 無(wú)連接協(xié)議:以單向方式向目的發(fā)送數(shù)據(jù)報(bào),不承擔(dān)通知目的計(jì)算機(jī)關(guān)于數(shù)據(jù)發(fā)送的職責(zé)。目的計(jì)算機(jī)接收到數(shù)據(jù)后也不需要向源計(jì)算機(jī)返回狀態(tài)信息。
端口和套接字
1. 在TCP/IP系統(tǒng)中,應(yīng)用程序可以使用端口號(hào)通過(guò)TCP或UDP指定數(shù)據(jù)目的地。端口是一個(gè)預(yù)定義的內(nèi)部地址,充當(dāng)從應(yīng)用程序到傳輸層或是從傳輸層到應(yīng)用程序的通路。
2. TCP或UDP數(shù)據(jù)實(shí)際是被發(fā)送到一個(gè)套接字上的。套接字是一個(gè)由IP地址和端口號(hào)組成的地址。
多路復(fù)用/多路分解
1. 多路復(fù)用是指把多個(gè)來(lái)源的數(shù)據(jù)導(dǎo)向一個(gè)輸出,而多路分解是把從一個(gè)來(lái)源接收的數(shù)據(jù)發(fā)送到多個(gè)輸出。多路傳輸/多路分解讓TCP/IP協(xié)議棧較低層的協(xié)議不比關(guān)心哪個(gè)程序在傳輸數(shù)據(jù)。與應(yīng)用程序相關(guān)的操作都由傳輸層完成了,數(shù)據(jù)通過(guò)一個(gè)與應(yīng)用程序無(wú)關(guān)的管道在傳輸層與網(wǎng)際層之間傳遞。
2. 多路復(fù)用是指兩個(gè)或多個(gè)用戶共享公用信道的一種機(jī)制。通過(guò)多路復(fù)用技術(shù),多個(gè)終端能共享一條高速信道,從而達(dá)到節(jié)省信道資源的目的,多路復(fù)用有頻分多路復(fù)用(FDMA),時(shí)分多路復(fù)用(TDMA),碼分多路復(fù)用(CDMA)幾種。
TCP:面向連接的傳輸協(xié)議
1. TCP重要特性:
2. TCP數(shù)據(jù)格式:
3. TCP連接:TCP通過(guò)連接發(fā)送和接收數(shù)據(jù),而這個(gè)連接必須根據(jù)TCP的規(guī)則進(jìn)行請(qǐng)求、打開(kāi)和關(guān)閉。TCP的功能之一是為應(yīng)用程序提供訪問(wèn)網(wǎng)絡(luò)的接口。這個(gè)接口是通過(guò)TCP端口提供的,而為了通過(guò)端口提供連接,必須打開(kāi)TCP與應(yīng)用程序的接口。 被動(dòng)打開(kāi)——某個(gè)應(yīng)用程序進(jìn)程通知TCP準(zhǔn)備通過(guò)TCP端口接收連接,這樣就會(huì)打開(kāi)TCP到應(yīng)用程序的連接,從而為參與連接請(qǐng)求做準(zhǔn)備。 主動(dòng)打開(kāi)——程序要求TCP發(fā)起與另一臺(tái)計(jì)算機(jī)的連接,這就是主動(dòng)打開(kāi)狀態(tài)。
4. 建立連接:三次握手總是發(fā)生在TCP連接建立的初期 。需要三次握手的原因——TCP的三次握手最主要是防止已過(guò)期的連接再次傳到被連接的主機(jī)。
5. TCP流量控制(滑動(dòng)窗口方法):接收端計(jì)算機(jī)利用“窗口”字段(也被稱為“緩存大小”字段)來(lái)定義一個(gè)超過(guò)最后一個(gè)已確認(rèn)序列號(hào)的序列號(hào)“窗口”,在這個(gè)范圍內(nèi)的序列號(hào)才允許發(fā)送端計(jì)算機(jī)進(jìn)行發(fā)送。發(fā)送端計(jì)算機(jī)在沒(méi)有接收到下一個(gè)確認(rèn)消息之前不能發(fā)送超過(guò)這個(gè)窗口的序列號(hào)。
6. 關(guān)閉連接:計(jì)算機(jī)A發(fā)送一個(gè)數(shù)據(jù)分段,其中的FIN標(biāo)記設(shè)置為1。之后應(yīng)用程序進(jìn)入"fin-wait"狀態(tài)。在這個(gè)狀態(tài)下,計(jì)算機(jī)的TCP軟件繼續(xù)接受數(shù)據(jù)分段,并處理已經(jīng)在序列中的數(shù)據(jù)分段,但不再?gòu)膽?yīng)用程序接收數(shù)據(jù)了。當(dāng)計(jì)算機(jī)B接收到FIN數(shù)據(jù)分段時(shí),它返回FIN確認(rèn)信息,然后發(fā)送剩余的數(shù)據(jù)分段,通知本地應(yīng)用程序接收到了FIN消息。計(jì)算機(jī)B向計(jì)算機(jī)A發(fā)送一個(gè)FIN數(shù)據(jù)分段,計(jì)算機(jī)A返回確認(rèn)信息,連接就被關(guān)閉了。
【注意】中斷連接端可以是Client端,也可以是Server端。假設(shè)Client端發(fā)起中斷連接請(qǐng)求,也就是發(fā)送FIN報(bào)文。Server端接到FIN報(bào)文后,意思是說(shuō)"我Client端沒(méi)有數(shù)據(jù)要發(fā)給你了",但是如果你還有數(shù)據(jù)沒(méi)有發(fā)送完成,則不必急著關(guān)閉Socket,可以繼續(xù)發(fā)送數(shù)據(jù)。所以你先發(fā)送ACK,"告訴Client端,你的請(qǐng)求我收到了,但是我還沒(méi)準(zhǔn)備好,請(qǐng)繼續(xù)你等我的消息"。這個(gè)時(shí)候Client端就進(jìn)入FIN_WAIT狀態(tài),繼續(xù)等待Server端的FIN報(bào)文。當(dāng)Server端確定數(shù)據(jù)已發(fā)送完成,則向Client端發(fā)送FIN報(bào)文,"告訴Client端,好了,我這邊數(shù)據(jù)發(fā)完了,準(zhǔn)備好關(guān)閉連接了"。Client端收到FIN報(bào)文后,"就知道可以關(guān)閉連接了,但是他還是不相信網(wǎng)絡(luò),怕Server端不知道要關(guān)閉,所以發(fā)送ACK后進(jìn)入TIME_WAIT狀態(tài),如果Server端沒(méi)有收到ACK則可以重傳。“,Server端收到ACK后,"就知道可以斷開(kāi)連接了"。Client端等待了2MSL后依然沒(méi)有收到回復(fù),則證明Server端已正常關(guān)閉,那好,我Client端也可以關(guān)閉連接了。Ok,TCP連接就這樣關(guān)閉了!
雙方同時(shí)要求關(guān)閉連接:ESTAB->FIN-WAIT-1->CLOSING->TIME-WAIT->CLOSED TIME-WAIT狀態(tài)之后等待2MSL(包的最大保存時(shí)間)是為了確保所有該連接上的包都已在網(wǎng)絡(luò)消失。 7. TCP如何保證可靠性:TCP的可靠性是通過(guò)順序編號(hào)和確認(rèn)(ACK)來(lái)實(shí)現(xiàn)的。TCP在開(kāi)始傳送一個(gè)段時(shí),為準(zhǔn)備重傳而首先將該段插入到發(fā)送隊(duì)列之中,同時(shí)啟動(dòng)時(shí)鐘。其后,如果收到了接受端對(duì)該段的ACK信息,就將該段從隊(duì)列中刪去。如果在時(shí)鐘規(guī)定的時(shí)間內(nèi),ACK未返回,那么就從發(fā)送隊(duì)列中再次送出這個(gè)段。TCP在協(xié)議中就對(duì)數(shù)據(jù)可靠傳輸做了保障,握手與斷開(kāi)都需要通訊雙方確認(rèn),數(shù)據(jù)傳輸也需要雙方確認(rèn)成功,在協(xié)議中還規(guī)定了:分包、重組、重傳等規(guī)則;而UDP主要是面向不可靠連接的,不能保證數(shù)據(jù)正確到達(dá)目的地。
UDP:無(wú)連接傳輸協(xié)議
1. UDP實(shí)際上能夠執(zhí)行基本的錯(cuò)誤檢驗(yàn),因此,可以說(shuō)UDP具有有限的錯(cuò)誤檢驗(yàn)功能。UDP數(shù)據(jù)報(bào)中包含一個(gè)校驗(yàn)和,接收端計(jì)算機(jī)可以利用它來(lái)檢驗(yàn)數(shù)據(jù)的完整性。
2. UDP的開(kāi)銷(xiāo)沒(méi)有TCP大。
3. UDP不會(huì)重新傳輸丟失或損壞的數(shù)據(jù)報(bào)、重新排列混亂的接收數(shù)據(jù)、消除重復(fù)的數(shù)據(jù)報(bào)、確認(rèn)數(shù)據(jù)報(bào)的接收、建立或是終止連接。它主要是在程序不必使用TCP連接開(kāi)銷(xiāo)的情況下發(fā)送和接收數(shù)據(jù)報(bào)的一種方式。
七、應(yīng)用層
TCP/IP應(yīng)用層與OSI
1. TCP/IP應(yīng)用層對(duì)應(yīng)于OSI模型的應(yīng)用層、表示層和會(huì)話層。
2. 應(yīng)用層:OSI的應(yīng)用層包含的組件為用戶應(yīng)用程序提供服務(wù)并支持網(wǎng)絡(luò)訪問(wèn)。
3. 表示層:表示層把數(shù)據(jù)轉(zhuǎn)化為平臺(tái)無(wú)關(guān)的格式,并處理加密和數(shù)據(jù)壓縮。
4. 會(huì)話層:負(fù)責(zé)管理聯(lián)網(wǎng)計(jì)算機(jī)上應(yīng)用程序之間的通信,提供了一些傳輸層不具備、與連接相關(guān)的功能,比如名稱識(shí)別和安全。
應(yīng)用層的部分協(xié)議
API和應(yīng)用層:應(yīng)用編程接口(API)是預(yù)定義的編程組件的集合,應(yīng)用程序可以利用它訪問(wèn)操作環(huán)境的其他部分,也就是與操作系統(tǒng)進(jìn)行通信。網(wǎng)絡(luò)協(xié)議棧就是API概念的典型應(yīng)用,網(wǎng)絡(luò)API提供了程序與協(xié)議棧的接口,應(yīng)用程序利用API的函數(shù)打開(kāi)和關(guān)閉連接、從網(wǎng)絡(luò)讀取和寫(xiě)入數(shù)據(jù)。
八、路由選擇
路由器的概念
1. 路由器是負(fù)責(zé)根據(jù)邏輯地址對(duì)通信流量進(jìn)行過(guò)濾的設(shè)備。經(jīng)典的網(wǎng)絡(luò)路由器工作于網(wǎng)際層,使用網(wǎng)際層報(bào)頭中的IP尋址信息。
2. 向Internet這樣的大型網(wǎng)絡(luò)具有很多路由器,提供了從源到目的節(jié)點(diǎn)的多條路徑。這些路由器必須獨(dú)立工作,但整個(gè)系統(tǒng)必須保證數(shù)據(jù)能夠準(zhǔn)確高效地在網(wǎng)絡(luò)中傳輸。
3. 當(dāng)路由器將數(shù)據(jù)從一個(gè)網(wǎng)絡(luò)傳輸?shù)较乱粋(gè)網(wǎng)絡(luò)時(shí),它會(huì)替換網(wǎng)絡(luò)訪問(wèn)層報(bào)頭信息,因此路由器可以連接不同類(lèi)型的網(wǎng)絡(luò)。很多路由器還維護(hù)關(guān)于最佳路徑的詳細(xì)信息,這是根據(jù)距離、帶寬和時(shí)間綜合考慮的。
4. 早期的路由器實(shí)際上就是具有兩塊或多塊網(wǎng)絡(luò)適配器的計(jì)算機(jī)(也被稱為多宿主計(jì)算機(jī))。
路由選擇過(guò)程
1. 路由器全面功能:
2. 路由表和建立路由表的協(xié)議是路由器具有的兩個(gè)顯著特性。對(duì)于路由器的大多數(shù)討論都是關(guān)于建立路由表、匯集路由表的路由協(xié)議如何讓所有的路由器像一個(gè)整體一樣提供服務(wù)。
3. 靜態(tài)路由:要求網(wǎng)絡(luò)管理員手工輸入路由信息。
4. 動(dòng)態(tài)路由:根據(jù)使用路由協(xié)議獲得的路由信息來(lái)動(dòng)態(tài)建立路由表。
路由表的概念
1. 路由表和忘記曾其他路由元素的用途在于把數(shù)據(jù)傳遞到正確的本地網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)到達(dá)本地網(wǎng)絡(luò)之后,網(wǎng)絡(luò)訪問(wèn)協(xié)議就會(huì)知道它的目的地。因此,路由表不需要存儲(chǔ)完整的IP地址,只需要列出網(wǎng)絡(luò)ID即可。
2.
路由表就是把目的網(wǎng)絡(luò)ID映射到下一跳的IP地址,即數(shù)據(jù)報(bào)通往目的網(wǎng)絡(luò)的下一站。路由表會(huì)區(qū)分直接連接到路由器本身的網(wǎng)絡(luò)和通過(guò)其他路由器間接連接過(guò)來(lái)的網(wǎng)絡(luò)。下一跳可以是目的網(wǎng)絡(luò),也可以是通向目的網(wǎng)絡(luò)的下一個(gè)下游路由器。 IP轉(zhuǎn)發(fā)
1. 主機(jī)的路由表比路由器簡(jiǎn)單得多,它可能只包含兩行:一個(gè)條目用于本地網(wǎng)絡(luò),另一個(gè)用于默認(rèn)路由(用于處理不能在本地網(wǎng)段上傳輸?shù)臄?shù)據(jù)包)。
2. IP轉(zhuǎn)發(fā)過(guò)程實(shí)際上不會(huì)再I(mǎi)P報(bào)頭中寫(xiě)入路由器的地址,而是由主機(jī)把數(shù)據(jù)報(bào)和路由器的IP地址向下傳遞到網(wǎng)絡(luò)訪問(wèn)層,該層的協(xié)議軟件會(huì)使用一個(gè)獨(dú)立的查詢過(guò)程把數(shù)據(jù)包封裝到一個(gè)幀中,通過(guò)本地網(wǎng)段傳遞給路由器。換句話說(shuō),被轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)里的IP地址指向最終要接收數(shù)據(jù)的主機(jī) ,而轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的幀中的物理地址指向路由器上本地適配器的地址。
3.
直接路由和間接路由
1.
2. 路由器了解間接路由的方式有兩種:從系統(tǒng)管理員和從其他路由器。這兩種方式分別對(duì)應(yīng)靜態(tài)路由和動(dòng)態(tài)路由。
3. 大多數(shù)現(xiàn)代路由器使用了某種形式的動(dòng)態(tài)路由。路由器彼此之間的相互通信,共享關(guān)于網(wǎng)段和網(wǎng)絡(luò)路徑的信息,每臺(tái)路由器都根據(jù)從這種通信過(guò)程中得到的信息建立自己的路由表。
動(dòng)態(tài)路由算法——距離矢量路由
1. 距離矢量路由是一種高效、簡(jiǎn)單的路由方法,被很多路由協(xié)議所采用。其設(shè)計(jì)目標(biāo)是讓路由器之間所需的通信最少,讓路由表中必須保存的數(shù)據(jù)最少。這種設(shè)計(jì)理念認(rèn)為路由器不必知道通向每個(gè)網(wǎng)段的完整路徑,而是只需知道向哪個(gè)方向發(fā)送數(shù)據(jù)報(bào)即可。
2. 網(wǎng)段之間的距離以數(shù)據(jù)報(bào)在兩個(gè)網(wǎng)絡(luò)之間傳輸必須經(jīng)過(guò)的路由器的數(shù)量來(lái)表示,而使用距離矢量路由的路由器優(yōu)化路徑的方式是讓數(shù)據(jù)報(bào)必須經(jīng)過(guò)的路由器達(dá)到最少。這個(gè)距離參數(shù)成為“跳數(shù)”。
3. 距離矢量路由的工作方式:
動(dòng)態(tài)路由算法——鏈路狀態(tài)路由:連接狀態(tài)路由背后的理念在于每個(gè)路由器都嘗試建立關(guān)于網(wǎng)絡(luò)拓?fù)涞膬?nèi)部映射。每臺(tái)路由器定期向網(wǎng)絡(luò)發(fā)送狀態(tài)信息,其中列出了自己直連的其他路由器以及鏈路的狀態(tài)。路由器利用從其他路由器收到的狀態(tài)消息建立網(wǎng)絡(luò)拓?fù)涞挠成洌?dāng)它需要轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)時(shí),會(huì)根據(jù)現(xiàn)有條件選擇最佳路徑。
復(fù)雜網(wǎng)絡(luò)上的路由
1. 對(duì)于internet上的路由器來(lái)說(shuō),并不是每臺(tái)路由器都需要知道其他所有路由器的信息。在網(wǎng)絡(luò)有效組織的情況下,大多數(shù)路由器只需要與相鄰路由器交互協(xié)議信息即可。
2. 在孕育了internet的ARPnet系統(tǒng)中,一組核心路由器作為網(wǎng)絡(luò)互聯(lián)的中央骨干網(wǎng),把自動(dòng)配置和管理的獨(dú)立網(wǎng)絡(luò)連接在一起。核心路由器了解每個(gè)網(wǎng)絡(luò),但不必知道每個(gè)子網(wǎng)。只要數(shù)據(jù)報(bào)能夠找到到達(dá)核心路由的路徑,就能夠到達(dá)整個(gè)網(wǎng)絡(luò)的任何位置。附屬網(wǎng)絡(luò)中的路由器不必了解世界上的全部網(wǎng)絡(luò),只需要知道如何在相鄰路由器之間如何傳輸數(shù)據(jù)和如何到達(dá)核心路由器即可。
3.
路由選擇協(xié)議
1. 因特網(wǎng)有兩大類(lèi)路由選擇協(xié)議:內(nèi)部網(wǎng)關(guān)協(xié)議IGP(Interior Gateway Protocol)即在一個(gè)自治系統(tǒng)內(nèi)部使用的路由選擇協(xié)議。目前這類(lèi)路由選擇協(xié)議使用得最多,如RIP和OSPF協(xié)議。外部網(wǎng)關(guān)協(xié)議EGP(External Gateway Protocol)若源站和目的站處在不同的自治系統(tǒng)中,當(dāng)數(shù)據(jù)報(bào)傳到一個(gè)自治系統(tǒng)的邊界時(shí),就需要使用一種協(xié)議將路由選擇信息傳遞到另一個(gè)自治系統(tǒng)中。這樣的協(xié)議就是外部網(wǎng)關(guān)協(xié)議EGP。在外部網(wǎng)關(guān)協(xié)議中目前使用最多的是BGP-4。
2. 路由信息協(xié)議RIP是內(nèi)部網(wǎng)關(guān)協(xié)議IGP中最先得到廣泛使用的協(xié)議。RIP是一種分布式的基于距離向量的路由選擇協(xié)議。RIP協(xié)議要求網(wǎng)絡(luò)中的每一個(gè)路由器都要維護(hù)從它自己到其他每一個(gè)目的網(wǎng)絡(luò)的距離記錄。距離的解釋?zhuān)簭囊宦酚善鞯街苯舆B接的網(wǎng)絡(luò)的距離定義為1。從一個(gè)路由器到非直接連接的網(wǎng)絡(luò)的距離定義為所經(jīng)過(guò)的路由器數(shù)加1。RIP協(xié)議中的“距離”也稱為“跳數(shù)”(hop count),因?yàn)槊拷?jīng)過(guò)一個(gè)路由器,跳數(shù)就加1。這里的“距離”實(shí)際上指的是“最短距離”。RIP認(rèn)為一個(gè)好的路由就是它通過(guò)的路由器的數(shù)目少,即“距離短”。RIP允許一條路徑最多只能包含15個(gè)路由器。“距離”的最大值為16時(shí)即相當(dāng)于不可達(dá)。可見(jiàn)RIP只適用于小型互聯(lián)網(wǎng)。RIP不能在兩個(gè)網(wǎng)絡(luò)之間同時(shí)使用多條路由。RIP選擇一個(gè)具有最少路由器的路由(即最短路由)哪怕還存在另一條高速(低時(shí)延)但路由器較多的路由。
3. “開(kāi)放”表明OSPF協(xié)議不是受某一家廠商控制,而是公開(kāi)發(fā)表的。“最短路徑優(yōu)先”是因?yàn)槭褂昧薉ijkstra提出的最短路徑算法SPF。OSPF只是一個(gè)協(xié)議的名字,它并不表示其他的路由選擇協(xié)議不是“最短路徑優(yōu)先”。是分布式的鏈路狀態(tài)協(xié)議。
4. BGP是不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議。邊界網(wǎng)關(guān)協(xié)議BGP只能是力求尋找一條能夠到達(dá)目的網(wǎng)絡(luò)且比較好的路由(不能兜圈子),而并非要尋找一條最佳路由。
九、連網(wǎng)
撥號(hào)連接
1. 連接TCP/IP網(wǎng)絡(luò)的一種最常用的方式是通過(guò)電話線,而近幾年,向電纜調(diào)制解調(diào)器和DSL這樣的寬帶技術(shù)降低了撥號(hào)連接的重要性。調(diào)制解調(diào)器(modem)通過(guò)電話線提供網(wǎng)絡(luò)訪問(wèn),它的作用在于把來(lái)自計(jì)算機(jī)的數(shù)字傳輸轉(zhuǎn)化為能夠通過(guò)電話系統(tǒng)的端口進(jìn)行傳輸?shù)哪M信號(hào),也把來(lái)自電話線的模擬信號(hào)轉(zhuǎn)化為計(jì)算機(jī)能夠理解的數(shù)字信號(hào)。
2. 電話線兩段的計(jì)算機(jī)不需要與其他計(jì)算機(jī)爭(zhēng)用傳輸介質(zhì),他們只需要在彼此之間共享介質(zhì)就可以了。這種連接方式被稱為點(diǎn)到點(diǎn)連接。
3. 調(diào)制解調(diào)器協(xié)議:串行線路網(wǎng)際協(xié)議(SLIP)——基于TCP/IP的早期調(diào)制解調(diào)器協(xié)議,相對(duì)簡(jiǎn)單,有很多局限性。點(diǎn)到點(diǎn)協(xié)議(PPP)——最初當(dāng)前用于調(diào)制解調(diào)器連接的最流行協(xié)議,是對(duì)SLIP的細(xì)化,具有SLIP所不具備的很多重要特性。
電纜寬帶:電纜調(diào)制解調(diào)器直接連接到一條同軸電纜,后者被連接到有線電視服務(wù)網(wǎng)絡(luò)上。這個(gè)調(diào)制解調(diào)器通常具有一個(gè)以太網(wǎng)接口,可以連接到單臺(tái)計(jì)算機(jī)或小型局域網(wǎng)中的交換機(jī)或路由器。電纜調(diào)制解調(diào)器實(shí)現(xiàn)數(shù)字信號(hào)與模擬信號(hào)的轉(zhuǎn)換,從而讓數(shù)據(jù)能夠通過(guò)電纜連接高效傳輸。
連接設(shè)備
1. 網(wǎng)橋:根據(jù)物理地址過(guò)濾和轉(zhuǎn)發(fā)數(shù)據(jù)包的連接設(shè)備,它工作與OSI模型的數(shù)據(jù)鏈路層。網(wǎng)橋監(jiān)聽(tīng)它所連接的每個(gè)網(wǎng)段,建立一個(gè)表來(lái)反應(yīng)物理地址位于哪個(gè)網(wǎng)段。當(dāng)數(shù)據(jù)在一個(gè)網(wǎng)段上傳輸時(shí),網(wǎng)橋會(huì)查看數(shù)據(jù)的目的地址,與路由表進(jìn)行比較。如果目的地址屬于發(fā)送數(shù)據(jù)的網(wǎng)段,網(wǎng)橋就忽略這個(gè)數(shù)據(jù)。如果目的地址在不同的網(wǎng)段,網(wǎng)橋就把數(shù)據(jù)轉(zhuǎn)發(fā)到適當(dāng)?shù)木W(wǎng)段。如果目的地址不在路由表,網(wǎng)橋就會(huì)把數(shù)據(jù)轉(zhuǎn)發(fā)到除源網(wǎng)段之外的全部網(wǎng)段。
2. HUB(集線器):作為一個(gè)物理設(shè)備從一個(gè)端口接收數(shù)據(jù),然后把數(shù)據(jù)重復(fù)到其余全部的端口。換句話說(shuō),全部計(jì)算機(jī)就好像是被一條連續(xù)線路連接在一起的。HUB不會(huì)過(guò)濾或路由任何數(shù)據(jù),知識(shí)接收和重新發(fā)送信息。
3. 交換機(jī):每臺(tái)計(jì)算機(jī)也是通過(guò)一條線路連接到交換機(jī)。但是,交換機(jī)知道應(yīng)該把接收到的數(shù)據(jù)發(fā)送到哪一個(gè)端口。大多數(shù)交換機(jī)把端口與所連接設(shè)備的物理地址關(guān)聯(lián)起來(lái)。當(dāng)一個(gè)端口所連接的計(jì)算機(jī)發(fā)送數(shù)據(jù)幀時(shí),交換機(jī)會(huì)查看幀的目的地址,把幀發(fā)送到目的地址相關(guān)聯(lián)的端口。
十、名稱解析
使用主機(jī)文件進(jìn)行名稱解析
1. 主機(jī)文件是一個(gè)保存有一個(gè)主機(jī)名、相關(guān)IP地址列表的文件。主機(jī)名解析實(shí)在更復(fù)雜的DNS名稱解析之前被開(kāi)發(fā)出來(lái)的。
2. 在小型網(wǎng)絡(luò)上配置主機(jī)名解析通常很簡(jiǎn)單。支持TCP/IP的操作系統(tǒng)都能識(shí)別主機(jī)文件,并可以將它用于名稱解析,而且期間幾乎不需要用戶干預(yù)。
3. 配置名稱解析的大致步驟如下:為每臺(tái)計(jì)算機(jī)分配IP地址和主機(jī)名;創(chuàng)建映射了IP地址和所有計(jì)算機(jī)主機(jī)名的主機(jī)文件。這些文件的名稱一般是hosts;將主機(jī)文件放置每臺(tái)計(jì)算機(jī)的指定位置上。對(duì)于具體位置每種操作系統(tǒng)都有自己的規(guī)定。
DNS名稱解析
1. DNS會(huì)將名稱解析數(shù)據(jù)防止在一個(gè)或多個(gè)專(zhuān)用服務(wù)器上,由DNS服務(wù)器為網(wǎng)絡(luò)提供名稱解析服務(wù)。如果網(wǎng)絡(luò)上計(jì)算機(jī)需要將某個(gè)主機(jī)名解析成IP地址,會(huì)向服務(wù)器發(fā)送一個(gè)查詢,詢問(wèn)與這個(gè)地址關(guān)聯(lián)的主機(jī)名。如果DNS服務(wù)器保存了相應(yīng)的地址,就將這個(gè)地址返回給發(fā)出請(qǐng)求的計(jì)算機(jī)。接下來(lái),這臺(tái)計(jì)算機(jī)會(huì)用IP地址來(lái)替代主機(jī)名,進(jìn)而再執(zhí)行命令。
2. DNS服務(wù)器又多個(gè)有點(diǎn),它為本地網(wǎng)絡(luò)提供了一個(gè)單一的DNS配置點(diǎn),使得網(wǎng)絡(luò)資源的利用更加有效。然而,DNS無(wú)法高效地保存Internet上所有主機(jī)名的數(shù)據(jù)庫(kù)。解決辦法是,使所有名稱服務(wù)器都可以彼此通信。
3. 如果DNS在自己保存的地址數(shù)據(jù)庫(kù)中發(fā)現(xiàn)了被請(qǐng)求的地址,則將這個(gè)地址發(fā)回給客戶端。如果名稱服務(wù)器在自己保存的記錄中沒(méi)有找到這個(gè)地址,會(huì)要求其他的名稱服務(wù)器查找這個(gè)地址,接著將這個(gè)地址發(fā)回給客戶端。
4. 工作原理:當(dāng)DNS客戶機(jī)需要在程序中使用名稱時(shí),它會(huì)查詢DNS服務(wù)器來(lái)解析該名稱。客戶機(jī)發(fā)送的每條查詢信息包括三條信息:包括:指定的DNS域名,指定的查詢類(lèi)型,DNS域名的指定類(lèi)別。基于UDP服務(wù),端口53. 該應(yīng)用一般不直接為用戶使用,而是為其他應(yīng)用服務(wù),如HTTP,SMTP等在其中需要完成主機(jī)名到IP地址的轉(zhuǎn)換。
瀏覽器輸入網(wǎng)址之后的過(guò)程
1. 應(yīng)用層:客戶端瀏覽器通過(guò)DNS解析到www.baidu.com的IP地址220.181.27.48,通過(guò)這個(gè)IP地址找到客戶端到服務(wù)器的路徑。客戶端瀏覽器發(fā)起一個(gè)HTTP會(huì)話到220.161.27.48,然后通過(guò)TCP進(jìn)行封裝數(shù)據(jù)包,輸入到網(wǎng)絡(luò)層。
DNS解析IP地址 HTTP訪問(wèn)服務(wù)器 2. 傳輸層:在客戶端的傳輸層,把HTTP會(huì)話請(qǐng)求分成報(bào)文段,添加源和目的端口,如服務(wù)器使用80端口監(jiān)聽(tīng)客戶端的請(qǐng)求,客戶端由系統(tǒng)隨機(jī)選擇一個(gè)端口如5000,與服務(wù)器進(jìn)行交換,服務(wù)器把相應(yīng)的請(qǐng)求返回給客戶端的5000端口。然后使用IP層的IP地址查找目的端。
3. 客戶端的網(wǎng)絡(luò)層不用關(guān)心應(yīng)用層或者傳輸層的東西,主要做的是通過(guò)查找路由表確定如何到達(dá)服務(wù)器,期間可能經(jīng)過(guò)多個(gè)路由器,這些都是由路由器來(lái)完成的工作,通過(guò)查找路由表決定通過(guò)那個(gè)路徑到達(dá)服務(wù)器,其中用到路由選擇協(xié)議。
4. 客戶端的鏈路層,包通過(guò)鏈路層發(fā)送到路由器,通過(guò)鄰居協(xié)議查找給定IP地址的MAC地址,然后發(fā)送ARP請(qǐng)求查找目的地址,如果得到回應(yīng)后就可以使用ARP的請(qǐng)求應(yīng)答交換的IP數(shù)據(jù)包現(xiàn)在就可以傳輸了,然后發(fā)送IP數(shù)據(jù)包到達(dá)服務(wù)器的地址。不管網(wǎng)絡(luò)層使用的是什么協(xié)議,在實(shí)際網(wǎng)絡(luò)的鏈路上傳送數(shù)據(jù)幀時(shí),最終還是必須使用硬件地址。每一個(gè)主機(jī)都設(shè)有一個(gè) ARP 高速緩存(ARP cache),里面有所在的局域網(wǎng)上的各主機(jī)和路由器的 IP 地址到硬件地址的映射表。當(dāng)主機(jī) A 欲向本局域網(wǎng)上的某個(gè)主機(jī) B 發(fā)送 IP 數(shù)據(jù)報(bào)時(shí),就先在其 ARP 高速緩存中查看有無(wú)主機(jī) B 的 IP 地址。如有,就可查出其對(duì)應(yīng)的硬件地址,再將此硬件地址寫(xiě)入 MAC 幀,然后通過(guò)局域網(wǎng)將該 MAC 幀發(fā)往此硬件地址。
十一、TCP/IP安全
防火墻
1. 防火墻就是一個(gè)放置在網(wǎng)絡(luò)路徑上的設(shè)備,它可以檢查、接受或拒絕打算進(jìn)入網(wǎng)絡(luò)的數(shù)據(jù)包。防火墻和傳統(tǒng)的路由器最重要的區(qū)別是傳統(tǒng)路由器會(huì)盡可能轉(zhuǎn)發(fā)數(shù)據(jù)包,而防火墻則只轉(zhuǎn)發(fā)自己認(rèn)可的數(shù)據(jù)包。對(duì)數(shù)據(jù)包的轉(zhuǎn)發(fā)決定不再是僅基于地址,而是基于網(wǎng)絡(luò)所有者配置的一組規(guī)則,這些規(guī)則可以確定哪些流量類(lèi)型能被網(wǎng)絡(luò)所允許。
2. 防火墻可以阻止任何或者所有的外界流量進(jìn)入網(wǎng)絡(luò),但是它并不干涉內(nèi)部網(wǎng)絡(luò)中的通信。
3. 當(dāng)代的防火墻通常是包過(guò)技術(shù)、狀態(tài)查看和應(yīng)用層過(guò)濾技術(shù)的組合。一些防火墻還可以作為DHCP服務(wù)器和網(wǎng)絡(luò)地址轉(zhuǎn)換工具。防火墻可以是硬件也可以是軟件,既可以簡(jiǎn)單又可以復(fù)雜。
4. 最早的防火墻是數(shù)據(jù)包過(guò)濾器。它通過(guò)檢查數(shù)據(jù)包來(lái)找出該數(shù)據(jù)包的企圖。許多包過(guò)濾防火墻會(huì)查看封裝在傳輸層報(bào)頭中的TCP和UDP端口號(hào),可以確定數(shù)據(jù)包的企圖。
5. 防火墻進(jìn)化過(guò)程中,出現(xiàn)了有狀態(tài)防火墻設(shè)備。有狀態(tài)防火墻不僅僅是單獨(dú)檢查每一個(gè)數(shù)據(jù)包,還會(huì)檢查數(shù)據(jù)包包含在哪個(gè)通信會(huì)話序列中。這種狀態(tài)敏感性有助于有狀態(tài)防火墻監(jiān)視諸如無(wú)效數(shù)據(jù)包、會(huì)話劫持企圖,以及某些拒絕服務(wù)攻擊這樣的攻擊手段。
6. 應(yīng)用層防火墻是最新一代防火墻。這種防火墻是在TCP/IP應(yīng)用層工作的,在這里可以更全面地理解與協(xié)議和服務(wù)相關(guān)聯(lián)的數(shù)據(jù)包。
代理服務(wù)
1. 所有用來(lái)保護(hù)和簡(jiǎn)化內(nèi)部網(wǎng)絡(luò),將潛在的不安全I(xiàn)nternet活動(dòng)限制在邊界之外的技術(shù)中,防火墻是核心技術(shù)。另一種相關(guān)的技術(shù)是代理服務(wù)。
2. 代理服務(wù)器可以截獲對(duì)Internet資源的請(qǐng)求,并替代客戶端轉(zhuǎn)發(fā)這些請(qǐng)求,它在客戶端和請(qǐng)求的目的服務(wù)器之間扮演了一個(gè)中介的角色。
3. 通過(guò)代理客戶端發(fā)送和接受Internet請(qǐng)求,代理服務(wù)器可以使客戶端免于直接與惡意網(wǎng)站聯(lián)系。一些代理還可以執(zhí)行內(nèi)容過(guò)濾,查看信息是否來(lái)自黑名單上的服務(wù)器,或者內(nèi)容是否帶有潛在的危險(xiǎn)。代理客戶端還常被用來(lái)限制內(nèi)部網(wǎng)絡(luò)客戶端的瀏覽范圍。
保護(hù)TCP/IP:http://kb.cnblogs.com/page/162080/ http://www.guokr.com/post/114121/
1. 安全套接字(SSL)是為了保護(hù)WEB通信而引入的一個(gè)TCP/IP安全協(xié)議集。SSL的目的是,在傳輸層上的套接字和提供那些套接字訪問(wèn)網(wǎng)絡(luò)的應(yīng)用程序之間提供一層安全。
2. SSL包含有兩個(gè)子層。SSL記錄協(xié)議是訪問(wèn)TCP的一個(gè)標(biāo)準(zhǔn)庫(kù)。在這個(gè)記錄協(xié)議紙上,是一組執(zhí)行特定服務(wù)的SSL相關(guān)協(xié)議。
3. 支持SSL的服務(wù)直接通過(guò)SSL記錄協(xié)議運(yùn)行。在連接建立之后,SSL記錄協(xié)議提供確保會(huì)話機(jī)密性和完整性所需的加密和驗(yàn)證。
4. 如同其他協(xié)議安全技術(shù)一樣,這里的技巧是要檢驗(yàn)參與者的身份和安全地交換將用來(lái)加解密數(shù)據(jù)傳輸?shù)拿荑。SSL采用公開(kāi)密鑰加密,并提供對(duì)數(shù)字這個(gè)數(shù)的支持。
5. 在SSL中會(huì)使用密鑰交換算法交換密鑰;使用密鑰對(duì)數(shù)據(jù)進(jìn)行加密;使用散列算法對(duì)數(shù)據(jù)的完整性進(jìn)行驗(yàn)證,使用數(shù)字證書(shū)證明自己的身份。
6. 握手協(xié)議:握手協(xié)議是客戶機(jī)和服務(wù)器用SSL連接通信時(shí)使用的第一個(gè)子協(xié)議,握手協(xié)議包括客戶機(jī)與服務(wù)器之間的一系列消息。SSL中最復(fù)雜的協(xié)議就是握手協(xié)議。該協(xié)議允許服務(wù)器和客戶機(jī)相互驗(yàn)證,協(xié)商加密和MAC算法以及保密密鑰,用來(lái)保護(hù)在SSL記錄中發(fā)送的數(shù)據(jù)。握手協(xié)議是在應(yīng)用程序的數(shù)據(jù)傳輸之前使用的。
7. 記錄協(xié)議:記錄協(xié)議在客戶機(jī)和服務(wù)器握手成功后使用,即客戶機(jī)和服務(wù)器鑒別對(duì)方和確定安全信息交換使用的算法后,進(jìn)入SSL記錄協(xié)議,記錄協(xié)議向SSL連接提供兩個(gè)服務(wù)——
8. 警報(bào)協(xié)議:客戶機(jī)和服務(wù)器發(fā)現(xiàn)錯(cuò)誤時(shí),向?qū)Ψ桨l(fā)送一個(gè)警報(bào)消息。如果是致命錯(cuò)誤,則算法立即關(guān)閉SSL連接,雙方還會(huì)先刪除相關(guān)的會(huì)話號(hào),秘密和密鑰。每個(gè)警報(bào)消息共2個(gè)字節(jié),第1個(gè)字節(jié)表示錯(cuò)誤類(lèi)型,如果是警報(bào),則值為1,如果是致命錯(cuò)誤,則值為2;第2個(gè)字節(jié)制定實(shí)際錯(cuò)誤類(lèi)型。
十二、配置
服務(wù)器提供IP地址的情況
1. 每一臺(tái)計(jì)算機(jī)都已經(jīng)預(yù)先配置了一個(gè)IP地址。這種情況被稱為靜態(tài)IP地址。每一臺(tái)計(jì)算機(jī)在啟動(dòng)時(shí)就知道自己的IP地址,并且能夠立刻使用網(wǎng)絡(luò)。靜態(tài)IP尋址在小型網(wǎng)絡(luò)中表現(xiàn)得很好,但是由于大型網(wǎng)絡(luò)上經(jīng)常會(huì)出現(xiàn)重新配置和更改的情況,因此靜態(tài)IP尋址也受到很多限制。
2. 靜態(tài)IP地址的缺點(diǎn):
DHCP
1. DHCP是一個(gè)用來(lái)向計(jì)算機(jī)分配TCP/IP配置參數(shù)的協(xié)議。DHCP服務(wù)器可以為DHCP客戶端提供一組TCP/IP設(shè)置,比如IP地址、子網(wǎng)掩碼和DNS服務(wù)器地址。
2. DHCP是用來(lái)分配IP地址的,所以必須使用靜態(tài)IP地址信息來(lái)配置DHCP服務(wù)器。需要在客戶端進(jìn)行配置的唯一一個(gè)網(wǎng)絡(luò)參數(shù)是將客戶端設(shè)置為從DHCP服務(wù)器接收IP地址信息。
3. 當(dāng)DHCP客戶端計(jì)算機(jī)啟動(dòng)時(shí),TCP/IP軟件將被載入到內(nèi)存中并開(kāi)始執(zhí)行相應(yīng)的操作。然而,因?yàn)檫@是TCP/IP棧還沒(méi)有IP地址,所以無(wú)法直接發(fā)送或接收數(shù)據(jù)包。計(jì)算機(jī)只能發(fā)送和監(jiān)聽(tīng)廣播數(shù)據(jù)。這種通過(guò)廣播進(jìn)行通信的功能正是DHCP進(jìn)行工作的基礎(chǔ)。 |