網絡的功能和優點:

 

  • 數據和應用程序
  • 資源
  • 網絡存儲
  • 備份設備

網絡的特徵:

  • 速度
  • 成本
  • 安全性
  • 可用性
  • 可擴展性
  • 可靠性
  • 拓撲

開放系統互聯OSI:

雙重機器學習效應分解_IP

 

三種通訊模式

        unicast                 broadcast                multicast

雙重機器學習效應分解_雙重機器學習效應分解_02

 

 

 

 衝突域和廣播域:

衝突域:兩個網絡設備同時發送數據,如果發生了衝突,則兩個設備處於同一個衝突域,反之,則各自處於不

同的衝突域

廣播域:一個網絡設備發送廣播,另一個設備收到了,則兩個設備處於同一個廣播域,反之,則各自處於不

同的廣播域

 

三種通訊機制:

單工通信:只有一個方向的通信

半雙工通信:通信雙方都可以發送和接收信息,但不能同時發送,也不能同時接收

全雙工通信:通信雙方可以同時發送和同時接收

雙重機器學習效應分解_雙重機器學習效應分解_03

TCP/IP 分層:

 

雙重機器學習效應分解_雙重機器學習效應分解_04

 

 

雙重機器學習效應分解_路由表_05

 

 三次握手:

雙重機器學習效應分解_路由表_06

  四次揮手:

 

雙重機器學習效應分解_IP_07

有限狀態機 FSM:Finite State Machine

有限狀態機FSM    註釋
CLOSED       沒有任何連接狀態
LISTEN         偵聽狀態
SYN-SENT      在發送連接請求後,等待對方確認
SYN-RECEIVED     在收到和發送一個連接請求後,等待對方確認
ESTABLISHED     代表傳輸連接建立,雙方進入數據傳送狀態
FIN-WAIT-1        主動關閉,主機已改善關閉連接請求,掛靠對方確認
FIN-WAIT-2        主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求
TIME-WAIT        完成雙向傳輸連接關閉,等待所有分組消失
CLOSE-WAIT       被動關閉,收到對方發來的關閉連接請求,並已確認
LAST-ACK       被支關閉,等待最後一個關閉傳輸連接確認,並等待所有分組消失
CLOSING        雙方同時嘗試關閉傳輸連接,等待對方確認

客户機端的三次握手和四次揮手狀態轉換:

雙重機器學習效應分解_路由表_08

服務器端的三次握手和四次揮手狀態轉換:

雙重機器學習效應分解_雙重機器學習效應分解_09

 

 tcpdump 抓包工具

udp包頭:

雙重機器學習效應分解_雙重機器學習效應分解_10

 

 internet層協議:

  1. IP協議
  2. ICMP協議
    /proc/sys/net/ipv4/icmp_echo_ignore_all 關閉ICMP迴應
  3. ARP協議
  4. RARP協議

基本網絡配置:

將Linux主機接入到網絡,需要配置網絡相關設置。一般包括如下內容:

  1. 主機名(hostname)
  2. IP地址和子網掩碼(IP/netmask)
  3. 路由(默認網關gateway)
  4. 主DNS服務器(dns)
  5. 次DNS服務器

centos 6 網卡名稱:

  1. 以太網:eth[0-9]
  2. ppp:ppp[0-9]

網絡接口識別並命名相關的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules

ARP表
arp -n

查看網卡驅動:
dmesg |grep –i eth
ethtool -i eth0

卸載網卡驅動:
modprobe -r e1000
rmmod e1000

裝載網卡驅動:
modprobe e1000

網絡配置方式:

靜態指定:

ifconfifig, route, netstat

ip: object {link, addr, route}, ss, tc

system-confifig-network-tui,setup

配置文件

動態分配:DHCP: Dynamic Host Confifiguration Protocol

ifconfig命令

#查看指定網卡狀態
ifconfig [interface]

#查看所有網卡狀態
ifconfig -a

#啓用/禁用網卡
ifconfig IFACE [up|down]
ifdown eth1 (禁用網絡)
ifup eth1 (啓用網絡)

#設置網卡IP
ifconfig IFACE IP/netmask [up]
route命令

查看路由表

route

route -n

添加路由表:route add

route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]

刪除路由器:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

配置動態路由

通過守護進程獲取動態路由

安裝quagga包,通過命令vtysh配置

支持多種路由協議:RIP、OSPF和BGP

netstat命令:來自於net-tools包 建議用ss代替

顯示網絡累鏈接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--

numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]

常用選項: 

-t: tcp協議相關

-u: udp協議相關

-w: raw socket相關

-l: 處於監聽狀態

-a: 所有狀態

-n: 以數字顯示IP和端口

-e:擴展格式

-p: 顯示相關進程及PID

常用組合: -tan  -uan  -tnl  -unl

netstat {--route|-r} [--numeric|-n]

-r: 顯示內核路由表

-n: 數字格式

顯示接口統計數據:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
ip命令  來自於iproute包,代替ifconfig

ip [ OPTIONS ] OBJECT { COMMAND | help }

 ip命令説明

OBJECT := { link | addr | route }

ip link - network device configuration

set dev IFACE,可設置屬性:up and down:激活或禁用指定接口,相當於 ifup/ifdown

show [dev IFACE] [up]::指定接口 ,up 僅顯示處於激活狀態的接口

 

 ip地址管理:

ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}]

[broadcast ADDRESS]

[label LABEL]:添加地址時指明網卡別名

[scope {global|link|host}]:指明作用域,global: 全局可用.link: 僅鏈接可用,host: 本機可

[broadcast ADDRESS]:指明廣播地址

ip address show

ip addr flush

#禁用網卡

ip link set eth1 down

#網卡改名

ip link set eth1 name wangnet  

#啓用網卡

ip link set wangnet up

#網卡別名

ip addr add 172.16.100.100/16 dev eth0 label eth0:0

ip addr del 172.16.100.100/16 dev eth0 label eth0:0

#清除網絡地址

ip addr flush dev eth0

管理路由 ip route用法:

#添加路由:

ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET:

主機路由:IP

網絡路由:NETWORK/MASK

#添加網關:

ip route add default via GW dev IFACE

#刪除路由:

ip route del TARGET

#顯示路由:

ip route show|list

#清空路由表:

ip route flush [dev IFACE] [via PREFIX]

 

ss命令:ss [OPTION]... [FILTER]

來自於iproute包,代替netstat,netstat 通過遍歷 /proc來獲取 socket信息,ss 使用 netlink與內核

tcp_diag 模塊通信獲取 socket 信息

選項:

-t

tcp協議相關

-u

udp協議相關

-w

裸套接字相關

-x

unix sock相關

-l

listen狀態的連接

-a

所有

-n

數字格式

-p

相關的程序及PID

-e

擴展的信息

-m

內存用量

-o

計時器信息

FILTER : [ state TCP-STATE ] [ EXPRESSION ]

常用選項組合:

-tan, -tanl, -tanlp, -uan

常見用法:

# 顯示本地打開的所有端口
ss -l

# 顯示每個進程具體打開的socket
ss -pl

# 顯示所有tcp socket
ss -t -a

# 顯示所有的UDP Socekt
ss -u -a

#顯示所有已建立的ssh連接
ss -o state established '( dport = :ssh or sport = :ssh )'

#顯示所有已建立的HTTP連接
ss -o state established '( dport = :http or sport = :http )'

#列出當前socket詳細信息
ss -s