【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

这篇具有很好参考价值的文章主要介绍了【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
大家好,我是良辰丫,我们已经学习了网络原理基础版,初步认识了网络,还学习了网络编程,了解了网络通信的各种程序,接下来我们更深入的了解网络是如何工作的.这篇文章我们主要介绍协议,UDP和TCP的一些原理.💞💞

🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

1. IP协议

1.1 IP地址简介

  • IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
  • IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  • IP协议本质上就是一个32位的整数,我们通常会把32位的整数转换成点分十进制的表示.
    通过三个点,我们把整数分成四部分,把每个部分的二进制转换成十进制.下面的IPV4就是一个ip地址.

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

1.2 IP地址管理

32位的整数,最多能表示42亿多的地址,全世界有七十多亿人,而且每个人不止有一个上网设备,显然,42亿是远远不够用的.那么我们该怎么办呢?

1.2.1 动态分配IP地址

当设备上网的时候,我们才对设备进行分配IP地址,这样,就缓解了IP不够用的压力.当然这种方法并没有增加判断数量,没有从根本上解决问题.

1.2.2 NAT机制

我们把IP地址分成两大类.

  • 内网IP:10.* 172.16.-172.31. 192.168
  • 外网IP:除了内网的IP,剩余的都是外网IP.
  • 一个外网IP管理着许多内网IP,也就是内网设备如果要访问外网,就会给它分配一个外网IP,但是这个外网IP不是这个内网设备独享的,这个内网IP中的所有设备都共用这一个外网IP.
  • 外网IP是独一无二的,往往不能有相同的,但是内网IP,在不同的局域网内可以相同.也就是某个人知道了我的内网IP,不能直接进行访问,需要通过外网;一台笔记本电脑在不同的局域网,自己的IP往往也是不相同的,比如我在家里和我在学校,两个不同的地方,两者的IP是不相同的.

那么一个局域网的两台设备,拥有相同的外网IP,当访问同一个网站的时候,比如百度,百度怎么判定是哪台设备访问的呢?

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

上图为两个设备,在同一个局域网,他们两个的外网相同,当访问同一个服务器的时候,服务器该如何处理它们的请求呢?

  • 其路由器也是NAT设备,也有自己的ip地址,咱们设路由器地址为2.2.2.2
  • 路由器接收到设备的请求信息后,路由器会记录收到请求的路径,此时路由器会把设备的IP换成自己(路由器)的IP,然后向服务器发送设备的请求信息.
  • 服务器收到请求后,记录的是路由器的IP,因为内网是不能直接访问的,访问内网需要通过外网.服务器会把响应返回给路由器(服务器并不知道路由器要发给哪个内网设备,只知道自己发给哪一个内网了)
  • 路由器收到响应后,会按照自己记录的路径(通过记录设备的端口号)转发给路径上的设备.

1.2.3 IPV6协议

  • IPv4是传统的IP协议,也是用的最多的,使用4个字节,32位来表示IP地址.2^32
  • IPv6使用16个字节,128位来表示IP地址.2^128

IPv6可以彻底解决ip不够用的问题,为什么不广泛使用呢?

  • TPv4和IPv6并不兼容.
    一个IPv4路由器,要想支持NTA,软件上升级一下系统就行了(成本非常低)
    但是IPv4路由器要想支持IPv6,不光要升级软件,还得升级硬件(成本非常高)
  • 如果广泛使用IPv6,这就意味着要换新的路由器,这对于一些公司来说是巨额的钱,既然IPv4还能用,就暂时不用多花这些钱.

2. IP地址组成

2.1 简述IP地址组成

IP地址分为网络号和主机号.

  • 网络号:标识网络地址(网段),保证相同连接的两个网段具有不同的标识.(象征着在同一个局域网)
  • 主机号:标识主机地址.同一网段中,主机之间具有相同的网络号,但是必须需要不同的主机号.

一个路由器,有两个IP地址,分别在不同的局域网中,路由器的作用就是把这两个局域网连起来.

  • WAN口IP
  • LAN口IP

2.2 IP地址的分类

2.2.1 ABCDE类

这种分类在教材书上经常出现,但是现实生活中不经常用,我们在这里只需要简单理解即可,在这里我就不做具体的说明了.

2.2.2 子网掩码划分

  • 子网掩码是最常用的划分方式,下面255.255.255.0就是一个子网掩码.
  • 这表示ip地址的前24位都是网络号,剩余的为主机号.
  • 子网掩码,在二进制看来,其实就是网络号都为1,主机号都为1,子网掩码只是一个标识,可以与ip进行计算网络号,也可以进行判断该网络是如何划分的.

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

