软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
閱讀目錄
一、網(wǎng)絡(luò)編程
一、網(wǎng)絡(luò)編程
軟件開發(fā)架構(gòu)
- C/S架構(gòu)
C:客戶端 想體驗(yàn)服務(wù)的時(shí)候才會(huì)去找服務(wù)端體驗(yàn)服務(wù)
S:服務(wù)端 24小時(shí)不間斷的提供服務(wù),即時(shí)監(jiān)聽,隨時(shí)待命
- B/S架構(gòu)
B:瀏覽器 想體驗(yàn)服務(wù)的時(shí)候才會(huì)去找服務(wù)端體驗(yàn)服務(wù)
S:服務(wù)端 24小時(shí)不間斷的提供服務(wù),即時(shí)監(jiān)聽,隨時(shí)待命
實(shí)際上B/S架構(gòu)也是C/S架構(gòu)的一種
-------------------------------------------------------------------- 注:如果你對(duì)python感興趣,我這有個(gè)學(xué)習(xí)Python基地,里面有很多學(xué)習(xí)資料,感興趣的+Q群:895817687 -------------------------------------------------------------------- 兩種事物要想相互通信最基本的方式是通過一個(gè)規(guī)定好的協(xié)議去執(zhí)行,然后就能得到有效溝通(通信),比如不同國(guó)家的人要想互相通話就得有個(gè)全球的語言標(biāo)準(zhǔn)——英語,全世界基本語言就是英語,我們知道都懂英語,就能和全世界任何懂英語的人進(jìn)行溝通交流了。同樣的,計(jì)算機(jī)要想與計(jì)算機(jī)溝通交流也得需要這么一個(gè)規(guī)范,也就是前提條件,所有計(jì)算機(jī)都執(zhí)行這個(gè)前提條件后,就能互相愉快的傳輸信息了
這個(gè)規(guī)范就是:OSI七層協(xié)議(Open System Interconnection)
在python里面我們需要了解五層就可以了:
應(yīng)用層
傳輸層
網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層
物理層
接下來從下至上分別說說各層的作用
1、物理層:
實(shí)現(xiàn)計(jì)算機(jī)之間的物理連接,傳輸數(shù)據(jù)通過0101的二進(jìn)制,0或1分別代表高電頻和低電頻
電信號(hào)工作原理:高低電頻
2、數(shù)據(jù)鏈路層:
如果只是01010101010這種二進(jìn)制高低電頻的電信號(hào)之間傳輸是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)槲覀兏静恢浪麄兊暮x,或者說獲取數(shù)據(jù)該怎么取正確讀取,所以在物理層上面就規(guī)定了一個(gè)數(shù)據(jù)鏈路層,也就是我們聽過的‘以太網(wǎng)協(xié)議’
協(xié)議規(guī)定:
1—二進(jìn)制數(shù)據(jù)的分組方式
一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包,叫做‘幀’
每一數(shù)據(jù)幀分成:報(bào)頭head和數(shù)據(jù)data兩部分
2—只要是接入互聯(lián)網(wǎng)的計(jì)算機(jī),都必須有一塊網(wǎng)卡!
網(wǎng)卡上面在出廠的時(shí)候就刻有世界唯一的編號(hào),這個(gè)編號(hào)就叫 mac地址
長(zhǎng)度為48位2進(jìn)制,通常由12位16進(jìn)制數(shù)表示(前六位是廠商編號(hào),后六位是流水線號(hào))
類似這種:C8-5B-76-D6-EE-F1
特別強(qiáng)調(diào):其實(shí)有了物理層和數(shù)據(jù)鏈路層的話,就可以實(shí)現(xiàn)基本的網(wǎng)絡(luò)通信了,即基于以太網(wǎng)協(xié)議通信,這種通信基本靠吼!!!
實(shí)現(xiàn)過程類似這樣:比如電腦A要找電腦B通信,電腦就會(huì)把這個(gè)‘我要找mac地址為***的電腦,信息廣播出給所有的電腦,所有已經(jīng)連接的電腦就會(huì)聽到,只有mac地址匹配的電腦B才會(huì)得到相應(yīng)與電腦A通信。
弊端:廣播風(fēng)暴
這里還有一個(gè)事情需要去做,一臺(tái)電腦和另外一臺(tái)電腦通信可以連一根網(wǎng)線,那一臺(tái)電腦和多態(tài)電腦通信呢,豈不是多臺(tái)電腦都需要來一個(gè)網(wǎng)線插到那一臺(tái)電腦上,這樣的做肯定是不符合現(xiàn)實(shí)的。所以就有了交換機(jī)
交換機(jī):如果沒有交換機(jī),你的電腦就變成了馬蜂窩,有了交換機(jī)之后,所有的電腦只需要有一個(gè)網(wǎng)卡連接交換機(jī)
即可實(shí)現(xiàn)多臺(tái)電腦之間物理連接
3、網(wǎng)絡(luò)層:(IP協(xié)議)
通過交換機(jī)只能實(shí)現(xiàn)局域網(wǎng)中的電腦之間的通信,要想一個(gè)計(jì)算機(jī)與局域網(wǎng)以外的任何一個(gè)局域網(wǎng)里的電腦實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)脑?#xff0c;就需要引入網(wǎng)絡(luò)層了,也就是ip協(xié)議
IP協(xié)議規(guī)定:計(jì)算機(jī)必須有一個(gè)ip地址
ip地址的特點(diǎn):點(diǎn)分十進(jìn)制
有兩個(gè)版本:ipv4和ipv6
最小0.0.0.0
最大255.255.255.255
ip協(xié)議可以跨局域網(wǎng)傳輸
ip地址能夠唯一標(biāo)識(shí)互聯(lián)網(wǎng)中獨(dú)一無二的一臺(tái)機(jī)器
這里有個(gè)arp協(xié)議:根據(jù)ip地址解析mac地址
4、傳輸層(端口協(xié)議)
TCP,UDP基于端口的工作協(xié)議
計(jì)算機(jī)之間的通信本質(zhì)上來說是計(jì)算機(jī)上面的應(yīng)用程序之間的通信,我們知道了ip是電腦標(biāo)識(shí)的唯一,那么電腦上我們實(shí)際上使用的是操作系統(tǒng)(本質(zhì)上也是軟件),應(yīng)用程序來實(shí)現(xiàn)網(wǎng)絡(luò)通信(數(shù)據(jù)傳輸)的話同時(shí)進(jìn)行是否會(huì)打架呢?
這里就引出端口,端口就是唯一標(biāo)識(shí)一臺(tái)計(jì)算機(jī)上某個(gè)基于網(wǎng)絡(luò)通信的通道
注意:一臺(tái)計(jì)算機(jī)上同一時(shí)間一個(gè)端口號(hào)只能被一個(gè)應(yīng)用程序占用
小結(jié):
ip地址:唯一標(biāo)識(shí)全世界接入互聯(lián)網(wǎng)的獨(dú)一無二的機(jī)器
port端口號(hào):某一時(shí)間段,唯一標(biāo)識(shí)一臺(tái)計(jì)算機(jī)上的某一個(gè)應(yīng)用程序
ip+port:能夠唯一標(biāo)識(shí)全世界上獨(dú)一無二的一臺(tái)計(jì)算機(jī)上的某個(gè)應(yīng)用程序
TCP協(xié)議:(流式協(xié)議,可靠協(xié)議)
三次握手四次揮手
三次握手:建立連接
四次揮手:斷開連接
TCP協(xié)議是一種安全的協(xié)議:變現(xiàn)在:建立連接后才可以傳輸數(shù)據(jù),數(shù)據(jù)傳輸完成后才能斷開連接。
總結(jié)
以上是生活随笔為你收集整理的软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础知识:字符编码
- 下一篇: python中基于tcp协议的通信(数据