网络原理入门--IP&以太网(下篇)

一. 网络层协议----IP协议

网络层协议的功能有两个:

  • 地址管理: 将发送端,接收端的地址以一定的规范定义出来.
  •  路由选择: 任何一个节点都无法感知到网络路径的全貌,只能认识以自己为中心的局部网络.因此也只能规划这一范围内的路径.

关于路由选择,下文谈到路由器的部分会做简略介绍,此处不再讨论.     

1.1 IP协议格式

下图是IPv4协议格式.

  1. 4位版本号: 指定IP协议的版本.我们只需要关心IPv4 和 IPv6 即可.(童鞋们肯定会疑惑为啥没有IPv1,2,3,实际上IP协议是一个比较注重实用性的协议,在版本被发布之前会先进行试验,IPv1,2,3这些版本就是实验版本,因此不被大众熟知)
  2. 4位首部长度: IP报头的长度有多少个32bit,也就是以4Byte为单位.
  3. 8位服务类型: 3位优先权字段(已经弃用);4位TOS字段,分别表示:最小延时,最大吞吐量,最高可靠性,最小成本(只能选择一个置1,其余置0);还有一位保留字段(必须置0)(在实际应用场景中,我们并不会用到这些服务类型的切换,读者只需了解即可)
  4. 16位总长度: IP报文一共占多少字节.(总长度为16位并不代表IP协议可以传输64KB的数据包,还要看数据链路层协议的规定)
  5. 16位标识: 如果IP报文过长,根据规定会进行分片.每片的标识号是相同的.
  6.  3位标志: 第一位保留;第二位为0表示可分片,为1表示不可分片;第三位为1表示这是同一组IP报文的最后一片.
  7.  13位分片偏移: 表示当前分片在原报文中的位置.
  8. 8位生存时间(Time To Live,TTL):一个数据报被构造出来,会经过一个又一个的主机,称为"一跳一跳地传输",每跳一次,TTL就会-1,如果减到0还未到达目的主机,就会被丢弃.(这个机制用来防止路由循环)
  9. 8位协议: 表示上层使用的协议类型.
  10. 16位首部校验和: 用于IP报头校验.(报文部分由上层协议校验)
  11. 32位源IP地址/目的IP地址: 表示发送端和接收端.

1.2 认识IP地址

在命令台上输入ipconfig -all指令,就可以看到自己的IP地址.

  1. 概念: IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址.
  2. 功能: IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.
  3. 格式:IP地址是一个32位的二进制数(IPv4),通常被分割为4“8位二进制数(也就是4个字节),并且使用"点分十进制"的方式来表示. a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如: 196.201.118.003
  4. 版本: 因为IPv4协议的IP地址只有32位,也就是大约43亿主机可以分配到IP地址,这对于现在的人类世界是远远不够的! 所以有了IPv6协议,其规定的IP地址长度为128位,可以为地球上的每一粒沙子都分配一个身份标识.

1.2.1 IP地址分类

过去曾经提出一种划分网络号和主机号的方案,把所有 IP 地址分为五类,如下图所示.

 

在这一方案下,IP地址被划分成两部分==网络号+主机号.

  • 网络号: 用于标识网段,保证相互连接的任意两个网段具有不同的标识.
  • 主机号: 用于标识网段内的主机,同一网段下的任意两台主机拥有不同的标识.

IP地址是具有层次性的.同一网段内的主机往往分布在一片区域内. 

然鹅,人们发现,这种分类方式并不现实.见上图,A类网络可以容纳166777214台主机!实际上一个组织往往达不到这种规模.这让本来就资源紧张的IP地址雪上加霜~于是,就产生了子网掩码.

插入一个话题,为啥上面的最大主机数目都要减2?   如果主机地址全为0,表示不知道主机的具体标识;如果主机地址全为1,就变成了广播地址,目的IP为这个的报文将被发送到该局域网下的每台主机上.

1.2.2 子网掩码

格式: 子网掩码格式和IP 地址一样,也是一个 32 位的二进制数。其中左边是网络位,用二进制数字 “1” 表示, 1 的数目等于网络位的长度;右边是主机位,用二进制数字“0” 表示, 0 的数目等于主机位的长度.
这样,每个网段就可以根据主机数按需分配IP地址.(见下例)

二. 数据链路层协议----以太网协议

物理层的功能是将0,1比特流转换为光/电信号进行传输.数据链路层负责将数据转换成有意义的帧格式,然后交给物理层.

如果把数据在网络上的传输比作收发快递的话.物理层只负责快递的运输;数据链路层则需要进行包裹的完整性,大小...的检验.

2.1 以太网帧格式

以太网协议是数据链路层的重点协议,下图为其帧格式

  1. 目的地址/源地址: 指的是MAC地址(48位),与IP地址不同的一套地址体系.用于同一数据链路下主机的唯一标识.
  2. 类型: 指上层协议类型.
  3. CRC: 使用CRC方式进行以太网帧校验的校验码

实际上,以太网每一帧前面还会传送一个前导码(8Byte),用于标识一个帧的开始;每传送完一个帧,发送方都会空出来9.12us,这段时间内不发送任何数据,用于标识一个帧的结束.

细心的同学肯定会疑惑----为啥有前导码,不设置一个"后导码"来表示一个帧的结束呢?

 实际上是因为早期的以太网,各个主机通过一根总线相连,不能同时发送数据.通过给发送端设置时间空隙,可以避免其他主机抢不到发送权.

 2.2 认识MTU

MTU,指的是数据链路层的数据帧,其载荷的最大长度.一般规定为1500Byte.

如果载荷超过这个长度,意味着上层协议要进行分包;如果载荷小于46Byte,要进行补0处理.

46Byte最小长度的具体原理,博主还未进行研究,等结果出来了再告诉大家吧~

三. 认识网络设备

中继器/集线器: 在物理层上进行信号增强的设备. 同学们可以把它想象成一个信号放大器,只能延长网段的传播范围(有数量限制,并不能无限延长).并且当中继器连接两个网段时,这两个网段的传输速率必须一致(必须是同一介质).

交换机/网桥: 在数据链路层上连接两个网段的设备. 交换机内部有一张存储转发表,记录着连接的两个网段中各台主机的MAC地址,并且这张转发表是通过自学机制维护的,不需要人为改动.同时,因为交换机内部有缓冲区,可以连接两个速率不同的网段.

 

路由器: 将多个局域网连接到一起的设备. 这里指的局域网是在同一数据链路内的结点组成的网络.

路由器内部有一张路由表,记录了某个IP地址属于哪个网段.这张路由表也是由自学机制实现的.

 

除了上面这些我们耳熟能详的网络设备外,还有4-7层网络设备(比如大型公司内部使用的负载均衡器,负责将客户端的响应分配给各个应用服务器).感兴趣的读者可自行查阅相关资料.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不 会敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值