TCP/IP网络管理
TCP/IP(Transmission Control Prctocol/Internet Protocol)即传输控制协议/国际协议。

一、TCP/IP体系结构
     (1)链路层:称作为数据链路层或网络接口层 包括使用TCP/IP与物理网络进行通信的协议。

     (2)网络层:也称作互联网层 主要功能是寻址以及把逻辑地址和名称转换成物理地址。该层还可以

控制子网的操作。判定从源计算机到目标计算机的路由。在TCP/IP协议族中,网络层协议包括IP(网络

协议)、ICMP (互联网控制报文协议)、IGMP (互联网组管理协议)。
   (3)传输层:两台主机上的应用程序提供点到点的通信。在TCP/IP协议族中,有两个互不相同的传输

协议TCP (传输控制协议) 和UDP (用户数据报协议)。
   (4)应用层:负责处理特定的应用程序的细节,几乎所有的TCP/IP协议都会提供下面这些通用的应用

程序。

1.Telnet(远程登录) 、2.FTP(文件传输协议)、3.SMTP(简单邮件传输协议)、4.SNMP(简单网络管理协议)

二、网络层协议
     (1)网络协议(IP) IP的任务是对数据包进行相对应的寻址和路由,使其通过网络进行传输。IP在每个

送的数据包前加入一个控制信息,其中包含了源主机的IP地址、目标主机的IP地址和其他一些信息。IP

的另一个工作是分割和重编在传输层被分割的数据包。由于数据包要从一个网络到另一个网络,因此  

当网络所支持传输的数据包的大小不相同时,IP就要在发送端将数据包分割,然后再分割的每一段前

加入控制信息进行传输。当接收端接收到数据包后,IP将所有的片段重新组合形成原始的数据。

     IP是一个无连接的协议,无连接是指主机之间在通信传输时,不建立可靠的端到端的连接,源主机

只是简单地将IP数据包发送出去,而数据包可能丢失、重复、延迟或者IP包的次序会混乱。因此要实现

数据包的可靠传输、就必须依靠高层的协议或应用程序。

    (2)互联网控制报文协议(ICMP)互联网控制报文协议为IP提供差错报告。由于IP是无连接的,且不进

行差错检验,当网络上发生错误时它不能检测错误,向发送IP数据包的主机汇报错误就是ICMP的责

任。

    (3)互联网组管理协议(IGMP)IP只是负责网络中点到点的数据包传输,而点到点的数据包传输则要依

靠互联网组管理协议完成。IGMP主要负责报告主机组之间的关系,以便相关的设备(路由器)支持多播

发送。
    (4)地址解析协议(ARP)和反向地址解析协议(RARP)计算机网络中各逐级之间要进行通信时,必要知道

彼此的物理地址(数据链路层地地址,也称MAC地址)因此,在TCP/IP的网络层有ARP和RAPR,它们的

作用是将源主机和目的主机的IP地址与它们的物理地址相匹配。

三、传输层协议
    (1)传输控制协议(TCP) TCP是传输层一种面向连接的通信协议,提供可靠的数据传送,对于大量数据

的传输,通常都要求有可靠的传送。
     TCP将源主机应用层的数据分成多个分段,然后将每个分段传送到网络层,网络层将数据封装为IP

数据包,并发送到目的主机。目的主机的网络层将IP数据包中的分段传送给传输层,再有传输层对这

些分段进行重组,还原成原始数据传送给应用层。
     (2)用户数据报协议(UDP) UDP是一种无连接的协议,因此不能提供可靠的数据传输,而且UDP不进

行差错检验,必须有应用层的应用程序实现可靠性机制和差错控制,以保证端到端数据传输的正确

行。虽然UDP与TCP相对比较不可靠、但是在一定特殊环境下还是非常有优势的。

四、应用层协议

 1.远程终端协议(Telnet)本地主机作为仿真终端,登录到远程主机上运行应用程序。
 2.文件传输协议(FTP)实现主机之间的文件传送。
 3.简单邮件传输协议(SMTP)实现主机之间电子邮件的传送。
 4.域名服务(DNS)实现主机名与IP地址之间的映射。
 5.动态主机配置协议(DHCP)实现对主机的地址分配和配置工作。
 6.路由信息协议(RIP)用于网络设备之间交换路由信息。
 7.超文本传输协议(HTTP)用于Internet中的客户机与WWW服务器之间的数据传输。
 8.网络文件系统(NFS)实现主机之间的文件系统的共享。
 9.引导协议(BOOTP)用于无盘主机或工作站的启动。

10.简单网络管理协议(SNMP)实现网络的管理。

