OSI七层模型及网络基础(一)

488 阅读8分钟

网络应用基础

  image.png

连在同一wifi下的网络即为一个局域网

交换机是用在局域网内进行数据交换的,交换机加上上网的路由寻址功能也就大致上组成了路由器

双绞线即网线,路由器一般来说等于网关,在大型公司有流量过滤等安全软件

curl在linux用来请求网页

局域网之外的网站称为外网

image.png

image.png 现在路由器集成了此功能

image.png

image.png 交换机通过mac寻址,路由器通过ip寻址,意味着在局域网内通信不需要路由器,但是现在是交换机与路由器集成

image.png WAN口接外网,外界网线应该接WAN口,LAN口接内网

image.png

image.png 交换机工作在第二层,通过MAC地址进行数据传输;路由器工作在第三层,通过IP工作

image.png

image.png 封装原理:传输层加TCP/UDP头,网络层封装IP包头,数据链路层加MAC子层和FCS校验尾,然后再物理层转化为二进制信息通过电频高低传输信息

解封装与封装过程相反

TCP头里包含一个端口信息,会校验发送的目标端口

(综合考虑一下已经讲过的IP源地址欺骗,可以知道IP包内只有目的IP)

image.png 路由器解封到网络层时看到目的IP再次封装向外传输,并寻找距离IP最近的MAC主机传输(路由寻址)

路由器其内有路由表,可以找到最近的主机,综合一下路由转发功能。牢记路由器会对数据包解析到网络层

image.png

image.png TCP/IP五层模型非官方称呼

SMTP\POP3协议作用于邮件发送接收

PING命令作用于ICMP协议

image.png

image.png

image.png

image.png

image.png 第一字节也称网段

传送数据到广播地址的IP就等于向所有主机广播信息,如ARP协议

对4的理解:有127个A类地址,每个A类地址的网络号是固定的,在此网络号下的主机有166777214个,1.0.0.0指代自己所在的网段,不参与正常IP的使用

image.png 8个二进制数为一个字节

B类地址每个网段也要减去本机地址和广播地址,比如网络号为128.8.x.x的:本机地址128.0.0.0和广播地址128.0.255.255

image.png 注意:最大主机数量不是指A\B\C\D\E的最大主机数量,而是网络号固定的A\B\C\D\E类地址下的最大主机数量

image.png

image.png

image.png

image.png

image.png

image.png

image.png 与、或、异或(不同则1,同则0)运算

image.png

image.png /20指网络号长度为20,也指子网掩码1的长度为20

image.png

image.png

image.png

image.png

image.png Network destination是目的网络,netmask是子网掩码,gateway是网关,interface是接口,metric是优先度(数字越小,优先度越高)

image.png 路由器找到主机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通

image.png

image.png 但是通过路由器可以PING通,所以PC1和PC5能PING通,但是PC1或5和PC2不能PING通

  但是在设置路由器的网关为192.168.1.254 255.255.255.0后,几个子网通过路由器就在同一网段下,也可以用路由器来管理一个子网下的主机

ARP协议

image.png 数据链路层和网络层的中间协议(IP地址转化为MAC地址)

image.png (1) Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3) Internet Protocol Version 4: 互联网层IP包头部信息
(4)Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP
(5) Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

image.png 局域网通过ARP协议进行数据传输,如果局域网不是基于MAC地址,那ARP协议也就没有存在的必要

image.png

image.png

image.png protocol为协议类型,time为距离截获的上一数据包的时间间隔

Broadcast:广播

Info:备注信息(非数据包自带,wireshark分析数据包后的关键句)

Hardware type:硬件类型,ethernet以太网

一个字节为8bit,一个16进制数为4个二进制数,所以0x00是一个字节

0x0001是2个字节

image.png MAC地址由六个部分组成 :::::所以有6个字节

Frame 物理层

Ethernet 数据层

Arp 网络层

image.png 此数据包源IP和目的IP都是自己,自身的MAC地址进行了广播,发生于自己的MAC地址发生改变时,自己会把自己的MAC地址向整个网段广播,或者是刚刚加入网络

 

在GNS3环境中尝试抓包

先设置同一交换机下两台主机的IP,在同一子网下(网段不等于子网)

start capture表示开始抓包

在网线处(在左边抓的是PC1输向交换机的包,在右边同理,有的情况抓的包不一样)右键,start wireshark

开始抓包之后PING一下另一台主机

如果要抓ARP的包,先要清空ARP缓存表(clear arp),不然会直接读取缓存表的MAC地址发送数据而不会进行ARP协议通信

image.png

IP协议

image.png

image.png

image.png 20字节,160位

首部长度是指封装在数据部分前面所有信息的长度

固定部分加可变部分长度

image.png 前两位——改成后两位

Indentification:数据包标识

IP首部长度20个字节,所以分片后每个数据报的数据部分不超过1480个字节(纠正:IP包最大1500,加数据层头部1514)

image.png 片偏移以8个字节位偏移单位

片偏移=数据报在原数据部分的字节位置除以8,如上图,数据部分三的头部在源数据部分的位置位2800字节,片偏移就是350,标记了分片在源数据部分的位置,为分片聚合提供依据

MF (More Fragment)

DF (Don't Fragment)

MF =1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don't Fragment) 只有当 DF =0 时才允许分片。

image.png

数据包分析

image.png Fragmented ip protocaol 已经分片的IP协议包

Off:片偏移(=0代表这个数据包是第一个数据包)

Header length:首部长度(此处有单位换算,16进制数×4=字节数)

image.png 区分服务,现在基本没有使用

Total length:数据包总长度

image.png 标识(重组特征)

image.png 标志位(有关分片)

image.png TTL,数据包存活时间,该数据包会在被转发128次后被丢弃,LINUX的转发次数为64次,windows为128次

  IP协议会封装ICMP,TCP,UDP等协议

image.png

ICMP协议分析

image.png

image.png icmp协议是IP协议的子协议,由IP报头、ICMP报头、ICMP数据三部分组成

image.png type为类型,CODE为代码

image.png PING命令就是向目标主机发送ICMP信息报文,目标主机(有时是路由器)回应ICMP信息报文或差错报文,Ping程序根据这些收到的ICMP报文,以知道目标主机的可达性。

image.png Traceroute 域名,经过该域名需要经过的路由器IP和所需时间

image.png 该数据包为traceroute的寻址过程,TTL值设置的1,到达下一跳时的TTL值就为0。

返回一个数据包,类型为11,也就是TTL exceeded(生成时间过期)

该数据包内就包含了发送返回数据包路由器的IP地址

知道了第一个路由器的IP,就发送TTL值为2,第二跳路由器IP的地址再返回

依次增加TTL值,就可以获取到达该域名所经过所有路由器的IP

但是中间安全级别高的路由器会设置TTL=0时自动丢弃数据包,就不会返回差错报告

image.png

    • *就是没有返回差错报告的路由器