网络基础二
1.网络传输流程图
两台计算机通过TCP/IP协议进行通讯的过程:
2.数据包封装和分用
不同协议层对数据包有不同的叫法,传输层叫做段,网络层叫数据报,在链路层叫帧。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。
首部信息包含了一些属性,如首部长度,载荷长度以及上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再去除掉首部,取载荷信息,会根据首部的上层协议到对应的协议处处理。
用户要将信息传输给另一台主机前,该信息数据要先通过网络协议栈进行封装,信息数据先交给应用层,应用层会加上自己层的协议的报头信息,然后将添加好的数据往下传给传输层。传输层接收到数据后,也会加上自己层的协议报头信息,接着往下传,网络层同样上面操作,到链路层也按上面操作完后就结束了,数据封装完成了。
封装完的数据就可以通过局域网发送给对端主机了,对端主机接收到数据后,就会由下至上的进行解包操作,通过网络协议栈来进行解包操作与分用。
链路层接收到数据后,把数据中对应链路层协议的包头信息提取出来,并把剩下的数据交给网络层。网络层接收到数据也会把对应网络层协议的包头信息提取出来,把剩下的数据往上交付。传输层和应用层都会这样操作,应用层将数据中对应应用层的协议报头信息拿出来,就完成了对数据的解包与分用。
任何一太主机在发送信息之前,数据都会自上而下贯穿协议栈来完成数据的封装,这个过程中,每一层协议都会添加上对应的报头信息,接收方就是自下而上贯穿协议栈来完成对数据的解包和分用,每一层都会对应提取出报头信息。
3.以太网通信
以太网通信,则每台主机都会有自己唯一的标识。
以太网通信例子:老师在课堂上发布任务,但是指定的张三去做这个任务,老师发布任务班上所有人都听到了这个任务,但是不是叫自己去做,而是张三做,就会不处理这个任务,只有张三会去处理这个任务。
以太网解释上面例子:局域网内某台主机(老师)发送了信息,经过多层协议进行封装,在进行网络通信的时候,这个局域网内的其它主机都收到了封装的信息,都会对信息进行解包,根据发送的信息里面带有的报头进行比较(是不是张三),比对成功继续解包分用,对比不成功就丢弃信息。
每一个局域网都可以看成是一个碰撞域,某个主机发送出去的信息可能会与其它主机发送的信息之间产生干扰,就是两个主机在这个局域网中发生了碰撞。
网卡通常有几种工作模式,其中包括正常模式和混杂模式。在正常模式下,网卡只接收发给本机的包(包括广播包),其它的包一律丢弃。这种模式可以极大地减轻网卡的处理负担,因为它只处理与自己相关的数据包。在Linux系统中,可以通过shell命令来实现混杂模式的设置,例如使用 `ifconfig eth1 promisc` 来设置混杂模式,使用 `ifconfig eth1 -promisc` 来取消混杂模式。
混杂模式(Promiscuous Mode)则相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它自己。这种模式通常用于网络监控和分析,因为它允许捕获网络上的所有数据包,而不仅仅是发送给本机的数据包。混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。在混杂模式下,网卡将接受同一网络内所有站点所发送的数据包,这样就可以达到对于网络信息监视捕获的目的。
4.网络中地址管理
IP地址
IP地址有两个版本,IPv4和IPv6,一般默认IPv4。
IP地址是在IP协议中,用来标识网络中不同主机的地址,对于IPv4来说,IP地址是一个4字节的,32位的整数,通常也用点分十进制的字符串表示IP地址,例如192.168.0.1,用点分割每一个数字表示一个字节,范围是0-255。
MAC地址
MAC地址用来识别数据链路层中相连的结点,长度为48位,6个字节,一般用16进制数字加上冒号形式表示,如08:00:27:03:fb:19。
MAC地址在网卡出厂时确定了,不能修改,MAC地址通常是唯一的(虚拟机mac地址不是真实的)。
IP地址和MAC地址
跨网段的主机文件传输
跨网段的主机文件传输,数据从一台计算机到另一台计算机传输过程要经过一个或者多个路由器
完成流程解释
用户A位于地址为192.168.2.2的主机上,用户B位于IP地址为172.168.2.2的主机上,用户A发送一条消息你好给用户B,两者之间有路由器连接,路由器两个接口分别位于192.168.2.2和172.168.2.2网络中。消息会在主机A中自上而下的进行数据封装,添加各个协议层的报头消息,到数据链路层,会在数据包前添加源MAC地址和目的MAC地址信息,生成数据帧,通过网卡发送到路由器。路由器接收到后,传到数据链路层进行检测目的MAC地址,发现有匹配的接口就发送数据帧给网络层,路由器网络层检测IP地址,发现需要发送到另一个网络,路由器查找路由表,确定下一跳地址,并生成新的数据包。路由器的数据链路层在新数据包前添加源MAC地址(路由器另一接口的MAC地址)和目的MAC地址(另一台主机MAC地址)信息,生成新的数据帧,然后网卡发送出去。主机B网卡接收数据帧,传给数据链路层并检测目的MAC地址,发现匹配就传给网络层,网络层检测目的IP地址,匹配就发送给传输层。传输层检测端口信息,匹配就传给应用层,就可以接收到信息你好了。
一个简单的例子来解释源MAC地址和目的MAC地址与固定MAC地址之间的关系。
### MAC地址的基本概念
每个网络设备(如计算机、路由器、交换机等)都有一个唯一的MAC地址,这个地址是固定的,通常由设备制造商在出厂时设定。MAC地址用于在数据链路层标识设备。
### 源MAC地址和目的MAC地址
在网络通信中,当一个设备发送数据帧时,这个数据帧包含两个MAC地址:
- **源MAC地址**:这是发送数据帧的设备的MAC地址。它标识了数据帧的发送者。
- **目的MAC地址**:这是数据帧的目标设备的MAC地址。它标识了数据帧的接收者。### 示例
假设我们有两台计算机,计算机A和计算机B,它们都连接在同一个局域网上。
1. **计算机A发送数据帧到计算机B**:
- **源MAC地址**:这个地址是计算机A的MAC地址,我们称之为`A-MAC`。这个地址是固定的,不会改变。
- **目的MAC地址**:这个地址是计算机B的MAC地址,我们称之为`B-MAC`。这个地址也是固定的,但在这里它作为目的地址。2. **数据帧的传输**:
- 当计算机A生成一个数据帧并发送到网络时,这个帧包含了`A-MAC`作为源MAC地址和`B-MAC`作为目的MAC地址。
- 局域网中的交换机会检查这个帧的目的MAC地址`B-MAC`,并根据其地址表将帧转发到连接计算机B的端口。3. **计算机B接收数据帧**:
- 计算机B接收到帧后,会检查帧中的目的MAC地址。如果这个地址与自己的MAC地址匹配(即`B-MAC`),计算机B就会处理这个帧。### 解释
在这个过程中,虽然数据帧在网络中传输时,其源MAC地址和目的MAC地址被用来标识发送者和接收者,但这些地址本身是指向固定不变的MAC地址。源MAC地址`A-MAC`始终指向计算机A的固定MAC地址,目的MAC地址`B-MAC`始终指向计算机B的固定MAC地址。
因此,尽管在数据帧中使用了源MAC地址和目的MAC地址,这些地址实际上是指向设备上固定不变的MAC地址。这就是为什么我们说MAC地址本身是不变的,而源MAC地址和目的MAC地址是数据帧中用于标识发送者和接收者的字段,它们在每次通信中会根据实际的发送者和接收者而变化。
网络通信模型,用户A通过多个路由器与用户B进行通信
这张图展示了一个网络通信的模型,其中用户A想要通过多个路由器与用户B进行通信。图中用蓝色框突出显示了网络层和数据链路层,这两层在跨网络通信中起着关键作用。以下是详细的通信流程:
### 1. 用户A发送数据
- **应用层**:用户A在应用层创建要发送的数据。
- **传输层**:传输层负责为应用层的数据提供端到端的通信服务,如TCP会为数据分片并提供确认和重传机制。
- **网络层**:网络层在传输层数据前面加上源IP地址(用户A的IP)和目的IP地址(用户B的IP),形成IP数据包。
- **数据链路层**:数据链路层在IP数据包前面加上源MAC地址(用户A的MAC地址)和目的MAC地址(路由器1的MAC地址),形成数据帧。### 2. 数据帧在局域网内传输
- **网卡**:用户A的网卡将数据帧发送到物理网络。
- **交换机**:局域网内的交换机根据目的MAC地址将数据帧转发到路由器1。### 3. 路由器1处理数据帧
- **数据链路层**:路由器1接收到数据帧,数据链路层检查目的MAC地址,确认数据帧是发给自己的。
- **网络层**:路由器1的网络层从数据帧中提取IP数据包,检查目的IP地址,决定数据包的下一跳。
- **数据链路层**:路由器1的数据链路层创建新的数据帧,源MAC地址是路由器1的另一个接口的MAC地址,目的MAC地址是下一个路由器的MAC地址。### 4. 数据帧在广域网中传输
- **网卡**:路由器1的网卡将新的数据帧发送到广域网。
- **路由器2**:数据帧到达路由器2,重复上述过程,直到数据帧到达用户B所在的网络。### 5. 用户B接收数据
- **数据链路层**:用户B的网卡接收到数据帧,数据链路层检查目的MAC地址,确认数据帧是发给自己的。
- **网络层**:用户B的网络层从数据帧中提取IP数据包,检查目的IP地址,确认数据包是发给自己的。
- **传输层**:网络层将IP数据包传递给传输层,传输层负责将数据包重新组装成原始消息。
- **应用层**:传输层将消息传递给应用层,用户B接收到来自用户A的消息。这个流程展示了数据包从用户A到用户B的完整路径,包括在不同网络设备上的处理和转发。每个路由器在转发数据包时都会更新数据帧中的目的MAC地址,以确保数据包能够正确地到达下一个网络设备。
5.公网和内网
公网指的是互联网上公开的网络,它允许世界各地的设备通过互联网协议(IP)互相通信。公网IP地址是在全球范围内唯一的,由互联网号码分配机构(IANA)及其下属的地区性互联网注册机构(RIRs)分配和管理。
内网指的是不直接连接到互联网的私有网络,通常位于家庭、学校、公司或其他组织的内部。内网IP地址是为内部使用而保留的,不会在互联网上直接路由。
主要特征
公网(Public Network)特征
全球可达性:
公网是全球互联的,任何拥有公网IP地址的设备都可以被世界各地的其他设备访问。
IP地址唯一性:
公网IP地址在全球范围内是唯一的,由互联网号码分配机构(IANA)及其下属的地区性互联网注册机构(RIRs)管理和分配。
动态或静态分配:
公网IP地址可以是动态分配的(每次连接到互联网时可能改变),也可以是静态分配的(固定不变)。
直接暴露于互联网:
公网设备直接暴露在互联网上,容易受到来自外部的网络攻击和扫描。
需要更高安全性:
由于直接暴露于外部网络,公网设备通常需要更严格的安全措施,如防火墙和入侵检测系统。
内网(Private Network)特征
局部可达性:
内网仅在特定的局部区域内可达,如家庭、学校或企业内部。
IP地址非唯一性:
内网IP地址在私有范围内分配,这些地址在互联网上不唯一,可以在多个内网中重复使用。
私有IP地址范围:
内网使用特定的私有IP地址范围,这些地址不会在互联网上路由,由IETF定义。
通过NAT访问互联网:
内网设备通常通过网络地址转换(NAT)设备访问互联网,NAT设备将内网IP地址转换为公网IP地址。
增强的安全性:
内网设备不直接暴露在互联网上,因此通常比公网设备更安全。然而,内网仍然需要适当的安全措施来防止内部威胁。
公网和内网IP地址特征
内网(私有网络)中的IP地址确实有相似之处,因为它们都属于特定的私有地址范围,这些地址不会在全球互联网上路由。内网IP地址由互联网工程任务组(IETF)划分的几个特定范围组成,可以在多个内网中重复使用而不会冲突。以下是内网IP地址的三个主要范围:
-
10.0.0.0 至 10.255.255.255:
-
这个范围涵盖了从10.0.0.0到10.255.255.255的所有地址,可以用于任何规模的内网。
-
-
172.16.0.0 至 172.31.255.255:
-
这个范围涵盖了从172.16.0.0到172.31.255.255的所有地址,适用于中等规模的内网。
-
-
192.168.0.0 至 192.168.255.255:
-
这个范围涵盖了从192.168.0.0到192.168.255.255的所有地址,通常用于家庭和小型企业网络
-