五、网络接口配置文件

    设置主机名文件(hostname)

    格式:hostname [主机名]

    功能:查看或修改计算机的主机名

    例如:将主机名设置为instructor.example.com

   wKioL1Z2dQ3DppAyAABYTRpoeV0200.jpg

  注意:使用这种方式设置主机名,只是临时有效,系统重启之后立即恢复原主机名要想永久生效,需要设置/etc/sysconfig/network配置文件

(1)vim /etc/sysconfig/network

   该文件中保存着完成的主机名Hostname和域名Domain Name
  wKioL1Z2dr7Dmx7pAAA18fVn_0Y050.jpg

七、ifconfig命令

    功能:主要用于配置网络接口的各种参数,包括IP地址、广播地址和网络掩码等。也可以显示、修

改或重新设置网络接口的IP地址等参数。其中up或down表示启动或关闭网络接口设备。

    格式:ifconfig [网络接口名] [IP地址] [netmask 子网掩码] [up | down ]

    选项:-a 用于显示系统中配置的所有网络接口

 例如:手工设置主机系统的以太网接口eth0,使用ifconfig命令     wKioL1Z2emaij6GTAAFp-oJTwZk612.jpg

八、主机名解析/etc/hosts文件

   wKiom1Z2fMTTxFYMAABAoQNnmL8286.jpg

    注意:当存才多种主机名字的解析方式时,应该采用哪一种方法解析主机,首先会在/etc/hosts.conf文

件设置解析的顺序,其中常用的关键字"order"

 功能:直接将主机名到IP地址之间的转换
 格式:IP地址 主机名 别名

   #vim /etc/hosts配置文件

   wKioL1Z2fgjR1f8EAACBSuA0how057.jpg

九、netstat命令

     功能说明:netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口

的网络连接情况。
    一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和

发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少

的情况见到。

    另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机

通信,性能可以提高一倍)。

    Proto显示连接使用的协议;RefCnt表示连接到本套接口上的进程号;Types显示套接口的类型。

    State显示套接口当前的状态;Path表示连接到套接口的其它进程使用的路径名。

语  法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。

参  数:

netstat –s

  本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度

比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们

需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

netstat –e

  本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、

删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量

。这个选项可以用来统计一些基本的网络流量)。

netstat –r

  本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。

netstat –a

  本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING的那些连接。

netstat –n

  显示所有已建立的有效连接。

实际案例练习

1.列出所有端口 (包括监听和未监听的) netstat -a

wKiom1Z0N2uQ__7SAAEZ-Bv-gjA991.jpg

2.列出所有tcp端口 netstat -at

wKioL1Z0OHWxT157AAEJVHhCDaM992.jpg

3.列出所有udp 端口 netstat -au

wKioL1Z2FpDQeLxzAAD3qMueKBw393.jpg

4.列出所有处于监听状态的Sockets netstat -l

wKioL1Z2F-rzRen4AAD9uDRbiCI127.jpg

5.只列出所有监听tcp端口 netstat -lt

wKiom1Z2GVOz2QfJAAEfvwyz-vY646.jpg

6.只列出所有监听udp端口 netstat -lu

wKioL1Z2Gf6gYZXEAAECx9213bU061.jpg

7.只列出所有监听UNIX 端口 netstat -lx

wKioL1Z2GmGyUM7DAAKskJnDSpo842.jpg

8.显示所有端口的统计信息 netstat -s

wKiom1Z2GwGjv50RAAFwHy9Gxiw703.jpg

9.显示 TCP 或 UDP 端口的统计信息 netstat -st 或-su

wKiom1Z2G3ODBYNHAAEOxvuJjtU965.jpg

 

wKioL1Z2G7uy_uMnAAF916OxB38518.jpg

 

十、网络路由命令

     功能:当网络中的所有主机均位于同一网段时,通过IP地址或主机名,系统之间可以随机进行访

问当准备访问的主机位于不同的网段时,则无法直达,必须通过网关或路由器才能访问。
      route命令的主要功能是维护网络路由表,利用route命令,可以增加、修改、删除、显示、和监控

路由表,而与增加或删除路由有关的。

      格式:route [add | del ] default gw 网关的IP地址

      例如:本地系统的网络接口(192.168.90.101)连接到主机(其内部网络接口的ip地址192.168.90.100)主
机的另外一个网络接口(IP地址为153.78.26.145)连接到外部网络。为了是本地系统能够访问153.78.26.0
网络中的任何主机。

#route add default gw 192.168.0.100

十一、网络管理与维护

    对于新安装或首次接入网络的系统,如果根本无法与网络中的其他任何主机进行通信,其主要问

题也许是网络设置不当。如果主机一直工作正常,突然出现网络故障,那么网络接口故障可能是主要

