一. 操作系統基礎
操作系統(Operatin System,簡稱OS)是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在"裸機"上的最基本的系統軟件,任何其他軟件都必須在操作系統的支持下才能運行.
計算機組成: 硬件-->操作系統(OS)-->應用軟件
二. 網絡通信原理(參考文檔)
2.1 互聯網的本質就是一系列網絡協議
(1)概述
當我們使用電腦,在瀏覽器上輸出網址,對目標網站進行訪問時,電腦將輸入的網址變成了電信號發送出去,從而讓目標網站的服務器接收到我們的請求,最后再應答我們的請求.事實上,在這個通信過程中,雙方發送的信息都是具有固定格式的,這種讓所有電腦都能識別的信息格式,就像英語成為世界所有人通信標准一樣,如果把計算機看成是分布於世界各地的人,那么連接連接兩台計算機之間的Internet實際上就是一系列統一的標准,這些標准被稱之為互聯網協議.因此,互聯網的本質就是一系列的協議,總稱為"互聯網協議(Internet Protocol Suite)".
(2)互聯網協議的功能: 定義計算機如何接入Internet, 以及接入Internet的計算機通信的標准.
(3)網絡通信流程(以訪問"京東"為例)
流程描述:
第一步:
用戶打開瀏覽器,在地址欄輸入網址(域名):www.jd.com,請求訪問該網站
第二步: 電腦將請求信息發送給交換機,交換機把信息發送給路由器,路由器把信息發送給DNS服務器,DNS服務器通過DNS協議把域名轉換成IP地址,然后把IP地址返還給路由器
第三步: 在查到了京東服務器的IP地址以后,路由器通過路由協議計算出一個路由轉發的最優路徑,將請求信息還送給這個IP地址對應的京東路由器
第四步:
京東路由器把請求信息發送給京東網站的服務器上
第五步:
京東網站服務器按照來的時候的路徑,再返回給用戶自己的應答信息
2.2 osi七層協議(參考文檔)
互聯網協議按照功能不同分為osi七層, tcp/ip五層, 或tcp/ip四層.

(1)osi七層: 應用層 <--> 表示層 <--> 會話層 <--> 傳輸層 <--> 網絡層 <--> 數據鏈路層 <--> 物理層
(2)tcp/ip五層: 應用層 <--> 傳輸層 <--> 網絡層 <--> 數據鏈路層 <--> 物理層
(3)tcp/ip四層: 應用層 <--> 傳輸層 <--> 網絡層 <--> 物理層
2.3 tcp/ip五層模型講解
應用層 <--> 傳輸層 <--> 網絡層 <--> 數據鏈路層 <--> 物理層
用戶感知到的只是最上面一層應用層,自上而下每層都依賴於下一層,所以我們從最下一層開始切入,比較好理解每層都運行特定的協議,越往上越靠近用戶,越往下越靠近硬件.
2.3.1物理層
物理層功能: 主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0.
2.3.2數據鏈路層
數據鏈路層功能: 定義了電信號的分組方式.
以太網協議: 早期的時候各個公司都有自己的分組方式,后來形成了統一的標准,即以太網協議(Ethernet).
mac地址: 每塊網卡出廠時都被燒制上一個世界唯一的mac地址,它相當於電腦的上網身份證.
廣播: 有了mac地址,同一網絡內的兩台主機就可以通信了(一台主機通過arp協議獲取另一台主機的mac地址).Ethernet(以太網)采用最原始的方式,以廣播的方式進行通信,即計算機通信基本靠"吼".
2.3.3網絡層
網絡層由來:有了ethernet,mac地址,廣播的發送方式,世界上的計算機就可以彼此通信了,問題是世界范圍的互聯網是由一個個彼此隔離的小的局域網組成的,如果所有的通信都采用以太網的廣播方式,那么一台機器發送的報全世界都會收到,如此一來不僅僅會造成效率低下,更嚴重的是會造成網絡擁堵.因此必須找出一種方法來區分哪些計算機屬於同一廣播域,哪些不是.如果是就采用廣播的方式發送,如果不是就采用路由的方式(向不同廣播域/子網分發數據包),然而mac地址是無法區分的,它只跟廠商有關.
網絡層功能: 引入一套新的地址用來區分不同的廣播域/子網,這套地址即網絡地址.
IP協議: 規定網絡地址的協議叫ip協議,它定義的地址稱之為ip地址,廣泛采用的v4版本即ipv4.一個IP地址通常寫成四段點分十進制數.
子網掩碼: 子網掩碼是表示子網絡特征的一個參數,通過子網掩碼可以判斷任意兩個IP地址是否處在同一個子網絡.
IP協議的作用: 為每一台計算機分配IP地址,確定哪些地址在同一個子網絡.
2.3.4傳輸層
傳輸層功能:建立端口到端口的通信(端對端通信)
補充:端口范圍0-65535,0-1023為系統占用端口
tcp協議:
(1)TCP把連接作為最基本的對象,每一條TCP連接都有兩個端點,這種端點我們叫作套接字(socket),它的定義為端口號拼接到IP地址即構成了套接字,例如,若IP地址為192.3.4.16 而端口號為80,那么得到的套接字為192.3.4.16:80。
(2)當應用程序希望通過 TCP 與另一個應用程序通信時,它會發送一個通信請求。這個請求必須被送到一個確切的地址。在雙方“握手”之后,TCP 將在兩個應用程序之間建立一個全雙工 (full-duplex,雙方都可以收發消息) 的通信。這個全雙工的通信將占用兩個計算機之間的通信線路,直到它被一方或雙方關閉為止。
(3)TCP是可靠傳輸,TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。
(4)TCP與UDP區別
tcp協議:面向連接,消息可靠,相對udp來講,傳輸速度慢,消息是面向流的,無消息保護邊界(0).
udp協議:面向無連接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護邊界.
(5)tcp三次握手和四次揮手(更多底層的描述請點這里)
三次握手:
第一次: Client詢問Server
第二次: Server應答Client, Server詢問Client
第三次: Client應答Server
四次揮手:
第一次: Client發送斷開請求,進入終止等待1狀態.
第二次: Server收到斷開請求並發送確認請求,進入關閉等待狀態.Client收到確認請求,進入終止等待2狀態.
第三次: Server發送斷開請求,進入最后確認狀態.
第四次: Client收到斷開請求並發送確認請求,進入時間等待狀態.Server收到確認請求,進入關閉狀態,結束本次TCP連接.
2.3.5應用層
應用層功能:規定應用程序的數據格式
TCP/IP協議傳輸示例:
應用程序: 用戶數據
應用層: 應用數據(包括用戶數據)
傳輸層: 應用數據(包括用戶數據) + TCP/UDP協議(拿端口)
網絡層: 應用數據(包括用戶數據) + TCP/UDP協議(拿端口) + IP協議(拿IP地址)
鏈路層: 以太網首部(幀頭) + 應用數據(包括用戶數據) + TCP/UDP協議(拿端口) + IP協議(拿IP地址) + MAC地址 + 以太網尾部(幀尾)

