基礎 網絡架構 網絡硬件名詞 網絡通訊協議

網絡架構

  • C\S架構:客戶端服務端架構數據庫

    客戶端(client) : 享受服務端提供的服務瀏覽器

    服務端(server) : 給客戶端提供服務安全

    • 軟件CS架構: 京東,淘寶,qq,微信,暴風影音,快播 硬件CS架構: 打印機服務器

  • B\S 瀏覽器和服務端 B(browser)微信

    • 谷歌,360,IE網絡

       

名詞 硬件

網絡通訊當中遇到的名詞 硬件架構

 網卡:  接收電信號
mac地址: 網卡的惟一標識,全球惟一, 6位點分16進制 8C-EC-4B-87-99-D7 16進制的6個數表示,前三位廠商 編號,後三位生產流水號

廣播 : 信息發給全部人
單播 : 單獨發給某我的或者說某個設備
廣播風暴 : 不安全,容易擁堵網絡
IP地址 : 劃分廣播域
          192.168.15.113 四個點分十進制
          IPv4 :  
          IPv6 : 6個冒號分十六進制
          IPv6 地址: fe80::48c3:8f81:8474:c7d0%2
 
集線器 : 將全部連電腦連通起來
交換機 : 升級版集線器
DHCP協議 : 自動分配IP地址
劃分廣播域--> IP網段 : 192.168.15.0 - 192.168.15.255 屬於同一子網
  192.168.16.0 - 192.168.16.255
子網掩碼 : 計算目標IP地址是否和我們是同一網段
同一網段的:廣播發送
不一樣網段的:發送給路由器
255.255.255.0,
例外一個班的同窗的IP地址爲:192.168.14.12
192.168.14.12
255.255.255.0

11000000.10101000.00001110.00001100
11111111.11111111.11111111.00000000
11000000.10101000.00001110.00000000
192.168.14.0
計算是否屬於同一網段
屬於同一個網段的,咱們成爲屬於同一子網

路由器(內網的做用) : 管理局域網 鏈接外網

找外部網路的設備:

域名:www.jd.com --> IP地址
DNS服務器:記錄着全部的域名和他網站對應的那臺服務器的IP地址的對應關係,理解爲一個字典
{'www.jd.com':192.168.15.12}

網關:在路由器這兒,把關你對外的請求
NAT技術: 將你的IP地址,轉換爲網關的IP地址
外網又稱爲公網 ,網關的IP地址又稱爲外網IP地址或者公網IP地址

路由器(外網的做用) : 轉發消息
路由協議 : 計算一個最優路徑,而後進行路由轉發
發到京東的路由器上,京東的路由器作了端口映射(看圖)

端口:標識電腦上某個應用程序,範圍0-65535 0-1024 內部程序用的,咱們通常使用的都是8000之後的

經過IP地址+端口:我就能惟一肯定一臺電腦上的某個應用程序

網絡通訊協議

應用層:socket

  • HTTP(Hypertext Transfer Protocol 超文本傳輸協議,顯示網頁)tcp

  • DNS(Domain Name System)域名系統性能

  • FTP(File Transfer Protocol)文件傳出協議

  • SFTP(SSH File Transfer Protocol,和FTP不同)安全文件傳送協議

  • SCP(Secure copy,based on SSH)SCP是智能網的核心部件,通常由小型機、高性能微機和大型實時高速數據庫組成。

  • SSH (Secure Shell)

通訊層:

  • TCP(Transmission Control Protocol 三次握手傳輸協議)

  • UDP

網絡層:

  • IP(Internet Protocol)

  • ICMP(Internet Control Message Protocol,主要用於路由發送錯誤報告)

鏈路層:

  • MAC(media access control)

tcp\ip五層
arp協議:經過IP地址找到mac地址

OSI 協議

博客資料: http://www.javashuo.com/article/p-touxjwsr-gx.html

互聯網的本質就是一系列的網絡協議,這個協議就叫OSI協議(一系列協議),按照功能不一樣,分工不一樣,人爲的分層七層。實際上這個七層是不存在的。沒有這七層的概念,只是人爲的劃分而已。

  • 七層劃分爲(osi七層):應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。

  • 五層劃分爲(tcp/ip五層) : 應用層、傳輸層、網絡層、數據鏈路層、物理層。

  • 四層劃分爲:應用層、傳輸層、網絡層、網絡接口層。

每層中的 設備

每層中的做用:

  • 應用層:

    提供應用程序間的通訊, 應用層是實際應用程序間的接口

  • 表示層:

    處理數據格式,數據 加密 解密 壓縮 解壓縮 像應用層提供數據 負責數據轉換和代碼格式化

  • 會話層:

    創建維護和管理會話,將不一樣的應用程序數據分離

  • 傳輸層:

    創建主機端到端的連接,提供流量控制,差錯校驗,分片上層數據,保證數據正確傳輸

    端口範圍 0 - 65535 0-1024 爲系統佔用 通常使用 8000 以上

  • 網絡層:

    IP地址尋址 和 路由選擇 定義網絡地址 路由選擇

  • 數據鏈路層:

    介質訪問,鏈路管理,mac 地址尋址

  • 物理層:

    規範介質,傳輸bit流

OSI中的層 功能 TCP/IP協議族
應用層 文件傳輸,電子郵件,文件服務,虛擬終端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示層 數據格式化,代碼轉換,數據加密 沒有協議
會話層 解除或創建與別的接點的聯繫 沒有協議
傳輸層 提供端對端的接口 TCP,UDP
網絡層 爲數據包選擇路由 IP,ICMP,RIP,OSPF,BGP,IGMP
數據鏈路層 傳輸有地址的幀以及錯誤檢測功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理層 以二進制數據形式在物理媒體上傳輸數據 ISO2110,IEEE802,IEEE802.2

詳細解釋

物理層:

  • 字面意思解釋:物理傳輸、硬件、物理特性。在深圳的你與北京的朋友聊天,你的電腦必需要能上網,物理體現是什麼?是否是接一根網線,插個路由器,北京的朋友那邊是否是也有根網線,也得插個路由器。也就是說計算機與計算機之間的通訊,必需要有底層物理層方面的連通,就相似於你打電話,中間是否是必須得連電話線。

  • 中間的物理連接能夠是光纜、電纜、雙絞線、無線電波。中間傳的是電信號,即010101...這些二進制位。

  • 底層傳輸的010010101001...要讓這些010010101001...有意思,人爲的分組再適合不過了,8位一組,發送及接收都按照8位一組來劃分。接收到8位爲一組的話,那麼就能夠按照這8位數來作運算。若是沒有分組,對方接收的計算機根本就不知道從哪一位開始來作計算,也解析不了收到的數據。我發了16位你就按照16位來作計算嗎?我發100位你就按照100位作計算嗎?沒什麼意義是吧。所以要想讓底層的電信號有意義,必需要把底層的電信號作分組。我作好8位一組,那麼我收到數據,我就知道這幾個8位作一組,這幾個8位作一組。那麼每一個8位就能夠獲得一個肯定的數。分組是誰幹的活呢?物理層幹不了,這個是數據鏈路層乾的。

