网络协议和管理

Posted dadadezhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络协议和管理相关的知识,希望对你有一定的参考价值。

3 TCP/IP 协议栈

3.1 TCP/IP 标准

3.1.1 TCP/IP 介绍

Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议

TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议

3.1.2 TCP/IP 分层

共定义了四层,和OSI参考模型的分层有对应关系

技术图片

3.1.3 TCP/IP 通信过程

技术图片

3.2 transport

3.2.1 TCP Transmission Control Protocol

3.2.1.1 TCP 特性

工作在传输层

面向连接协议

全双工协议

半关闭

错误检查

将数据打包成段,排序

确认机制

数据恢复,重传

流量控制,滑动窗口

拥塞控制,慢启动和拥塞避免算法

3.2.1.2 TCP 包头结构

技术图片

  • 源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即65536
  • 序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0 开始
  • 确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号
  • 数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
  • URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
  • ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
  • PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
  • RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
  • SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
  • FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
  • 窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值
  • 校验和:提供额外的可靠性
  • 紧急指针:标记紧急数据在数据字段中的位置
  • 选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节

TCP 包头常见选项:

  • 最大报文段长度MSS(Maximum Segment Size),通常1460字节

    指明自己期望对方发送TCP报文段时那个数据字段的长度。比如:1460字节。数据字段的长度加上TCP首部的长度才等于整个TCP报文段的长度。MSS不宜设的太大也不宜设的太小。若选择太小,极端情况下,TCP报文段只含有1字节数据,在IP层传输的数据报的开销至少有40字节(包括TCP报文段的首部和IP数据报的首部)。这样,网络的利用率就不会超过1/41。若TCP报文段非常长,那么在IP层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原来的TCP报文段。当传输出错时还要进行重传,这些也都会使开销增大。因此MSS应尽可能大,只要在IP层传输时不需要再分片就行。在连接建立过程中,双方都把自己能够支持的MSS写入这一字段。 MSS只出现在SYN报文中。即:MSS出现在SYN=1的报文段中

    MTU和MSS值的关系:MTU=MSS+IP Header+TCP Header

    通信双方最终的MSS值=较小MTU-IP Header-TCP Header

  • 窗口扩大 Window Scale

    为了扩大窗口,由于TCP首部的窗口大小字段长度是16位,所以其表示的最大数是65535。但是随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口来满足性能和吞吐率,所以产生了这个窗口扩大选项

  • 时间戳 Timestamps

    可以用来计算RTT(往返时间),发送方发送TCP报文时,把当前的时间值放入时间戳字段,接收方收到后发送确认报文时,把这个时间戳字段的值复制到确认报文中,当发送方收到确认报文后即可计算出RTT。也可以用来防止回绕序号PAWS,也可以说可以用来区分相同序列号的不同报文。因为序列号用32为表示,每2^32个序列号就会产生回绕,那么使用时间戳字段就很容易区分相同序列号的不同报文

3.2.1.3 TCP 协议 PORT

技术图片

传输层通过port号,确定应用层协议,范围0-65535

IANA互联网数字分配机构负责域名,数字资源,协议分配

  • 0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
  • 1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer), 1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)
  • 49152-65535:动态或私有端口,客户端随机使用端口,范围定义:/proc/sys/net/ipv4/ip_local_port_range

TCP 确认和固定窗口

技术图片

TCP 滑动窗口

技术图片

3.2.1.4 三次握手和四次挥手

TCP 三次握手

技术图片

TCP 四次挥手

技术图片

3.3 Internet

技术图片

3.3.1 Internet Control Message Protocol

技术图片

3.3.2 Address Resolution Protocol

3.2.2.1 ARP

ARP 地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定,是根据IP地址获取物理地址的一个TCP/IP协议。

主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存

3.2.2.2 Gratuitous ARP

Gratuitous ARP也称为免费ARP,无故ARP。Gratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址

免费ARP可以有两个方面的作用:

  • 验证IP是否冲突:一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址
  • 更换物理网卡:如果发送ARP的主机正好改变了物理地址(如更换物理网卡),可以使用此方法通知网络中其它主机及时更新ARP缓存

