计算机网络 --- 网络层重要协议

动态IP分配协议 --- DHCP协议

主机如何获得IP地址:

  • 静态配置

包括IP地址,子网掩码,默认网关

  • 动态配置

由DHCP服务器来分配

DHCP协议:

动态主机配置协议DHCP是应用层协议,使用客户、服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。

DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址,子网掩码,默认网关,DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。

DHCP过程

  1. 主机广播DHCP发现报文  试图找到网络中的服务器,服务器获得一个IP地址
  2. DHCP服务器广播DHCP提供报文 服务器拟分配给主机一个IP地址及相关配置,先到先得
  3. 主机广播DHCP请求报文 主机向服务器请求提供该IP地址
  4. DHCP服务器广播DHCP确认报文 正式将IP地址分配给主机

网际控制报文协议 --- ICMP协议

ICMP协议支持主机或路由器:

当分组传送错误后,网络层直接丢弃分组,并发送特定ICMP差错报文。也就是说IP数据报的数据部分就是ICMP报文

ICMP报文类型

ICMP差错报文

  • 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
  • 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(现在基本不会用)
  • 时间超过:当路由器收到生存时间TTL = 0数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文(应用:Traceroute,跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文)
  • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  • 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

ICMP差错报告报文的数据字段:

所有的差错报告报文的数据字段的格式都是一样的,把收到的需要进行差错报告的IP数据报首部以及前八个字节取出来作为ICMP报文的数据字段,再加上ICMP差错报告报文的前八个字节,接下来再加上IP数据报的首部,就构成了一个完整的数据报。

不应发送ICMP差错报文的情况:

  • 对ICMP差错报告报文不再发送ICMP差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  • 对具有组播(区分与广播:广播是一点发送给所有结点,而组播是一点发送给多个结点,而不是所有结点)地址的数据报都不发送ICMP差错报告报文。
  • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

ICMP询问报文

  • 回送请求和回答报文  主机或路由器向特定目的地址发出的询问,受到此报文的主机必须给源主机或路由器回送回答报文。测试目的站是否可达以及了解其相关状态。(应用:PING,测试两个主机之间的连通性,使用了ICMP回送请求和回答报文)
  • 时间戳请求和回答报文  请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
  • 掩码地址请求和回答报文(不再使用)
  • 路由器询问和通告报文(不再使用)

IP MAC映射获取 --- ARP协议

传输层的报文段到了网络层之后要加上源主机和目的主机的IP地址(源主机IP地址IP1和目的主机IP地址IP3).到了数据链路层之后,还要加上MAC地址(源MAC地址MAC1和目的MAC地址MAC3),MAC3地址怎么填入呢

每个主机都有一个ARP高速缓存(IP地址与MAC地址的映射,为同一个网络内的IP与MAC映射),那么每个主机中的ARP是怎么来的呢,首先源主机广播ARP请求分组,如下:

包括自己的IP地址以及要查询的IP地址,自己的MAC地MAC1,和想要查询的MAC置为FF-FF-FF-FF-FF-FF,只有要查询的主机才会发送响应分组,发送如下:

这样源主机就知道了目的主机的MAC地址了。

但是以上情况是在源主机和目的主机在同一个网络内的情况,因为ARP中存储的只是自己所属的网络内的IP地址和MAC地址的映射,如果两个主机不在同一个网络内呢,首先源主机把要查询MAC地址的IP地址与自己的子网掩码相与,看看两个IP地址是否在同一个网络内,当发现不在一个网络:

  1. 源主机->源主机路由器:用以上方法先查询到默认网关(也就是相连的路由器端口,路由器的每个端口的MAC地址都不同)的MAC地址。路由器之间通信,源IP地址和目的IP地址是不变的(就是不会换成路由器的IP)。
  2. 源主机路由器->目的主机路由器:源主机发送数据,目的MAC就会填自己的网关(相连的路由器端口)的MAC地址,然后数据在源主机路由器和目的主机路由器传送时,IP地址还是源主机和目的主机的IP地址,但是源MAC地址会换成源主机所属的路由器与目的主机所属的路由器相连的网关(源主机所属的路由器)的MAC地址,目的MAC地址为目的主机所属路由器与源主机路由器相连的网关的MAC地址:
  3. 目的主机路由器->目的主机:目的主机路由器会找到目的主机MAC地址(用上述方法)

 总结:

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址

