今天凌晨時候看書,突然想到一個問題:怎樣做到持續學習?然后得出這樣一個結論:放棄不必要的社交,控制欲望,克服懶惰。。。
然后又有了新的問題:學習效率時高時低,狀態不好怎么解決?這也是我最近在思考的問題。。。。。。
一、TCP/IP的標准化
1、TCP/IP的含義
一般來說,TCP/IP是利用IP進行通信時所必須用到的協議群的統稱。
具體點,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都屬於TCP/IP協議,而TCP/IP一詞泛指這些協議,有時稱它們為TCP/IP為網際協議族/TCP/IP協議族
如下圖所示:
2、標准化的精髓
特性:開放性、注重實用性(被標准化的協議能否被實際運用)
TCP/IP協議由IETF(國際互聯網工程任務組)討論制定;即將協議的大致規范定下來,然后進行通信試驗,及時修訂
3、規范——RFC
RFC:request for comment,即征求意見表;那些需要標准化的協議,會被計入RFC並在互聯網上公布;RFC不僅包含協議規范內容,還包括協議實現和運用的相關信息,以及實驗方面的信息
RFC通過編號組織每個協議的標准化請求;其編碼是既定的,一旦成為某個RFC的內容,就不能再對其進行修改;若要修改已有某個協議內容,則需要重新發行一個新的RFC文檔,同時,老的RFC文檔作廢
新的RFC文檔會明確規定是擴展了哪個已有RFC以及要作廢哪個已有RFC
基於每次修改RFC時都會產生新的RFC編號太麻煩,為此,采用了STD(standard)方式管理編號,其作用是:用來記錄哪個編號制定哪個協議
4、TCP/IP的標准化流程
TCP/IP的標准化流程大概分為以下幾個階段:
①.互聯網草案階段:從提出開始不斷進行討論實驗,有了一定成熟度,覺得實際可行,認為其可以進行標准化,可進入下一階段
②.提議標准階段:計入RFC,開始進入眾多設備廠商生產環節,投入試驗使用,一般為6個月,當所有參與協議的人覺得其“實用性強,不存在太多問題”,則進入下一階段
③.草案標准階段:一般為期4個月,在經過不斷的使用和討論改進后,被大眾所使用接受,那么這個草案標准就進入下一個階段
④.標准階段:到這個階段,意味着該標准已廣泛被使用且具有很強的實用性
5、RFC獲取方法
①.網址:http://www.rfc-editor.org/rfc/
ftp://ftp.rfc-editor.org/in-notes/
這兩個網址保存着所有的RFC文件,網站中有一個名為rfc-index.txt的文件,包含所有RFC概覽;RFC網站除了發布RFC相關信息,還提供RFC檢索功能
②.STD或FYI以及ID獲取地址
關於STD、FYI、ID也可以從以下網站獲取,其概覽一分別記錄在std-index.txt、fyi-index.txt等文件中
STD獲取地址:http://www.rfc-edctor.org/in-notes/std/
FYI獲取地址:http://www.rfc-edctor.org/in-notes/fyi/
ID獲取地址:http://www.rfc-edctor.org/Internet-drafts/
JPNIC的ftp服務器中的目錄:
STD獲取網址:ftp://ftp.nic.ad.jp/rfc/std/
FYI獲取網址:ftp://ftp.nic.ad.jp/rfc/fyi/
ID獲取網址:ftp://ftp.nic.ad.jp/internet-drafts/
二、互聯網基礎知識
1、互聯網定義
互聯網,英文單詞為Internet;Internet指的是將多個網絡連接使其構成一個更大的網絡,所以Internet本意為網際網
“互聯網”是指由ARPANET發展而來、互聯全世界的計算機網絡;互聯全世界的計算機網絡,現在“互聯網”對應的英文單詞為“The Internet”
與Internet對應的另一種網絡叫做intranet,該網絡指使用Internet技術將企業內部組織機構連接起來形成一個企業范圍的內部網絡,提供面向企業內部的通信服務
2、互聯網與TCP/IP關系
互聯網進行通信時,需要相應的網絡協議,TCP/IP是為使用互聯網而開發定制的協議族;因此,互聯網的協議就是TCP/IP
3、互聯網的結構
小范圍內的網絡連接形成機構內部網絡,機構內部網絡連接形成區域網絡,各個區域相互連接,則形成連接全是的互聯網;互聯網是一個有層次的網絡
互聯網中每個網絡都是由骨干網(BackBone)和末端網(Stub)組成;每個網絡之間通過NOC相連;如果運營商不同,則網絡連接方式和使用方法也不同。異構網絡需要有IX支持
互聯網就是眾多異構網絡通過IX互聯的一個巨型網絡
△ NOC:Network Operation Center(網絡操作中心)
△ IX:Internet Exchange:網絡交換中心
4、ISP和區域網
連接互聯網需要向ISP(internet service provider:互聯網服務提供商)或區域網提出申請,不同的ISP提供的互聯網接入服務也不同
區域網指的是特定區域內由團體或志願者提供的網絡服務,通常價格比較便宜,但有時會出現連接方式復雜或者使用有限制的情況
當申請網絡服務時,建議確認了解一下提供的具體服務條目、服務的細則(接入方式、條件、費用)等,再決定
三、TCP/IP協議分層模型
1、TCP/IP與OSI參考模型
TCP/IP與OSI在分層模塊上的區別:
OSI:注重通信協議必要的功能是什么
TCP/IP:在計算機上實現協議應該開發哪種程序
2、硬件(物理層)
TCP/IP的最底層是負責數據傳輸的硬件。這種硬件就相當於以太網或電話線路等物理層的設備,TCP/IP是在網絡互連的設備之間能夠通信的前提下才被提出的協議。
3、網絡接口層(數據鏈路層)
利用以太網中的數據鏈路進行通信,屬於接口層;將其當做“驅動程序”也可以(驅動程序是在操作系統與硬件之前起橋梁作用的軟件)
PS:有時也將硬件層和網絡接口層合並起來,稱為“網絡通信層”
4、互聯網層(網絡層)
互聯網層使用IP協議,相當於OSI中的第三層模型;IP協議基於IP地址轉發分包數據
IP協議的作用:將分組數據包發送到目的主機
TCP/IP分層中的互聯網層與傳輸層的功能通常由操作系統提供,尤其是路由器,它必須得實現通過互聯網層轉發分組數據包的功能
連接互聯網的所有主機跟路由器必須都實現IP功能,其他鏈接互聯網的網絡設備(網橋、中繼器)則不是必須
IP:跨越網絡傳送數據包,使整個互聯網都能收到數據的協議;傳送數據時,IP地址作為主機的標識
IP還隱含數據鏈路層的功能:通過IP,相互通信的主機之間不論經過怎樣的數據鏈路,都可以實現通信
IP是分組交換的一種協議,但是不具有重發機制;即使分組數據包未到達對端主機也不會重發;屬於非可靠性傳輸協議
ICMP:IP數據包發送過程中一旦發生異常導致無法到達對端目標地址時,需要給發送端一個發生異常的通知,ICMP就是為了該功能而定制;有時可用來診斷網絡健康狀況
ARP:從分組數據包的IP地址解析出物理地址(MAC地址)的一種協議
5、傳輸層
TCP/IP傳輸層有TCP和UDP兩個具有代表性的協議,主要功能是讓應用程序之間實現通信;其通信邏輯如下圖:
TCP:面向有連接的傳輸層協議,可以保證通信兩端主機之間的通信可達;可以正確的處理傳輸過程中丟包、傳輸亂序等異常情況;還能有效利用帶寬,緩解網絡擁堵。
UDP:面向無連接的傳輸層協議,不關注對端是否真的收到傳送的數據;如需檢查對端是否收到分組數據包,或對端是否連接到網絡,需要在應用程序中實現常用於分組數據較少或多播。廣播通信及視頻通信等領域。
6、應用層(會話層以上的分層)
TCP/IP分層中,將OSI中的會話層、表示層、應用層都集中到了應用程序中實現
TCP/IP應用的架構絕大多數術語客戶端/服務端模型;提供服務的程序叫服務端,接受服務的程序叫客戶端,服務器會預先部署到主機上,等待接收任何時刻客戶端發送的請求
常見的應用層協議:
HTTP協議:(HyperText Transfer Protocol)
瀏覽器與客戶端通信所使用的協議,傳輸數據主要格式為HTML,http協議OSI應用層協議,而HTML屬於表示層的協議
文件傳輸協議:FTP(File Transfer Protocol)
傳輸過程可以選擇用二進制還是文本方式,傳輸時會建立兩個TCP連接:發送傳輸請求時用到的控制連接和實際傳輸時用到的數據連接
電子郵件協議:SMTP(Simple Mail Transfer Protocol)
可以發送聲音圖像文字,甚至改變文字大小、顏色等
遠程登錄(TELNET與SSH):
常見的還有其他遠程登錄協議,比如:BSD UNIX系中的rlogin的r命令和X Window System中的X協議
網絡管理協議:SNMP(Simple Newwork Management Protocol)
在TCP/IP進行網絡管理時,采用該協議,其中使用SNMP管理的主機。網橋、路由器等稱作SNMP代理(Agent),進行管理的那一段叫做管理器(Manager)
在SNMP代理端,保存着網絡接口信息、通信數據量、異常數據量以及設備溫度等信息,這些信息通過MIB訪問,在TCP/IP中,SNMP屬於應用協議,MIB屬於表示層協議
MIB(Management Information Base):可透過網絡的結構變量
四、TCP/IP分層模型
1、數據包首部
每個分層都會對所發送的數據附加一個首部,首部中包含該層必要的信息;通常為協議提供的信息為包首部,所要發送的內容為數據
關於包、幀、數據報、段、消息的概述:
包:一個概括性術語,指數據整體
幀:數據鏈路層中包的單位
數據報:IP和UDP等網絡層以上分層中包的單位
段:TCP數據流中的信息
消息:應用協議中數據的單位
2、發送數據包
假設A發送郵件“早上好”給B,那么它的通信過程大概如下:
①.應用程序處理
應用程序啟動,新建郵件及內容,點擊發送,應用程序對郵件進行編碼處理,然后發送給下一層TCP
②.TCP模塊的處理
根據上層應用發來的指示,建立負責建立連接、發送連接及斷開連接;TCP提供將應用層發來的數據順利發送至對端的可靠傳輸
為了實現該功能,會在應用層數據前端加一個TCP首部,首部包括源端口號和目標端口號。序號以及校驗,隨后將附加了TCP首部的包發送給IP
③.IP模塊的處理
IP將TCP傳遞的首部和數據合並,並在首部之前加上自己的IP,IP包生成后,參考路由控制表決定接受此IP包的路由或者主機,隨后,IP包將被發送給連接這些路由或主機網絡接口的驅動程序,實現發送數據
④.網絡接口(以太網驅動)的處理
以太網接受到的IP包,對其來說就是數據,會給其加上以太網首部並進行發送處理,首部中包含接收端MAC地址,發送端MAC地址以及標志以太網類型的以太網數據協議
3、數據包接收處理
①.網絡接口(以太網驅動)的處理
主機收到以太網包,首先找到MAC地址判斷是否為發送給自己的,如果不是則丟棄數據
如果是,則確認數據類型,然后將數據包發送給對應的類型處理程序處理
②.IP模塊的處理
收到數據包先進行判斷處理,如果包首部IP地址與自己匹配則接受數據並尋找到上一層協議,並轉發給上一層進行處理
③.TCP模塊的處理
接收到數據包首先計算校驗和,判斷數據包是否被破壞,然后檢查是否按序接受數據,最后檢查端口號,確定具體應用程序
數據接受完畢,接收端發送一個“確認回執”個發送端
④.應用程序的處理
接收端應用程序會直接接收發送端的數據,並進行解析處理