3. 一些特殊的IP

  • 局域网内没有主机号为0的内网.
  • 主机号全为1时是广播地址,向这个地址发送UDP数据报的时候,此时这个数据报就会转发给整个局域网中的所有主机(TCP不支持广播),其实手机投屏就相当于广播.
  • ip为127开口的称为环路ip,我们最常用的环路ip是127.0.0.1.

4. 网关(一般主机号为1)

网关就是一个网络连接到另一个网络的关口.

  • 网关也可以理解为路由器划分子网后,路由器在该子网中的ip地址.
  • 计算机本身不具有路由寻址功能,因此计算机要把所有的IP包发送到一个默认的中转地址进行转发,也就是默认网关.
  • 在我们日常生活中,我们经常会把具有网关功能的设备称为网关,比如路由器.

5. 路由选择

  • 从源地址到目的地址,有很多条路,但是要走哪条路呢,这就是路由选择要做的事情.
  • 路由器只能记录要去哪儿(附件的地点),不能记录终点.
  • 实际转发过程中是渐进式,相当于问路,到达一个新地点,然后询问一次.

IP数据报在进行转发的时候就是一个逐渐寻路问路的过程,每个路由器只能认识周围的情况,但也有可能询问的对象并不知道接下来要去哪(目的ip在路由表中),这个时候,路由表会给你指出一条默认的路径(路由器的下一跳表项),下一跳表项会把咱们的数据指引向更上一级(更高级)的路由器.

6. 认识数据链路层

说到数据链路层,我们就需要介绍一下以太网,以太网在数据链路层/物理层.
以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

  • 目的地址是mac地址,6个字节.6个字节比4个字节大了6万倍,ipv4不够用了,但是mac还是非常够的.目前可以做到每个设备的mac地址是唯一的,因此呢,mac地址也不可以动态分配,mac地址一般都是在网卡出厂的时候就固定了.
  • IP数据报中的1500表示一个以太网数据帧,载荷的最大长度就是1500.
  • 我们也可以把以太网理解成网线.
  • 不同的数据链路层协议,对应这不同的硬件物理设备,因此呢传输的数据上限往往也是不同的.
  • 之所以ip与mac存在两套地址,这是历史遗留问题,数据链路层和网络层是被各自独立发明出来的,因此呢,发明数据链路层的人不知道ip地址,发明ip地址的人不知道mac地址.
  • 把数据链路层的最大载荷长度称为MTU,如果载荷的数据长度超过MTU,就会在ip层进行分包,这样使得每个分出来的结果都能在MTU中.
  • ip的一个工作就是完成分包/组包的.
  • 一个大的数据报拆成多个小的数据报之后,这些小的数据报是相同的.
  • 片偏移表示每个小的数据报之间的先后顺序,用来组包.
  • 其中的标志,有一位不用,表示是否分包.

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

下面是一个各层到协议图,大家简单了解即可.

【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

7. 认识mac地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地
    址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址。
  • 广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。广播数据报的MAC地址为:FF:FF:FF:FF:FF:FF

mac地址转换表
交换机工作在数据链路层,交换机内部会记录并维护一张MAC地址转换表:

  • MAC地址转换表主要记录MAC地址与端口之间的映射。(端口指交换机后边的物理端口)
  • 主机连接到交换机,及主机发送数据的时候,交换机可以学习并记录该主机MAC地址与端口信息。
  • 交换机接收到数据报以后,在MAC地址转换表中,通过目的MAC查找到对应的端口,则目的主机为该端口相连接的主机。只需要将数据报转发到对应端口上.
  • mac地址转换表通过目的MAC能找到对应端口的情况;如果找不到,交换机设置数
    据报目的MAC为广播地址FF:FF:FF:FF:FF:FF,发送到其他所有端口,目的主机返回响应后,交换机
    再记录该主机MAC与端口的映射信息。

8. ip与mac的区别

  • IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址。
  • MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备
    使用的网络物理地址。

9. 关于ARP

首先,ARP是一个介于数据链路层和网络层之间的协议;ARP协议建立了IP地址与MAC地址的映射关系。在数据链路层,寻找下一跳设备MAC地址的过程,称为ARP寻址:

  • 主机和路由器中都保存了一张ARP缓存表:通过IP地址可以找到对应的MAC地址。
  • 根据下一跳设备的IP地址,在ARP缓存表中能找到对应的MAC地址,则可以设置目的MAC并发送数据报。
  • 如果找不到,则发送ARP广播数据报:目的MAC为广播地址,询问下一跳设备的MAC地址。