數據鏈路層:

  • 早期的時候,數據鏈路層就是來對電信號來作分組的。之前每一個公司都有本身的分組方式,很是的亂,後來造成了統一的標準(標準就是協議),即以太網協議Ethernet。

  • Ethernet規定

    一組電信號稱之爲一個數據包,或者叫作一個「幀」

    每一數據幀分紅:報頭head和數據data兩部分

    • head包含:(固定18個字節)

      發送者(源地址,6個字節) 接收者(目標地址,6個字節) 數據類型(6個字節)

    • data包含:(最短46字節,最長1500字節)

  • 數據包的具體內容

    head長度+data長度=最短64字節,最長1518字節,超過最大限制就分片發送。

    這就像寫信,發送者的地址(源地址)就是你家的地址,接收者地址(目標地址)就是對方的收信地址,你家的路由器就至關於郵局。其實在計算機通訊中的源地址和目標地址指的是mac地址。

  • Mac地址的由來:

    head中包含的源和目標地址由來:Ethernet規定接入Internet的設備都必須具有網卡,發送端的和接收端的地址即是指網卡的地址,即Mac地址。

    每塊網卡出廠時都被燒錄上一個實際上惟一的Mac地址,長度爲48位2進制,一般由12位16進制數表示,(前六位是廠商編碼,後六位是流水線號)

     

  • 有了mac地址之後,計算機就能夠通訊了,假設一個教室就是一個局域網(隔離的網絡),這個教室裏面有幾臺計算機,計算機的通訊和人的通訊是一個道理,把教室裏面的人都比做一個個計算機,假設教室裏面的人都是瞎子,其實計算機就是瞎子的,計算機通訊基本靠吼,如今我要找教室裏面的飛哥要戰狼2的片,而後我就吼一聲,說我要找飛哥要戰狼2的片,戰狼2的片就屬於個人數據,可是我在發的時候我是否是要標識我是誰,我要找誰,我是誰就是個人mac地址,我要找誰就是飛哥的mac地址,這兩個地址作數據包的頭部,再加上數據戰狼2的片就構成了一個數據幀。

     

  • 這個數據包封裝好之後就往外發,到物理層之後就所有轉成二級制,往外發是怎麼發的呢?就是靠吼。即「我是Edison,我找飛哥要戰狼2的片」。這麼吼了一嗓子之後,全屋子的人都能聽到,這就是廣播。

    計算機底層,只要在一個教室裏(一個局域網),都是靠廣播的方式,吼。

     

  • 局域網的理解:什麼是互聯網,互聯網就是由一個個局域網組成,局域網內的計算機不論是對內仍是對外都是靠吼,這就是數據鏈路層的工做方式-----廣播。

    廣播出去之後,全部人都聽得見,全部人都會拆開這個包,讀發送者是誰,接收者是誰,只要接收者不是本身就丟棄掉。對計算機來講,它會看本身的Mac地址,飛哥收到之後,他就會把片發給我,發送回來一樣採用廣播的方式了,靠吼。

    同一個教室(同一個局域網)的計算機靠吼來通訊,那不一樣教室的計算機又如何?

    好比說局域網1的pc1與局域網2的pc10如何通訊?你在教室1(局域網1)吼,教室2(局域網2)的人確定是聽不見的。這就是跨網絡進行通訊,數據鏈路層就解決不了這個問題了,這就得靠網絡層出面了。

     

  • 在講網絡層以前,其實基於廣播的這種通訊就能夠實現全世界通訊了,你吼一聲,若是全世界是一個局域網,全世界的計算機確定能夠聽得見,從理論上彷佛行得通,若是全世界的計算機都在吼,你想想,這是否是一個災難。所以,全世界不能是一個局域網。因而就有了網絡層。

