网络层:负责在不同网络之间尽力的转发数据包 (实现功能的网络设备——路由器)基于数据包的IP地址转发 不负责丢失重传, 不负责顺序
路由器是三层设备,能看到网络层的地址,根据地址选择路径。
只要物理层和数据链层么有问题就排查是否网络层有问题。
通过分层,我们屏蔽了物理层和数据链路层的复杂性,数据包在网络层传输变得简单,就是看地址。
整个Internet是全球最大的网络,这里面用到的网络设备、网路介质和网络技术是个各种各样的,对于使用者来说只要拨号上网就可以使用全球的服务器。这里面的技术细节到底是用什么技术连的,光纤还是铜线,是百兆还是千兆,是卫星信号还是其他的信号,这些我们都不关心,所以可以把整个Internet当做一个网络,只要地址设置对了,他们只要接入互联网络,就可以相互通信了。
有了这种思想有助于排出网路故障,是网络问题还是应用程序的问题。
利于用分层的方法解决问题,看做虚拟的网络就可以。
网络设备和OSI参考模型关系
计算机通信的过程 本网段通信跨网段通信的过程。
发送端准备发送数据
1.应用程序准备要传输 的文件。
1.传输层 将文件分段并进行编号 段
3.网络层 每一段添加目标IP地址原IP地址。包
4.数据链路层 两种情况 帧
使用自己的子网掩码,判断自己在哪个网段
使用自己的子网掩吗,判断目标地址在哪个网段
如果是同一个网段 arp协议广播解析目标IP地址的MAC
如果不是同一个网段,不能直接传输,跨网段通信必须有网关,arp协议广播解析路由器的MAC地址
还要加上帧校验序列FSC
5.物理层 Bit
二进制数字信号,比特流
发送数据的过成
集线器物理层设备
交换机二层设备,因为能看懂数据链路层地址
路由器是三层设备,因为能看懂网络层地址
路由器 交换机能否中病毒?
病毒是一段代码,是应用程序,传的时候也是分段的,所以路由器肯定不能中病毒。交换机是二层设备,集线器也更不会中病毒。
只能影响网络设备的正常工作,忙着转没用的数据包。
网页打开很慢判断是哪里堵了?
用 ponh
已经知道了一个机器(主机或者路由器)的IP地址,需要找到其相应的硬件地址。地址解析协议ARP九十九解决这个问题的。
数据包如何路由?
在每台装有tcp/ip协议的电脑里都有一个ARP缓存表,表里的ip地址与mac地址是一一对应的.
以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标的mac地址,直接把目标的mac地址写入帧里面发送就可以了;如果在ARP缓存表里面没有目标的MAC地址,主机A就会在网络上发送一个广播,目标mac地址是"ff-ff-ff-ff-ff-ff",这表示向同一网段的所有主机发出这样的询问:"192.168.1.1的mac地址是什么呀?"网络上的其他主机并不回应这一询问,只有主机B接受到这个帧时才向A作出回应:"192.168.1.1的mac地址是00-aa-0-62-c6-09。(如上表)"这样,主机A就知道了主机B的mac地址,就可以向主机B发送信息了。同时,它还更新了自己的ARP缓存表,下次再向B发送数据时,直接在ARP缓存表找就可以了。ARP缓存表采用老化的机制,在一段时间里表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询的速度。
注意:
1.ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
2.虽然ARP请求分组是广播发送的,但是ARP响应分组是普通的单播,即从一个原地址发送到一个目的地址。
3.跨越网段通信需要使用网关的MAC地址。
4.ARP协议是数据通信之前的工作,为IP协议服务。是上下关系,不是同级关系。
ARP协议在同网段及跨网段下的工作原理博文
查看ARP缓存表
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入"arp -a"就可以查看arp缓存表的内容了。
用"arp -d"可以删除arp缓存表里的所有内容。
用"arp -s"可以手动在arp表中指定ip地址与mac地址的对应关系。
ARP欺骗
两种:
对路由器ARP表的欺骗
对内网PC的网关欺骗
截获网关数据
第一种ARP欺骗的原理是–截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是–伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的"本事",电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少"黑锅"。
网络执法官
网络执法官中利用的ARP原理使被攻击的电脑无法上网,使该电脑无法找到网关的MAC地址。
P2P终结者软件
P2P终结者是局域网控制软件,可以控制局域网内其它电脑上网的带宽和流量,也能限制对方BT等的下载,功能比较多.
不过这类软件有个缺陷,必须在别的机器没有开机连网前打开运行它,限制效果才好,否则效果就大打折扣.所你可以在他开机前(即打开P2P之前)就上连网.或者上网下个反P2P软件.
百度百科
使用ICMP协议的命令
ICMP
博文
ping pathping tracert traceroute
ping time 查看延迟
TTL是数据包的生存时间
每次过一个路由器就减1,TTL为数据包就消失了,好处是防止数据包在网络上循环,最多过64个路由器。
可以通过TTL 判断是什么系统
Linux 64
Windows 128
Unix 255
ping +域名
ping +网关
ping IP地址 -t 一直ping下去
ping -n count +网关 要发送的回显请求数
ping -l 200 IP地址 指定PING的数据包的大小,发送缓冲区大小
ping -a +IP地址 将地址解析为主机名
然后用hostname查看主机名
ping -w timeout 等待每次回复的超时时间(毫秒),将超时时间设置的越短,看是否可以正常的回显,如果在这么短的时间内仍然可以回显,说明网络质量非常的好。
ping -i TTL 生存时间
ping -4 强制使用ipv4
ping -6 强制使用ipv6
ping IP地址 -i 2 更改数据包TTL的时间 能够跟踪数据包途径的路由器
ping 估算网络是否通畅
原理就是,一台主机通过发送ICMP数据包向另一台主机,如果i另外一台主机收到了ICMP数据包,那他就会回复一个icmp echo报文,可以通过两个数据包的时间间隔判断网络延时是多少,如果他们的延时越小,说明连通性越好可以通过ping 判断。
服务器有时候禁止ping,一些黑客会检测对方的主机。Ping失败的结果:数据包丢失,或者找不到对方的主机或者本地网络断掉。
如果出现time out 说明网络不通畅,出现连续4个replyt就说明通畅
如果出现一个time out,三个reply说明网络不稳定
ping 命令验证网卡是否正常工作,是否可以正常上网。
ping 127.0.0.1 (环回地址,代表的也是本机,只不过这个地址发出的ping命令不会经过网卡,而是直接在本机的TCP/IP协议层运行)——可以检测TCP/IP协议是否有问题,是否安安装。
ping 命令验证DNS服务器
ping 域名
ping 命令判断目标主机的系统类型
100-130 windows
240-255 linux/unix
TTL可被修改
request time out
1.目标ip已经关机或者在网络中不存在ip地址
2.目标ip存在,但是对方设置了一个防火墙,
3.错误的设置了IP地址 256
bad ip address
说明DNS服务器有问题,无法解析这个IP或者IP地址并不存在
source quench received
出现的几率很小,对方或中途服务器繁忙无应答。允许用ping
Unknown host
不知名的主机,远程主机的名字不能被域名服务器(DNS)转换成IP地址,可能是域名服务器有故障,或名字有误,或网络管理员与远程主机之间的通信线路有故障。
unknown host name
DNS配置不正确
ping 127.0.0.1
无法ping 通,表明本地机TCP/IP协议不能正常工作。
No answer
本地系统有一条通向中心主机的路由,但却接收不到他发给该中心主机的任何信息。中心主机未工作、本地或中心主机网路配置不正确、本地或中心路由器没有工作、通信线路有故障、中心主机存在路由选则问题。
Destination host Unreachable分析原因
1.对方与自己不在同一个网段内,而自己又未设置默认路由。
2.如果所经过的路由器的路由表中具有到达目标的路由,而目标由于其他原因不可到达,就会出现time out,如果路由表中连到达目标的路由都没有,就会出现 Destination host unreachable
no rout to host
网卡工作不正常
transmit failed,error code
10043 网卡驱动不正常
测试端口常用命令博文
网络故障简易判断和常用命令课件
ping
pathping 跟踪数据包的路径 计算丢包情况
能够跟踪到最后出问题的那个设备.
windows上跟踪数据包路径的命令
tracert
在路由器上跟踪数据包
traceroute
点到点:目标很明确
广播:在一个网段下使用,目标MAC地址和IP地址都是全1。
组播=多播:一对一组
博文
igmp网路群组管理协议(Internet Group Management Protocol或简写IGMP)
因特网组管理协议(Internet Group Management Protocol或简写IGMP)是用于管理因特网协议多播组成员的一种通信协议。IP主机和相邻的路由器利用IGMP来建立多播组的组成员。像ICMP用于单播连接一样,IGMP也是IP多播说明的一个完整部分。
igmp配置到路由器接口上,周期性扫描本网段中有哪些计算机还在绑定多播数据包,绑定多播地址,扫描之后向上一个路由器请求多播数据包过来还是拒绝。
博文 IP数据报解析
IP数据包结构
一个数据包由首部和数据两部分组成
1.版本:用来表示TCP/IP协议版本 v4 v6
2.区分服务 windows 2008上 gpedit.msc
包括8个二进制位,每个位的意义如下:
重组标识16位,发送主机赋予的标识,以便接收方进行分片重组。
标志3位,他们各自的意义如下:
保留段位(2):1位,未使用
不分段位(1):1位,取值:0(允许数据报分段)、1(数据报不能分段)
更多段位(0):1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量13位,与更多段位组合,帮助接收方组合分段的报文,以字节为单位。
生存时间8位,经常ping命令看到的TTL(Time To Live)就是这个,每经过一个路由器,该值就减一,到零丢弃。
协议代码8位,表明使用该包裹的上层协议,如TCP=6,ICMP=1,UDP=17 IGMP=2 ipv6=41 OSPF=89 等。
头检验和16位,是IPv4数据包头部的校验和。
只检验数据报的首部,不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。
源始地址,32位4字节,我们常看到的IP是将每个字节用点(.)分开,如此而已。
目的地址,32位,同上。
可选选项,主要是给一些特殊的情况使用,往往安全路由会当作攻击而过滤掉,普联(TP_LINK)的TL-ER5110路由就能这么做。
用户数据。
博文
网络层 数据包 65535字节
数据链路层 数据 1500 字节 MTU(最大传输单元)
数据包分片
IP数据包分片博文
标志:决定是完整的数据包还是分片的
标志(flag)占3位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment). MF=1 表示后面“还有分片”。MF=0表示最后一个分片。标志字段中间的一位是DF(Dont Fragment)。
只有当DF=0时才允许分片。
片偏移以8字节为单位
每个数据包的偏移量就是第一个字节占整个字节的偏移量
数据包有去有回 通
查网关和路由表
需要管理员告诉路由器所有没有智联的网络的下一跳给谁
静态路由的缺点:适合小规模的网络,不能自动调整路由
静态路由博文
周期性广播路由表给其他的路由器 选择最佳路径的标准 跳数,每隔30秒更新一下路由信息。
RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用"跳数"(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。RIP应用于OSI网络七层模型的网络层。各厂家定义的管理距离(AD,即优先级)如下:华为定义的优先级是100,思科定义的优先级是120。
补充内容
RIP(RoutinginformationProtocol)是应用较早、使用较普遍的内部网关协议(InteriorGatewayProtocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。文档见RFC1058、RFC1723。
RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。
RIP协议博文
IP是internet protocol 的缩写,目的是为了计算机之间通过网络连接进行通信而设计的协议,简言之,IP地址就是给所有网络中计算机提供一个可以进行通信的标识,让不同厂商、不同品牌的PC可以进行互相认识并且可以通信。
IP地址长度32位,32位二进制数组成,点分十进制表示。
私网地址的特性:
1.不同的局域网中可以有相同的IP地址,但是在一个相同的局域网中不可以。
2.无法通往公网地址进行传递,公网所有设备不认识私网地址。
解决办法:
1.NAT(网络地址转换) 将私网地址转换成公网地址,做到共享上网
2.VPN(虚拟私有网络)需要两端都做配置,麻烦。
特殊地址
0.0.0.0 默认路由常用,表示目的网段是任意的。或者发送DHCP 请求的时候,主机会把原地址变成0.0.0.0 ,无法手动配置到设备,不可用。在特殊情况可用
255.255.255.255 发送的数据, 这个数据必然是广播数据。
127.0.0.1~127.255.255.255 都是用来测试本地网卡好坏的。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码–屏蔽一个IP地址的网络部分的"全1"比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
利用子网掩码可以把大的网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。
该网段可用主机个数 -2的原因是 当前的网段第一地址0去掉,表示的当前的网段,255去掉,表示当前网段的广播地址。
公式:2^n-2 n 代表当前掩码位有多少个0。
IP地址分为5类,其中A,B,C三类中各保留了3个区域作为私网地址,也就是局域网用的,私网地址不能在公网上出现,只能用在内部网路中,所有的路由器都不能目标地址为私网地址的数据报。
使用私网保留地址的网络只能在内部进行通信,而不能与其他网络互连。因为本网络中的保留地址同样也可能被其他网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。
为什么要进行子网划分
案例分析
某公司共有5个部门,需要通过一个C类地址进行子网掩码划分:172.16.0.0 255.255.255.0
销售部 20人
财务部 8人
人事行政部 10人
讲师部 9人
项目部 61 人
如何合理的规划网段?
销售部
20+1+1+1=23 一个网络地址,一个广播地址,一个网地址 23<32
256-32=224 是最后一位掩码 255.255.255.224
网络地址到广播地址 0.0~0.31
主机地址范围 0.1~0.30
财务部
8+1+1+1=11<16
256-16=240
255.255.255.240
网络地址到广播地址 0.32~0.47
主机地址范围 0.33~0.46