大家好,又见面了,我是全栈君。
一、基本概念:
1、协议protocol:约定收发双方能理解的数据格式。
2、分层:将复杂任务分解为简单的任务。
3、MAC:Media Access Control介质访问控制。
二、网络类型:
1、CSMA/CD:
监听到网络空闲即立即发送信息,边发送边监听。如果监听到冲突,就立即停止发送,等待下一个空闲时间再次发送。著名的以太网就采用这种方式发送信息。
2、消息发送方式:
单工:要么只能发,要么只能收。
半双工:可以收发,但不能同时收发。
全双工:收发同时,互不影响。
3、CSMA/CD设备:
(1)、Hub:集线器,接收双方在接收信息就独占线路,可见是独占的总线模式,其他接收双方只能等待,即存在接收冲突域问题。可见效率较低。现在已经很少用Hub。
(2)、网桥(只有两个端口):网桥用来分隔一个较大规模的网络,解决冲突域(同时收发)的问题。能暂存数据,内部有地址数据表格且内部有多个线路,在接收信息是临时建立一通路,接发完毕断开。可见效率较高。
(3)、交换机(MAC表)(多端口的网桥):但是不能解决广播域的问题,即第一次发送数据MAC地址表无数据或MAC地址表数据老化,那么在发送数据时是向此交换机上所有端口发送的。如果多个交换机的多个网络直接连接在一起,那么广播域的问题更严重。
(4)、路由器(路由表):用来隔断广播域的问题,从而解决了广播域的问题。从而实现了跨网络通信,又能有效解决广播域的问题。
(5)、IP地址(由网络地址和主机地址组成,共分四段。如果网络地址位长了,那么主机地址位短,所连接的主机就少;反之所连接的主机就多。):
A-大型:0 000 0000-0 111 1111:0-127,第1段为网络地址,并且规定第一位为0,其他为主机地址
1-126:
2^7个网络
每个网络中的主机:2^24-2
默认掩码:255.0.0.0
1个私有网络:10.0.0.0(这个私有网络可以连接255个主机:10.0.0.0~10.0.0.255)
B-中型:10 00 0000-10 11 1111:128-191,前2段为网络地址,并且规定前两位为10,其他为主机地址
128-191
2^14个网络
每个网络中的主机:2^16-2
默认掩码:255.255.0.0
16个私有网络:172.16.0.0-172.31.0.0
C-小型:110 0 0000-110 1 1111:192-223,前3段为网络地址,并且规定前三位为110,其他为主机地址
192-223
2^21个网络
每个网络中的主机:2^8-2
默认掩码:255.255.255.0
256个私有网络:192.168.0.0-192.168.255.0
D、注意:
主播地址 1110 0000-1110 1111:224-239
测试网络 1111 0000-1111 1111:240-255
主机位全0:网络地址
主机位全1:广播地址
(6)、子网掩码:
规定对应“网络地址”子网掩码全为1,对应“主机地址”子网掩码全为0。
A类网子网掩码:255.0.0.0
B类网子网掩码:255.255.0.0
C类网子网掩码:255.255.255.0
(7)、网络通讯:
A、1-4:通信,在内核空间解析完成。
物理层:物理介质如同轴电缆、光纤等,并封装前导码。
链路层:封装源mac和目标mac,实现介质访问控制。
网络层:IP数据包,封装源IP和目标IP,IP协议。路由器就工作在此层上。
传输层:并非真正意义上的传输,而是用来“标记进程即端口(0-65535)”,TCP/UDP协议。
TCP:0-65535,Transimission Control Protocol,类似于打电话。
UDP:0-65535 User Datagram Protocol 用户数据包协议,类似于发信件。
Socket套接字:由IP+Port组成。
B、5-7:资源,在用户空间解析完成。
会话层:保持会话
表示层:标记资源展示。
应用层:标记资源,请求的资源,即以什么格式的文件返回给客户端。
C、TCP:有连接协议,建立的是逻辑连接。
a、建立连接:需要三次握手。
SYN=1,ACK=0
SYN=1,ACK=1
SYN=0,ACK=1
b、断开连接:需要四次断开,TCP是全双工的即双通道。
因此,断开时双方都需要发出请求等待对方确认。
4、Token Ring:令牌环网,获得令牌才能发送消息。
三、网络设备:内核通过驱动来识别网络设备。
1、以太网设备:eth#,如eth0,eth1等。
2、PPP网络设备:ppp#,如ppp0,ppp1等。
3、在Dell服务器上,网络设备通常标识为:em#,如em0,em1等。
下图这台dell服务器有4块网卡:em1~em4
4、本地回环:lo
四、配置主机接入TCP/IP网络:
1、IP/Netmask(掩码)。
2、路由:提供与非本地网络的主机进行通信。
主机路由:-host,目标指向主机。
网络路由:-net,目标指向网络。
默认路由也叫网关也叫下一跳:default,目标指向所有地址(0.0.0.0)。
3、DNS服务器:
主DNS服务器
备用DNS服务器
4、主机名
以上4步的详细配置,见五。
五、配置主机接入TCP/IP网络详解:
只配置IP/Netmask,此时只能完成本地网络通信。再配置路由,就可以完成跨网络通信。
1、配置IP/Netmask:
(1)、命令方式配置IP/Netmask:
ifconfig(ip addr,ip link),配置后立即生效,是暂时有效,但不会永久有效即关机失效。
A、#ifconfig:显示所有活动接口的相关信息。
如:#ifconfig
eth0 Link encap:Ethernet(链路层封装格式:以太网帧)
HWaddr 00:0C:29:27:38:DA (MAC地址,前三段厂商地址块,后三段设备地址块)
inet addr:192.168.127.147(IP地址) Bcast:192.168.127.255(广播地址) Mask:255.255.255.0(掩码)
inet6 addr: fe80::20c:29ff:fe27:38da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500(最大传输单元) Metric:1
RX packets:76 errors:0 dropped:0 overruns:0 frame:0 (接收)
TX packets:87 errors:0 dropped:0 overruns:0 carrier:0(传出)
collisions:0 txqueuelen:1000
RX bytes:9410 (9.1 KiB) TX bytes:11954 (11.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
B、#ifconfig Interface:仅显示指定接口的相关信息。
如ifconfig eth0:
eth0 Link encap:Ethernet HWaddr 00:0C:29:27:38:DA
inet addr:192.168.127.147 Bcast:192.168.127.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe27:38da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13263 (12.9 KiB) TX bytes:15320 (14.9 KiB)
C、ifconfig Interface Address:配置地址。
如:长格式:ifconfig eth0 192.168.10.9 netmask 255.255.255.0
短格式(CIDR),掩码指定多少个1即上面的的长格式为24个1。
如:ifconfig eth0 192.168.10.9 netmask 255.255.255.0=ifconfig eth0 192.168.10.9/24
如:ifconfig eth0 10.0.0.6 netmask 255.0.0.0=ifconfig eth0 10.0.0.6/8
如:ifconfig eth0 172.16.1.6 netmask 255.255.0.0=ifconfig eth0 172.16.1.6 /16
D、ifconfig Interface {up|down}:启用|禁用Interface
(2)、静态配置IP,通过配置文件配置IP,配置将永久有效。
与网络设备相关的服务控制脚本:它通常能读取网络的配置文件,并让其配置生效或失效等管理功能。注意:配置完成后,需执行#service network restart,使配置生效。
A、配置IP、掩码、网关:
a、以太网:ifcfg-eth#
#vi /etc/sysconfig/network-scripts/ifcfg-eth0,内容如下:
DEVICE=”eth0″ :此配置关联的设备,设备名要与文件名ifcfg-后的内容保持一致。
BOOTPROTO=”dhcp” 引导协议,{none(手动配置)|static(手动配置)|dhcp(动态获取)|bootp(动态获取)}
HWADDR=”00:0C:29:27:38:DA” :MAC地址,要与真实MAC保持一致,如果不知道可省略,系统会自动配置,MAC是固化在网卡上的。
IPV6INIT=”yes”:是否自动初始化IPV6协议地址。
NM_CONTROLLED=”yes” :是否接受NetworkManager脚本控制{yes|no}
ONBOOT=”yes” :是否开机自动启用此网卡{yes|no}
TYPE=”Ethernet” :设备类型,如Ethernet以太网,Bridge桥接,Binding绑定
UUID=”80930047-c6a8-4d70-aa8d-0f876e94221d” :唯一标示,可省略,同MAC配置。
IPADDR=192.168.127.135:IP地址
NETMASK=255.255.255.0:掩码
GATEWAY=10.0.0.1:默认网关
DNS1=10.0.0.1:指定的DNS服务器地址(dns最多三个,至少要一个)
USERCTL=no:是否允许普通用户启用或者禁用此网卡。
PEERDNS={yes|no} 是否允许DHCP服务分配地址时直接更新/etc/resolv.conf中的DNS服务器地址。
b、ppp:ifcfg-ppp#
(3)、通过TUI/GUI(图形界面,极少用)静态配置IP,配置结束后会改变配置文件:
命令1:#system-config-network-tui
命令2: #setup,选择Network congiguration 也可进入
(4)、动态配置IP/Netmask:
DHCP服务器:Dynamic Host Configuration Protocol 动态主机配置协议。
2、配置路由:
(1)、命令方式配置路由:route(ip route),配置立即生效,是暂时有效,但不会永久有效即关机失效。
A、#route:显示路由信息。
-n:使用数字格式显示,不反解地址到主机名。
如:# route -n
Kernel IP routing table
Destination Gateway(下一跳) Genmask Flags Metric Ref Use Iface
192.168.127.0 0.0.0.0 255.255.255.0 U(U启用状态) 1 0 0 eth0
0.0.0.0 192.168.127.2 0.0.0.0 UG(G默认) 0 0 0 eth0
192.168.1.100 172.16.100.188 255.255.255.255 UGH(H主机路由)
B、route add [-net|-host]:添加路由条目,有如下三种方式:
#route add -host HOST_IP gw NEXT_HOP [dev Device] 配置主机路由
#route add -net NET_ADDR/MASK gw NEXT_HOP [dev Device] 配置网络路由
#route add -net 0.0.0.0:默认路由(目标地址为任务地址). 配置默认路由
如配置网络路由:请配置路由条目,要求目标为192.168.0.0/24网络,下一跳为172.16.0.1(下一跳一定和本机地址在同一网络中,不然没跳,哈哈)
#route add -net 192.168.0.0/24 gw 172.16.0.1
如配置主机路由:请配置路由条目,要求目标为192.168.1.100主机,下一跳为172.16.100.188(下一跳一定和本机地址在同一网络中,不然没跳,哈哈)
#route add -host 192.168.1.100 gw 172.16.100.188
如配置默认路由:添加默认路由,下一跳为 172.16.100.88
#route add -net 0.0.0.0 gw 172.16.100.88=#route add default gw 172.16.100.88
C、route del:删除路由。
-host HOST_IP
-net NET_ADDR/MASK
default:删除默认路由如:route del default
(2)、静态配置路由:注意:配置完成后,需执行#service network restart,使配置生效。
A、以太网:route-eth#,在/etc/sysconfig/network-scripts/默认没有,需要自己创建。
如:#vi /etc/sysconfig/network-scripts/route-eth0,内容如下:
192.168.0.0/24 via 172.16.100.188
192.168.1.10 via 172.16.100.88
配置的格式1为:DEST via NEXT_HOP,如上例。
配置的格式2为:ADDRESS#=DEST
NETMASKE#=Netmask
GATEWAY#=Gateway
例如:那么格式1用格式2配置如下:
ADDRESS0=192.168.0.0
NETMASKE0=255.255.255.0
GATEWAY0=172.6.100.188
ADDRESS1=192.168.1.10
NETMASKE1=255.255.255.255
GATEWAY1=172.16.100.88
B、ppp:route-ppp#
3、DNS服务器:只能通过编辑/etc/resolv.conf配置,最多三个,至少一个,配置永久有效。
#vi /etc/resolv.conf如下:
# Generated by NetworkManager
nameserver 192.168.127.2
注意:测试DNS是否配置成功命令,只要能解析就说明配置成功:
正解:#dig -t A FQDN,如#dig -t A www.baidu.com
反解:#dig -x IP,如#dig -x 74.125.203.199
4、主机名配置:
(1)、动态(立即生效,但不能永久有效):#hostname HOSTNAME
(2)、静态(永久有效,但不能立即有效,需要重启服务。)
#vi /etc/sysconfig/network
NETWORKING={yes|no}本机的网络总开关,一般为yes,否则就不能上网。
HOSTNAME=www.lzf.com
六、如何实现在单接口上配置多个地址:通过网络接口别名来实现。
eth0,那么它的别名可以是eth0:#格式,如eth0:0,eth0:1,eth0:2….
1、动态配置:
如,ifconfig eth0:0 172.16.100.11/16
2、静态配置:注意:非主地址不支持使用DHCP协议获取,所以BOOTPROTO只能是none|static。
如,ifcfg-ethX:Y
DEVICE=ethX:Y
BOOTPROTO={none|static}
IPADDR=
NETMASK=
.
.
七、服务脚本:
1、服务脚本位置 :/etc/rc.d/init.d/或/etc/init.d/
注:网络服务脚本位置:/etc/init.d/network
2、多数为控制运行于后台守护进程,接收的常用参数{start|stop|restart|status}
3、配置某服务开机自动启动:chkconfig Srv_Script_Name on
4、禁止某服务开机自动启动:chkconfig Srv_Script_Name off
5、查看某服务:chkconfig –list [Srv_Script_Name]
6、调用机制:
(1)、#/etc/init.d/Script_Name {start|stop|restart|status}
(2)、#service Script_Name {start|stop|restart|status}
八、网络管理或监测的相关工具:
1、ping:
-c(count) :指定ping的次数。如:ping -c 2 www.baidu.com
2、netstat(网络状态探测命令–因为TCP是有状态的网络链接):执行速度有点慢。
-n:数字格式显示
-t:tcp协议的链接
-u:udp协议的链接
-l(listen):监听状态的链接
-a:所有状态的链接
-p:链接相关的进程
-r:显示路由表
常用组合:
netstat -tan
netstat -tuan
netstat -tunl
netstat -tnl
netstat -tunlp
netstat -rn,与命令route执行结果一样
3、ss:执行速度比netstat要快。
-n:数字格式显示
-t:tcp协议的链接
-u:udp协议的链接
-l(listen):监听状态的链接
-a:所有状态的链接
-p:链接相关的进程
-e:显示扩展信息
-m:显示套接字链接使用的内存信息
-o state {established已建立的链接|listen 监听的链接}
4、traceroute(追踪路由):
获取从当前主机到达目标主机所经过的路由(网关),
不过一般服务器禁止traceroute。
5、ethtool ethX:显示设备接口属性。
如:ethtool eth0
ethtool -S ethX:显示设备接口统计数据。
本文转自lzf0530377451CTO博客,原文链接:http://blog.51cto.com/8757576/1572153 ,如需转载请自行联系原作者
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108022.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...