3.3.4 internet 协议

3.3.4.1 Internet 协议特征

  • 运行于 OSI 网络层
  • 面向无连接的协议
  • 独立处理数据包
  • 分层编址
  • 尽力而为传输
  • 无数据恢复功能
3.3.4.2 IP PDU 报头

技术图片

IP PDU 报头格式

  • 版本:占4位,指 IP 协议的版本目前的IP协议版本号为4

  • 首部长度:占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部长度的最大值是60字节

  • 区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.后改名为区分服务.只有在使用区分服务(DiffffServ)时,这个字段才起作用.一般的情况下不使用

  • 总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU

  • 标识:占16位,它是一个计数器,通常,每发送一个报文,该值会加1, 也用于数据包分片,在同一个包的若干分片中,该值是相同的

  • 标志(flflag):占3位,目前只有后两位有意义DF: Don’t Fragment 中间的一位,只有当 DF=0 时才允许分片

    MF: More Fragment 最后一位,MF=1表示后面还有分片,MF=0 表示最后一个分片IP PDU 报头

  • 片偏移:占13位,指较长的分组在分片后,该分片在原分组中的相对位置.片偏移以8个字节为偏移单位

  • 生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

  • 协议:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

  • 首部检验和:占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

  • 源地址和目的地址:都各占4字节,分别记录源地址和目的地址

3.4 IP 地址

3.4.1 IP 地址组成

它们可唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址

IP地址由两部分组成

  • 网络ID:标识网络,每个网段分配一个网络ID,处于高位
  • 主机 ID:标识单个主机,由组织分配给各设备,处于低位

IPv4地址格式:点分十进制记法

3.4.2 公共和私有 IP 地址

私有IP地址:不直接用于互联网,通常在局域网中使用

技术图片

公共IP地址:互联网上设备拥有的唯一地址

技术图片

3.4.3 特殊地址

  • 0.0.0.0

    0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络

  • 255.255.255.255

    限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机

  • 127.0.0.1~127.255.255.254

    本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包

  • 224.0.0.0到239.255.255.255

    组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序

  • 169.254.x.x

    如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址

3.4.4 保留地址

技术图片

3.5.6 子网掩码

CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围

CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16

netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0

相关公式:

  • 一个网络的最多的主机数=2^主机ID位数-2
  • 网络(段)数=2^网络ID中可变的位数
  • 网络ID=IP与netmask

判断对方主机是否在同一个网段:

用自已的子网掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一网络,不同则不同网段

3.5.7 划分子网

划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借位

4 网络配置

4.1 基本网络配置

将Linux主机接入到网络,需要配置网络相关设置

一般包括如下内容:

  • 主机名

  • IP/netmask

  • 路由:默认网关

  • DNS服务器

    ? 主DNS服务器

    ? 次DNS服务器

    ? 第三个DNS服务器

4.2 CentOS 6 之前版本网卡名称

接口命名方式:CentOS 6

	以太网:eth[0,1,2,...]

? ppp:ppp[0,1,2,...]

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

查看网卡:

dmesg |grep –i eth

ethtool -i eth0

卸载网卡驱动:

modprobe -r e1000

rmmod e1000

装载网卡驱动:

modprobe e1000

4.3 网络配置命令

4.3.1 网络配置方式

静态指定:

? ifconfifig, route, netstat

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

? system-confifig-network-tui,setup

	配置文件 

动态分配:DHCP: Dynamic Host Confifiguration Protocol

4.3.2 ifconfifig 命令

来自于net-tools包,建议使用 ip 代替

4.3.3 route 命令

路由表管理命令

路由表主要构成:

  • Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
  • Genmask:目标网络对应的netmask
  • Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
  • Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
  • Metric: 开销cost,值越小,路由记录的优先级最高

查看路由表:

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]

4.3.4 配置动态路由

通过守护进程获取动态路由

安装quagga包,通过命令vtysh配置

支持多种路由协议:RIP、OSPF和BGP

4.3.5 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

显示路由表:

netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式

