验证性
Ipconfig
ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息,它有很多的参数可用,比如使用最多的/all 在CMD窗口使用ipconfig/all会获得更加详细的信息
1.【ipconfig微软文档】 2.【ipconfig wiki】
Ping
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。 使用方式: 其中字节表示一个packet包含32*8=256bits,时间表示单个包来回的时间和,TTL则是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,一定程度上可以表示当前IP到目标IP的“距离”。 使用ping/? 可以获取更多有关该指令的信息:
当ping命令无法正确执行时,即ping某一目标的<ip>可以正确通信,但ping它的域名却无法正常通信时可以考虑是否是DNS解析服务器出错或者DNS的配置出现错误导致目标IP的地址解析出现问题
Tracert (Trace Route)
TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。 使用示例(使用tracert命令追踪baidu.com):
1.tracert的原理是TTL机制,通过不停发送TTL递增的包,记录经过的节点 2.发送的packet会经过网关传往外界,所以追踪其他的ip地址时会出现前几个节点相同的情况
ARP(Address Resolution Protocol)
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
图解ARP
arp命令使用示例(arp -a): 使用arp -s命令可以将arp缓存类型由静态转换为动态(尝试固定网关): 出现提示添加失败,该提示出现的原因是权限不够需要提升权限才可用 以管理员身份运行 cmd后再次执行该命令即可正常执行 此外还可以使用 arp/? 查看arp的相关帮助
DHCP(Dynamic Host Configuration Protocol)
DHCP即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
1 用于内部网或网络服务供应商自动分配 IP 地址给用户 2 用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。 命令示例(ipconfig/release): 也可以使用以下命令重新获取网络配置 ipconfig/renew :
网卡ip变成169.254.x.x,一种情况是是pc的网卡启动或者dhcp续租成功时,检测到环境中存在ip冲突,操作系统为保护起见分配的保留ip地址。此地址不是合法的地址,因此无法获取的网关的mac地址,无法实现上网等操作。路由器不响应这类消息的arp请求,这个地址无法通过路由器。另一种情况是dhcp功能打开,发出discover消息,没有得到应答消息,操作系统自动分配给pc网卡一个169.254.xx.xx的ip地址。
netstat
无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
目录C:\WINDOWS\system32\drivers\etc\services可以查看对应的端口 使用 netstat -an可以查看连接:
DNS(Domain Name System)
DNS即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
一图解析DNS原理
DNS的相关信息可以在C:\WINDOWS\system32\drivers\etc\hosts查到 解析过的 DNS 记录将会被缓存,以利于加快解析速度。可以使用 ipconfig /displaydns 命令查看:
我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
使用 nslookup 命令可以指定DNS服务器进行解析
cache
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
启用cache的情况下打开网页: 关闭cache的情况下打开网页: 可以看到关闭cache的情况下加载的时间明显更长
Wireshark
Ethernet 帧结构
帧结构: 前导码:包括同步码(用来使局域网中的所有节点同步,7字节长)和帧标志(帧的起始标志7,1字节)两部分;
目的地址:接收端的MAC地址,6字节长;
源地址:发送端的MAC地址,6字节长;
类型:数据包的类型(即上层协议的类型),2字节长;
数据:被封装的数据包,46-1500字节长;
校验码:错误检验,4字节长。
Ethernet帧最小长度46字节
当PING子网外的主机时,目的mac会填写当前网关mac: 清空ARP表后,ping外网地址会解析得到网关mac:
获得网关的mac是因为数据包要抵达通信子网之外必须先通过网关,所以返回的是网关的mac。
IP包结构
(1)版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6. (2)区分服务:确定更高的传输优先级。 (3)总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节。 (4)标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。 (5)标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用。 (6)片偏移:偏移等于当前字节在数据部分的第几个再除以8. (7)生存时间:就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。 (8)协议:用协议号标识数据部分是什么数据。
因为ip包的最大长度为1500,当超过1500的ip包发送后会被路由分段重组,如图所示分段的第二个包:
TTL 事件
前面介绍tracert的原理就是TTL机制,即Time to Live机制,而tracert就是根据这样的机制,随着包的TTL的递增,从而获取路径。如图: 如果我们收到一个包的TTL为50,我们可以大概推测该点离我们有大约50跳的距离。
TCP报文结构
首部长度:一般为20字节,选项最多40字节,限制60字节。
源端口、目的端口。
序号:TCP协议面向字节流,传输文件按顺序在缓存里面分块存放,要组建数据包,一块一块的往外发,加上IP,Mac等。序号就是指这个数据包的编号,通过这个来确认发送的数据有序,比如现在序列号为1000,发送了1000,下一个序列号就是2000。
确认号:接收端缓存中收到数据包,然后去掉头,给发送端一个确认,我收到的数据包的最后一个字节。确认号是服务器告诉客户端该发以第几个字节为头的数据包。只要一确认,该确认的数据就会从缓存里面删掉。
数据偏移:是用来记录TCP报文段第多少个字节后,就开始是数据部分。首部最长可以60个字节。
6位标志:URG表示紧急指针是否有效,URG为1的数据包可以插队,优先发。
ACK表示确认号是否有效。PSH为1的数据包优先从接收缓存发给接收方。RST为1,表示TCP出现严重错误,要求对方重新连接。SYN表示请求建立一个连接。FIN表示通知对方本端要关闭连接。
窗口:A和B通信时,B要告诉A他的接收缓存是多少字节。A设置发送缓存的大小。两边缓存最好一样。缓存多少字节,就是窗口大小。
检验和:由发送端填充,接收端对报文段执行CRC(循环冗余校验,利用除法及余数的原理来作错误侦测)算法以检验TCP报文段在传输中是否损坏。
紧急指针:URG校验位为1才有作用,紧急指针为50,就是1-50个字节是要紧急处理的。
选项:长度可变,最长可达40字节。
UDP报文结构
伪头部 : 只是为了提取 IP 数据报中的源IP,目的IP信息并加上协议等字段构造的数据。在实际传输中并不会发送,仅起到校验和计算使用,因此称之为伪首部。
源端口号 : 一般是客户端程序请求时,由系统自动指定,端口号范围是 0 ~ 65535,0~ 1023为知名端口号。
目的端口 : 一般是服务器的端口,一般是由编写程序的程序员自己指定,这样客户端才能根据ip地址和 port 成功访问服务器
UDP 长度 : 是指整个UDP数据报的长度 , 包括 报头 + 载荷,
UDP校验和 : 用于检查数据在传输中是否出错,是否出现bit反转的问题, 当进行校验时,需要在UDP数据报之前增加临时的 伪首部。
UDP数据。
TCP 建立和释放连接
SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
建立过程: 第一次握手: Client的应用进程主动打开,将标志位SYN置为1,随机产生一个seq=x,并将数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
第二次握手: Server应用进程被动打开,Server收到数据包后由标志位SYN=1知道Client请求建立连接,若同意客户端的请求,则发回确认报文,Server将标志位SYN和ACK都置为1,ack(number)=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手: Client收到确认报文之后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,通知上层应用进程连接已建立,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
断开连接过程: 第一次挥手: 数据传输结束以后,Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手: Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),此时本次连接就进入了半关闭状态,客户端不再向服务器发送数据。而服务器端仍会继续发送。Server进入CLOSE_WAIT状态。
第三次挥手: 若服务器已经没有要向客户端发送的数据,其应用进程就通知Server释放TCP连接,Server发送一个FIN,用来关闭Server到Client的数据传送。Server进入LAST_ACK状态。
第四次挥手: Client收到FIN后,Client进入TIMEWAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
DNS解析
先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析: QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文 opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态 AA:授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器 TC:截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断 RD:递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考 RA:允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询 zero,这3位未用,必须设置为0 rcode:4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)
CPT(Cisco Packet Tracer)
用交换机构建 LAN
各PC的基本网络配置如下表:
生成树协议
只使用交换机构建拓扑结构,如图: 是初始时的状态。我们可以看到交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。
随后,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞(Blocking),以形成一棵以 Switch8 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树!
经过一段时间,随着 STP 协议成功构建了生成树后,Switch8 的两个接口当前物理上是连接的,但逻辑上是不通的,处于Blocking状态(桔色)如下图所示:
路由器配置初步
1.这显然是两个不同的子网。在不同子网间通信需通过路由器。 2.现实中,两个路由器连接是远程的。该连接通过路由器的光纤接口或者serial 口进行,一般不会通过双绞线连接。因为双绞线衰落快,最长传输距离约100米,不适合长距离传输。
0号route
以太网口0/0配置:
Router>enable
Router#configure terminal
Router(config)#interface f0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#^z
Router#
广域网口0/0配置:
Router>en
Router#conf t
Router(config)#int s0/0
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#clock rate 64000
Router(config-if)#no shutdown
Router(config-if)#^z
Router#
1号router
以太网0/0配置:
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip address 192.168.3.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#^z
Router#
广域网0/0配置:
Router>en
Router#conf t
Router(config)#int s0/0
Router(config-if)#ip address 192.168.2.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#^z
Router#
静态路由
静态路由:静态路由是非自适应性路由协议,是由网络管理人员手动配置的,不能够根据网络拓扑的变化而改变。 因此,静态路由简单高效,适用于结构非常简单的网络。
静态 0号router
Router>en
Router#conf t
Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.2
Router(config)#exit
Router#show ip route
静态 1号router
Router>en
Router#conf t
Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1
Router(config)#exit
Router#show ip route
VLAN
VLAN(Virtual Local Area Network)即虚拟局域网。通过划分VLAN,我们可以把一个物理网络划分为多个逻辑网段即多个子网。 划分 VLAN 后可以杜绝网络广播风暴,增强网络的安全性,便于进行统一管理等。
构建如图拓扑结构: 下面我们就该交换机的 24 个 100M 接口分为 3 个部分,划分到 3 个不同的 VLAN 中,id 号分别设为 10、20、30,且设置别名(computer、communication、electronic)以利于区分和管理。 配置:
Switch>en
Switch#conf t
Switch(config)#vlan 10
Switch(config-vlan)#name computer
Switch(config-vlan)#exit
Switch(config)#int vlan 10
Switch(config-if)#ip address 192.168.0.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 20
Switch(config-vlan)#name communication
Switch(config-vlan)#exit
Switch(config)#int vlan 20
Switch(config-if)#ip addr 192.168.1.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 30
Switch(config-vlan)#name electronic
Switch(config-vlan)#exit
Switch(config)#int vlan 30
Switch(config-if)#ip add 192.168.2.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#int range f0/1-8
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#exit
Switch(config)#int range f0/9-16
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#int range f0/17-24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 30
Switch(config-if-range)#^Z
Switch#show vlan
此时可以使用 ping 命令进行测试,你会发现只有在同一 VLAN 中的 PC 才能通信,且广播也局限于该 VLAN。
DHCP、DNS及Web服务器简单配置
配置拓扑图如下: 该拓扑中,服务器及客户机都连在同一交换机上。为简单起见,服务器 Server-PT 同时作为 DHCP、DNS 以及 Web 服务器,各客户机无需配置,将自动获取网络配置。 配置如下: 各pc ip配置获取如下:
|