## 網際網路協定
- 概括:從上到下,越上越接近使用者,越下越接近硬體
- 應用層:
+ 規定應用程式的資料格式
+ [head(以太網标頭) [head(ip标頭) [head(tcp标頭) data(應用層資料包)]]]
- 傳輸層(端口到端口的通信): 定義端口号
+ 端口:
* 0到65535(2^16)的整數
* 程序使用網卡的編号
* 通過ip+mac确定主機,隻要确定主機+端口(套接字socket),就能進行程式間的通信
+ udp協定:
* 資料包中加入端口依賴的新協定
* 資料包[head(發送、接收mac) [head(發送、接收ip) [head(發送、接收端口) data]]]
* 簡單,可靠性差,不知道對方是否接受包
+ tcp協定:
* 帶有确認機制的udp協定
* 過程複雜,實作困難,消耗資源
```
tcp/ip connect: tcp/ip的三次握手
标有syn的資料包
------------->
标有syn/ack的資料包
client <------------- server
标有ack的資料包
-------------->
- 網絡層(主機到主機的通信):定義ip
tcp/ip finish: tcp/ip的四次握手
fin
<-------------
ack
client -------------> server
- 網絡層(主機到主機的通信):
+ ip協定
* ipv4:
- 32個二進制位表示,由網絡部分和主機部分構成,
- 子網路遮罩: 網絡部分都為1,主機部分都為0,目的判斷ip的網絡部分,如255.255.255.0(11111111.11111111.11111111.00000000)
- ip資料包:标頭head+資料data,放進以太網資料包的data部分[head [head data]]
- ip資料包的傳遞:
+ 非同一網絡:無法獲得mac位址,發送資料到網關,網關處理
- arp(address resolation protocol): 解析位址協定,通過ip解析mac位址
+ 同一網絡:mac位址填寫ff:ff:ff:ff:ff:ff:ff,廣播資料,對比ip,不符合丢包
- 連結層:定義mac
+ 定義資料包(幀frame)
* 标頭(head):資料包的一些說明項, 如發送者、接收者、資料類型
* 資料(data):資料包的具體内容
* 資料包:[head data]
+ 定義網卡和網卡唯一的mac位址
* 以太網規定接入網絡的所有終端都應該具有網卡接口,資料包必須是從一個網卡的mac位址到另一網卡接口的mac位址
* mac全球唯一,16位16位進制組成,前6廠商編号,後6網卡流水号
+ 廣播發送資料
* 向本網絡内的所有裝置發送資料包,對比接收者mac位址,不是丢包,是接受
- 實體層:實體層
+ 終端(pc,phone,pad...)的實體連接配接(光纜,電纜,路由...),負責傳遞0和1信号
非學,無以緻疑;非問,無以廣識