欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程

系統(tǒng) 1739 0

早期的計(jì)算機(jī)通信需要有一個(gè)中間件,A要給B傳東西,A必須要把信息傳給中間件,B再把從中間件中拿到信息

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第1張圖片

由于不同機(jī)器之間需要通信就產(chǎn)生了網(wǎng)絡(luò)

軟件開發(fā)的架構(gòu)

1.C/S架構(gòu)

服務(wù)器-客戶機(jī),即Client-Server架構(gòu),C/S架構(gòu)通常采取兩層結(jié)構(gòu).Sever負(fù)責(zé)數(shù)據(jù)的管理,Client負(fù)責(zé)完成與用戶的交互任務(wù)

這里來說Client主要是某個(gè)應(yīng)用軟件的exe文件,程序要在安裝后,才能運(yùn)行在用戶電腦上。

例如:QQ、微信、網(wǎng)易云音樂等

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第2張圖片

2.B/S架構(gòu)

瀏覽器端-服務(wù)器,即Browser-Sever,B/S架構(gòu)是WEB興起后的一種網(wǎng)絡(luò)架構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件.這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用.客戶機(jī)上只要安裝一個(gè)Browser,服務(wù)器安裝Oracle、SQL Sever等數(shù)據(jù)庫.瀏覽器通過Web Sever同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。

例如:百度、知乎、豆瓣、博客園等

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第3張圖片

3.B/S架構(gòu)和C/S架構(gòu)之間的關(guān)系

B/S架構(gòu)是C/S架構(gòu)的一種?

?

計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展及基礎(chǔ)網(wǎng)絡(luò)概念

早期:聯(lián)機(jī)

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第4張圖片

想要實(shí)現(xiàn)通信就必須要網(wǎng)卡和網(wǎng)線,每個(gè)網(wǎng)卡上都有一個(gè)全球唯一的MAC地址

MAC地址 :英文名為Media Access Control Address,即媒體存取控制位址,也稱為局域網(wǎng)地址(LAN Adress),MAC位址,以太網(wǎng)網(wǎng)址(Ethenet Address)或物理地址(Physical Address),它是用來確認(rèn)網(wǎng)絡(luò)設(shè)備位置的地址。

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第5張圖片

MAC地址的長度為48位(6個(gè)字節(jié)),通常表示12個(gè)16進(jìn)制數(shù),如:00-16-EA-AE-3C-40就是一個(gè)MAC地址,其中前6位十六進(jìn)制數(shù)00-16-EA代表網(wǎng)絡(luò)硬件制造商的編號(hào),后6位十六進(jìn)制數(shù)AE-3C-40代表該制造商所制造的某個(gè)網(wǎng)絡(luò)產(chǎn)品的系列號(hào)。每個(gè)MAC地址都如身份證號(hào)一樣具有唯一性。

IP地址 :Internet Protocol,全稱互聯(lián)網(wǎng)協(xié)議地址,常見分為IPv4和IPv6。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址,以此來屏蔽物理地址的差異。它是一臺(tái)機(jī)器在一個(gè)網(wǎng)絡(luò)內(nèi)的唯一標(biāo)識(shí)。

IP地址的表示范圍:0.0.0.0-255.255.255.255(四個(gè)點(diǎn)分十進(jìn)制表示)

通常我們使用的都是IPv4的地址,如果使用IPv6的表示方式: 0.0.0.0.0.0-255.255.255.255.255.255

?

以太網(wǎng):局域網(wǎng)和交換機(jī)

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第6張圖片

交換機(jī)的出現(xiàn)解決了多臺(tái)電腦之間的通信問題,網(wǎng)絡(luò)拓?fù)渚褪菍⒏鱾€(gè)機(jī)器都通過網(wǎng)線連到交換機(jī)

廣播:比如服務(wù)器4想找到服務(wù)器1,那么它就會(huì)通過向交換機(jī)讓它告訴所有的服務(wù)器我要找服務(wù)器1,然后只有服務(wù)器1會(huì)回復(fù)我收到了信息

ARP協(xié)議 :Address Resolution Protocol,即地址解析協(xié)議, 它是根據(jù)IP地址去獲取物理地址(MAC地址)的一個(gè)TCP/IP協(xié)議 。主機(jī)發(fā)送消息時(shí)將包含目標(biāo)IP地址的ARP請(qǐng)求廣播到局域網(wǎng)網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請(qǐng)求時(shí)直接查詢ARP緩存以節(jié)約資源

