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