其实,ARP报文不是用来传输数据的,只是起到一个辅助作用.

  • 路由器在转发数据的时候,首先拿到的是一个IP地址(目的ip),通过这个IP地址决定接下来这个数据该怎么走(从哪个端口到哪个设备).
  • 因此接下来就得决定,封装的以太网数据帧,目的是什么.
    . 这样就需要根据ARP协议,建立起ip-mac这样的映射关系(相当于哈希表这样的键值结构,但是这个表不一定在内存中,也可能直接存储在硬盘上)
  • 当设备启动的时候,就会向局域网广播ARP报文,每个设备收到之后,都会给一个应答,应答的信息就包含了自己的ip和目的mac.
  • 发起广播的那一方就会根据这些回应,建立起这个映射表了.

10. 网络数据传输流程

使用集线器网络互联的情况下,发送端主机发送数据包时,需要先从上到下封装数据报。但封装时,目的MAC可能并不知道,需要先进行ARP寻址:

  • 发送端在本机ARP缓存表中,根据目的IP查找对应的MAC地址
  • 如果找到,则可以在数据链路层以太网帧头中,设置目的MAC并发送数据包
  • 如果没有找到,需要先发送ARP广播请求,让接收端,即目的主机告诉自己,目的MAC是多少
  • 发送端更新本机ARP缓存表:保存目的IP与目的MAC的映射.
  • 有了目的MAC,就可以按照找到mac地址的那一步进行操作.

11. 应用层的重点协议

11.1 DNS

  • DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。
  • TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。

域名是一个字符串,如 www.baidu.com , hr.nowcoder.com,域名系统为一个树形结构的系统,包含多个根节点。

  • 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。
  • 子节点主要由各级DNS服务器,或DNS缓存构成。

DNS域名服务器,即提供域名转换为IP地址的服务器。
浏览器、主机系统、路由器中都保存有DNS缓存。
Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,Mac/Linux系统的DNS缓存在 /etc/hosts 文件中

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址:

  • 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主机。
  • 域名解析使用DNS协议来传输数据。DNS协议是应用层协议,基于传输层UDP或TCP协议来实现。

梳理一下DNS系统

  • 最早的时候,DNS只是一个普通的文件,称为hosts文件,就在我们的系统盘中
  • 每一个域名解析系统的每一行都描述了ip和域名的关系,后序在其它浏览器中使用这个域名,就会自动转换成IP地址.
  • 现在,hosts这个文件已经不再使用了(虽然还能用),因为改来改去太麻烦了,于是乎,专门成立了一个机构,负责维护这里的域名和ip的对应关系,比如申请一个域名,只需要到这个机构报备.
  • 这个机构维护一组服务器,把hosts文件存在这个服务器中,这就是域名解析服务器(根域名解析服务器),如果你的电脑想要进行域名访问,只需要访问人家的服务器就可以了.

全世界那么多设备上网,如果都去访问这个域名解析服务器,域名解析服务器不会压力很大嘛?

  • 全世界更地方的国家,地区,城市都有各自的网络运营商,这些网络运营商就会就近架设域名解析镜像服务器,咱们平时上网的时候就是访问的镜像服务器.
  • 域名解析镜像服务器挂了,只是该地区的域名解析服务器挂了,对别的地方没有影响.
  • 网络刚发展的时候,可能就会遇到QQ可以登录,但是网页打不开了,因为QQ是直接写死的IP地址进行访问QQ的服务器的,不涉及域名解析.
  • 设置中有手动设置DNS服务器地址,可以自动获取,也可以手动设置.
  • 当我们的主机查询了一次DNS后,主机就会把这个查询的结果缓存一定的时间(浏览器进行缓存),下次我们再访问同一个域名的时候,就会省略DNS的过程了,DNS域名和ip的对应关系是很少变化的.

11.2 NAT

上述我们已经讨论了NAT机制,接下来我们再对概念进行一定的补充.

  • NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能;
    NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术
  • 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;
  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
    NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;在NAT路由器内部,有一张自动生成的,用于地址转换的表;
    当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAT的缺点文章来源地址https://www.toymoban.com/news/detail-456649.html

  • 无法从NAT外部向内部服务器建立连接;
  • 转换表的生成和销毁都需要额外开销;
  • 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;

到了这里,关于【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包