簡單來說就是:A機(jī)器要找B機(jī)器,A機(jī)器把請(qǐng)求發(fā)給交換機(jī),然后再由交換機(jī)把這個(gè)請(qǐng)求廣播出去,告訴所有機(jī)器我現(xiàn)在要找這個(gè)機(jī)器,所有的機(jī)器都會(huì)收到這一條消息,但是他們會(huì)先看要找這個(gè)IP地址是不是和我相同,不是的話就會(huì)把這個(gè)數(shù)據(jù)包給丟掉,如果IP地址和我要找的這個(gè)機(jī)器的IP地址相同,那么這臺(tái)機(jī)器就會(huì)把自己的MAC地址交給交換機(jī),然后再由交換機(jī)再把信息單播給A機(jī)器。

廣域網(wǎng)與路由器

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第7張圖片

路由器 : Router,連接兩個(gè)或多個(gè)網(wǎng)絡(luò)的硬件設(shè)備,在網(wǎng)絡(luò)間起網(wǎng)關(guān)的作用,是讀取每一個(gè)數(shù)據(jù)包中的地址然后決定如何傳送的專用智能性網(wǎng)絡(luò)設(shè)備。

網(wǎng)關(guān) :Gateway,即網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。網(wǎng)關(guān)在網(wǎng)絡(luò)層以上實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián),是最復(fù)雜的網(wǎng)絡(luò)互聯(lián)設(shè)備,僅用兩個(gè)高層協(xié)議不同的網(wǎng)絡(luò)互聯(lián)。網(wǎng)關(guān)既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。網(wǎng)關(guān)是一種充當(dāng)轉(zhuǎn)換重任的計(jì)算機(jī)系統(tǒng)或設(shè)備。使用在不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間,網(wǎng)關(guān)是一個(gè)翻譯器。

網(wǎng)關(guān)IP:局域網(wǎng)內(nèi)的機(jī)器訪問公網(wǎng)IP,就通過網(wǎng)關(guān)訪問

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第8張圖片

局域網(wǎng) :Local Area Network,局域網(wǎng)的覆蓋范圍一般是方圓幾千里之內(nèi),其具備的安裝便捷、成本節(jié)約、擴(kuò)展方便等特點(diǎn)使其在各個(gè)辦公室內(nèi)運(yùn)用廣泛。局域網(wǎng)可以實(shí)現(xiàn)文件管理、應(yīng)用軟件共享、打印機(jī)共享等功能,在使用過程當(dāng)中,通過維護(hù)局域網(wǎng)網(wǎng)絡(luò)安全,能夠有效地保護(hù)資料安全,保證局域網(wǎng)網(wǎng)絡(luò)能夠正常穩(wěn)定的運(yùn)行。

子網(wǎng)掩碼 :Subnet mask,即網(wǎng)絡(luò)掩碼、地址掩碼、子網(wǎng)絡(luò)遮罩,它是一種用來指明一個(gè)IP地址的哪些位標(biāo)識(shí)的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識(shí)的是主機(jī)的位掩碼。子網(wǎng)掩碼不能單獨(dú)存在,它必須結(jié)合IP地址一起使用。子網(wǎng)掩碼只有一個(gè)作用,就是將某個(gè)IP地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址兩部分。

子網(wǎng)掩碼是一個(gè)32位地址,用于屏蔽IP地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí),并說明該IP地址是在局域網(wǎng)上,還是在廣域網(wǎng)上。

IP地址和子網(wǎng)掩碼做按位與運(yùn)算,得到的結(jié)果是網(wǎng)段

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第9張圖片

那如何判斷兩臺(tái)機(jī)器它們是在同一個(gè)網(wǎng)段呢?

IP1:192.168.43.2

IP2:192.168.43.1

IP3:192.168.45.20

子網(wǎng)掩碼:255.255.255.0

我們需要看子網(wǎng)掩碼和IP地址,再將它們按位AND

IP1:? ?192.168. 43.2 = 11000000.10101000.00101011.00000010

子網(wǎng)掩碼:255.255.255.0 = 11111111.11111111.11111111.00000000

按位AND運(yùn)算結(jié)果:     11000000.10101000.00101011.00000000 ->192.168.43.0

