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