网络分层

OSI七层模型是面试中最常问到的问题,理解网络协议的工作模式,有两个小窍门:
  • 始终想象自己是一个处理网络包的程序:如何拿到网络包,如何根据规则进行处理,如何转发出去
  • 始终牢记一个原则:只要是在网络上跑的包,都是完整的。可以有下层没有上层,绝对不可能有上层没有下层。(都是五证齐全的)
什么是二层设备。三层设备??

所谓的二层设备、三层设备,都是这些设备上跑的程序不同而已。一个 HTTP 协议的包经过一个二层设备,二层设备收进去的是整个网络包。这里面 HTTP、TCP、 IP、 MAC 都有。什么叫二层设备呀,就是只把 MAC 头摘下来,看看到底是丢弃、转发,还是自己留着。那什么叫三层设备呢?就是把 MAC头摘下来之后,再把 IP 头摘下来,看看到底是丢弃、转发,还是自己留着。

浏览器发送HTTP请求过程
  • 工具人点击浏览器,浏览器发送HTTP请求,结构:HTTP头+HTTP正文
  • TCP层:加上TCP头,里面有端口号
  • 三层:加上IP头,里面有目标地址
  • 二层:加深MAC头,里面有目标MAC或者网关MAC
  • 接收的时候,过程相反
  • 浏览器的默认端口号是80 端口
ifconfig

windows下查看IP地址的命令是ipconfig
Linux下查看IP地址的命令是ifconfig、ip addr
如果没有这两个命令的话,可以自行安装net-tools和iprote2工具
ifconfig和ip addr的区别?
IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门派号码
IP地址可以用点分十进制表示,总共4个部分,每个部分8bit,所以IP地址总共是32位。IP地址被分为5类,对于A、B、C类主要分两部分,前面是网络号,后面一部分是主机号
下面是A、B、C类
在这里插入图片描述无类型域间选路(CIDR),将32位地址一分为二,前面是网络号,后面是主机号。10.100.122.2/24表示前24位是网络号,后8位是主机号。伴随着CIDR存在的,一个是广播地址,10.100.122.255,另一个是子网掩码255.255.255.0。
将子网掩码和IP地址按位计算AND,就可以得到网络号。
一般情况下
上面表格中的192.168.0.x是最常用的私有IP地址。家里的话一般/24也就够了。整个网络里面的第一个地址就是192.168.0.1,往往就是这个私有网络的出口地址,而192.168.0.255就是广播地址
CIDR下的例子
我们来看 16.158.165.91/22 这个 CIDR。求一下这个网络的第一个地址、子网掩码和广播地址。
你要是上来就写 16.158.165.1,那就大错特错了。
/22 不是 8 的整数倍,不好办,只能先变成二进制来看。16.158 的部分不会动,它占了前 16 位。中间的 165,变为二进制为 10100101 。除了前面的 16 位,还剩 6 位。所以,这 8 位中前 6 位是网络号, 16.158.<101001>,而<01>.91 是机器号。第一个地址是 16.158.<101001><00>.1,即 16.158.164.1。子网掩码是 255.255.<111111><00>.0,即 255.255.252.0。广播地址为 16.158.<101001><11>.255,即 16.158.167.255。
子网掩码:网络号全为1,主机号全为0;广播地址,网络号正常,主机号全为1.

MAC 地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。MAC地址的通信范围比较小,局限在一个子网里,一旦跨网就需要IP地址起作用了。
在这里插入图片描述使用命令之后打印出来的内容,可以着重理解下绿色的圈起来的内容。

怎么给网卡配置地址???

使用net-tools:

$ sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up

使用iproute2:

$ sudo ip addr add 10.0.0.1/24 dev eth1
$ sudo ip link set up eth1

DHCP协议主要是用来给客户租用IP地址,和房产中介很像,要商谈、签约、续租、广播还不能抢单;能给客户推荐装修队PXE(预启动执行环境),能够安装操作系统,这个在云计算领域有很大用处。

DHCP协议的解析过程

刚加入网络的客户端(源IP:0.0.0.0,目的IP:255.255.255.255(广播))和DHCP服务器之间(源IP:服务器自己的IP,目的IP:255.255.255.255(广播))。格式里面有个BOOTP头部。了解即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值