?

IP2:? ?192.168. 43.1 = 11000000.10101000.00101011.00000001

子網(wǎng)掩碼:255.255.255.0 = 11111111.11111111.11111111.00000000

按位AND運(yùn)算結(jié)果:     11000000.10101000.00101011.00000001 ->192.168.43.0

?

IP3:   192.168.45.20 = 11000000.10101000.00101101.00010100

子網(wǎng)掩碼:255.255.255.0 = 11111111.11111111.11111111.00000000

按位AND運(yùn)算結(jié)果:     11000000.10101000.00101101.00000000 ->192.168.45.0

結(jié)果只看前三位十進(jìn)制數(shù),最后一位數(shù)不同沒關(guān)系,所以IP1和IP2在同一網(wǎng)段,IP3和其他不屬于同一個(gè)網(wǎng)段

IP協(xié)議的主要作用有兩個(gè),一個(gè)是為每臺(tái)計(jì)算機(jī)分配IP地址,另一個(gè)是確定哪些地址在同一個(gè)自網(wǎng)絡(luò)。

TCP協(xié)議和UDP協(xié)議

端口 :Port,可以認(rèn)為是設(shè)備與外界通訊交流的出口。端口可以分為虛擬端口和物理端口,其中虛擬端口指計(jì)算機(jī)內(nèi)部或交換機(jī)路由器的端口,不可見,例如計(jì)算機(jī)中的80端口、21端口等。物理端口又稱為接口,是可見端口,例如計(jì)算機(jī)背板的RJ45網(wǎng)口,交換機(jī)路由器集線器等RJ45端口,電話使用RJ11端口也屬于物理端口的范疇。

通過端口來找到程序

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第10張圖片

在計(jì)算機(jī)上每一個(gè)需要網(wǎng)絡(luò)的程序都會(huì)開一個(gè)端口,在同一時(shí)間只會(huì)有一個(gè)程序占用一個(gè)端口,不可能在同一時(shí)間有兩個(gè)程序占用一個(gè)端口

端口的范圍:0-65535(2^16-1),一般使用8000以后的端口

總結(jié):如果有IP那么我就能確認(rèn)唯一一臺(tái)機(jī)器、如果有端口那么我就能確認(rèn)唯一一個(gè)程序、如果我有IP和端口那么我就能找到唯一一臺(tái)機(jī)器上的唯一一個(gè)程序

   內(nèi)網(wǎng)IP地址:127.0.0.1(本地的回環(huán)地址),它不能提供對(duì)外服務(wù)

TCP協(xié)議

Transmisssion Control Protocol,即傳輸控制協(xié)議,是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

當(dāng)應(yīng)用程序希望通過TCP與另一個(gè)應(yīng)用程序通信時(shí),它會(huì)發(fā)送一個(gè)通信請(qǐng)求。這個(gè)請(qǐng)求必須被送到一個(gè)確切的地址。在雙方"握手"之后,TCP將在兩個(gè)應(yīng)用程序之間建立一個(gè)全雙工(full-duplex)的通信。 這個(gè)全雙工的通信將占用兩個(gè)計(jì)算機(jī)之間的通信線路,直到它被一方或雙方關(guān)閉為止。

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第11張圖片

SYN :Synchronize Sequence Numbers,是TCP/IP建立連接時(shí)使用的握手信號(hào)。在客戶機(jī)和服務(wù)機(jī)之間建立正常的TCP網(wǎng)絡(luò)連接時(shí),客戶機(jī)首先發(fā)出一個(gè)SYN消息,服務(wù)器使用 SYN+ACN應(yīng)答表示接收到了這個(gè)消息,最后客戶機(jī)再以ACK消息回應(yīng)。這樣在客戶機(jī)和服務(wù)機(jī)之間才能建立起可靠的TCP協(xié)議,數(shù)據(jù)才可以在客戶機(jī)和服務(wù)機(jī)之間傳遞。

ACK :Acknowledge character,即確認(rèn)字符,在數(shù)據(jù)通信中,接收站發(fā)給發(fā)送站的一種傳輸類控制符,表示發(fā)來的數(shù)據(jù)無誤。在TCP/IP協(xié)議中,如果對(duì)方成功的接收到數(shù)據(jù),那么會(huì)回復(fù)一個(gè)ACK數(shù)據(jù)。通常ACK有自己固定的格式,長度大小,由接收方回復(fù)給發(fā)射方。

