計算機網絡編程(一)網絡基礎

當你停下來休息的時候別忘了別人還在奔跑

計算機之間是如何通訊的?

早期:聯機

img

以太網 : 局域網與交換機

img

IP地址和IP協議

  • 規定網絡地址的協議叫ip協議,它定義的地址稱之爲ip地址,普遍採用的v4版本即ipv4,它規定網絡地址由32位2進製表示;
  • IP地址就像是咱們的家庭住址同樣,若是你要寫信給一我的,你就要知道他(她)的地址,這樣郵遞員才能把信送到;
  • 範圍0.0.0.0-255.255.255.255;
  • 一個ip地址一般寫成四段十進制數,例:192.168.1.1

IP地址劃分類編程

其中A、B、C3類(以下表格)由InternetNIC在全球範圍內統一分配,D、E類爲特殊地址。數組

分類 IP地址範圍 私有IP地址範圍
A類 1.0.0.0~127.255.255.254 10.0.0.0--10.255.255.255
B類 128.0.0.1~191.255.255.254 172.16.0.0--172.31.255.255
C類 192.0.0.1~223.255.255.254 192.168.0.0--192.168.255.255

可是隨着Internet的飛速發展,這種劃分方案的侷限性很快顯現出來,大多數組織都申請B類網絡地址, 致使B類地址很快就分配完了,而A類卻浪費了大量地址。
針對這種狀況提出了新的劃分方案, 稱爲CIDR(Classless Interdomain Routing)瀏覽器

域名

儘管==IP地址==可以惟一地標記網絡上的計算機,但IP地址是一長串數字,不直觀,並且用戶記憶十分不方便,因而人們又發明了另外一套字符型的地址方案,即所謂的域名地址。IP地址和域名是一一對應的,這份域名地址的信息存放在一個叫域名服務器(DNS,Domain name server)的主機內,使用者只需瞭解易記的域名地址,其對應轉換工做就留給了域名服務器。域名服務器就是提供IP地址和域名之間的轉換服務的服務器。

一個 IP 地址能夠對應多個域名,一個域名只能對應一個 IP 地址。服務器

例如當用戶在瀏覽器輸入域名時,瀏覽器首先請求 DNS 服務器,將域名轉換爲 IP 地址,而後將轉換後的 IP 地址反饋給瀏覽器,而後再進行實際的數據傳輸。網絡

通常狀況DNS服務器正常運行的時候,咱們用域名或者IP地址都能鏈接到網絡中的設備,可是DNS服務器掛了的時候,你就會發現只能使用IP地址來訪問該設備了,因此IP地址其實比域名更加的通用。併發

端口

若是把IP地址比做一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,可是一個IP地址的端口能夠有65536(即:2^16)個之多!端口是經過端口號來標記的,端口號只有整數,範圍是從0 到65535(2^16-1)。
  • 同一個計算機中每一個程序對應惟一的端口,這樣一個計算機上就能夠經過端口區分發送給每一個端口的數據了,換句話說,也就是一個計算機上能夠併發運行多個網絡程序,而不會互相之間產生干擾。在硬件上規定,端口的號碼必須位於 0-65535 之間,每一個端口惟一的對應一個網絡程序,一個網絡程序可使用多個端口。
  • 一個網絡程序運行在一臺計算上時,不論是客戶端仍是服務器,都是至少佔用一個端口進行網絡通信。在接收數據時,首先發送給對應的計算機,而後計算機根據端口把數據轉發給對應的程序。

網絡通信

網絡通信基於「請求-響應」模型。
  • 在網絡通信中,第一次主動發起通信的程序被稱做客戶端(Client)程序,簡稱客戶端,而在第一次通信中等待鏈接的程序被稱做服務器端(Server)程序,簡稱服務器。
  • 一旦通信創建,則客戶端和服務器端徹底同樣,沒有本質的區別。
  • 其實很容易就理解客戶端和服務器端的,QQ,咱們用的騰訊的,在咱們這裏就是客戶端程序,而服務器端程序在騰訊那邊,爲大量的QQ用戶服務,這種網絡編程結構也成爲客戶端/服務器結構,C/S結構。
  • 實在運行不少程序時,沒有必要使用專用的客戶端,而須要使用通用的客戶端,例如瀏覽器,使用瀏覽器做爲客戶端的結構被稱做瀏覽器/服務器結構,也叫作 Browser/Server 結構,簡稱爲 B/S 結構。

協議

網絡協議爲計算機網絡中進行數據交換而創建的規則、標準或約定的集合。

網絡編程就是運行在不一樣計算機中兩個程序之間的數據交換。在實際進行數據交換時,爲了讓接收端理解該數據,計算機比較笨,什麼都不懂的,那麼就須要規定該數據的格式,這個數據的格式就是協議。less

在實際的網絡程序編程中,最麻煩的內容不是數據的發送和接收,由於這個功能在幾乎全部的程序語言中都提供了封裝好的 API 進行調用,最麻煩的內容就是協議的設計以及協議的生產和解析,這個纔是網絡編程中最核心的內容。dom

通信方式

在現有的網絡中,網絡通信的方式主要有兩種:spa

  1. TCP(傳輸控制協議)方式
  2. UDP(用戶數據報協議)方式

在網絡通信中,TCP 方式就相似於撥打電話,使用該種方式進行網絡通信時,須要創建專門的虛擬鏈接,而後進行可靠的數據傳輸,若是數據發送失敗,則客戶端會自動重發該數據;而 UDP 方式就相似於發送短信,使用這種方式進行網絡通信時,不須要創建專門的虛擬鏈接,傳輸也不是很可靠,若是發送失敗則客戶端沒法得到。計算機網絡

二者區別:

  • 重要數據使用TCP方式進行傳輸;
  • 大量的非核心數據使用UDP方式進行傳輸;
  • 因爲TCP方式須要創建專用的虛擬鏈接以及確認傳輸是否正確,因此使用 TCP 方式的速度稍微慢一些,並且傳輸時產生的數據量要比 UDP 稍微大一些。
相關文章
相關標籤/搜索