原因。如果主机能够与同一网络中的任何主机通信,但无法联系外部网络中的主机,问题肯定是路由

器的问题,可能是主机的路由设置不当,或者路由器工作不正常;当然也可能是网络的硬件连接存在

问题。如果网络通信存在以上的问题,我们可以采取利用ifconfig netstat、ping命令检测网络的硬件连接

和软件配置,确定问题的原因。

      (1)使用ping命令解决问题的性质,是丢失数据包、还是网络根本就不通。

      (2)使用ifconfig命令检查网络接口的状态信息,确定网络接口工作是否正常。

      (3)使用netstat命令检查网络接口、路由表和协议统计数据等网络状态信息。

      (4) 检查hosts文件确保文件中的内容是正确的。

      (5)使用ps命令确定相关的服务进程(sshd、vsftpd、telnetd)是否已经启动。

(1)、使用ifconfig命令维护网络接口

     利用ifconfig命令,可以手工配置、修改、或删除网络接口的IP地址,也可以使用ifconfig命令设置其他

参数,获取网络接口的基本配置与状态信息。

   1.系统配置的所有网络接口及其设备名。
   2.网络接口的MAC地址以及链路协议封装类型
   3.赋予网络接口的IP地址、广播地址以及子网掩码
   4.网络接口的初始化状态,如启动标志以及MTU设置
   5.网络接口当前运行状态,如分组与字节数据的收发统计

  如果指定了网络接口的设备名,ifconfig将会给出特定网络接口的各种设置与状态信息。

   wKioL1Z3txiijyaOAAE6J4yy17A013.jpg

 详细说明:

第一行:是网络接口的链路协议封装类型(如Ethernet)与硬件MAC地址;

第二行:是IP地址(192.168.0.100)广播地址(192.168.0.254)以及子网掩码(255.255.255.0)

第三行:网络接口的状态标识,如启动标志(如UP)广播标志(BROADCAST)以及MTUA设置(如1500)等

第四行:是网络接口的各种统计数据,包括分组数据的收发统计以及字节计数等

(2)、使用ping命令测试远程主机的连通性

     如想测试远程主机的连通性,最常见、最简单的方法是采用ping命令,ping命令将会利用ICMP协议

向指定的远程主机发送ECHO_REQUEST请求信息,期望远程主机回应以ECHO_REPLY响应信息。利用

Ping命令,可以检查与指定的远程主机是否建立了TCP/IP连接。

格式:ping [-aAfn] [-c count] [-i interval] [-s size] [-w dead-line] dest-host

其中"-a"选项表示每次响应时均给出声音警示;"-A"选项表示以实际的往返响应时间为间隔;"-n"表示只

需显示主机的IP地址,不必把IP地址解析成主机名。"-c"选项表示发送指定次数的数据报信息之后停止

运行;"-i"选项表示发送每个数据报信息之间的时间间隔,默认值为1秒;"-s"选项表示分组数据的大小

默认值为56个字节;"-w"选项表示以秒为单位的超时值。不管发送或接收了多少信息,一旦达到超时

值,立即停止运行。dest-host是远程主机的名字。

(3)、确定与远程主机的连通性

     ping命令的主要用途是测试本地系统与远程主机的网络连通性,远程主机是否正在运行,如果指定

的远程主机能够接受并响应ICMP请求。

wKioL1Z3uqPCLUvIAAF-zQYduRA556.jpg

(4)、确定网络通信是否丢失了分组数据
    利用ping命令的"-A"选项,不仅可以确定本地系统与远程主机间的连通性,还可以检测两个主机之间

的网络通信是否丢失了分组数据。表示以实际的往返响应时间为间隔,向指定的远程主机连续发送分

组数据。最小的往返响应时间间隔为200毫秒。

wKioL1Z3u16C4UemAADlmr1AJyM434.jpg

(5)、使用ping命令检测网络主机的性能

    ping命令不仅能够检测网络和主机的硬件连接,以及软件运行状态等连通性问题,还可用于检验网络

和主机的响应能力与传输性能。利用ping命令的"-f"选项,可以连续不断地向远程主机发送数据报信

息,而且完全不必顾及是否收到响应信息。ping命令每发送一个ECHO-REQUEST信息,即在屏幕上输

出一个句点"."在本地系统每收到一个ECHO-REPLY响应信息,即在屏幕上输出一个退格符,擦除一个

句点"."按下"ctlr-c"输出的 rttmin/avg/max/mdev"字段能够给出更准确的统计数据,说明往返传输时间的最

小、平均以及最大时间值。

wKiom1Z3vFKT6a_XAADXcekhP9A251.jpg