网络原理IP协议/以太网

这篇具有很好参考价值的文章主要介绍了网络原理IP协议/以太网。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络原理IP协议/以太网

 大~~~

目录

1.IP协议

1.1地址管理

1.1.1普通地址

1.1.2特殊地址

1.1.3NAT机制

1.2路由选择

1.以太网协议

2.DNS协议


一、网络层

1.IP协议

①IP协议的报头格式以及各部分说明:

网络原理IP协议/以太网

②对以上其它重要部分再次进行说明:

1.16位总长度:

16位,64k,也就是说单个IP数据报最大程度不能够超过64k。但是在实际中,我们不免会遇到超过64k的数据报,那么这个时候该怎么办呢?

我们就只能使用IP协议自身实现的分包,组包的操作。 而下面介绍的这三个部分,就是用来完成分包,组包操作的核心

2.16位标识,3位标志,13位片偏移:

a.各部分讲解:网络原理IP协议/以太网

b.如何实现分包操作?

注意!!!在分包的过程中,每个分包本身也不能超过64k.

网络原理IP协议/以太网 这个时候就会有人问,那为什么TCP报头只有一个?

这里给大家举个例子:

我有一个作业本,某天上课的时候,老师要求用纸质完成,周围同学没有,纷纷向我借,我就把撕下一张张作业纸给他们,我就相当于把这个作业本分成了很多份,但是,有作业本封面的人却只有我一个。而所有部分合起来才是一个完整的本子。 

3.8位生存时间(TTL):

指一个IP数据报在网络中所能存活的最长时间,这里的单位不是s或者ms,而是转发次数。

对于一个IP数据报而言,当它开始发送的时候,会有一个初始的TTL(常见取值128,64)。当它每经过一个路由器的时候,这个TTL就会自动减1,而当它减到0了就说明永远到不了了,这个时候,收到这个包的路由器就会把它给丢弃(因为在网络中硬件资源是有限的,不可能无休止的转发)

1.1地址管理

IP地址格式:

对于IPv4而言,一个IP地址本质上是一个32位的整数,我们常会用到“点分10进制”的方式来表示这个IP地址。三个点把32位整数分为4个部分,每个部分一个字节,每部分的取值范围是0-255(1111 1111)

1.1.1普通地址

IP地址的组成:

IP地址是由网络号+主机号组成的

(网络号:是用来描述当前网段的信息,也就是当前局域网的标识。主机号:是用来区分局域网内部的主机)

下面用我自己电脑上的IP地址来做示范:

网络原理IP协议/以太网

这个时候,就会有人发生疑问了,到底网络号是多少个bit位?前3个吗?是固定的吗?

答案实则是不然的。这个网络号的位数是根据子网掩码来决定的。

那么子网掩码是怎么来决定的呢?

子网掩码的左侧都是1,右侧都是0,(不会0,1混着排列),左边的这些1就表示网络号,剩下0就是表示哪些位是主机号。(仍然用自己电脑上的网络掩码来举)

网络原理IP协议/以太网

1.1.2特殊地址

①网络号:

如果IP的主机号全为0,该IP就表示一个网络号(局域网中的一个正常设备,主机号不能为0)

②广播地址:

如果IP的主机号全为1,该IP就是一个"广播地址",往这个IP发送的消息,整个局域网都可以收到。

③环回IP:

如果IP地址是以127开头,就表示这是一个"环回IP",即表示主机自己

如果IP地址是10开头,或者192.168或者127.16-127.31开头的,表示该IP是一个局域网内部的IP(内网IP),剩下的IP被称为是外网IP(直接在广域网上使用的)。

注意:!!!

外网IP一定是唯一的,每个外网IP都会对应一个唯一的设备,而内网IP只在当前局域网内部是唯一的,但是在不同的局域网内可以有内网相同的IP设备。

这个时候有人又会有疑问了,对于我们的认知来讲不是每一个IP地址和设备都是一一对应的关系,而现在确实多个设备对应一个IP这种多对一的关系,那么为什么会这样呢?

这个时候,我们就用1.1.3来解决这个问题。

1.1.3NAT机制

当前使用的版本是IPv4,已知是一个32位的整数,而IPv4所能表示的最大范围约在42亿九千万。而当前互联网的趋势可能家家户户平均下来都有多台,显然这样的局面是远远不够的,因此我们采用三个方法,试图解决这个问题。

