1、OSI網絡分層模型
物理層(physical):為啟動、維護及關閉物理鏈路定義了電氣規范、機械規范、過程規范和功能規范。PDU傳輸單位是bit。
數據鏈路層(datalink):PDU傳輸單位是幀(frame),Ethernet(以太網)工作在此層,只負責一個鏈路的通信,不跨路由。MAC地址工作在此層。
網絡層(network):PDU傳輸單位是數據包(packet),提供邏輯的IP地址。
傳輸層(transport):PDU傳輸單位是數據段(segment),TCP和UDP可靠與不可靠的傳輸,終端對終端的通訊,可以跨路由,路由會分成多個網段和鏈路。
會話層(session):
表示層(presention):
應用層(application):
會話層到應用層的PDU傳輸單位是message。
PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位。
對等通訊
數據傳輸過程
2、三種通訊模式
廣播(broadcast):目標為多個設備
組播(multicast):目標為一個組里的多個設備
廣播和組播一般在局域網中使用,不能跨路由
單播(unicast):目標是一個設備,但并不代表別人聽不到,一般在廣域網中使用,可以跨路由
3、網絡線纜和接口
水晶頭接口:RJ45
電話線水晶頭:RJ11
非屏蔽式雙絞線UTP
采用T568A/B標準,我國一般采用T568B標準
4、Ethernet Frame結構
下層為上層提供服務,要提供一個上層服務的類型,也就是type。
前八個字節的前導信息,6個字節的目標MAC地址和源MAC地址,FCS為校驗位
幀結構的大小為72-1526個字節。
一個十六進制表示4位二進制
MAC地址是48位,由12個十六進制組成。
5、Hub和交換機
區別:Hub不可以隔斷沖突域,是多端口中繼器,并不記憶該信息包是由哪個MAC地址發出,哪個MAC地址在Hub的哪個端口,工作在物理層。
交換機可以隔斷沖突域,監聽數據幀中源MAC地址,學習MAC,建立MAC表,工作在數據鏈路層。不能隔斷廣播。
6、路由器
把一個數據包從一個設備發送到不同網絡里的另一個設備上去。這些工作依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。路由的實現依靠路由器中的路由表來完成
為了實現路由,路由器需要做下列事情:
?分隔廣播域
?選擇路由表中到達目標最好的路徑
?維護和檢查路由信息
?連接廣域網
7、VLAN
連到同一個交換機的設備是在同一個網絡,各設備之間可以互相訪問,不安全,如果這個網絡中有財務部,需要在交換機上做策略,在交換機上劃分VLAN,就相當于加了一個路由器,可以將財務部劃分到單獨一個網絡。這就是劃分VLAN的作用。
8、TCP/IP 協議棧
Transmission Control Protocol
/Internet Protocol
傳輸控制協議/因特網互聯協議
TCP/IP是一個Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等許多協議。
和OSI參考模型的分層對應關系
9、TCP協議包頭
端口號:22/tcp(ssh), 80/tcp(http), 443/tcp(https),21/tcp(FTP)
序號(seq):表示本報文段所發送數據的編號,由于序號由32位組成,所以每2^32個字節,就會出現序列號回繞,再次從0 開始
確認號(ack):表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送方:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號
ACK=1表示確認包
SYN=1表示請求包
FIN=1表示分手包
- TCP三次握手
- 四次揮手
- 有限狀態機FSM:Finite State Machine
?CLOSED 沒有任何連接狀態
?LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求
?SYN-SENT 在發送連接請求后,等待對方確認
?SYN-RECEIVED 在收到和發送一個連接請求后,等待對方確認
?ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態
?FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認
?FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求
?TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失
?CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,并已確認
?LAST-ACK 被動關閉,等待最后一個關閉傳輸連接確認,并等待所有分組消失
?CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認
9、UDP特性
工作在傳輸層
?提供不可靠的網絡訪問,只管發,不管對方收沒收到,就像郵局一樣。
?非面向連接協議
?有限的錯誤檢查
?傳輸性能高
?無數據恢復特性
UDP包頭
10、Internet層
- ICMP協議
ping命令使用的就是ICMP協議,有請求包和回應包組成。
[root@centos6 ~]#tcpdump -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:59:22.775914 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 86, length 64
08:59:22.775930 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 86, length 64
08:59:23.775976 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 87, length 64
08:59:23.776028 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 87, length 64
08:59:24.776160 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 88, length 64
08:59:24.776193 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 88, length 64
- ARP
Address Resolution Protocol:地址解析協議,工作原理,知道對方的IP地址,但不知道MAC地址,通過ARP地址解析協議,發廣播,對方收到后就會回個MAC地址,并將發送者的MAC地址和IP地址存到自己的ARP表里。如果對方和自己不在同一個網段,跨路由了,發廣播對方也收不到,這時就發廣播給路由器上的網關,得到網關的MAC地址,將對方主機的ip和網關的MAC地址存放到自己的ARP表里,路由器再發ARP廣播得到對方主機的MAC地址,如果有多個路由器就一個個的傳下去,先得到網關的MAC地址,最后得到主機的MAC地址,ARP表里存放的是曾經和主機通訊過的設備的IP地址和MAC地址的對應關系。如下命令可以查看ARP表
[root@centos6 ~]#ip neigh
192.168.25.254 dev eth2 lladdr 00:50:56:fa:67:5d STALE
172.18.252.32 dev eth3 lladdr 2c:4d:54:25:82:0b STALE
172.18.250.106 dev eth3 lladdr 40:c6:2a:20:9e:6c STALE
172.18.0.1 dev eth3 lladdr 84:2b:2b:43:d0:50 STALE
172.18.251.200 dev eth3 lladdr e0:a3:ac:74:f8:b0 STALE
192.168.25.1 dev eth2 lladdr 00:50:56:c0:00:01 REACHABLE
[root@centos6 ~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.25.254 ether 00:50:56:fa:67:5d C eth2
172.18.252.32 ether 2c:4d:54:25:82:0b C eth3
172.18.250.106 ether 40:c6:2a:20:9e:6c C eth3
172.18.0.1 ether 84:2b:2b:43:d0:50 C eth3
172.18.251.200 ether e0:a3:ac:74:f8:b0 C eth3
192.168.25.1 ether 00:50:56:c0:00:01 C eth2
Reverse Address Resolution Protocol (RARP):反方向的ARP協議,將MAC地址解析成IP地址。