ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DHCP、dns、子网划分、VLAN、路由的工作原理详解

2021-04-07 20:32:51  阅读:331  来源: 互联网

标签:子网 ip VLAN 地址 dns IP地址 数据包 路由


soket层:

封装了传输层以及传输层以下的协议
应用程序但凡想往外发送数据,只需要调soket的功能即可

DHCP:路由动态分配ip地址

DHCP工作流程如下:
在这里插入图片描述

1)最前面的”以太网标头”,设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
2)后面的”IP标头”,设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。
3)最后的”UDP标头”,设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,客户端是68端口,服务端是67端口。
4)以太网广播发送,当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道”这个包是发给我的”,而其他计算机就可以丢弃这个包
5)DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个”DHCP响应”数据包。这个响应包的结构也是类似的
6)新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数

dns:(domain name server):服务端端口:53

dns的查询走的是udp协议,dns彼此主从同步走的是tcp协议,dns查询分为两种如下图:
在这里插入图片描述
在这里插入图片描述
浏览器DNS查找顺序
浏览器DNS缓存->本地系统DNS缓存->本地计算机HOSTS文件->ISP DNS缓存->递归or迭代搜索

详细内容可以参考https://www.cnblogs.com/linhaifeng/articles/5937962.html#_label11

网络通信的流程与数据包发送

URI:统一资源标识符
URL:统一资源定位符
网路通信流程:
1.本机获取

本机的IP地址:192.168.1.100
子网掩码:255.255.255.0
网关的IP地址:192.168.1.1
DNS的IP地址:8.8.8.8

2.打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

3.dns协议(基于udp协议)

4.HTTP部分的内容,类似于下面这样:
GET / HTTP/1.1
Host: www.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: …
我们假定这个部分的长度为4960字节,它会被嵌在TCP数据包之中。

5 TCP协议
TCP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。
TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。

6 IP协议
然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。
IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

7 以太网协议
最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。
以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

8 服务器端响应
经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。
根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。
本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

ip的基本知识

一、ip地址的结构和分类
根据tcp/ip协议,连接在internet上的每个设备都必须有一个ip地址,他是一个32位二进制数,也可以用点分十进制表示,每八位一组,用一个十进制表示即0~255,每组用"."分隔开,例如172.16.45.10
在这里插入图片描述
将ip地址中的网络位和主机位固定下来后,ip地址被分成了不同的积累:A类,B类,C类,D类,E类
在这里插入图片描述

特殊ip地址

网络地址:用于表示网络本身,具有正常的网络号部分,而主机号部分全部为0的ip地址称之为网络地址,如172.16.45.0就是一个B类网络地址
广播地址:用于向网络中的所有的设备进行广播。具有正常的网络号部分,而主机号部分全为1(即255)的ip地址称之为广播地址,如172.16.45.255就是一个B类的广播地址
有限广播地址:指的是32位全位1(即255.255.255.255)的ip地址,用于全网广播
回送地址:网络地址不能以十进制的127作为开头,在地址中数字127保留给系统作为诊断用,称为欢送地址,如127.0.0.1用于回路测试,通常用于本机测试,帮我们规避掉调试与开发某些软件时带来的网络问题
私有地址:只能在局域网内使用,不能在internet上使用的ip地址称为私有ip地址,私有ip地址有:
10.0.0.0~10.255.255.255,表示一个A类地址
172.16.0.0~172.31.255.255,表示16个B类地址
192.168.0.0~192.168.255.255,表示256个C类地址
注意!!!:这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但仍旧可以被用来和Internet通讯,我们可以根据需要来选用适当的地址类,在内部局域网中大胆地将这些地址当作公用IP地址一样地使用。在Internet上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源
0.0.0.0:指已经不是真正意义上的ip地址,它表示的是所有不清楚主机和目的网络,这里的不清楚指的是在本机路由表里没有特定条目指明如何到达

子网划分

子网划分是通过借用ip地址的若干位主机位来充当子网地址的从而将原来的网络分为若干个彼此隔离的子网实现的

子网划分优点:
减少网络流量
提高网络性能
简化管理
易于扩大地理范围

子网划分的步骤:
1)确定要划分的子网数以及每个子网的主机数
2)求出子网数目对应的二进制的位数N及主机数目对应的二进制数的位数M
3)对该ip地址的原子网掩码,将其主机地址部分的前N位置1(其余全部置0)或后M位置0(其余全置1)即得出该ip地址划分子网后的子网掩码

广播域的隔离:
三层隔离:IP地址与子网掩码运算得到的网络地址不一样,即网段不一样,这就是三层隔离
二层隔离:两台计算机的网线只要接在不同的VLAN里(一个VLAN就是一个广播域)里,就是二层隔离
二层隔离应该与三层隔离保持一致
如果不一致会有什么问题?
会出现三层是隔离的,但是数据包发到了交换机之后,因其是二层设备,所以直接基于二层就开始广播了,这就导致了一些不必要的广播包

VLAN

一个交换机可以分出多个广播域,一个广播域称之为一个VLAN
VLAN有两种模式:
1、基于端口:所有端口都发
2、基于tag标签的有以下两种接口:
access口(通常用于连接计算机)收到包后打上VLAN标记,发出去的去掉VLAN标记
trunk口(通常用于连接交换机)收到包的时候,已经打上了VLAN标记,并且发出的包也带着VLAN标记
IEEE802.1q------->交换机工作遵循的协议
规定交换机应该带一些标识,即一个完整的数据头中,前六位源ip信息,后六位目标ip信息,中间四位VLAN数据信息(其中包含VLANID等)另外两位是描述信息,共计18位
IEEE 802.1Q 标准定义了 VLAN Header 的格式。它在普通以太网帧结构的 SA (src addr)之后加入了 4bytes 的 VLAN Tag/Header 数据,其中包括 12-bits 的 VLAN ID。VLAN ID 最大值为4096,但是有效值范围是 1 - 4094。
在这里插入图片描述
详细内容可参考

路由route

一台Linux主机要想被当做路由器使用必须遵循以下三个策略
1、必须开启路由转发功能
2、对方的网关地址必须指向自己
3、该Linux主机必须有对应的路由转发条目

路由策略分为三种:
1、主机路由子网掩码为32位,直接把主机范围缩到最小,就一个主机地址
route add -host 1721.16.1.11/32 dev eth0
2、网络路由:子网掩码不足32位,所包含的地址是一个范围,子网掩码越大容纳的范围越小
route add -net 1721.16.1.0/24 dev eth0
3、默认路由:目标地址为0.0.0.0/0所包含的范围最大(几乎所有地址都涵盖了)
route add default dev eth0

指定网关,让网关帮我们进行后续的转发,不指定则在局域网内广播
route add -host 1721.16.1.11/32 gw 192.168.1.2 dev eth0
route add -net 1721.16.1.11/32 gw 192.168.1.2 dev eth0
route add default gw 192.168.1.2 dev eth0

路由优先级
越精确优先级越高,子网掩码越大,精确度越高
则:主机路由------>网络路由---------->默认路由

路由的相关命令:
route -n :显示路由表的信息,-n表示不解析主机名
对于flags列,如果没有安装路由软件,则可能出现下面三种值:
在这里插入图片描述
以下是管理路由的常用命令(增删路由条目)
在这里插入图片描述

标签:子网,ip,VLAN,地址,dns,IP地址,数据包,路由
来源: https://blog.csdn.net/givenchy_yzl/article/details/115392152

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有