第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

網(wǎng)絡(luò)編程概念介紹

1. 前言

我們知道計算機(jī)網(wǎng)絡(luò)就是將各種設(shè)備通過有線或無線連接在一起,這些設(shè)備有終端設(shè)備,比如 PC、手機(jī)、打印機(jī)等;還有各種網(wǎng)絡(luò)核心設(shè)備,比如路由器、交換機(jī)、網(wǎng)關(guān)等。通常把網(wǎng)絡(luò)設(shè)備叫做節(jié)點,這些節(jié)點都工作在計算機(jī)網(wǎng)絡(luò)的 TCP/IP 參考模型之上。

鏈路層實現(xiàn)節(jié)點之間的數(shù)據(jù)轉(zhuǎn)發(fā)。比如以太網(wǎng)協(xié)議,包含獨立的以太網(wǎng)幀頭,幀頭中包含了源 MAC 地址、目標(biāo) MAC 地址,通過 MAC 地址實現(xiàn)節(jié)點之間的數(shù)據(jù)幀轉(zhuǎn)發(fā)。

網(wǎng)絡(luò)層也叫 Internet 協(xié)議層,主要職責(zé)就是提供端到端的網(wǎng)絡(luò)傳輸,比如主機(jī)到主機(jī)的通信。網(wǎng)絡(luò)層最重要的一個設(shè)備就是路由器,路由器的主要職責(zé)是提供路由選擇轉(zhuǎn)發(fā),將分組從源主機(jī)轉(zhuǎn)發(fā)到目的主機(jī)。每臺主機(jī)和路由器的每個端口都配有 IP 地址,路由器是通過 IP 地址實現(xiàn)分組轉(zhuǎn)發(fā)的。分組在路由器之間的轉(zhuǎn)發(fā)是一個逐跳轉(zhuǎn)發(fā)的過程。網(wǎng)絡(luò)層不保證分組傳輸?shù)目煽啃浴?/p>

傳輸層包含兩個非常重要的協(xié)議:TCP 和 UDP。TCP 是可靠傳輸協(xié)議,面向連接的,可以保證數(shù)據(jù)段(Segment)順序。UDP 是不可靠傳輸協(xié)議,無連接的,不保證數(shù)據(jù)報(Datagram)的順序。一臺主機(jī)可以同時運行多個 TCP 或 UDP 應(yīng)用程序,不同應(yīng)用程序之間是通過端口號(Port)來識別。

2. IP 地址

IP 地址有 IPv4 和 IPv6 兩個版本。IPv4 地址長度是 32 bit,4 個字節(jié),每個字節(jié)是獨立取值,通常用點分十進(jìn)制的形式表示。例如,192.168.0.100。IPv4 地址范圍是 0.0.0.0 ~ 255.255.255.255,最多包含 4294967296(2^32) 個 IP 地址。而 IPv6 的地址格式是八元組形式,比如 2001:0DB8::1428:57ab。

本節(jié)只討論 IPv4 地址。IPv4 地址通常劃分成網(wǎng)絡(luò) ID主機(jī) ID兩部分。比如:

圖片描述

IP 地址分類劃分如下:

分類 起始地址 結(jié)束地址
A 0.0.0.0 127.255.255.255
B 128.0.0.0 191.255.255.255
C 192.0.0.0 223.225.255.255
D 224.0.0.0 239.255.255.255

IP 地址分類劃分缺乏靈活性,對于 A 類地址來說,網(wǎng)絡(luò) ID 只有 2^7 = 128 個,但是主機(jī) ID 多達(dá) 2^24 = 16777216 個,主機(jī) ID 浪費很大。對于 C 類地址來說,網(wǎng)絡(luò) ID 可以有 2^21 = 2097152 個,但是主機(jī) ID 只有 2^8 = 256 個,對于有些組織來說主機(jī) ID 不夠劃分。于是 1993 年出現(xiàn)了 CIDR(Classless Inter-Domain Routing)的編址策略,叫做無類別域間路路由選擇。

CIDR 編址是一種 IP 地址的壓縮表示方式,將 IP 地址分為網(wǎng)絡(luò)前綴主機(jī)標(biāo)識兩部分,形如 A.B.C.D/L 的表示方式,L 是一個小于 32 的十進(jìn)制數(shù)字,代表網(wǎng)絡(luò)前綴占用 L 個比特,主機(jī)標(biāo)識占用 32 - L 個比特。比如,200.101.80.0/20 表示網(wǎng)絡(luò)前綴占用 20 個比特,主機(jī)標(biāo)識占用 12 個比特。

在 CIDR 編址方式下,如何通過 IP 地址快速確定網(wǎng)絡(luò) ID 呢?是通過子網(wǎng)掩碼來確定的。對于形如 A.B.C.D/L 的子網(wǎng),子網(wǎng)掩碼是由 L 個 bit 1 和 32 - L 個 bit 0 組成的二進(jìn)制數(shù)。只要把 A.B.C.D 和子網(wǎng)掩碼做一個按位與(&)運算,就可以得到網(wǎng)絡(luò) ID??梢哉f,形如 A.B.C.D/L 的表示,可以唯一確定一個網(wǎng)絡(luò) ID,我們通常把 A.B.C.D/L 表示叫做網(wǎng)段。你可以說 A.B.C.D/L 表示了一個網(wǎng)段,網(wǎng)段就是形如 A.B.C.D/L 的表示形式。

比如,200.101.80.0/20 網(wǎng)段的子網(wǎng)掩碼的二進(jìn)制形式是 11111111 11111111 11110000 00000000,十進(jìn)制形式是 255.255.240.0。將 200.101.80.0 和 255.255.240.0 做按位與(&)運算,得到的網(wǎng)絡(luò) ID 是 200.101.80.0。