4.3.6 显示接口统计数据

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [-
-numeric|-n] 
netstat -i
netstat –I=IFACE
ifconfig -s IFACE

4.3.7 ip 命令

来自于iproute包,代替ifconfifig

4.3.7.1 配置 Linux 网络属性

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 ?
4.3.7.2 管理路由

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]

4.3.8 ss 命令

来自于iproute包,代替netstat,netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核tcp_diag 模块通信获取 socket 信息

格式:

ss [OPTION]... [FILTER]

选项:

-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息

格式说明

FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
 tcp finite state machine:
 LISTEN: 监听
 ESTABLISHED:已建立的连接
 FIN_WAIT_1
 FIN_WAIT_2
 SYN_SENT
 SYN_RECV
 CLOSED
EXPRESSION:
 dport =
 sport =

4.4 网络配置文件

4.4.1 网络基本配置文件

IP MASK GW DNS 相关的配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

常用配置

技术图片

4.4.2 配置当前主机的主机名

#centos6 之前版本
/etc/sysconfig/network
HOSTNAME=
#centos7 以后版
/etc/hostname 
HOSTNAME

4.5 网卡别名

将多个IP地址绑定到一个NIC上

每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3

为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx

4.6 多网卡 bonding

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

4.6.1 Bonding 工作模式

共7种模式:0-6 Mode

  • Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
  • Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
  • Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力

说明:

active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel

4.8 网桥

4.8.1 桥接原理

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

4.9 网络测试诊断工具

  • 测试网络连通性

    ping

  • 显示正确的路由表

    ip route

  • 跟踪路由

    traceroute

    tracepath

    mtr

  • 确定名称服务器使用

    nslookup

    host

    dig

  • 抓包工具

    tcpdump

    wireshark

  • 安全扫描工具

    nmap

    netcat

  • 流量控制工具

  • tc

4.9.1 tcpdump

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。

语法:

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

4.9.2 nmap

扫描远程主机工具,功能远超越用世人皆知的 Ping 工具发送简单的 ICMP 回声请求报文

格式:

nmap [Scan Type(s)] [Options] {target specification}
命令选项
-sT ? TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的
日志中会记录大批的连接请求以及错误信息 ? ?
-sS ? TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描
(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志 ? 
-sF,-sX,-sN ? 秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式
的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包 ? ?
-sP ? ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是
ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后
续的扫描 ? ?
-sU ? UDP 的数据包进行扫描,想知道在某台主机上提供哪些 UDP 服务,可以使用此选项 ? ?
-sA ? ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。 ? ?
-sW ? 滑动窗口扫描,非常类似于 ACK 的扫描 ? ?
-sR ? RPC 扫描,和其它不同的端口扫描方法结合使用。 ? ?
-b ? FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口
扫描。
-P0 ? 在扫描之前,不 ping 主机。 ? ?
-PT ? 扫描之前,使用 TCP ping 确定哪些主机正在运行 ? ?
-PS ? 对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。 ? ?
-PI ? 设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。
? ?
-PB ? 这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果
防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。 ? ?
-O ? 这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操
作系统类型
-I ? 打开 nmap 的反向标志扫描功能。 ? ?
-f ? 使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无
法知道你的企图 ? ?
-v ? 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。 ? ?
-S <IP> ? 在一些情况下,nmap 可能无法确定你的源地址 。在这种情况使用这个选项给出指定 IP 地
址 ? 
-g port ? 设置扫描的源端口
-oN ? 把扫描结果重定向到一个可读的文件 logfilename 中 ?
-oS ? 扫描结果输出到标准输出。 ? ?
--host_timeout ? 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制 ? ?
--max_rtt_timeout ? 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者
超时。默认值是大约 9000 毫秒 ? ?
--min_rtt_timeout ? 设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位 ? ?
-M count ? 置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描

以上是关于网络协议和管理的主要内容,如果未能解决你的问题,请参考以下文章

网络协议和管理

网络协议和管理

网络协议和管理配置

各层协议和功能

细说DHCP网络协议和如何搭建DHCP服务器

网络协议和支持