ARP协议:完成主机或路由器IP地址到MAC地址的映射(解决下一跳走哪的问题)

ARP协议使用过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP高速缓存(10~20min更新一次)

ARP协议4种典型情况:

  • 主机A发送给本网络上的主机B:用ARP找到主机B的硬件地址
  • 主机A发给另一网络的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址
  • 路由器发给本网络的主机A:用ARP找到主机A的硬件
  • 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。

IP数据报组播 --- IGMP协议+组播路由选择协议

IP数据报的三种传输方式

  • 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
  • 广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
  • 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被发送的数据到达距离用户端尽可能近的结点后菜开始复制和分发,是一种点对多点传输方式。

组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器 --- 运行组播协议的路由器的支持)。

IP组播地址

IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。

组播地址范围为224.0.0.0 ~ 239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。

需要注意:

  • 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
  • 对组播数据报不产生ICMP差错报文。
  • 并非所有D类地址都可以作为组播地址。

硬件组播

在局域网范围内进行硬件组播。同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。

收到多播数据报的主机,还要再IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

IGMP协议与组播路由选择协议

网际组管理协议IGMP

IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。

IGMP工作的两个阶段

  1. 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要成为该组的成员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
  2. 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。(组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员)

组播路由选择协议

组播路由选择协议目的是找出以源主机为根节点的组播转发树。

构造树可以避免在路由器之间兜圈子。

对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

组播路由选择协议常使用的三种算法:

  • 基于链路状态的路由选择
  • 基于距离-向量的路由选择
  • 协议无关的组播(稀疏/密集)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 并发_Java并发防范机制

1.背景并发程序开发不可避免地要涉及多线程、多线程协作、数据共享和线程安全等问题。在多线程并发场景下,由于采用数据共享的线程通信模型可能导致多个线程之间并发时相互干扰,影响到程序的正常逻辑、无法保证正常的结果。为了保证程序在并发环境的正确…

水晶底是什么材质_都是红酒杯,水晶的和玻璃的有什么区别?

除了看酒杯的形状外,材质也是我们选酒杯不可忽视的一环。酒杯材质可简单分为玻璃酒杯和水晶酒杯。那么,水晶酒杯和玻璃酒杯到底有何不同?普通玻璃杯二氧化硅是主要成分,价格低廉,容易清洗普通玻璃酒杯材质较厚&#xf…

计算机网络 --- 网络层

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报。(分组是把数据报进行切割形成) 网络层主要功能 路由选择与分组转发异构网络互联拥塞控制 如果所有结点都来不及接收分组&#xff0…

mac 串口调试工具_MACamp;串口调试

上一篇文章讲了Mac下进行stm32开发wlzz:Mac下stm32开发(clion)​zhuanlan.zhihu.com不可避免的遇到了串口调试的问题,发现mac下进行串口调试还真的不太容易。下了不少网上的软件,发现都不是特别好用,有很多已经不支持现在的macos系统版本了。于是在CLion下搜索了一下…

golang atomic load 性能_设计模式之Golang单例模式

今天给大家讲下什么是单例模式,以及在Go语言中如何用正确的姿势实现它。其实单例模式是一种在平时开发中经常用到的软件设计模式。在设计模式结构中,其核心是只包含一个被称为单例的特殊类。通过单例模式可以确保系统中一个类只有一个实例,且…

计算机网络 --- 传输层

传输层概述 传输层是只有主机才有的层次(路由器没有),为应用层提供通信服务,使用网络层的服务 传输层的功能 传输层提供进程与进程之间的逻辑通信(网络层提供主机之间的逻辑通信)。复用和分用传输层对收…

手机相机里面的m_荣耀V30 PRO详细评测:Matrix Camera相机矩阵开启5G视频时代

【IT168 评测】随着手机摄像头的配置越来越高,手机上已经能实现不俗的拍照效果,甚至超越了数码相机(DC)成为了人们最常用的拍照工具。进入今年的下半年,随着5G的商用,手机厂商对于手机的摄像头功能优化已经不局限于拍照&#xff0…

