当前位置: 首页 > news >正文

计算机网络第四章——网络层(中)

提示:待到山花烂漫时,她在丛中笑。

文章目录


请添加图片描述
请添加图片描述
需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就是一个局域网,若是文件比较大就需要在传输层进行分段,在网络层进行封装就需要加上IP地址形成一个IP数据报,要加两个一个是源主机的地址,一个是目的主机的地址,(传输层要讲)根据这个DNS就可以将目的地址填入,分组通常是数据报分片之后的结果,为什么要进行分片可能是因为这个链路层的协议要求的最大传输单元有一个是MTU,根据MTU来决定是否要在网络层进行分片,然后构成一个IP数据报,然后再数据链路层加上一个MAC地址,每一个主机或者说每一个路由器都会有一个ARP高速缓存可以把他想想成是一个仓库,这个仓库存的就是IP地址和MAC地址的映射,也就是某一个IP地址对应的MAC地址应该是多少,当然所存的都是一个局域网内部的主机,若是没有找到就要使用ARP的协议,
就需要先发送一个ARP分组请求,其实是一个帧,这个数据帧的这几个部分,它自己的IP地址,它所查询的主机的IP地址,以及自己的MAC地址,还一个就是目的物理地址,这里能够看出来是全fFFF,也就是局域网内有广播效应的一个帧,若是MAC地址是广播地址的话,那么交换机就可以 将他从所有的端口转发出去,这里也就是2,3,还有连接的路由器,只有三号会响应,单播就是不是广播而是只发给1,

请添加图片描述
假如说要和五号主机进行通信,正常交换机是没有MAC地址的,只有这个主机和路由器的端口是有MAC地址的,路由器可以有多个MAC地址,IP地址,先来查看高速缓存自然是没有的,先用自己的子网掩码和目的IP地址也就是IP5向与,看看是否在自己的网段内,结果1号主机发现不在自己的网段内,然后查询默认网关的MAC地址,也就是他与外界沟通的路由器,下一跳(或者说下一个路)是可以跳到三个地方,2,3,和默认网关,然后如何得到MAC6的地址呢,依然是广播的形式获得默认网关IP6的MAC地址,
此时假设已经传输到了路由器这里,然后进行一个数据的解封装,然后最高到网络层,然后再从网络层开始封装,封装就是要加上这个源地址和目的地址,也就是IP1和IP5源地址和目的地址是不变的,当然目前是不考虑NAT那种请求的(若是NAT这个IP地址会发生改变的),这个物理地址是要发生变化了(因为到了一个新的网络内)它的源MAC和目的MAC都发生了改变,也就变长了这个的MAC7和下一个的MAC8,此时是一个点对点的通信也就是使用PPP协议,我们说过PPP协议中目的MAC是全1的,若不是点对点就是填MAC8,然后到了下一个路由器,然后依然是IP1和IP5这个是自始至终都是不变的,目的MAC地址就是MAC5,这个MAC5依然是使用ARP协议得来的,然后这个路由器也就知道下一跳要往哪走了,具体如何做到走5不走4的这就是链路层对数据帧进行转发的过程了,
请添加图片描述
局域网内部只能看懂MAC地址,有的主机没有找到就需要这个ARP协议,
也就是只要是发给本网络中的一个主机,那么只需要使用ARP获取这个主机的MAC地址,若是要发给另外一个网络,也就是不在同一个网络的主机或者路由器也就是需要通过默认网关,通过ARP找到这个默认网关的MAC地址,剩下的事交给这个网关就可以了,主机的用户对这个ARP的过程是不知情的,
请添加图片描述
6次ARP协议
结合了MAC地址和IP地址,但是主要是将其划分成网络层的协议,它是为IP协议来提供服务的,
请添加图片描述

请添加图片描述
主机在进行通信的时候,一定是需要一个IP地址,但是主机是如何获取一个IP地址的呢?这个默认网关就是这些主机它的数据得以进入外界的一个端口,通常都是一个路由器的接口的IP地址,只有通过这样一个默认网关才能与外界进行通信,手机到了一个教室中就会给它分配一个动态的IP地址,也就是通过DHCP服务器来进行分配的,主机走了这个分配的IP地址就会收回了,
请添加图片描述
之所以把这个应用层协议放到网络层来讲是因为这个协议为网络层的通信提供了一个基础,只有有了DHCP协议我们才有IP地址,才能延伸出许多的内容,
可以看出就是主机和服务器之间来回交互,这种方式就是客户服务器的方式,而且这四种方式都是使用广播的方式,
请添加图片描述

请添加图片描述
ICMP和IGMP是处于网络层和传输层之间的协议,ICMP协议起到一个桥梁的作用,也就是为了更好的转发IP数据报和提高交互成功的机会,
请添加图片描述
在实际的通信中总会有一些分组出错,在网络层的出来就是给它丢弃,并同时发送一个ICMP的差错报文,ICMP的报文是装在IP数据报的数据部分,所以ICMP是网络层的协议,
类型是为了指这个ICMP是那一类的,代码是为了区分某一个类型中具体的情况,这个检验和是为了检验整个ICMP报文的,(注意IP数据报的首部检验和是只检验首部,)