三次握手過程

第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn = j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn)

第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的syn(ack = j + 1),同時(shí)自己也發(fā)送一個(gè)syn(seq = k),即syn + ack包,此時(shí)服務(wù)器進(jìn)入SYN_RECV

第三次握手:客戶端收到服務(wù)器的syn + ack包,向服務(wù)器發(fā)送確認(rèn)包ack(ack = k +1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手

完成三次握手,客戶端與服務(wù)端開始傳送數(shù)據(jù)

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第12張圖片

由于TCP連接時(shí)全雙工的,因此,每個(gè)方向都必須要單獨(dú)進(jìn)行關(guān)閉,這一原則是當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后,發(fā)送一個(gè)FIN來終止這一方向的連接,收到一個(gè)FIN只是意味著這一方向上沒有數(shù)據(jù)流動(dòng)了,即不會(huì)再收到數(shù)據(jù)了,但是在這個(gè)TCP連接上仍然能夠發(fā)送數(shù)據(jù),直到這一方向也發(fā)送了FIN。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方則執(zhí)行被動(dòng)關(guān)閉,上圖描述的即是如此。

第一次揮手:Client發(fā)送一個(gè)FIN,用來關(guān)閉Client到Server的數(shù)據(jù)傳送,Client進(jìn)入FIN_WAIT_1狀態(tài)。

第二次揮手:Server收到FIN后,發(fā)送一個(gè)ACK給Client,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同,一個(gè)FIN占用一個(gè)序號(hào)),Server進(jìn)入CLOSE_WAIT狀態(tài)。

第三次揮手:Server發(fā)送一個(gè)FIN,用來關(guān)閉Server到Client的數(shù)據(jù)傳送,Server進(jìn)入LAST_ACK狀態(tài)。

第四次揮手:Client收到FIN后,Client進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個(gè)ACK給Server,確認(rèn)序號(hào)為收到序號(hào)+1,Server進(jìn)入CLOSED狀態(tài),完成四次揮手。

UDP協(xié)議

User Datagram Protocol,UDP為應(yīng)用程序提供了一種無需建立連接就可以發(fā)送封裝的IP數(shù)據(jù)報(bào)的方法。當(dāng)它想傳送時(shí)就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。

QQ它的消息傳輸用的就是UDP協(xié)議

對(duì)比

TCP特點(diǎn):面向連接、可靠傳輸、面向字節(jié)流、流量控制、阻塞控制

UDP特點(diǎn):無連接、盡最大努力交付、面向報(bào)文

?

互聯(lián)網(wǎng)協(xié)議和OSI模型

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第13張圖片

每層運(yùn)行常見物理設(shè)備

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第14張圖片

每層運(yùn)行常見的協(xié)議

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第15張圖片

兩臺(tái)機(jī)器間的傳遞模式

Python學(xué)習(xí)日記(二十九) 網(wǎng)絡(luò)編程_第16張圖片

就是一個(gè)包快遞->拆快遞的過程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 羞羞在线视频 | 奇米视频在线观看 | 成人午夜精品视频在线观看 | 国产手机免费视频 | 大香伊人久久精品一区二区 | 亚洲视频在线看 | 久久久国产精品免费视频 | 91精品一区二区 | v11av在线播放 | 亚洲精品福利在线 | 五月婷在线 | 日韩精品一二区 | 尤物视频在线观看 | 天天色天天看 | 成人精品视频一区二区三区尤物 | 色狠狠色狠狠综合一区 | 丝袜诱惑中文字幕 | 色qing网站 | www.国产| 男女午夜视频 | 日韩免费精品一级毛片 | 国产成人综合精品 | 日本黄色性视频 | 中文字幕成人av | 在线观看日本污污ww网站 | 日韩欧美亚洲一区 | 成人国产精品一区二区毛片在线 | 免费av在线网站 | 又黄又爽的成人免费网站 | 欧美怡红院 | 二区视频| 91seseav| 日韩专区中文字幕 | 国产成人精品视频播放 | 日本无码少妇波多野结衣 | 久久久久久久亚洲视频 | 素人视频在线观看免费 | 欧美高清视频一区 | 国产精品69久久久久水密桃 | 成人精品鲁一区一区二区 | 国内精品美女久久久久 |