计算机网络 --- 传输层UDP协议

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。 UDP的主要特点 UDP是无连接的,减少开销和发送数据之前的时延。UDP使用最大努力交付,即不保证可靠交付。UDP是面向报文的,适合一次性传输少量数据的网络应用。…

怎么调整字段长短_【芝士蛋糕怎么总烤不熟呢?】

烘焙群一位同学发来图片问,不是说看蛋糕有没有烤熟,要用牙签检测吗?可我这个芝士蛋糕,怎么扎都会带出面糊,烤不熟怎么办?看到这个被扎成刺猬的舒芙蕾芝士,原谅Windy 不厚道的笑了。也是Windy 疏…

计算机网络 --- 传输层TCP协议

TCP协议的特点 TCP是面向连接(虚连接)的传输层协议。每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重。TCP提供全双工通信。…

java 委托_java 能不能自己写一个类叫 java.lang.System/String 正确答案

来自:一汪清水 | 责编:乐乐链接:blog.csdn.net/tang9140/article/details/42738433正文 最近学习了下java类加载相关的知识。然后看到网上有一道面试题是能不能自己写个类叫java.lang.System?网上提供的答案:通常不可…

中奖人js滚动效果_js使用transition效果实现无缝滚动

作者:李大雷出自:SegmentFault 思否原文:segmentfault.com/a/1190000023945464前言无缝轮播一直是面试的热门题目,而大部分答案都是复制第一张到最后。诚然,这种方法是非常标准,那么有没有另类一点的方法呢…

计算机网络 --- 应用层

应用层概述 应用层对应用程序的通信提供服务。 应用层协议定义: 应用进程交换的报文类型,请求还是响应各种报文类型的语法,如报文中的各个字段及其详细描述字段的语义,即包含在字段中的信息的含义进程何时,如何发送…

opencv机器学习线性回归_Python机器学习之?线性回归入门(二)

线性回归原理介绍文章目录机器学习分类线性回归原理线性回归定义线性回归背后矩阵运算机器学习分类机器学习的主要任务便是聚焦于两个问题:分类和回归分类相信大家都不会陌生,生活中会见到很多的应用,比如垃圾邮件识别、信用卡发放等等&#…

php 邮件发送是html 没样式_使用python发送邮件

发送邮件这个功能非常实用,比如你写了一个爬虫,可以通过邮件来接收程序异常或者任务完成的通知,再比如你搭了一个网站,别人只需留下他的邮箱,你就可以自动给他发送邮件。总之我觉得邮件通知非常适合那些处理批量、大量…

easypoi设置黑色边框_迷人的G-SHOCK MTG-B1000XBD,碳纤维与黑色金属的魅力

美国最大的奢侈腕表盛会,第五届纽约WatchTime于2019年10月25日至26日在曼哈顿中城的Gotham Hall举行,共有37个参展品牌展出了最新的腕表款式,卡西欧(Casio)在G-SHOCK高级系列MT-G中展示了最新作品“ MTG-B1000XBD”和“ MTG-B1000…

c语言 单词变复数_【热点】浅谈 :怎样学好C语言?

是新朋友吗?记得先点蓝字关注我哦~本文共 1900 字,预计阅读时间: 7 分钟。最近有好多朋友和我抱怨说C语言真的太难学了,你有没有什么好的意见?嗯,的确如此,我上个学期学C语言的时候也…

安川机器人报错代码_今日 IPO|对标库卡机器人的先惠技术上市 近八成收入靠上汽...

面对全球金融体系的重构,与中国资本市场的变革。「晚点」希望从小处入手,以每日 IPO 公司的快速报道,记录这个时代的变化。通过「晚点早知道」,我们希望可以让读者只需要花几分钟时间,就可以了解到当天上市公司里&…

htmlplay前端编辑器下载_2019年最好用的代码编辑器推荐

对于经常需要编写代码的程序员来说,拥有一款自己的编辑器是非常重要的事情,一款好用的代码编辑器往往能够让代码的编辑更加流畅,今天我们为大家带来最流行的代码编辑器Sublime TextSublime Text是一款快速轻量可定制的代码编辑器,…