那么 IP 地址 200.101.96.1 是 200.101.80.0/20 網(wǎng)段的 IP 嗎?我們只需要把 200.101.96.1 和 255.255.240.0 做一個按位與(&)運算,查看結(jié)果是否等于 200.101.80.0 即可。

采用 CIDR 編碼方式優(yōu)勢如下:

  • 簡單靈活
  • 有效利用 IP 地址空間
  • 減小路由表規(guī)模。

比如 200.101.80.0/20 網(wǎng)段中的 IP 地址 200.101.80.100,如果按照分類,屬于 C 類地址,網(wǎng)絡(luò) ID 占用 24 個 bit,主機(jī) ID 占用 8 個 bit;如果采用 CIDR 方式,網(wǎng)絡(luò) ID 占用 20 個 bit,主機(jī) ID 占用 12 個 bit。對于主機(jī)較多的網(wǎng)絡(luò),極大地提高了 IP 地址的利用率。

3. 端口號

端口號是用 16 bit 無符號整數(shù)表示的,取值范圍是 0~65535,總共可以分配 65536 個端口號。端口號屬于稀缺資源,是由 Internet Assigned Numbers Authority (IANA)統(tǒng)一管理和分配的。端口號當(dāng)前分配狀況:

  • 0 ~ 1023
    此區(qū)間內(nèi)的端口號叫做知名端口號,已經(jīng)被系統(tǒng)或者是一些知名的服務(wù)所占用,比如:
端口號 用途
20 , 21 用于 FTP 協(xié)議
23 用于 telnet 協(xié)議
80 用于著名的 HTTP 服務(wù)
443 用于 HTTPS 服務(wù)
  • 1023 ~ 65535
    此區(qū)間端口號也有很多被知名的應(yīng)用占有,比如:
端口號 用途
1433 用于 SQL Server 服務(wù)等等
1935 用于 RTMP 服務(wù)
3306 用于 MySQL 服務(wù)
8080 作為 HTTP 服務(wù)的另外一個端口號

4. 域名及域名解析

不管是 IPv4 地址,還是 IPv6 地址,都是用一串?dāng)?shù)字表示的。計算機(jī)喜歡處理數(shù)字化的 IP 地址,而我們?nèi)祟惒⒉幌矚g數(shù)字,因為數(shù)字不直觀、不便于記憶、不利于使用。試想一下,如果讓你去記憶各大網(wǎng)站的 IP 地址,我相信你能記住的 IP 地址不會超過 10 個。

那么該如何化解這個尷尬呢?科學(xué)家們又發(fā)明了一套字符型的地址方案,即用主機(jī)名(Host Name)來唯一標(biāo)識一臺主機(jī),主機(jī)名是用我們?nèi)祟愖约旱恼Z言來命名,當(dāng)然目前主要是英語了。這里需要強(qiáng)調(diào)的是 Host Name 也可以唯一標(biāo)識一臺主機(jī),是另外一套地址方案。只不過 Host Name 是方便人類使用的,而計算機(jī)還是用 IP 地址。

在互聯(lián)網(wǎng)中,有不計其數(shù)的主機(jī),要保證這些主機(jī)的唯一性,必須用一套統(tǒng)一的 Host Name 編碼方案。目前應(yīng)用最廣泛的就是域名系統(tǒng)(DNS,Domain Name System),DNS 是一套分布式系統(tǒng),DNS 所包含的兩項最主要的工作就是:域名分配域名解析域名分配就是為互聯(lián)網(wǎng)中的主機(jī)分配一個唯一的域名,域名解析就是將域名轉(zhuǎn)換為IP 地址的過程。

域名是一顆樹形結(jié)構(gòu),包含了許多層級:

  • 根級域,是指一個無名的樹根。
  • 頂級域,頂級域分為 generic TLDs(gTLDs),country-code TLDs(ccTLDs)、internationalized country-code TLDs(IDN,ccTLDs)、infrastructure TLD。我們在圖中列舉的 net、edu、org、gov、com 是指 gTLDs,即通用頂級域。比如 .com。
  • 二級域,是指頂級域的下一級。比如 .imooc。
  • 子域,是指二級域以下的所有層級。其實也可以叫做三級域、四級域等。比如 www。

比如,拿 idcbgp.cn 來說,.com 是頂級域;.imooc 是二級域;www 是子域。

域名是由美國非營利性機(jī)構(gòu)維護(hù)的,它管理著全世界的域名系統(tǒng)。比如,所有的頂級域(TLD)都是由 ICANN 來規(guī)定。

域名解析是通過本地域名解析服務(wù) Resolver 或者遠(yuǎn)程域名解析服務(wù)器獲取 IP 地址的過程。

5. 小結(jié)

IP 地址可以唯一標(biāo)識一臺主機(jī),Port 可以唯一標(biāo)識某臺主機(jī)上的某個應(yīng)用程序。IP 和 Port 的組合經(jīng)常叫做 Endpoint,可以唯一標(biāo)識互聯(lián)網(wǎng)中的一個應(yīng)用程序。在網(wǎng)絡(luò)編程過程中是離不開 IP 和 Port 的,所以掌握 IP 地址的劃分,以及端口號的基本知識是非常有必要的。

在互聯(lián)網(wǎng)中,域名可以唯一標(biāo)識一臺主機(jī),理解域名分配、域名解析過程,對解決一些復(fù)雜網(wǎng)絡(luò)問題有很大的幫助。