1.通訊的條件程序員
通訊的是由:物理鏈接的創建,互聯網協議。(互聯網協議就是一系列的標準,至關於就是計算機界的英語)。數據庫
2.網絡協議瀏覽器
一系列統一的標準,這些標準稱之爲互聯網協議,互聯網的本質就是一系列的協議,總稱爲‘互聯網協議’(Internet Protocol Suite).服務器
互聯網協議的功能:定義計算機如何接入internet,以及接入internet的計算機通訊的標準。網絡
3.tcp/ip五層協議socket
(1.)物理層tcp
傳輸介質:網卡、電纜、光纜、雙絞線(網線)。分佈式
物理層功能:主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0ui
(2.)數據鏈路層google
數據鏈路層的功能:定義了電信號的分組方式
以太網協議:
ethernet規定
head | data |
head包含:(固定18個字節)
data包含:(最短46字節,最長1500字節)
head長度+data長度=最短64字節,最長1518字節,超過最大限制就分片發送。
MAC地址
head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具有網卡,發送端和接收端的地址即是指網卡的地址,即mac地址
mac地址:每塊網卡出廠時都被燒製上一個世界惟一的mac地址,長度爲48位2進制,一般由12位16進制數表示(前六位是廠商編號,後六位是流水線號)
廣播:
廣播(原文:broadcast)是指封包在計算機網絡中傳輸時,目的地址爲網絡中全部設備的一種傳輸方式。實際上,這裏所說的「全部設備」也是限定在一個範圍之中,稱爲「廣播域」。使用協議ARP協議。
以太網和IPv4網都用全1的地址表示廣播,分別是ff:ff:ff:ff:ff:ff和255.255.255.255。
設備:二層交換機
(3.)網絡層:
網絡層功能:引入一套新的地址用來區分不一樣的廣播域/子網,這套地址即網絡地址。
IP協議:
ip地址分紅兩部分
注意:單純的ip地址段只是標識了ip地址的種類,從網絡部分或主機部分都沒法辨識一個ip所處的子網
例:172.16.10.1與172.16.10.2並不能肯定兩者處於同一子網
子網掩碼
所謂」子網掩碼」,就是表示子網絡特徵的一個參數。它在形式上等同於IP地址,也是一個32位二進制數字,它的網絡部分所有爲1,主機部分所有爲0。好比,IP地址172.16.10.1,若是已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。
ip數據包
ip數據包也分爲head和data部分,無須爲ip包定義單獨的欄位,直接放入以太網包的data部分
head:長度爲20到60字節
data:最長爲65,515字節。
而以太網數據包的」數據」部分,最長只有1500字節。所以,若是IP數據包超過了1500字節,它就須要分割成幾個以太網數據包,分開發送了。
以太網頭 | ip 頭 | ip數據 |
ARP協議
arp協議由來:計算機通訊基本靠吼,即廣播的方式,全部上層的包到最後都要封裝上以太網頭,而後經過以太網協議發送,在談及以太網協議時候,我門瞭解到
通訊是基於mac的廣播方式實現,計算機在發包時,獲取自身的mac是容易的,如何獲取目標主機的mac,就須要經過arp協議。
ARP協議的含義:址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。
arp協議功能:廣播的方式發送數據包,獲取目標主機的mac地址
協議工做方式:每臺主機ip都是已知的
例如:主機172.16.10.10/24訪問172.16.10.11/24
一:首先經過ip地址和子網掩碼區分出本身所處的子網
場景 | 數據包地址 |
同一子網 | 目標主機mac,目標主機ip |
不一樣子網 | 網關mac,目標主機ip |
二:分析172.16.10.10/24與172.16.10.11/24處於同一網絡(若是不是同一網絡,那麼下表中目標ip爲172.16.10.1,經過arp獲取的是網關的mac)
源mac | 目標mac | 源ip | 目標ip | 數據部分 | |
發送端主機 | 發送端mac | FF:FF:FF:FF:FF:FF | 172.16.10.10/24 | 172.16.10.11/24 | 數據 |
三:這個包會以廣播的方式在發送端所處的自網內傳輸,全部主機接收後拆開包,發現目標ip爲本身的,就響應,返回本身的mac
設備:三層交換機、路由器。
(4.)傳輸層
傳輸層的由來:網絡層的ip幫咱們區分子網,以太網層的mac幫咱們找到主機,而後你們使用的都是應用程序,你的電腦上可能同時開啓qq,暴風影音,等多個應用程序,
那麼咱們經過ip和mac找到了一臺特定的主機,如何標識這臺主機上的應用程序,答案就是端口,端口即應用程序與網卡關聯的編號。
傳輸層功能:創建端口到端口的通訊
補充:端口範圍0-65535,0-1023爲系統佔用端口
tcp協議:
可靠傳輸,TCP數據包沒有長度限制,理論上能夠無限長,可是爲了保證網絡的效率,一般TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包沒必要再分割。
以太網頭 | ip 頭 | tcp頭 | 數據 |
udp協議:UDP協議全稱是用戶數據報協議[1] ,在網絡中它與TCP協議同樣用於處理數據包,是一種無鏈接的協議。
不可靠傳輸,」報頭」部分一共只有8個字節,總長度不超過65,535字節,正好放進一個IP數據包。
以太網頭 | ip頭 | udp頭 | 數據 |
tcp報文
tcp三次握手和四次揮手
(5.)應用層
應用層功能:規定應用程序的數據格式。
例:TCP協議能夠爲各類各樣的程序傳遞數據,好比Email、WWW、FTP等等。那麼,必須有不一樣協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了」應用層」。
傳輸數據是數據進行封裝數據包的過程,而接收數據是數據進行解封裝的過程。
應用層協議:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS
4.socket
網絡上的兩個程序經過一個雙向的通訊鏈接實現數據的交換,這個鏈接的一端稱爲一個socket。
可以惟一標示網絡中的進程後,它們就能夠利用socket進行通訊了,什麼是socket呢?咱們常常把socket翻譯爲套接字,socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層複雜的操做抽象爲幾個簡單的接口供應用層調用已實現進程在網絡中通訊。
socket起源於UNIX,在Unix一切皆文件哲學的思想下,socket是一種"打開—讀/寫—關閉"模式的實現,服務器和客戶端各自維護一個"文件",在創建鏈接打開後,能夠向本身文件寫入內容供對方讀取或者讀取對方內容,通信結束時關閉文件。
介於應用層與傳輸層之間,把tcp/udp封裝起來,爲開發人員提供簡單的接口,因此程序員只須要遵循socket的標準,寫出的程序天然就遵循tcop/udp協議。
5.DHCP協議
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)一般被應用在大型的局域網絡環境中,主要做用是集中的管理、分配IP地址,使網絡環境中的主機動態的得到IP地址、Gateway地址、DNS服務器地址等信息,並可以提高地址的使用率。
1.遞歸查詢:
通常客戶機和服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求後,若DNS服務器自己不能解析,則會向另外的DNS服務器發出查詢請求,獲得結果後轉交給客戶機;
2.迭代查詢(反覆查詢):
通常DNS服務器之間屬迭代查詢,如:若DNS2不能響應DNS1的請求,則它會將DNS3的IP給DNS2,以便其再向DNS3發出請求;
舉例:好比學生問老師一個問題,王老師告訴他答案這之間的叫遞歸查詢。這期間也許王老師也不會,這時王老師問張老師,這之間的查詢叫迭代查詢!
2.打開瀏覽器,想要訪問Google,在地址欄輸入了網址:www.google.com。
3.dns協議(基於udp協議)