計算機網絡理解

  1. 互聯網的核心是一系列協議,總稱爲"互聯網協議"(Internet Protocol Suite)。它們對電腦如何鏈接和組網,作出了詳盡的規定網絡

  2. 互聯網的實現,分紅好幾層。每一層都有本身的功能,就像建築物同樣,每一層都靠下一層支持socket

  3. 五層:最底下的一層叫作"實體層"(Physical Layer),最上面的一層叫作"應用層"(Application Layer),中間的三層(自下而上)分別是"連接層"(Link Layer)、"網絡層"(Network Layer)和"傳輸層"(Transport Layer)。越下面的層,越靠近硬件;越上面的層,越靠近用戶
  4. 互聯網的每一層,都定義了不少協議。這些協議的總稱,就叫作"互聯網協議"(Internet Protocol Suite)

1、 實體層

"實體層",它就是把電腦鏈接起來的物理手段。它主要規定了網絡的一些電氣特性,做用是負責傳送0和1的電信號。ui

2、 鏈路層

  1. 單純的0和1沒有任何意義,必須規定解讀方式:多少個電信號算一組?每一個信號位有何意義? 這就是"連接層"的功能,它在"實體層"的上方,肯定了0和1的分組方式spa

  2. 以太網規定,連入網絡的全部設備,都必須具備"網卡"接口。數據包必須是從一塊網卡,傳送到另外一塊網卡。網卡的地址,就是數據包的發送地址和接收地址,這叫作MAC地址。每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,一般用12個十六進制數表示設計

  3. 以太網規定,一組電信號構成一個數據包,叫作"幀"(Frame)。每一幀分紅兩個部分:標頭(Head)和數據
  4. 太網採用了一種很"原始"的方式,它不是把數據包準確送到接收方,而是向本網絡內全部計算機發送,讓每臺計算機本身判斷,是否爲接收方。它們讀取這個包的"標頭",找到接收方的MAC地址,而後與自身的MAC地址相比較,若是二者相同,就接受這個包
  5. 早期的時候,每家公司都有本身的電信號分組方式。逐漸地,一種叫作"以太網"(Ethernet)的協議,佔據了主導地位。

3、網絡層

  1. 若是兩臺計算機不在同一個子網絡,廣播是傳不過去的。這種設計是合理的,不然互聯網上每一臺計算機都會收到全部包,那會引發災難。
  2. 聯網是無數子網絡共同組成的一個巨型網絡,很像想象上海和洛杉磯的電腦會在同一個子網絡,這幾乎是不可能的。
  3. "網絡層"的誕生。它的做用是引進一套新的地址,使得咱們可以區分不一樣的計算機是否屬於同一個子網絡。這套地址就叫作"網絡地址",簡稱"網址"。
  4. 網絡層"出現之後,每臺計算機有了兩種地址,一種是MAC地址,另外一種是網絡地址。兩種地址之間沒有任何聯繫,MAC地址是綁定在網卡上的,網絡地址則是管理員分配的,它們只是隨機組合在一塊兒。
  5. 若是是同一個子網絡,就採用廣播方式發送,不然就採用"路由"方式發送。("路由"的意思,就是指如何向不一樣的子網絡分發數據包)
  6. 規定網絡地址的協議,叫作IP協議。普遍採用的是IP協議第四版,簡稱IPv4。這個版本規定,網絡地址由32個二進制位組成
  7. 聯網上的每一臺計算機,都會分配到一個IP地址。這個地址分紅兩個部分,前一部分表明網絡,後一部分表明主機。好比,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分一定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。
  8. 所謂"子網掩碼",就是表示子網絡特徵的一個參數。它在形式上等同於IP地址,也是一個32位二進制數字,它的網絡部分所有爲1,主機部分所有爲0。已知IP地址172.16.254.1和172.16.254.233的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?二者與子網掩碼分別進行AND運算,結果都是172.16.254.0,所以它們在同一個子網絡。
  9. IP數據包也分爲"標頭"和"數據"兩個部分,標頭"部分主要包括版本、長度、IP地址等信息,"數據"部分則是IP數據包的具體內容。它放進以太網數據包後,以太網數據包就變成了下面這樣。
  10. mac地址:經過地址解析協議(ARP)得到,一個子網中直接經過ARP,非一個子網,交給網關處理

4、傳輸層

  1. 須要一個參數,表示這個數據包到底供哪一個程序(進程)使用。這個參數就叫作"端口"(port),它實際上是每個使用網卡的程序的編號。每一個數據包都發到主機的特定端口,因此不一樣的程序就能取到本身所須要的數據
  2. 傳輸層"的功能,就是創建"端口到端口"的通訊。相比之下,"網絡層"的功能是創建"主機到主機"的通訊。只要肯定主機和端口,咱們就能實現程序之間的交流。
  3. Unix系統就把主機+端口,叫作"套接字"(socket),基於它進行網絡應用程序的開發
  4. UDP數據包,也是由"標頭"和"數據"兩部分組成。標頭"部分主要定義了發出端口和接收端口,"數據"部分就是具體的內容。而後,把整個UDP數據包放入IP數據包的"數據"部分
  5. 瞭解決這個問題,提升網絡可靠性,TCP協議就誕生了,每發出一個數據包都要求確認。若是有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

    5、應用層

    "應用層"的做用,就是規定應用程序的數據格式。 舉例來講,TCP協議能夠爲各類各樣的程序傳遞數據,好比Email、WWW、FTP等等。那麼,必須有不一樣協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了"應用層"接口

相關文章
相關標籤/搜索