第一章:概念介紹
1.1 VLAN
1.1.1 什么是VLAN
VLAN (Virturl LAN) ,翻譯成中文是:“虛擬局域網”。VLAN可以是由少數幾台家用計算機構成的網絡,也可以是數以百計的計算機構成的企業網絡。VLAN所指的LAN特指使用路由器分割的網絡----也就是廣播域。
1.1.2 划分VLAN的目的
1,提高安全性
a) 舉個例子:沒有划分VLAN前,交換機端口連接下的所有PC都處於一個VLAN中即一個廣播域中,實現ARP中間人攻擊太簡單了,划分VLAN之后,縮小了VLAN的攻擊范圍,ARP報文是一個2.5層的報文,只能在同一個VLAN中廣播。
2,提高性能
a) 不划分VLAN,整個交換機都處於一個廣播域,隨便一個PC機發的廣播報文都能轉播整個廣播域,戰用了很大帶寬,划分了VLAN,縮小了廣播域的大小,縮小了廣播報文能夠到達的范圍。
1.3 TCP/IP協議簇
1.3.1組成
TCP/IP協議簇是Internet基礎,也是當今最流行的組網形式,包括許多別的協議,組成了TCP/IP協議簇,其中比較重要的有SLIP協議,PPP協議,IP協議,ICMP協議,ARP協議,TCP協議,UDP協議,FTP協議,DNS協議,SMTP協議等
TCP/IP協議簇中相關的協議
1.3.3 協議名稱與對應端口號
1.3.4 端口號
標識協議信息,便於計算機之間進行識別
0號端口在tcp和udp中都不會使用
1.4 TCP和UDP
TCP(傳輸控制協議)面向連接的網絡協議
UDP(用戶報文協議)面向無連接的網絡協議
1.4.4 TCP/UD協議的對比
1.5 TCP報文結構
1.5.1 確認字段ACK
當ACK=1時表示確認,且確認號有效;當ACK=0時 確認字段無效
1.5.2 請求連接字段SYN
當SYN=1時,表示發起一個連接請求
1.5.3 斷開連接字段 FIN
用來釋放連接。當FIN=1時,表明此報文段的發送端的數據已發送完成,並要求釋放連接。
1.5.4 序號
每一個TCP報文段都會有一個序號,序號字段的值其實是本報文段所發送的數據的第一字節的序號。
這是因為TCP是面向連接的可靠服務,其每一個字節都會對應一個序號,通過序號來確保服務的可靠性和有序性。
1.5.5 確認號
確認號,是期望收到對方的下一個報文段的數據的第一個字節的序號。
1.5.5.1 序號和確認號
發送端發送一個seq序列號X,接受端需要回應一個序列號 X+1 ,並發送一個序列號Y,
發送端接受一個序列號y ,接受端需要回應一共序列號y+1
第二章:三次握手和四次揮手
2.1 三次握手
2.1.1 含義
(1)客戶端發送一個帶SYN標志的TCP報文到服務器。
(2)服務器端回應客戶端的,這個報文同時帶ACK標志和SYN標志。因此它表示對剛才客戶端SYN報文的回應;同時又標志SYN給客戶端,詢問客戶端是否准備好進行數據通訊。
(3)客戶必須再次回應服務端一個ACK報文。
2.1.2 五種狀態
2.2 四次揮手
2.2.1文字說明
(1)TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據轉送。
(2)服務器收到一個FIN,它發回一個ACK,確認序號為收到的序號加1 。和SYN一樣,一個FIN將占用一個序號。
(3)服務器關閉客戶端的連接,發送一個FIN給客戶端。
(4)客戶端發回ACK報文確認,並將確認序號設置為收到序號加1
2.2.2 一形態
2.2.4 第二種形態(CLOSING)
2.3 十一種狀態集
2.4 隨機端口號范圍(/proc/sys/net/ipv4/ip_local_port_range 文件)
[root@clsn ~]# cat /proc/sys/net/ipv4/ip_local_port_range 32768 60999
2.5 socket 監聽
2.5.1 監聽狀態
[root@clsn ~]# netstat -lntup|grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1140/sshd tcp 0 0 :::22 :::* LISTEN 1140/sshd [root@clsn ~]# netstat -an|grep ES tcp 0 64 10.0.0.201:22 10.0.0.1:3868 ESTABLISHED
2.5.2 socket 條目 五元組概念
1、協議 tcp udp
2、目標ip地址
3、目標主機端口號
4、源ip地址
5、源端口號
2.6 ssh服務關閉 為什么連接不斷
[root@clsn ~]# ps -ef |grep sshd root 1140 1 0 Sep25 ? 00:00:00 /usr/sbin/sshd root 5861 1140 0 11:40 ? 00:00:00 sshd: root@pts/0 root 5881 5863 0 11:40 pts/0 00:00:00 grep --color=auto sshd [root@clsn ~]# /etc/init.d/sshd stop Stopping sshd: [ OK ] [root@clsn ~]# ps -ef |grep sshd root 5861 1 0 11:40 ? 00:00:00 sshd: root@pts/0 root 5899 5863 0 11:41 pts/0 00:00:00 grep --color=auto sshd
因為有一個連接的進程存在。
沒有進程就會斷開。