①动态分配IP地址

所谓动态分配,是指让每个设备连网时才有IP,不连网时就没有IP,也就是,这一个设备可以有多个用户进行使用,很显然,这不能从根本上解决问题

②NAT机制

指的是让多个设备共用一个IP(这里的IP是指外网IP),我们都知道网络分为了局域网(内网)和广域网(外网),我们就要求外网IP必须表示是唯一的设备,而同时,内网的若干设备,可以共用一个外网IP,这个时候IP地址的压力就会缓解很多啦。

而我们仍然需要知道:

对于NAT机制来说,它将网络分为了外网,内网两个部分,这个时候就表明,对于一个外网IP来说,可以在互联网任何地方进行访问,并且也可以访问到。对于一个内网IP来说,只能在其当前的局域网内进行访问,且任何一个内网IP在其自身的局域网中是唯一的,但是对于不同的局域网而言,他们可能会有相同的内网IP,这是很正常的。

关于NAT机制,还有值得注意的一点,当多个设备使用同一个IP地址,有多台设备访问外网的同一服务器,服务器收到的IP地址是一样的,那么我们如何准确地对不同设备回复响应呢?

网络原理IP协议/以太网

但是这个时候又会面临一个问题,要是源端口号相同咋办?(因为源端口号是系统随机分配的,虽然相同的可能性很小,但不排除)

这个时候NAT不光会把内网IP调整成外网IP,同时也会对端口进行内部的调整。(详细见图) 

网络原理IP协议/以太网 但是,即使这样可以很大程度上解决问题,但是仍然不能从根本上解决问题。

下面的IPv6就是让我们从根本上来解决问题。

③IPv6

为什么说IPv6从根本上解决了问题?

这是因为IPv6报头用了一个更长的字段来解决问题。

:16个字节,128位,这和IPv4的4个字节,比起32位是呈幂指数的增长,据说可以为地球上的每一粒沙子都可以分配一个IP地址。都这样了,难道还怕不够用吗?

但是为什么IPv6没有被全面普及?这是因为要同时更新硬件设备,成本太高所导致的问题。

1.2路由选择

①什么是路由选择?

路由选择其实就是规划路径,数据想要从一个设备到另一个设备,需要找出一条通道,来完成,使得它来完成整个传输的过程。

②具体过程:

例如:IP数据报中的目的地址,就表示了这个包究竟要发到哪里去。

对于这个目的地址来说,如果路由器直接认识,那么就会告诉你该怎么走。就算该路由器不认识,它也会告诉你先关路径(大致位置),到了新的位置后,你又可以继续问新的路由器,而要是问了新的路由器后有了多种选择,那么,我们就可以选择一条更为合适的路径。

举个通俗的例子:

当你在问别人路的时候,别人不一定准确知道,但是极大可能,他知道大致方位,他就会告诉你到他熟悉的地方,到了那之后,你又可以问新的人,直到到达目的地为止。

③什么叫路由器认识这个IP?

这是路由器在内部中维护了一个路由信息表(一种数据结构),表里面记录一些网段信息以及每个网络号对应的网络接口(网络接口就直接对应到路由器里面具体的端口)。那么路由器时如何形成路由表的?

当路由器接入网络后,就会和相邻的设备朋友“认识认识”,在认识的时候就构造了这个信息表,当然也可以直接手动进行导入。

二、数据链路层

对于数据链路层而言,最主要的协议,莫属以太网了,下面就让我们来认识一下以太网协议。

1.以太网协议

①什么是以太网协议?

以太网协议不仅仅规定了数据链路层的内容,也规定了物理层的内容。

②认识以太网数据帧:

网络原理IP协议/以太网

 1.mac地址:

很多人在这里会感到困惑,明明已经有了IP地址,那么为什么还要有mac地址呢?

这是因为,在很久很久以前,网络层协议和数据链层协议都是独立研发出来的。因此,你是否会觉得当今来看的话有些重复,然而在如今,当然又有新的见解了咯。

如今,IP地址是用来表示一次传输过程中的起点和终点。

而mac地址是用来表示一次传输过程中的两个相邻节点的地址,也就是说,一个以太网数据帧每次转发的时候,它的源mac地址和目的mac地址均会发生改变。

