網絡基礎
一、什么是互聯網協議及為何要有互聯網協議 ?
互聯網協議:指的就是一系列統一的標準,這些標準稱之為互聯網協議。互聯網的本質就是一系列的協議,總稱為‘互聯網協議’(Internet Protocol Suite)。
互聯網協議的功能:定義計算機如何接入internet,以及接入internet的計算機通信的標準。
二、tcp/ip五層模型
總結如下圖:
? tcp的三次握手和四次揮手,如下圖:
socket:我們經常把socket翻譯為套接字,socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層復雜的操作抽象為幾個簡單的接口供應用層調用已實現進程在網絡中通信。socket起源于UNIX,在Unix一切皆文件哲學的思想下,socket是一種"打開—讀/寫—關閉"模式的實現,服務器和客戶端各自維護一個"文件",在建立連接打開后,可以向自己文件寫入內容供對方讀取或者讀取對方內容,通訊結束時關閉文件。
?
結論:唯一標示互聯網中唯一程序:ip+port.
補充:socket層,位于應用層與傳輸層之間,把tcp/udp封裝起來,為開發人員提供簡單接口。所以,程序員只需要遵循socket的標準,寫出的程序自然遵循tcp或udp協議。
?
三、用戶上網流程
第一步:本機獲取四大要素:
-
- 本機的IP地址(Ipv4)
- 子網掩碼
- 網關的IP地址
- DNS的IP地址
網關:例如,從一個房間走到另一個房間,必然要經過一扇門。同樣,從一個網絡向另一個網絡發送信息,也必須經過一道“關口”,這道關口就是網關。顧名思義,網關(Gateway)就是一個網絡連接到另一個網絡的“關口”。也就是網絡關卡。
第二步:輸入網址
打開瀏覽器,想要訪問Google,在地址欄輸入了網址:www.google.com。
第三步:dns協議(基于udp協議)
DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上。
DNS域名解析過程,如下圖:
?
遞歸查詢:問路,別人幫自己問路
迭代查詢:問路,別人說我不知道,但是我可以告訴你誰知道,你自己去問
13臺根服務器:要用來管理互聯網的主目錄,全世界目前只有13臺。1個為主根服務器,放置在美國。其余12個均為輔根服務器,其中9個放置在美國,歐洲2個,位于英國和瑞典,亞洲1個,位于日本。
域名定義:http://jingyan.baidu.com/article/1974b289a649daf4b1f774cb.html
頂級域名:以.com,.net,.org,.cn等等屬于國際頂級域名,根據目前的國際互聯網域名體系,國際頂級域名分為兩類:類別頂級域名(gTLD)和地理頂級域名(ccTLD)兩種。類別頂級域名是以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等結尾的域名,均由國外公司負責管理。地理頂級域名是以國家或地區代碼為結尾的域名,如"CN"代表中國,"UK"代表英國。地理頂級域名一般由各個國家或地區負責管理。
二級域名:二級域名是以頂級域名為基礎的地理域名,比喻中國的二級域有,.com.cn,.net.cn,.org.cn,.gd.cn等.子域名是其父域名的子域名,比喻父域名是abc.com,子域名就是www.abc.com或者*.abc.com.。一般來說,二級域名是域名的一條記錄,比如alidiedie.com是一個域名,www.alidiedie.com是其中比較常用的記錄,一般默認是用這個,但是類似*.alidiedie.com的域名全部稱作是alidiedie.com的二級。
第四步:Http內容
假定這個部分的長度為4960字節,被嵌在TCP數據包之中。
第五步:TCP協議
TCP數據包需要設置端口,接收方(Google)的HTTP端口默認是80,發送方(本機)的端口是一個隨機生成的1024-65535之間的整數,假定為51775。
TCP數據包的標頭長度為20字節,加上嵌入HTTP的數據包,總長度變為4980字節。
第六步:IP協議
然后,TCP數據包再嵌入IP數據包。IP數據包需要設置雙方的IP地址,這是已知的,發送方是192.168.1.100(本機),接收方是172.194.72.105(Google)。
IP數據包的標頭長度為20字節,加上嵌入的TCP數據包,總長度變為5000字節。
第七步:ethernet以太網協議
最后,IP數據包嵌入以太網數據包。以太網數據包需要設置雙方的MAC地址,發送方為本機的網卡MAC地址,接收方為網關192.168.1.1的MAC地址(通過ARP協議得到)。
以太網數據包的數據部分,最大長度為1500字節,而現在的IP數據包長度為5000字節。因此,IP數據包必須分割成四個包。因為每個包都有自己的IP標頭(20字節),所以四個包的IP數據包的長度分別為1500、1500、1500、560。
第八步:服務器端響應
經過多個網關的轉發,Google的服務器172.194.72.105,收到了這四個以太網數據包。
根據IP標頭的序號,Google將四個包拼起來,取出完整的TCP數據包,然后讀出里面的”HTTP請求”,接著做出”HTTP響應”,再用TCP協議發回來。
本機收到HTTP響應以后,就可以將網頁顯示出來,完成一次網絡通信。
?