请添加图片描述

请添加图片描述
所有的ICMP差错报告报文,它们的数据字段的格式都是一样的,收到的需要进行差错报告的IP数据报首部以及前八个字节取出来,作为ICMP报文的数据字段,然后加上ICMP的前8个字节然后构成了一个完整的差错报告报文,然后加上IP数据报的首部就构成了一个完整的数据报,也就是ICMP差错报告报文是网络层传输单元的数据部分,
请添加图片描述
因为既然是封装成帧,自然是有可能还是出错的,
组播是一点到多点,广播是一点到所有结点,组播是有选择性的,
请添加图片描述
请添加图片描述
是有两个主机一个是源主机,一个是目的主机,源主机就会发送一连串的数据报,主要差别是生存时间是不一样的,然后就可以测算出从源点到终点之间的距离了,
请添加图片描述

请添加图片描述
支持Qos就可以满足实时的以及多媒体通信的需要,

请添加图片描述
也就相当于讲IPv4中的可变部分挪到了有效载荷当中,所以IPv6的基本首部就是固定的,这个扩展首部就是对这个数据报有什么要求,比如这个数据报要增加什么功能,也就是放在这个扩展首部来实现,因为有这个扩展首部原来IPv4中一些不必要的部分就可以先不用了,用的话只需要放在扩展首部中就可以了,IPv6灵活的首部格式就可以大大的加快分组处理的速度,
请添加图片描述其中的扩展首部是可有可无的,有效载荷长度指的是有效载荷这个的长度是有多大,IPv4标识长度有两个字段,一个叫做首部长度字段,一个叫总长度字段,首部长度字段指的是首部的大小,总长度是首部加上数据部分的大小,而这里的有效载荷长度指的是扩展首部加上数据的大小,基本首部中的下一个首部指向的是扩展首部1,扩展首部1中的下一个首部指向的是扩展首部2,最后一个指向的是数据部分,跳数限制也就相当于IPv4中的生存时间,若是为零,返回一个ICMP差错报告报文,
请添加图片描述
如果没有校验和字段,对于数据报的首部的检验时间就缩短了,因此就可以减少每一跳的时间,
若是IPv6数据报很大,必须要进行分片,只能在路由器这里将其丢弃,然后返回一个差错报告报文,
IPv4的协议字段是指其中的数据使用的是哪一个协议,也就是分组的数据部分应该是交给的哪一个传输层协议,
请添加图片描述
只要前面有连续的0我们就可以对其进行压缩,

请添加图片描述
多播地址只能作为目的地址,不能作为源地址,多播地址可以包括广播地址,任播是IPV6独有的一种地址,是一对多的一个通信,本质上也是一对一的,通常是选择一个离他最近的一个主机,
请添加图片描述
隧道技术是一种使用比较广泛的技术,也就是将IPv6作为IPv4的数据部分进行传输,,

请添加图片描述

请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

http://www.lryc.cn/news/168708.html

相关文章:

  • 时序分解 | MATLAB实现基于小波分解信号分解分量可视化
  • VMware虚拟化环境搭建
  • Jenkins :添加node权限获取凭据、执行命令
  • 如何实现不同MongoDB实例间的数据复制?
  • 微服务保护-隔离
  • 报错:appium AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
  • MFC - 一文带你从小白到项目应用(全套1)
  • (2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现
  • Docker 部署 Bitwarden RS 服务
  • python与mongodb交互-->pymongo
  • 【网络】计算机网络基础
  • (1)输入输出函数:cin和cout(2)数学函数:sqrt、pow、sin、cos、tan等
  • ArmSom-W3开发板之PCIE的开发指南(一)
  • Android 13.0 framework修改AlertDialog对话框的button样式
  • 如何使用ArcGIS Pro提取河网水系
  • python pytesseract 中文文字批量识别
  • Python 之plt.plot()的介绍以及使用
  • 自动化生成代码:MyBatis 的 Generator与MyBatis-Plus 的 AutoGenerator
  • 达梦数据库-DW-国产化--九五小庞
  • LeetCode 753. 破解保险箱【欧拉回路,DFS】困难
  • 深度学习概念(术语):Fine-tuning、Knowledge Distillation, etc
  • tcp_v4_connect函数的解析
  • go-channel
  • K8s操作命令
  • 【MySQL】 MySQL数据库基础
  • vscode 下载安装
  • springboot对接postgres
  • [python 刷题] 242 Valid Anagram
  • 算法通过村第七关-树(递归/二叉树遍历)青铜笔记|手撕递归
  • #循循渐进学51单片机#点亮你的LED#not.2