举个通俗的例子:

我从成都到北京,源IP地址为成都,目的IP地址为北京。

而我先从成都到河北,再从河北到北京,就涉及到两组mac地址(源mac地址:成都,目的mac地址:河北 => 源mac地址:河北,目的mac地址:北京)

2.帧尾:

帧尾的功能同UDP中一致起的是校验的作用,它是基于CRC算法的校验和。

3.MTU:(46~1500表示数据的加载范围)

MTU表示一个以太网数据帧能够承载的数据范围。

而这个范围取决于硬件设备,而以太网也是和硬件设备密切相关的,而不同的数据链路层设备对应的协议可能不同,MTU也就不同。那么要是数据报超过了MTU怎么办?这就会用到我们前面讲的IP分包,IP分包的并不是给IP报头64k准备的,更多的是用于此处适应数据链路层的MTU。

MTU与TCP协议的联系:

MSS:是TCP在IP不分层的情况下,所能搭载的最大载荷。与此同时,MTU也取决于TCP和IP的报头长度(是可以变长的)。

而MTU和MSS的联系:

网络原理IP协议/以太网

4.ARP:(ARP报文不是用来传输数据的,而只是起到简单的辅助作用)

像路由器这样的设备在转发数据的时候,首先会拿到一个目的IP,通过这个目的IP来决定接下来的路怎么去走。而我们前面也讲到了每相邻路径实际是由mac地址来决定的,而目的mac是啥?这就要根据ARP协议,建立起IP=>mac这样的映射关系。

当设备启动的时候,就会向局域网中广播ARP报文,然后每个报文收到后都会给出一个应答,这个应答中就包含了自己的IP和mac地址,然后发起广播的一方就可以根据这些回应建立起这样的映射表了。

这里建立起这样的映射表,通俗一点来讲,还是用老例子:

成都到北京。这就建立起了成都=>河北=>北京这样的映射路线表了

2.DNS协议

①什么是DNS协议?

这是一个域名解析协议,位于应用层

②为什么会有这个协议?

这是因为就算将IP地址点份十进制的形式,但是对于我们来记忆来说还是有一定难度。为了解决这个问题,就决定使用了一串英文字母来表示这个IP地址,而这串英文字母就是域名,类似于www.baidu.com这就是一个域名,而且域名和IP地址是一一对应的关系。
 

③DNS的前身:

DNS系统刚开始的时候只是一个普通的文件:hosts文件。

网络原理IP协议/以太网

网络原理IP协议/以太网

 ④DNS在全球是如何进行推广使用的?

如今host文件也不再使用了,因为全世界的域名太多了,任凭这样改的话,是非常低效的,因此就成立了一个机构专门负责维护这里的域名和IP地址的对应关系,假如你想申请一个域名的话,就可以去这个机构报备一下就可以。

这个机构维护一组服务器就会把hosts文件存到这个服务器里面(域名解析服务器),要是自己想对其域名进行解析的话,就访问一下这个总的服务器就OK。

这个时候就会有人说,那这个多麻烦,每个设备上网要是都去访问这个解析服务器,那这个服务器的压力也太大了吧。

因此就把这个总的域名解析服务器设为根域名解析服务器,另外在每个国家每个地区都有各自的网络运行商,这些运营商就会就近架设域名解析镜像服务器(定时回合根域名解析服务器进行同步),像我们平时上网的话就会访问这些就近的镜像服务器。

⑤DNS遇到的问题:

不知道大家在上网的时候有没有遇到这样的问题:QQ能登录上,但是打不开浏览器。这就是因为就近的域名解析镜像服务器挂了(QQ使用的是自己写死的IP来访问QQ服务器,是不需要进行域名解析的)。

既然遇到了问题,那么我们该如何解决?

手动更改自己的域名解析服务器:打开我的电脑网络设置找到更改适配器选项,点击以太网属性,选择TCP/IP将自动获取域名解析服务器改成手动获取就可以。需要获取的域名解析服务器可以在网上进行搜索。

网络原理IP协议/以太网

 每当我们查询了DNS后,主机会对其进行缓存一段时间,当我们下次访问同一域名,就可以省略查询DNS的过程了,对于DNS域名和IP的对应关系是很少会改变的。

网络部分的内容到这里就结束啦,

