软件开发速学计网:网络层

前言,要完整的学计网看这,韩立刚老师的课,绝对有趣,而我这是参考慕课网:编程必备基础中的网络篇,都是软件的,不是很全,但是对于搞软件的我觉得够了。网络层的知识比较多,有错请指出,谢谢

1. 虚拟互连网络

因为实际的物理网络是非常复杂的,可能连接不同家庭,不同地区,不同城市,不同国家,这其中的互连就非常复杂,如果要准确的说数据传输的路径是不可能的,所以我们不需要关注这些细节,只管发送数据包即可。所以提出了虚拟互连网络。

转载:虚拟互连网络的意义是什么?
所谓虚拟互连网络也就是逻辑互连网络简称为IP 网。它的意思就是利用IP 协议屏蔽互连起来的各种物理网络的异构性使这些性能各异的网络看起来好像是一个统一的网络。使用虚拟互连网络的好处是当互联网上的主机进行通信时就好像在一个网络上通信一样而看不见互连的各具体的网络异构细节。

在这里插入图片描述

主机A只需要接入网络,主机B也只接入网络,其中主机A发送的数据包是如何传输的并不需要知道,然后主机B等着接收主机A的数据包即可,当然这是利用IP协议来达成这效果的。

所以可以先看到IP协议的作用:

  • IP协议使得复杂的实际网络变成一个虚拟互连的网络。
  • IP协议也可以使得网络层可以屏蔽底层细节而专注网络层的数据转发。就当作物理层和数据链路层不存在,直接传输数据到对方的网络层。
  • IP协议解决了在虚拟网络中数据报传输路径的问题。

2. IP协议

百度百科
IP协议,它的英文是Internet Protocol,即网际互连协议。负责Internet上网络之间的通信,并规定了将数据从一个网络传输到另一个网络应遵循的规则。因特网看起来好像是真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用IP协议把全世界所有愿意接入因特网的计算机局域网连接起来,使得它们彼此之间都能够通信。正如人类进行有效交流需要使用同一种语言一样,计算机之间的通信也要使用同一种“语言”,而IP协议正是这种语言。

首先先了解IP地址:

2.1 IP地址

在这里插入图片描述

IP地址也跟MAC地址一样,类似身份证的存在。IP地址长度为32位,常分成4个8位,一般使用点分十进制来表示。范围是:0.0.0.0~255.255.255.255。一共可以表示2^32个IP。

IP和MAC的区别:360百科

  • IP地址是基于网络拓扑设计出的,同一台设备或计算机上,IP地址是可以改动的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。 如果拿着本机的网卡去装在另一台计算机上则MAC地址还是原来网卡那个。
  • 长度不同。IP地址的长度为32位,MAC地址的长度为48位。
  • 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
  • 寻址协议层不同。IP地址应用于网络层,而MAC地址应用于数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(指相邻,通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

2.2 IP协议的组成(重要)

IP协议的组成如图,最后两行我们不关心,只看前面5行。因为前5行是IP协议必须需要的,每一行都是32位,即4个字节。一共有20个字节。
在这里插入图片描述

  • 版本:占4位,指的是IP协议的版本,通信双方的版本必须一致,当前主流的版本是4,即IPv4,也有IPv6。
  • 首部长度:占4位,表示的是IP首部长度(包括一些可选的首部数据,看图)。最大数值用十进制表示为15(即首部最大有15行,每行4个字节),换成字节表示为15*4=60字节(即固定首部长度加上可选首部长度),而最小值就是前面说的20个字节(固定首部长度)。
  • 服务类型:不关心这个。
  • 总长度:占16位,最大数值用十进制表示为65535,表示的是IP数据报总长度(IP首部+IP数据)。在数据链路层中提到MTU,即数据链路层的最大数据传输长度,如果IP数据报的总长度比MTU大时(我们常说的IP数据报其实包含首部和IP数据),数据链路层会把IP数据报拆分成多个数据帧进行传输,即分片。
  • 标识:不关心这个。
  • 标记:占3位,目前只有2位是有意义的,标志IP报文是否可以分片。
  • 片偏移:较长的数据报在分片后,某片在原数据报中的相对位置。就上面说的如果IP数据报的总长度比MTU大时就会把数据报分片成多个数据帧,这时候就需要在每个数据帧的片偏移中保存是第几个偏移的IP数据报,这方便接收方组合数据帧。
  • TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文。这是为了防止报文找不到终点时在网络中无限传输,如果网络中有很多这样的报文存在,那网络的效率就会受影响(消耗带宽)。
  • 协议:占8位,表明IP数据所携带的具体数据是什么协议的,如UDP,TCP等。以便使目的主机的IP层知道应将数据部分上交给哪个处理。
    在这里插入图片描述
  • 首部校验和:占16位,校验IP首部是否有出错。如果出错直接丢弃数据报。
  • 后面的两个看名字就知道。

3. IP协议的转发流程

逐跳(hop-by-hop):数据报在发送出去时经过可能经过多个网络或路由,每次经过我们就说数据报跳到这里。即数据报在传输中是一跳一跳的传输到目的主机。这是转发过程逐跳的概念。

3.1 路由表

参考数据链路层中的MAC地址表:
在这里插入图片描述

老师回答的一些问题:

  • 路由器也有网络协议程序在工作,路由器的数据链路层也是工作的,和计算机的工作原理一样。路由表在计算机和路由器上都存在。其实路由器只不过是一个统称了,凡是具备路由功能的设备都可以叫做路由器,计算机也可以路由的。
  • 数据链路层的MAC地址是自发现的,当数据链路层不知道某个IP的具体MAC地址时,就会通过广播去询问相邻的设备。

3.2 IP协议的转发流程

拿出数据链路层中遇到跨节点传输的问题,单从网路层来看,我们屏蔽掉数据链路层和物理层:IP协议的转发流程
在这里插入图片描述
通过这张图可看到路由中也有3层。
在这里插入图片描述

现在网路层和数据链路层结合来看:IP协议的转发流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 数据帧每一跳的MAC地址都在变化。
  • IP数据报每一跳的IP始终不变。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值