Day27 網絡編程(一)

1.軟件開發架構

  c/s架構(client/server)flask

    c:客戶端小程序

    s:服務端微信小程序

  客戶端泛指的是應用程序,程序須要先安裝後,才能運行在用戶的電腦上,對操做系統依賴較大瀏覽器

  

 

  b/s架構(browser/server)服務器

    b:瀏覽器微信

    s:服務器網絡

  不須要安裝應用程序,只須要在瀏覽器訪問相關的網頁,就能進行正常的操做.架構

  

 

  ps:b/s架構的本質也是c/s架構tcp

在手機端中大部分使用的都是c/s架構,可是b/s架構正在大量的運用,如:微信小程序,支付寶的接口spa

 

2.互聯網協議

  兩臺計算機之間要互相鏈接只須要一個網線兩個接口就好了,可是設備增多以後就須要增長個交換機來實現,這些鏈接在交換機的設備就造成了一個局域網,多個局域網經過路由器鏈接就造成了小型的互聯網,互聯網就是全世界的局域網相連

  而這些鏈接在互聯網中的設備不可能都是製造商們按照本身的意願設計的,他們必定是遵循了某種標準或者說協議,才能互相的進行通訊,訪問不一樣的數據.

  不一樣國家不一樣地區的人想要進行交流須要有一個統一的通訊標準,這就是英語,而不一樣計算機之間須要通訊也須要有統一的標準,這個統一的標準就是互聯網協議,互聯網的本質就是一系列的協議

  互聯網協議的功能:定義計算機如何接入Internet,以及接入Internet的計算機通訊的標準

 

3.osi七層協議

互聯網協議按照功能不一樣分爲osi七層或者tcp/ip五層或者tcp/ip四層

咱們將七層協議簡化爲五層協議,他們分別是應用層,傳輸層,網絡層,數據鏈路層,物理鏈接層

這幾層越往上越靠近用戶,越往下越靠近硬件

3.1物理層

物理層的主要功能是基於電信號的高低電平發送01010001形式二進制數據,高電平表明1,低電平表明0

3.2數據鏈路層

數據鏈路層主要規定了兩個東西

  1.定義了電信號的分組方式

  單純的電信號011001010並無任何的意義,咱們必須規定電信號多少位一組,每組的意思是什麼

  2.規定接入Internet的設備必須具有網卡,而且每塊網卡在出廠時都被燒製上了全世界惟一的mac地址

  mac地址一般由12位16進制數來表示,前六位是生產商編號,後六位是流水線號

  這兩點合稱爲'以太網協議',交換機就是基於以太網協議通訊,不能跨局域網通訊

廣播通訊:當咱們有了mac地址,同一網絡的兩臺主機就能夠經過arp協議進行通訊了,可是隻能使用廣播的方式,即通訊基本靠吼

 

3.3網絡層

  當咱們有了mac地址以後,一臺計算機須要通訊時,會在局域網了其餘全部的計算機發送信息,而只有他須要找的那臺計算機纔會回覆,其餘計算機並不會響應,若是世界上的全部計算機都使用廣播的方式進行通訊,那麼一臺計算機發送的消息全世界都會接收到,這顯然是不可取的.

  網絡層引入一套新的地址來區分不一樣的廣域網/子網,這套地址就是網絡地址,規定網絡地址的協議就是ip協議

  ip協議規定了只要是接入互聯網的計算機都必須有一個ip地址

    ①ip地址的特色:點分十進制

    ②ip地址最小:0.0.0.0,ip地址最大:255.255.255.255

    ③ip地址有兩個版本:ipv4和ipv6,因爲ipv4已經不夠表示目前的計算機,因此推出了ipv6

    ④ip地址是動態分配的

 

3.4傳輸層

  網絡層的ip幫咱們區分子網,以太網的mac層幫咱們找到主機,可是咱們使用的都是應用程序,咱們找到了特定的主機以後,怎麼再找到對應的應用程序,這就須要用到端口,端口就是應用程序和網卡關聯的編號

  端口:用來惟一標識一臺計算機上的某個應用程序

    ①端口的範圍:0-65535

    ②注意:0-1023是系統的佔用端口,建議使用8000之後的端口

    ③端口號是動態分配的

    ④MySQL默認端口:3306

    ⑤Redis默認端口:6379

    ⑥diango默認端口:8000

    ⑦flask默認端口:5000

傳輸層還有兩個重要的傳輸協議,tcp協議和udp協議

  tcp協議:

    流式協議,可靠協議,面向鏈接的協議,傳輸效率低全雙工通訊,面向字節流

    使用tcp的應用:電子郵件,文件傳輸程序

   tcp的三次握手和四次揮手

  

三次握手創建鏈接:客戶端向服務端發起一個創建鏈接的請求(第一次握手),客戶端迴應贊成而且同時也發起一個創建鏈接的請求(第二次握手),客戶端再回復贊成這個請求(第三次握手).

    

四次揮手斷開鏈接:客戶端發起一個斷開鏈接的請求(第一次揮手),服務器收到以後回覆贊成(第二次揮手),等到服務器傳輸完全部的數據以後再給客戶端發送一個斷開鏈接的請求(第三次揮手),客戶端回覆贊成後斷開鏈接(第四次揮手)

     

三次握手是由於服務端在回覆贊成的時候同時發送了創建鏈接的請求,這兩個操做合併爲一次握手

四次揮手是由於服務端在回覆贊成的時候還要檢測本身是否還有未發完給客戶端的數據,只有在發完以後纔會再發送請求,因此中間的兩步不能合併

tcp協議可靠的緣由:他有反饋機制,發送消息以後對方必須回覆確認收到消息纔會將數據從內存中清空,不然會在限定的時間內每隔一段時間發送一次

 

  udp協議:

    不可靠的,無鏈接的服務,傳輸效率高,面向報文,盡最大努力服務,無擁塞控制

    使用udp的應用:域名系統(DNS),視頻流,ip語音(VolP)

 

3.5應用層

應用層的由來:用戶使用的都是應用程序,都工做在應用層,而互聯網都是開放的,你們均可以開發本身的應用程序,數據多種多樣,必須規定好數據的組織形式

應用層的功能就是規定程序的數據格式

應用層的協議:HTTP協議,FTP協議

相關文章
相關標籤/搜索