网络应用基础
连在同一wifi下的网络即为一个局域网
交换机是用在局域网内进行数据交换的,交换机加上上网的路由寻址功能也就大致上组成了路由器
双绞线即网线,路由器一般来说等于网关,在大型公司有流量过滤等安全软件
curl在linux用来请求网页
局域网之外的网站称为外网
现在路由器集成了此功能
交换机通过mac寻址,路由器通过ip寻址,意味着在局域网内通信不需要路由器,但是现在是交换机与路由器集成
WAN口接外网,外界网线应该接WAN口,LAN口接内网
交换机工作在第二层,通过MAC地址进行数据传输;路由器工作在第三层,通过IP工作
封装原理:传输层加TCP/UDP头,网络层封装IP包头,数据链路层加MAC子层和FCS校验尾,然后再物理层转化为二进制信息通过电频高低传输信息
解封装与封装过程相反
TCP头里包含一个端口信息,会校验发送的目标端口
(综合考虑一下已经讲过的IP源地址欺骗,可以知道IP包内只有目的IP)
路由器解封到网络层时看到目的IP再次封装向外传输,并寻找距离IP最近的MAC主机传输(路由寻址)
路由器其内有路由表,可以找到最近的主机,综合一下路由转发功能。牢记路由器会对数据包解析到网络层
TCP/IP五层模型非官方称呼
SMTP\POP3协议作用于邮件发送接收
PING命令作用于ICMP协议
第一字节也称网段
传送数据到广播地址的IP就等于向所有主机广播信息,如ARP协议
对4的理解:有127个A类地址,每个A类地址的网络号是固定的,在此网络号下的主机有166777214个,1.0.0.0指代自己所在的网段,不参与正常IP的使用
8个二进制数为一个字节
B类地址每个网段也要减去本机地址和广播地址,比如网络号为128.8.x.x的:本机地址128.0.0.0和广播地址128.0.255.255
注意:最大主机数量不是指A\B\C\D\E的最大主机数量,而是网络号固定的A\B\C\D\E类地址下的最大主机数量
与、或、异或(不同则1,同则0)运算
/20指网络号长度为20,也指子网掩码1的长度为20
Network destination是目的网络,netmask是子网掩码,gateway是网关,interface是接口,metric是优先度(数字越小,优先度越高)
路由器找到主机B之后,此时F0/1就会向此路由器下的全局域网通过ARP协议广播谁是目标IP,然后通知目标IP将MAC地址发向路由器,主机B在收到广播之后就会发送MAC地址到路由器(找到IP之后会转向第二层工作,也就是MAC地址传输)
注意,交换机没有路由寻址功能,也就是在同一交换机下不同网段的计算机无法相互PING通,比如192.168.0.0/24和10.0.0.0/24在同一交换机下二者无法PING通
1、利用GNS3进行子网划分****
作业一:192.168.1.0/24网段,划分成4个相同大小的子网,互相能够ping通****
2^2=4,网络号为24+2=26,子网掩码即为26,
如果计算最后8位网络号二进制,分为11000000,10000000,01000000,00000000四个子网****
所以四个子网的IP为192.168.1.0--192.168.1.63
192.168.1.64--192.168.1.127
192.168.1.128--192.168.1.191
192.168.1.192--192.168.1.255
每个子网装备一个交换机,每个网段再装备一个路由器
PC1和PC2不在同一子网,所以在交换机下不能相互PING通
但是通过路由器可以PING通,所以PC1和PC5能PING通,但是PC1或5和PC2不能PING通
但是在设置路由器的网关为192.168.1.254 255.255.255.0后,几个子网通过路由器就在同一网段下,也可以用路由器来管理一个子网下的主机
ARP协议
数据链路层和网络层的中间协议(IP地址转化为MAC地址)
(1) Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3) Internet Protocol Version 4: 互联网层IP包头部信息
(4)Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP
(5) Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
局域网通过ARP协议进行数据传输,如果局域网不是基于MAC地址,那ARP协议也就没有存在的必要
protocol为协议类型,time为距离截获的上一数据包的时间间隔
Broadcast:广播
Info:备注信息(非数据包自带,wireshark分析数据包后的关键句)
Hardware type:硬件类型,ethernet以太网
一个字节为8bit,一个16进制数为4个二进制数,所以0x00是一个字节
0x0001是2个字节
MAC地址由六个部分组成 :::::所以有6个字节
Frame 物理层
Ethernet 数据层
Arp 网络层
此数据包源IP和目的IP都是自己,自身的MAC地址进行了广播,发生于自己的MAC地址发生改变时,自己会把自己的MAC地址向整个网段广播,或者是刚刚加入网络
在GNS3环境中尝试抓包
先设置同一交换机下两台主机的IP,在同一子网下(网段不等于子网)
start capture表示开始抓包
在网线处(在左边抓的是PC1输向交换机的包,在右边同理,有的情况抓的包不一样)右键,start wireshark
开始抓包之后PING一下另一台主机
如果要抓ARP的包,先要清空ARP缓存表(clear arp),不然会直接读取缓存表的MAC地址发送数据而不会进行ARP协议通信
IP协议
20字节,160位
首部长度是指封装在数据部分前面所有信息的长度
固定部分加可变部分长度
前两位——改成后两位
Indentification:数据包标识
IP首部长度20个字节,所以分片后每个数据报的数据部分不超过1480个字节(纠正:IP包最大1500,加数据层头部1514)
片偏移以8个字节位偏移单位
片偏移=数据报在原数据部分的字节位置除以8,如上图,数据部分三的头部在源数据部分的位置位2800字节,片偏移就是350,标记了分片在源数据部分的位置,为分片聚合提供依据
MF (More Fragment)
DF (Don't Fragment)
MF =1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don't Fragment) 只有当 DF =0 时才允许分片。
数据包分析
Fragmented ip protocaol 已经分片的IP协议包
Off:片偏移(=0代表这个数据包是第一个数据包)
Header length:首部长度(此处有单位换算,16进制数×4=字节数)
区分服务,现在基本没有使用
Total length:数据包总长度
标识(重组特征)
标志位(有关分片)
TTL,数据包存活时间,该数据包会在被转发128次后被丢弃,LINUX的转发次数为64次,windows为128次
IP协议会封装ICMP,TCP,UDP等协议
ICMP协议分析
icmp协议是IP协议的子协议,由IP报头、ICMP报头、ICMP数据三部分组成
type为类型,CODE为代码
PING命令就是向目标主机发送ICMP信息报文,目标主机(有时是路由器)回应ICMP信息报文或差错报文,Ping程序根据这些收到的ICMP报文,以知道目标主机的可达性。
Traceroute 域名,经过该域名需要经过的路由器IP和所需时间
该数据包为traceroute的寻址过程,TTL值设置的1,到达下一跳时的TTL值就为0。
返回一个数据包,类型为11,也就是TTL exceeded(生成时间过期)
该数据包内就包含了发送返回数据包路由器的IP地址
知道了第一个路由器的IP,就发送TTL值为2,第二跳路由器IP的地址再返回
依次增加TTL值,就可以获取到达该域名所经过所有路由器的IP
但是中间安全级别高的路由器会设置TTL=0时自动丢弃数据包,就不会返回差错报告
-
- *就是没有返回差错报告的路由器