網絡層:

  • 網絡層定義了一個IP協議,

    你想,我是這個教室的一個學生,我想找隔壁教室一個叫老王的學生,我也不認識老王,那怎麼辦,我吼?老王在另一個教室確定是聽不到的。找教室的負責人,這個教室的負責人就負責和隔壁教室的負責人說話,說咱們教室的有個學生要找大家教室的老王。往外傳的東西交給負責人就能夠了,內部的話上面已經提到,經過廣播的方式,對外的東西廣播失效。教室的負責人就是網關,網關即網絡關口的意思。

  • Mac地址是用來標識你這個教室的某個位置,IP地址是用來標識你在哪一個教室(哪一個局域網)。你要跨網絡發包你是否是要知道對方的IP地址,好比你要訪問百度,你確定得知道百度服務器的IP地址。計算機在發包前,會判斷你在哪一個教室,對方在哪一個教室,若是在一個教室,基於mac地址的廣播發包就OK了;若是不在一個教室,即跨網絡發包,那麼就會把你的包交給教室負責人(網關)來轉發。Mac地址及IP地址惟一標識了你在互聯網中的位置。

    數據鏈路層中會把網絡層的數據包封裝到數數據鏈路層的數據位置,而後再添加上本身的包頭,再發給物理層,物理層發給網關,網關再發給對方教室的網關,對方教室的網關收到後在那個教室作廣播。

    在數據鏈路層看,數據封裝了兩層,跟玩俄羅斯套娃有點相似,一層套了一層。

    如今來看另外一個問題,在吼以前怎麼知道對方的Mac地址?這就得靠ARP協議。

  • ARP協議的由來:在你找飛哥要片以前,你的先幹一件事,想辦法知道飛哥的Mac地址。即你的機器必須先發一個ARP包出去,ARP也是靠廣播的方式發,ARP發送廣播包的方式以下:

  • 局域網中怎麼獲取對方的Mac地址:

    確定要知道對方的IP地址,這是最基本的,就像你要訪問百度,確定得知道百度的域名,域名就是百度的IP地址。本身的IP能夠輕鬆得到,本身的Mac也輕鬆獲取,目標Mac爲16個F,咱們叫廣播地址,表達的意思是我想要獲取這個目標IP地址172.16.10.11的機器的Mac地址。Mac爲16個F表明的是一種功能,這個功能就是獲取對方的MAC地址,計算機的Mac永遠不多是16個F。假設是在本教室廣播,一嗓子吼出去了,全部人開始解包,只有IP地址是172.16.10.11的這我的纔會返回他的Mac地址,其餘人所有丟棄。發回來源Mac改爲飛哥本身的Mac地址,同時把飛哥的Mac地址放在數據部分。

     

    跨網絡怎麼獲取對方的Mac地址:

    經過IP地址區分,計算機運算判斷出飛哥不在同一個教室,目標IP就變成了網關的IP了。網關的IP在計算機上配死了,能夠輕鬆獲取。

    樣網關就會把它的Mac地址返回給你,而後正常發包

    網關幫你去找飛哥,但對用戶來講,咱們根本就感受不到網關的存在。

傳輸層

  • 傳輸層的由來:網絡層的ip幫咱們區分子網,以太網層的mac幫咱們找到主機,而後你們使用的都是應用程序,你的電腦上可能同時開啓qq,暴風影音,等多個應用程序,

    那麼咱們經過ip和mac找到了一臺特定的主機,如何標識這臺主機上的應用程序,答案就是端口,端口即應用程序與網卡關聯的編號。

    傳輸層功能:創建端口到端口的通訊

    補充:端口範圍0-65535,0-1023爲系統佔用端口

    tcp協議:
    • 可靠傳輸,TCP數據包沒有長度限制,理論上能夠無限長,可是爲了保證網絡的效率,一般TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包沒必要再分割。

    • 以太網頭 ip 頭               tcp頭               數據                                                  

    udp協議:
    • 不可靠傳輸,」報頭」部分一共只有8個字節,總長度不超過65,535字節,正好放進一個IP數據包。

    • 以太網頭 ip頭               udp頭              數據            

應用層

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

    應用層功能:規定應用程序的數據格式。

    例:TCP協議能夠爲各類各樣的程序傳遞數據,好比Email、WWW、FTP等等。那麼,必須有不一樣協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了」應用層」。

 

三次握手

  • 用戶發出連接請求, 服務端確承認以進行連接 並返回響應,用戶端發出連接請求

四次揮手

  • 用戶發出請求斷開的請求,服務端返回須要等待完成後續的工做 響應,再次返回 能夠斷開連接的響應,用戶發出正式斷開連接的請求

tcp和udp的區別

tcp協議:面向鏈接,消息可靠,相對udp來說,傳輸速度慢,消息是面向流的,無消息保護邊界0 udp協議:面向無鏈接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護邊界.

socket 是在應用層 跟傳輸層之間 的 一個抽象層

相關文章
相關標籤/搜索