之后紧着博主会跟前端三剑客(HTML,CSS,JS)相关内容哦 ,

大家可以来看看网络原理IP协议/以太网文章来源地址https://www.toymoban.com/news/detail-402210.html

到了这里,关于网络原理IP协议/以太网的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《网络编程》 传输层及其以下的机制由内

    2024年01月16日
    浏览(69)
  • Android 11.0 以太网设置默认静态ip地址

    在11.0的系统rom开发过程中,在进行以太网产品开发的过程中,有功能要求设置默认静态ip地址的功能,不使用动态ip, 方便ip地址管理所以就需要熟悉以太网的ip设置流程,然后设置对应的ip地址就可以了

    2024年02月16日
    浏览(59)
  • 【JavaEE】计网之IP协议+以太网+DNS

    博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: JavaEE初阶 网络层重点协议——IP协议 ,在复杂的网络环境中确定一个合适的路径~ 本篇文章我们来讲解什么是 IP协议及以太网,在IP协议中,有 地址管理 和 路由选择 两个方式,IP协议是位于 OSI模型 中第三层(网络层

    2024年02月04日
    浏览(55)
  • 【车载以太网测试从入门到精通】——以太网TCP/IP协议自动化测试(含CAPL源码)

    【车载以太网测试从入门到精通】系列文章目录汇总 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇

    2024年02月05日
    浏览(163)
  • 以太网协议介绍(ARP、UDP、ICMP、IP)

    请求: 应答: ARP协议: 以太网ARP数据包格式: FCS:校验 在以太网帧头部分也包含了目的地址的mac和ip地址。 以太网通信是通过包的形式进行传输的,不像串口协议一样单位是byte。 帧间隙: TCP和UDP的区别 ​ osi 7层模型:实现通信的任务 对于fpga开发,只需要关注传输层,

    2024年02月03日
    浏览(54)
  • linux ubuntu20.04固定ip设置方法(静态ip)(没有以太网网络设置界面)(虚拟机的话需要设置为桥接模式)(ubuntu虚拟机固定ip地址)(VMware虚拟机)

    新买的浪潮服务器,想设置固定ip,不知咋滴,界面上没有以太网网络设置的地方,试了很多方法都不行 后来发现直接修改 /etc/netplan/ 下的配置文件,能修改成功,现把方法记录下来 首先查看服务器上以太网口,一般插上网线后,总有一个不一样的 我用 ifconfig 查看,这个网

    2024年02月03日
    浏览(77)
  • TwinCAT3以太网TCP/IP自由协议通讯

    目录 一、TwinCAT3以太网TCP/IP客户端创建 1、系统连接示意图 1、程序创建 (1)工程创建和授权添加  (2)库文件添加  (3)变量创建 (4)程序 2、测试 (1)网络调试助手创建服务端监听 (2)PLC端的Client连接服务端  (3)PLC端给服务端发送数据  (4)服务端给PLC发送数据 二、

    2024年02月15日
    浏览(50)
  • 网络以太网之(2)VLAN协议

    Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客 参考文章: 《TCP/IP详解卷一》 1. VLAN虚拟局域网 1.1 VLAN协议格式

    2024年04月16日
    浏览(57)
  • linux ubuntu20.04固定ip设置方法(静态ip)(没有以太网网络设置界面)(虚拟机需要设置为桥接模式)(ubuntu虚拟机设置固定ip地址)(VMware虚拟机)netplan修改ip

    新买的浪潮服务器,想设置固定ip,不知咋滴,界面上没有以太网网络设置的地方,试了很多方法都不行 后来发现直接修改 /etc/netplan/ 下的配置文件,能修改成功,现把方法记录下来 首先查看服务器上以太网口,一般插上网线后,总有一个不一样的 我用 ifconfig 查看,这个网

    2024年02月12日
    浏览(50)
  • 万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

    参考:https://sunyunqiang.com/blog/ipv4_protocol_rfc791/这篇文章内容很丰富,建议看看 Version : 长度为 4 比特, 表征 IP 协议的版本号, 对 IPv4 来说该字段的值为 4 IHL : 长度为 4 比特, IHL 是 Internet Header Length 的缩写, 以 4 字节为单位指示 IP Header 的长度, 对于 IPv4 来说, Header 的最小长度为

    2024年04月28日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包