有狀態協議
⑴ 為什麼說HTTP是無狀態協議
Http是一個無狀態協議,同一個會話的連續兩個請求互相不了解,他們由最新實例化的環專境進行解析,除了應用屬本身可能已經存儲在全局對象中的所有信息外,該環境不保存與會話有關的任何信息。
自己的理解,在asp.NET里:每次提交伺服器的頁面沒有任何關系,每次記錄在頁面的信息下次提交是記不住的,(除了應用本身可能已經存儲在全局對象中的所有信息外)在.net里實際就是ViewState,ViewState是asp.Net中保存頁面信息的基本單位,應用時就是保存在控制項隱藏域等中的數據
協議的狀態是指下一次傳輸可以「記住」這次傳輸信息的能力.
⑵ HTTP是一個無狀態的協議.這句話里的無狀態是什麼意思
HTTP無狀態協議是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理回需要前面的信息,則它答必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。
無狀態協議是指比如客戶獲得一張網頁之後關閉瀏覽器,然後再一次啟動瀏覽器,再登陸該網站,但是伺服器並不知道客戶關閉了一次瀏覽器。
⑶ 為什麼http是無狀態協議,什麼是有狀態協議,都是什麼意思呢
協議的狀態是指下一次傳輸可以「記住」這次傳輸信息的能力.
http是不會為了下一次連接而維護這次連接所傳輸的信息.
所以是無狀態協議
而DNS是由狀態協議
⑷ http協議是無狀態的協議是什麼意思
HTTP無狀態協議是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。
客戶端與伺服器進行動態交互的Web應用程序出現之後,HTTP無狀態的特性嚴重阻礙了這些應用程序的實現,畢竟交互是需要承前啟後的,簡單的購物車程序也要知道用戶到底在之前選擇了什麼商品。於是,兩種用於保持HTTP連接狀態的技術就應運而生了,一個是Cookie,而另一個則是Session。HTTP本身是一個無狀態的連接協議,為了支持客戶端與伺服器之間的交互,我們就需要通過不同的技術為交互存儲狀態,而這些不同的技術就是Cookie和Session了。
Cookie是通過客戶端保持狀態的解決方案。從定義上來說,Cookie就是由伺服器發給客戶端的特殊信息,而這些信息以文本文件的方式存放在客戶端,然後客戶端每次向伺服器發送請求的時候都會帶上這些特殊的信息。讓我們說得更具體一些:當用戶使用瀏覽器訪問一個支持Cookie的網站的時候,用戶會提供包括用戶名在內的個人信息並且提交至伺服器;接著,伺服器在向客戶端回傳相應的超文本的同時也會發回這些個人信息,當然這些信息並不是存放在HTTP響應體(Response Body)中的,而是存放於HTTP響應頭(Response Header);當客戶端瀏覽器接收到來自伺服器的響應之後,瀏覽器會將這些信息存放在一個統一的位置,對於Windows操作系統而言,我們可以從: [系統盤]:\Documents and Settings\[用戶名]\Cookies目錄中找到存儲的Cookie;自此,客戶端再向伺服器發送請求的時候,都會把相應的Cookie再次發回至伺服器。而這次,Cookie信息則存放在HTTP請求頭(Request Header)了。
⑸ 請問鏈路狀態路由協議和距離矢量路由協議都有哪些具體區別呢
不擅長畫對照表,所以只能像上次那樣靠打比方亂講一氣了...
距離矢量路由協議相當於是不帶地圖的自駕游。比如從北京到新疆,用的是邊走打聽的方法。每到一個村(子網路)就要找個人(路由)打聽到下個村(子網路)怎麼走,因為路上的人都不知道從北京到新疆具體怎麼走(路由只和鄰居路由交換數據,所以不知道整個網路的拓撲細節)。
你能打聽到的信息(更新)只包括下個村在哪兒(矢量)以及距離(度量值),如果問出的道不止一條,那你自然而然會選擇最優路徑。但這種道聽途說式的路由協議可想而知會有一堆隱患,因為每個人了解的路況都是從別人那兒聽來的。比如你打聽到的方向和距離可能是錯的,又或者前方某個村的路壞掉了但消息還沒傳到這里...
所以,為了避免死在半路上,就要折騰出各種完善措施:抑制計時器、路由失效計時器、毒性逆轉、RIP水平分割、傳說中的16跳(計數到無窮大)、觸發更新、非同步更新等等聽起來很華麗的技術其實不過是距離矢量路由協議身上打的補丁而已。
鏈路狀態路由協議則相當於車載GPS,而且還是默認半小時更新一次全國路況的。每個村的每個人兜里都揣著一份自己寫的路況報告(LSA/鏈路狀態報告),而且上傳給每個村的每個人(黑話叫「泛洪LSA」),直到每個村的每個人都知道其他每個村的每個人的LSA為止(不好好看教材的下場就是看我寫的惡心句子...)。
兩相一比較區別就很明顯了,最大的區別就是錢和可靠性唄...前者只需要更新到下個村的路況,而且還是道聽途說不保證對錯的,後者更新的那是全國路況啊。CPU、內存乃至帶寬都是後者消耗得多,連高帥富都用不起更新時間更短的豪華版,所以前者默認更新周期30秒,後者默認更新周期30分鍾。
應該還有很多別的令人頭大的具體區別。但偶的美德之一就是不求甚解<_<
個人趕腳嘛,不差錢又追求收斂速度就選後者。前者那些破補丁(各種計時器各種分割各種逆轉各種更新方式各種16跳)忒惡心人了。
⑹ 常見的http協議的狀態消息有哪些
一、http協議
概述:
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議。所有的WWW文件都必須遵守這個標准。
HTTP是一個客戶端和伺服器端請求和應答的標准(TCP)。客戶端是終端用戶,伺服器端是網站。通過使用Web瀏覽器、網路爬蟲或者其它的工具,客戶端發起一個到伺服器上指定埠(默認埠為80)的HTTP請求。(我們稱這個客戶端)叫用戶代理(user
agent)。應答的伺服器上存儲著(一些)資源,比如HTML文件和圖像。(我們稱)這個應答伺服器為源伺服器(origin server)。
HTTP協議採用了請求/響應模型。客戶端向伺服器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的類似於MIME的消息結構。伺服器以一個狀態行作為響應,響應的內容包括消息協議的版本,成功或者錯誤編碼加上包含伺服器信息、實體元信息以及可能的實體內容。
特點:
支持客戶/伺服器模式。
簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯系的類型不同。由於HTTP協議簡單,使得HTTP伺服器的程序規模小,因而通信速度很快。
靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
無連接:無連接的含義是限制每次連接只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。
總結:以上就是http協議最基本的概述和特點,內容較多,且都比較難理解,以後的隨筆會隨之更新和http協議相關的技術內容。
二、狀態碼
眾所周知,做web開發,常見的幾種狀態碼是必須要了解的,而且幾個狀態碼在面試中也有可能要考。
在這其中,200,304,403,404,500,是必須要知道的,且在爬蟲工程師這個職位,這些所有狀態碼都是必須要知道的。
⑺ http協議無狀態是什麼意思讓web應用有狀態的機制
http協議無狀態的意思如下:
1、協議對於事務處理沒有記憶能力【事物處理】【記憶能力】
2、對同一個url請求沒有上下文關系【上下文關系】
3、每次的請求都是獨立的,它的執行情況和結果與前面的請求和之後的請求是無直接關系的,它不會受前面的請求應答情況直接影響,也不會直接影響後面的請求應答情況【無直接聯系】【受直接影響】
4、伺服器中沒有保存客戶端的狀態,客戶端必須每次帶上自己的狀態去請求伺服器【狀態】
Web應用=http協議+session、cookies等狀態機制+其他輔助的機制。
其實,應用程序(軟體通信)的有狀態與否是一個非常通用的概念。我們可知,在網路協議中,我們稱TCP為一個有狀態的傳輸層通信協議,而UDP則不是;IP是無狀態的。
要明白這種有狀態與否的判定,是指你這一協議棧層次所要實現的功能——是否由上下文決定——來判定的(是否受之前的通信過程直接影響、是否直接影響之後的通信過程)。
(7)有狀態協議擴展閱讀
關於網路應用層次中的各層次的有無狀態情況。可以知道,支持協議(下層)的有無狀態,消費協議(上層)的有無狀態,沒有直接的關系。每層協議的有無狀態與它的本身功能執行的時候的有無狀態的特點有關。
(1)IP是無狀態的,它只負責將一個IP包發送到指定的IP地址上去。它不會考慮這個包與前面已經發送的包和後面的包的聯系。(可能是重發包、可能是不連續包,它不管)。
(2)TCP是有狀態的,它通過包頭中的一些控制欄位(序列編碼等)來表明各個包之間的關系(前後關系,重包與否等等)。所以,通過這個協議你可以做到一個可靠的傳輸。其實這里的面向連接其實就是「三次握手」。
三次握手,首先可以保證對方的存在,其次握手的所交換的內容是為將來進行有狀態的傳輸做准備。
(3)UDP是無狀態的,它僅僅是在IP上加了Port,其他的事情什麼也不幹。這樣它不可能做到可靠的傳輸,同樣也不需要連接。
(4)HTTP是無狀態的,它的底層協議是由狀態的TCP,但是HTTP的一次完整協議動作,裡面是使用有狀態的TCP協議來完成的。
而每次協議動作之間沒有任何關系。例如:第7次請求HTTP協議包,它或許是因為上次沒有請求成功而重傳,或許是上次的後續請求,或許是其他的,這些HTTP自身都不知道。
(5)www應用,很多時候,www應用是需要每個HTTP請求或應答動作之間是有關聯的,那就是使應用有狀態。這樣才能提供給用戶最好的用戶體驗。
⑻ HTTP協議是無狀態協議,怎麼理解
自己的理解,在asp.net里:每次提交伺服器的頁面沒有任何關系,每次記錄在頁面的信息下次提交是記不住的,(除了應用本身可能已經存儲在全局對象中的所有信息外)在.net里實際就是ViewState,ViewState是asp.net中保存頁面信息的基本單位,應用時就是保存在控制項隱藏域等中的數據 協議的狀態是指下一次傳輸可以「記住」這次傳輸信息的能力. http是不會為了下一次連接而維護這次連接所傳輸的信息的. 無狀態是指,當瀏覽器發送請求給伺服器的時候,伺服器響應,但是同一個瀏覽器再發送請求給伺服器的時候,他會響應,但是他不知道你就是剛才那個瀏覽器,簡單地說,就是伺服器不會去記得你,所以是無狀態協議。 而DNS是有狀態協議 。 HTTP是一個屬於應用層的面向對象的協議,HTTP協議一共有五大特點,1、支持客戶/伺服器模式;2、簡單快速;3、靈活;4、無連接;5、無狀態;「無狀態」是HTTP協議的主要特點之一,以下為「無狀態」的解釋。 無狀態:是指 協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。 既然HTTP協議的目的在於支持超文本的傳輸,更加廣義一些就是支持資源的傳輸,那麼在客戶端瀏覽器向HTTP伺服器發送請求,繼而HTTP伺服器將相應的資源發回給客戶端這樣一個過程中,無論對於客戶端還是伺服器,都沒有必要記錄這個過程,因為每一次請求和響應都是相對獨立的,就好像你在自動售貨機前投下硬幣購買商品一樣,誰都不會也不需要記住這樣一個交易過程。一般而言,一個URL對應著唯一的超文本,而HTTP伺服器也絕對公平公正,不管你是Michael,還是Jordon,它都會根據接收到的URL請求返回相同的超文本。正是因為這樣的唯一性,使得記錄用戶的行為狀態變得毫無意義,所以,HTTP協議被設計為無狀態的連接協議符合它本身的需求。 然而,隨著時間的推移,人們發現靜態的HTML著實無聊而乏味,增加動態生成的內容才會令Web應用程序變得更加有用。於是乎,HTML的語法在不斷膨脹,其中最重要的是增加了表單(Form);客戶端也增加了諸如腳本處理、DOM處理等功能;對於伺服器,則相應的出現了CGI(Common Gateway Interface)以處理包含表單提交在內的動態請求。在這種客戶端與伺服器進行動態交互的Web應用程序出現之後,HTTP無狀態的特性嚴重阻礙了這些應用程序的實現,畢竟交互是需要承前啟後的,簡單的購物車程序也要知道用戶到底在之前選擇了什麼商品。於是,兩種用於保持HTTP連接狀態的技術就應運而生了,一個是Cookie,而另一個則是Session。 Cookie是通過客戶端保持狀態的解決方案。從定義上來說,Cookie就是由伺服器發給客戶端的特殊信息,而這些信息以文本文件的方式存放在客戶端,然後客戶端每次向伺服器發送請求的時候都會帶上這些特殊的信息。讓我們說得更具體一些:當用戶使用瀏覽器訪問一個支持Cookie的網站的時候,用戶會提供包括用戶名在內的個人信息並且提交至伺服器;接著,伺服器在向客戶端回傳相應的超文本的同時也會發回這些個人信息,當然這些信息並不是存放在HTTP響應體(Response Body)中的,而是存放於HTTP響應頭(Response Header);當客戶端瀏覽器接收到來自伺服器的響應之後,瀏覽器會將這些信息存放在一個統一的位置,對於Windows操作系統而言,我們可以從:[系統盤]:\Documents and Settings\[用戶名]\Cookies目錄中找到存儲的Cookie;自此,客戶端再向伺服器發送請求的時候,都會把相應的Cookie再次發回至伺服器。而這次,Cookie信息則存放在HTTP請求頭(Request Header)了。 有了Cookie這樣的技術實現,伺服器在接收到來自客戶端瀏覽器的請求之後,就能夠通過分析存放於請求頭的Cookie得到客戶端特有的信息,從而動態生成與該客戶端相對應的內容。通常,我們可以從很多網站的登錄界面中看到「請記住我」這樣的選項,如果你勾選了它之後再登錄,那麼在下一次訪問該網站的時候就不需要進行重復而繁瑣的登錄動作了,而這個功能就是通過Cookie實現的。 與Cookie相對的一個解決方案是Session,它是通過伺服器來保持狀態的。由於Session這個詞彙包含的語義很多,因此需要在這里明確一下Session的含義。首先,我們通常都會把Session翻譯成會話,因此我們可以把客戶端瀏覽器與伺服器之間一系列交互的動作稱為一個Session。從這個語義出發,我們會提到Session持續的時間,會提到在Session過程中進行了什麼操作等等;其次,Session指的是伺服器端為客戶端所開辟的存儲空間,在其中保存的信息就是用於保持狀態。從這個語義出發,我們則會提到往Session中存放什麼內容,如何根據鍵值從Session中獲取匹配的內容等。 要使用Session,第一步當然是創建Session了。那麼Session在何時創建呢?當然還是在伺服器端程序運行的過程中創建的,不同語言實現的應用程序有不同創建Session的方法,而在Java中是通過調用HttpServletRequest的getSession方法(使用true作為參數)創建的。在創建了Session的同時,伺服器會為該Session生成唯一的Session id,而這個Session id在隨後的請求中會被用來重新獲得已經創建的Session;在Session被創建之後,就可以調用Session相關的方法往Session中增加內容了,而這些內容只會保存在伺服器中,發到客戶端的只有Session id;當客戶端再次發送請求的時候,會將這個Session id帶上,伺服器接受到請求之後就會依據Session id找到相應的Session,從而再次使用之。正式這樣一個過程,用戶的狀態也就得以保持了。有關Session的內容還比較多,在以後的Post中,我還將繼續講述。
⑼ arp是無狀態協議嗎
在以太抄網協議中規定,同一區域網中的一台主機要和另一台主機進行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協議棧中,網路層和傳輸層只關心目標主機的IP地址。這就導致在乙太網中使用IP協議時,數據鏈路層的乙太網協議接到上層IP協議提供的數據中,只包含目的主機的IP地址。於是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。所謂地址解析(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
這是網路的,其實就是根據IP知道MAC,然後才可以在乙太網(區域網)中傳輸數據。
⑽ 常見的網路協議有哪些
第一章 概述
電信網、計算機網和有線電視網 三網合一
TCP/IP是當前的網際網路協議簇的總稱,TCP和 IP是其中的兩個最重要的協議。
RFC標准軌跡由3個成熟級構成:提案標准、草案標准和標准。
第二章 計算機網路與網際網路體系結構
根據拓撲結構:計算機網路可以分為匯流排型網、環型網、星型網和格狀網。
根據覆蓋范圍:計算機網路可以分為廣域網、城域網、區域網和個域網。
網路可以劃分成:資源子網和通信子網兩個部分。
網路協議是通信雙方共同遵守的規則和約定的集合。網路協議包括三個要素,即語法、語義和同步規則。
通信雙方對等層中完成相同協議功能的實體稱為對等實體 ,對等實體按協議進行通信。
有線接入技術分為銅線接入、光纖接入和混合光纖同軸接入技術。
無線接入技術主要有衛星接入技術、無線本地環路接入和本地多點分配業務。
網關實現不同網路協議之間的轉換。
網際網路採用了網路級互聯技術,網路級的協議轉換不僅增加了系統的靈活性,而且簡化了網路互聯設備。
網際網路對用戶隱藏了底層網路技術和結構,在用戶看來,網際網路是一個統一的網路。
網際網路將任何一個能傳輸數據分組的通信系統都視為網路,這些網路受到網路協議的平等對待。
TCP/IP 協議分為 4 個協議層 :網路介面層、網路層、傳輸層和應用層。
IP 協議既是網路層的核心協議 ,也是 TCP/IP 協議簇中的核心協議。
第四章 地址解析
建立邏輯地址與物理地址之間 映射的方法 通常有靜態映射和動態映射。動態映射是在需要獲得地址映射關系時利用網路通信協議直接從其他主機上獲得映射信息。 網際網路採用了動態映射的方法進行地址映射。
獲得邏輯地址與物理地址之間的映射關系稱為地址解析 。
地址解析協議 ARP 是將邏輯地址( IP 地址)映射到物理地址的動態映射協議。
ARP 高速緩存中含有最近使用過的 IP 地址與物理地址的映射列表。
在 ARP 高速緩存中創建的靜態表項是永不超時的地址映射表項。
反向地址解析協議 RARP 是將給定的物理地址映射到邏輯地址( IP地址)的動態映射。RARP需要有RARP 伺服器幫助完成解析。
ARP請求和 RARP請求,都是採用本地物理網路廣播實現的。
在代理ARP中,當主機請求對隱藏在路由器後面的子網中的某一主機 IP 地址進行解析時,代理 ARP路由器將用自己的物理地址作為解析結果進行響應。
第五章 IP協議
IP是不可靠的無連接數據報協議,提供盡力而為的傳輸服務。
TCP/IP 協議的網路層稱為IP層.
IP數據報在經過路由器進行轉發時一般要進行三個方面的處理:首部校驗、路由選擇、數據分片
IP層通過IP地址實現了物理地址的統一,通過IP數據報實現了物理數據幀的統一。 IP 層通過這兩個方面的統一屏蔽了底層的差異,向上層提供了統一的服務。
IP 數據報由首部和數據兩部分構成 。首部分為定長部分和變長部分。選項是數據報首部的變長部分。定長部分 20 位元組,選項不超過40位元組。
IP 數據報中首部長度以 32 位字為單位 ,數據報總長度以位元組為單位,片偏移以 8 位元組( 64 比特)為單位。數據報中的數據長度 =數據報總長度-首部長度× 4。
IP 協議支持動態分片 ,控制分片和重組的欄位是標識、標志和片偏移, 影響分片的因素是網路的最大傳輸單元 MTU ,MTU 是物理網路幀可以封裝的最大數據位元組數。通常不同協議的物理網路具有不同的MTU 。分片的重組只能在信宿機進行。
生存時間TTL是 IP 數據報在網路上傳輸時可以生存的最大時間,每經過一個路由器,數據報的TTL值減 1。
IP數據報只對首部進行校驗 ,不對數據進行校驗。
IP選項用於網路控制和測試 ,重要包括嚴格源路由、寬松源路由、記錄路由和時間戳。
IP協議的主要功能 包括封裝 IP 數據報,對數據報進行分片和重組,處理數據環回、IP選項、校驗碼和TTL值,進行路由選擇等。
在IP 數據報中與分片相關的欄位是標識欄位、標志欄位和片偏移欄位。
數據報標識是分片所屬數據報的關鍵信息,是分片重組的依據
分片必須滿足兩個條件: 分片盡可能大,但必須能為幀所封裝 ;片中數據的大小必須為 8 位元組的整數倍 ,否則 IP 無法表達其偏移量。
分片可以在信源機或傳輸路徑上的任何一台路由器上進行,而分片的重組只能在信宿機上進行片重組的控制主要根據 數據報首部中的標識、標志和片偏移欄位
IP選項是IP數據報首部中的變長部分,用於網路控制和測試目的 (如源路由、記錄路由、時間戳等 ),IP選項的最大長度 不能超過40位元組。
1、IP 層不對數據進行校驗。
原因:上層傳輸層是端到端的協議,進行端到端的校驗比進行點到點的校驗開銷小得多,在通信線路較好的情況下尤其如此。另外,上層協議可以根據對於數據可靠性的要求, 選擇進行校驗或不進行校驗,甚至可以考慮採用不同的校驗方法,這給系統帶來很大的靈活性。
2、IP協議對IP數據報首部進行校驗。
原因: IP 首部屬於 IP 層協議的內容,不可能由上層協議處理。
IP 首部中的部分欄位在點到點的傳遞過程中是不斷變化的,只能在每個中間點重新形成校驗數據,在相鄰點之間完成校驗。
3、分片必須滿足兩個條件:
分片盡可能大,但必須能為幀所封裝 ;
片中數據的大小必須為8位元組的整數倍,否則IP無法表達其偏移量。
第六章 差錯與控制報文協議(ICMP)
ICMP 協議是 IP 協議的補充,用於IP層的差錯報告、擁塞控制、路徑控制以及路由器或主機信息的獲取。
ICMP既不向信宿報告差錯,也不向中間的路由器報告差錯,而是 向信源報告差錯 。
ICMP與 IP協議位於同一個層次,但 ICMP報文被封裝在IP數據報的數據部分進行傳輸。
ICMP 報文可以分為三大類:差錯報告、控制報文和請求 /應答報文。
ICMP 差錯報告分為三種 :信宿不可達報告、數據報超時報告和數據報參數錯報告。數據報超時報告包括 TTL 超時和分片重組超時。
數據報參數錯包括數據報首部中的某個欄位的值有錯和數據報首部中缺少某一選項所必須具有的部分參數。
ICMP控制報文包括源抑制報文和重定向報文。
擁塞是無連接傳輸時缺乏流量控制機制而帶來的問題。ICMP 利用源抑制的方法進行擁塞控制 ,通過源抑制減緩信源發出數據報的速率。
源抑制包括三個階段 :發現擁塞階段、解決擁塞階段和恢復階段。
ICMP 重定向報文由位於同一網路的路由器發送給主機,完成對主機的路由表的刷新。
ICMP 回應請求與應答不僅可以被用來測試主機或路由器的可達性,還可以被用來測試 IP 協議的工作情況。
ICMP時間戳請求與應答報文用於設備間進行時鍾同步 。
主機利用 ICMP 路由器請求和通告報文不僅可以獲得默認路由器的 IP 地址,還可以知道路由器是否處於活動狀態。
第七章 IP 路由
數據傳遞分為直接傳遞和間接傳遞 ,直接傳遞是指直接傳到最終信宿的傳輸過程。間接傳遞是指在信
源和信宿位於不同物理網路時,所經過的一些中間傳遞過程。
TCP/IP 採用 表驅動的方式 進行路由選擇。在每台主機和路由器中都有一個反映網路拓撲結構的路由表,主機和路由器能夠根據 路由表 所反映的拓撲信息找到去往信宿機的正確路徑。
通常路由表中的 信宿地址採用網路地址 。路徑信息採用去往信宿的路徑中的下一跳路由器的地址表示。
路由表中的兩個特殊表目是特定主機路由和默認路由表目。
路由表的建立和刷新可以採用兩種不同 的方式:靜態路由和動態路由。
自治系統 是由獨立管理機構所管理的一組網路和路由器組成的系統。
路由器自動獲取路徑信息的兩種基本方法是向量—距離演算法和鏈路 —狀態演算法。
1、向量 — 距離 (Vector-Distance,簡稱 V—D)演算法的基本思想 :路由器周期性地向與它相鄰的路由器廣播路徑刷新報文,報文的主要內容是一組從本路由器出發去往信宿網路的最短距離,在報文中一般用(V,D)序偶表示,這里的 V 代表向量,標識從該路由器可以到達的信宿 (網路或主機 ),D 代表距離,指出從該路由器去往信宿 V 的距離, 距離 D 按照去往信宿的跳數計。 各個路由器根據收到的 (V ,D)報文,按照最短路徑優先原則對各自的路由表進行刷新。
向量 —距離演算法的優點是簡單,易於實現。
缺點是收斂速度慢和信息交換量較大。
2、鏈路 — 狀態 (Link-Status,簡稱 L-S)演算法的基本思想 :系統中的每個路由器通過從其他路由器獲得的信息,構造出當前網路的拓撲結構,根據這一拓撲結構,並利用 Dijkstra 演算法形成一棵以本路由器為根的最短路徑優先樹, 由於這棵樹反映了從本節點出發去往各路由節點的最短路徑, 所以本節點就可以根據這棵最短路徑優先樹形成路由表。
動態路由所使用的路由協議包括用於自治系統內部的 內部網關協 議和用於自治系統之間的外部網關協議。
RIP協議在基本的向量 —距離演算法的基礎上 ,增加了對路由環路、相同距離路徑、失效路徑以及慢收斂問題的處理。 RIP 協議以路徑上的跳數作為該路徑的距離。 RIP 規定,一條有效路徑的距離不能超過
RIP不適合大型網路。
RIP報文被封裝在 UDP 數據報中傳輸。RIP使用 UDP 的 520 埠號。
3、RIP 協議的三個要點
僅和相鄰路由器交換信息。
交換的信息是當前本路由器所知道的全部信息,即自己的路由表。
按固定的時間間隔交換路由信息,例如,每隔30秒。
4、RIP 協議的優缺點
RIP 存在的一個問題是當網路出現故障時,要經過比較長的時間才能將此信息傳送到所有的路由器。
RIP 協議最大的優點就是實現簡單,開銷較小。
RIP 限制了網路的規模,它能使用的最大距離為15(16表示不可達)。
路由器之間交換的路由信息是路由器中的完整路由表,因而隨著網路規模的擴大,開銷也就增加。
5、為了防止計數到無窮問題,可以採用以下三種技術。
1)水平 分割 法(Split Horizon) 水平分割法的基本思想:路由器從某個介面接收到的更新信息不允許再從這個介面發回去。在圖 7-9 所示的例子中, R2 向 R1 發送 V-D 報文時,不能包含經過 R1 去往 NET1的路徑。因為這一信息本身就是 R1 所產生的。
2) 保持法 (Hold Down) 保持法要求路由器在得知某網路不可到達後的一段時間內,保持此信息不變,這段時間稱為保持時間,路由器在保持時間內不接受關於此網路的任何可達性信息。
3) 毒性逆轉法 (Poison Reverse)毒性逆轉法是水平分割法的一種變化。當從某一介面發出信息時,凡是從這一介面進來的信息改變了路由表表項的, V-D 報文中對應這些表目的距離值都設為無窮 (16)。
OSPF 將自治系統進一步劃分為區域,每個區域由位於同一自治系統中的一組網路、主機和路由器構成。區域的劃分不僅使得廣播得到了更好的管理,而且使 OSPF能夠支持大規模的網路。
OSPF是一個鏈路 —狀態協議。當網路處於收斂狀態時, 每個 OSPF路由器利用 Dijkstra 演算法為每個網路和路由器計算最短路徑,形成一棵以本路由器為根的最短路徑優先 (SPF)樹,並根據最短路徑優先樹構造路由表。
OSPF直接使用 IP。在IP首部的協議欄位, OSPF協議的值為 89。
BGP 是採用路徑 —向量演算法的外部網關協議 , BGP 支持基於策略的路由,路由選擇策略與政治、經濟或安全等因素有關。
BGP 報文分為打開、更新、保持活動和通告 4 類。BGP 報文被封裝在 TCP 段中傳輸,使用TCP的179 號埠 。
第八章 傳輸層協議
傳輸層承上啟下,屏蔽通信子網的細節,向上提供通用的進程通信服務。傳輸層是對網路層的加強與彌補。 TCP 和 UDP 是傳輸層 的兩大協議。
埠分配有兩種基本的方式:全局埠分配和本地埠分配。
在網際網路中採用一個 三元組 (協議,主機地址,埠號)來全局惟一地標識一個進程。用一個五元組(協議 ,本地主機地址 ,本地埠號 ,遠地主機地址 ,遠地埠號)來描述兩個進程的關聯。
TCP 和 UDP 都是提供進程通信能力的傳輸層協議。它們各有一套埠號,兩套埠號相互獨立,都是從0到 65535。
TCP 和 UDP 在計算校驗和時引入偽首部的目的是為了能夠驗證數據是否傳送到了正確的信宿端。
為了實現數據的可靠傳輸, TCP 在應用進程間 建立傳輸連接 。TCP 在建立連接時採用 三次握手方法解決重復連接的問題。在拆除連接時採用 四次握手 方法解決數據丟失問題。
建立連接前,伺服器端首先被動打開其熟知的埠,對埠進行監聽。當客戶端要和伺服器建立連接時,發出一個主動打開埠的請求,客戶端一般使用臨時埠。
TCP 採用的最基本的可靠性技術 包括流量控制、擁塞控制和差錯控制。
TCP 採用 滑動窗口協議 實現流量控制,滑動窗口協議通過發送方窗口和接收方窗口的配合來完成傳輸控制。
TCP 的 擁塞控制 利用發送方的窗口來控制注入網路的數據流的速度。發送窗口的大小取通告窗口和擁塞窗口中小的一個。
TCP通過差錯控制解決 數據的毀壞、重復、失序和丟失等問題。
UDP 在 IP 協議上增加了進程通信能力。此外 UDP 通過可選的校驗和提供簡單的差錯控制。但UDP不提供流量控制和數據報確認 。
1、傳輸層( Transport Layer)的任務 是向用戶提供可靠的、透明的端到端的數據傳輸,以及差錯控制和流量控制機制。
2 「傳輸層提供應用進程間的邏輯通信 」。「邏輯通信 」的意思是:傳輸層之間的通信好像是沿水平方向傳送數據。但事實上這兩個傳輸層之間並沒有一條水平方向的物理連接。
TCP 提供的可靠傳輸服務有如下五個特徵 :
面向數據流 ; 虛電路連接 ; 有緩沖的傳輸 ; 無結構的數據流 ; 全雙工連接 .
3、TCP 採用一種名為 「帶重傳功能的肯定確認 ( positive acknowledge with retransmission ) 」的技術作為提供可靠數據傳輸服務的基礎。
第九章 域名系統
字元型的名字系統為用戶提供了非常直觀、便於理解和記憶的方法,非常符合用戶的命名習慣。
網際網路採用層次型命名機制 ,層次型命名機制將名字空間分成若乾子空間,每個機構負責一個子空間的管理。 授權管理機構可以將其管理的子名字空間進一步劃分, 授權給下一級機構管理。名字空間呈一種樹形結構。
域名由圓點 「.」分開的標號序列構成 。若域名包含從樹葉到樹根的完整標號串並以圓點結束,則稱該域名為完全合格域名FQDN。
常用的三塊頂級域名 為通用頂級域名、國家代碼頂級域名和反向域的頂級域名。
TCP/IP 的域名系統是一個有效的、可靠的、通用的、分布式的名字 —地址映射系統。區域是 DNS 伺服器的管理單元,通常是指一個 DNS 伺服器所管理的名字空間 。區域和域是不同的概念,域是一個完整的子樹,而區域可以是子樹中的任何一部分。
名字伺服器的三種主要類型是 主名字伺服器、次名字伺服器和惟高速緩存名字伺服器。主名字伺服器擁有一個區域文件的原始版本,次名字伺服器從主名字伺服器那裡獲得區域文件的拷貝,次名字伺服器通過區域傳輸同主名字伺服器保持同步。
DNS 伺服器和客戶端屬於 TCP/IP 模型的應用層, DNS 既可以使用 UDP,也可以使用 TCP 來進行通信。 DNS 伺服器使用 UDP 和 TCP 的 53 號熟知埠。
DNS 伺服器能夠使用兩種類型的解析: 遞歸解析和反復解析 。
DNS 響應報文中的回答部分、授權部分和附加信息部分由資源記錄構成,資源記錄存放在名字伺服器的資料庫中。
頂級域 cn 次級域 e.cn 子域 njust.e.cn 主機 sery.njust.e.cn
TFTP :普通文件傳送協議( Trivial File Transfer Protocol )
RIP: 路由信息協議 (Routing Information Protocol)
OSPF 開放最短路徑優先 (Open Shortest Path First)協議。
EGP 外部網關協議 (Exterior Gateway Protocol)
BGP 邊界網關協議 (Border Gateway Protocol)
DHCP 動態主機配置協議( Dynamic Host Configuration Protocol)
Telnet工作原理 : 遠程主機連接服務
FTP 文件傳輸工作原理 File Transfer Protocol
SMTP 郵件傳輸模型 Simple Message Transfer Protocol
HTTP 工作原理