幾個基本的概念
-
1.TCP/IP協議族
計算機與網絡設備之間的信息傳輸需要基于相同的方法,不同設備通信之間的規則,稱之為協議,而與互聯網相關聯的協議集合起來總稱為TCP/IP,也就是說TCP/IP是互聯網相關的協議集合;
此外還有說法認為TCP/IP就是指TCP/IP這兩種協議,還有一種說法認為TCP/IP是 在IP協議的通信過程中,使用到的協議族的統稱;
-
-----------2.TCP/IP的分層管理----------------
TCP/IP協議族按層次分別分為應用層,傳輸層,網絡層以及數據鏈路層,稱之為TCP/IP協議的四層網絡模型:
-
應用層
應用層決定了用戶提供應用服務時通信的活動;
TCP/IP預存了各類通用的應用服務:
類似FTP(file transfer protocol 文件傳輸協議) ,DNS(Domain Name System)服務,HTTP協議等等;
-
傳輸層
傳輸層對上層應用層,提供處于網絡連接中的兩臺的計算機之間的數據傳輸.
個人理解傳輸層主要是提供各種控制,操作從應用層傳輸過來的數據的協議;
有兩個協議TCP(Transmission Control Protocol,傳輸控制協議)和UDP(User Data Protocol ,用戶數據報協議)
-
網絡層(網絡互連層)
網絡層用來處理在網絡上流動的數據包,數據包是網絡傳輸的最小數據單位.該層規定了通過怎樣的路徑/傳輸路線到達對方的計算機,并把數據包傳送給對方.
與對方的計算機之間通過多態計算機或網絡設備進行傳輸時,網絡層所起的作用就是在眾多的選項中選擇一條作為傳輸路線;
-
數據鏈路層(又稱為鏈路層,網絡接口層)
用來處理連接網絡的硬件部分.包括控制操作系統,硬件的設備驅動,NIC(Network Interface Card,網絡適配器,即網卡),及光纖等物理可見部分(還包括連接器等一切傳輸媒介).硬件上的范疇都在數據鏈路層的作用范圍內.
-
-------------3.TCP/IP的通信流-----------------
在利用TCP/IP進行網絡通信的時候,會通過分層的順序與對方進行通信.發送端會從應用層往下走,而接收端則從應用層往上走;
如上圖所示:
作為發送端的客戶端在應用層按照HTTP協議的規定發送一個想要看某個web頁面的HTTP請求;
在傳輸層按照TCP(傳輸控制協議)的規定,把從應用層接收到的數據(HTTP請求報文)進行分割,并在各個報文上打上標記序號及端口號轉發給網絡層;
在網絡層按照IP協議的規定,增加作為通信目的地的MAC地址后轉發給鏈路層;
鏈路層實質上是硬件上的連接,通過各種硬件設備實現網絡數據的交換;
接收端的服務器在鏈路層接收到數據,按順序向上層發送,一直發送至應用層,當傳輸至服務器端應用層,才算真正的接收到了客戶端發送過來的HTTP請求;
-
---------4.IP,TCP,和DNS--------------------
-
負責傳輸的IP協議
IP協議(Internet Protocol,網際協議)位于網絡層,其作用是搜索服務器端的地址,而為了準確無誤的傳輸,則需要滿足各種條件;其中最重要的兩個條件則是IP地址和MAC地址,
- IP地址指明了節點的分配位置;
- MAC地址則是網卡的所屬的固定地址;
注意: IP地址是可以變換的,但是MAC地址則是網卡的固定地址,是無法變換的;
地址傳輸協議維基解釋
當在同一局域網的一臺主機希望和另一臺主機直接通信的時候,這時候必須知道目的主機的MAC地址是什么?因此這時候需要ARP(Address Resolution Protocol)來將目的主機的IP地址轉換為MAC地址.
但是當發送主機和目的主機不在同一個局域網的時候,這個時候即使知道目的主機的MAC地址,也無法直接發送過去,所以在這種情況下,發送主機通過ARP協議獲取的MAC地址獲取的將不是目的主機的真實目的地址,而是一臺可以通向局域網外部的路由器的地址,當數據幀發送至這臺路由器中轉直至找到目的主機;
-
確??煽啃缘腡CP協議
TCP協議位于傳輸層,,提供字節流(Byte Stream Service)服務.
所謂字節流服務,是指將大數據分割為報文段(segment)的數據包進行管理;
TCP協議通過三次握手策略(acknowledgement)來確保數據包能夠準確的到達目標位置;
-
負責域名解析的DNS服務
DNS(Domain Name System)服務是和HTTP協議一樣位于應用層,提供域名到IP地址之間的解析服務;通過DNS服務可以實現:
通過域名查找iP地址;
通過IP地址反查域名;
-
-----------5.各種協議與HTTP協議間的關系圖------------------;
在這里要注意的是:
- 最后網絡層與數據鏈路層的搜尋目標服務器端的地址的操作時同時發生的,并不是搜尋了兩次;
- 客戶端發出一個HTTP請求后,會在客戶端本地的host文件中去找主機對應的ip地址,如果找不到,則會通過公網的DNS服務來解析請求的域名,將其轉換為ip地址;
- 從服務器端到客戶端的流程與從客戶端到服務器端的流程是一致的;
HTTP協議的基本結構
HTTP協議(Hypertext Transer Protocal ,超文本傳輸協議),同TCP/IP協議族的其他協議主要用于客戶端到服務器端的通信;
-
----------------1.HTTP請求報文--------------------
HTTP的請求報文主要由請求方法,請求URI,協議版本,可選的請求首部字段和內容實體構成;
在這里要注意get和post請求方法的區別在于:
(1)客戶端給服務器端傳輸數據的方式不一樣;
- get方式通過URL地址欄傳遞數據;
- post方式通過表單的方式來傳遞數據;
(2)安全性,GET方式在url上傳遞,可以被用戶查看到,而post通過表單提交,相對比GET安全;
(3)傳遞數據的大小;GET通過URL地址欄傳遞數據,數據大小受瀏覽器和操作系統的影響,IE瀏覽器只能通過get傳遞2K左右的數據;而POST原則上不受限制,但是受服務器配置的影響,一般服務器默認允許2MB左右數據,這個可以自己設置;
(4)表單默認是通過GET提交到服務器,可以通過method屬性設置提交的方式;
(5)超鏈接默認是GET方式請求: