首页 > 其他分享 >网络原理 IP协议与以太网协议

网络原理 IP协议与以太网协议

时间:2024-09-20 09:24:29浏览次数:13  
标签:协议 IP MAC 地址 IP地址 数据 以太网

 博主主页: 码农派大星.

    数据结构专栏:Java数据结构

 数据库专栏:MySQL数据库

JavaEE专栏:JavaEE

关注博主带你了解更多数据结构知识

目录

1.网络层   IP协议

1.IP协议格式

2.地址管理

2.1 IP地址

2.2 解决IP地址不够用的问题

2.3NAT网络地址转换

2.4网段划分

 3.路由选择

2.数据链路层 以太网协议

1 认识以太⽹

2.认识MAC地址

3.ARP协议 

4.以太⽹帧格式

3.应⽤层协议DNS(DomainNameSystem)


1.网络层   IP协议

1.地址管理 => IP地址

2.路由管理 => 数据报传输路径进行规划

1.IP协议格式

4位版本号:指定IP协议的版本,对于IPv4来说,就是4,IPv6,就是6.

4位头部⻓度(header length):IP头部的⻓度是多少个32bit,也就是length*4的字节数.4bit表⽰最 ⼤的数字是15,因此IP头部最⼤⻓度是60字节.

8位服务类型(TypeOfService):3位优先权字段(已经弃⽤),4位TOS字段,和1位保留字段(必须置为 0).4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本.这四者相互冲突,只能选择⼀个. 对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要.

16位总⻓度(total length):IP数据报整体占多少个字节.

IP协议内置了拆包组包机制,单个IP数据报确实没法超过64KB,但不代表IP协议不能传输超过64KB的数据,IP协议会自动把大的数据报,拆成多个IP数据报携带传输,在接收方再进行拼装.

16位标识(id) : 同一个载荷的数据,被分成多份,交给多个IP数据报来携带,多个IP数据报,16标识(id)是相同的数值

3位标志位 : 只有2个有效,其中一个,表示这个包是否需要组包(是否拆包的一部分),另一个表示当前包是否组包的最后一个单位

13位片偏移: 决定组包的时候数据报的位置

8位⽣存时间(TimeToLive,TTL): 一个数据报在网络中最多存活多长时间. 

8位协议 : IP数据报中,携带的载荷,是哪种传输层协议的数据报

16位头部校验和: 验证数据在传输中是否出错(只是针对首部,IP报头),载荷部分TCP/UDP都有自己的校验和了

32位源地址和32位⽬标地址:表⽰发送端和接收端

IP地址是32位的整数,是一个很大的数字,不方便理解和阅读,于是就通过点分十进制把32位(4字节)通过3个圆点分割开,每一个部分是一个字节(范围是0-255)

2.地址管理

2.1 IP地址

IP地址是一个32位的整数,即42亿9千万。地址描述的是一台联网设备在网络上所占的位置,理论上来说,是不应该重复的,但现在移动互联网的时代看来是不够用的。

2.2 解决IP地址不够用的问题

1.动态分配IP地址

一个设备上网就分配IP,不上网就不分配IP

2.NAT网络地址转换

3.IPv6 使用128位(2^{128})16个字节表示IP地址  而IPv4使用32位(2^{32})4个字节

2.3NAT网络地址转换

把IP地址分为两大类:

1, 内网IP/私网IP   是以10.、172.16.-172.31.、192.168.

2,外网IP/公网IP

公网IP必须是唯一的,但私网IP是允许重复的(在不同的局域网中时允许重复的)

同一个局域网内,主机A访问主机B,不会涉及到NAT机制,公网上的设备A,访问公网上的设备B,也不会涉及到NAT机制,但如果一个局域网中的主机A访问另一个局域网的主机B,NAT机制中,不允许的!! 

如果局域网内部的设备A访问公网上的设备B ,NAT机制主要就是针对这个情况进行生效

NAT机制的缺点: 网络环境太复杂,替换过程中,每一层路由器都需要维护映射关系,每次转发数据,都要查询映射关系,都是开销

2.4网段划分

把一个IP地址会划分成2部分:网络号(标识一个局域网)+主机号(标识局域网中的设备)
同一个局域网中,网络号必须相同,主机号不同。

以我的主机为例:子网掩码为11111111 1111111 11111110 0000000,被标记为1的位置就是网络号,标记为0为主机号,那么网络号就是10.81.33,主机号为:.105

上面带有的子网掩码的划分是当下的网络环境,也有一些其他划分方式。

 3.路由选择

在网络中进行路由转发的时候,每一个路由器无法知道网络的全貌,只知道一些局部信息,这就意味IP数据转发的过程中,是探索式,启发式的。
一个网络层的数据报报每次到达一个路由器的时,会进行一个类似“问路”的过程,每一个路由器内部都有一个数据结构“路右边”,根据数据报中的目的IP查找路由表,如果查到了,就直接去对应的位置,如果没有查到路由表中会有一个默认的表项,就向默认表项转发。

2.数据链路层 以太网协议

1 认识以太⽹

"以太⽹"不是⼀种具体的⽹络,⽽是⼀种技术标准;既包含了数据链路层的内容,也包含了⼀些物理 层的内容,以太⽹是当前应⽤最⼴泛的局域⽹技术

2.认识MAC地址

MAC地址⽤来识别数据链路层中相连的节点,⻓度为48位,及6个字节.⼀般⽤16进制数字加上冒号的形式来表⽰(例如:08:00:27:03:fb:19),在⽹卡出⼚时就确定了,不能修改.mac地址通常是唯⼀的

MAC地址与IP地址区别:

1).MAC地址使用6个字节表示,IP地址使用4个,空间范围比IP地址大了60000多倍,MAC地址可以给每个设备,都分配一个唯一的MAC地址值,一般一个网卡,在出厂的时候,MAC地址就被分配好了,就写死了,MAC地址也可以作为设备身份的标识

2)MAC地址使用在数据链路层,用来实现两个相邻设备之间的数据转发(微观),IP地址使用在网络层,立足于整个转发流程,进行路径规划(宏观)

IP地址立足于全局,完成整个传输过程,而mac地址只是相邻设备的通信

3.ARP协议 

ARP不是⼀个单纯的数据链路层的协议,⽽是⼀个介于数 据链路层和⽹络层之间的协议;

ARP协议/ARP数据报建⽴了主机IP地址和MAC地址的映射关系.

4.以太⽹帧格式

IP地址立足于全局,完成整个传输过程,而mac地址只是相邻设备的通信。 

3.应⽤层协议DNS(DomainNameSystem)

即域名解析系统

域名=>网址

域名代表了IP地址

域名和IP地址,存在对应关系,一般是一个域名对应一个或者多个IP,也可能多个域名对应一个IP

把域名转换成IP地址的系统叫域名解析系统

全球搭建了DNS服务器,在全球范围里,DNS服务器数量太少,所以全球部署了许多DNS的镜像服务器供全球用户使用,每个人上网都会就近选择镜像DNS服务器.

标签:协议,IP,MAC,地址,IP地址,数据,以太网
From: https://blog.csdn.net/jj666mhhh/article/details/142280297

相关文章

  • JavaScript(单分支语句,双分支语句,多分支语句判断闰年还是平年,三元运算符求最大值,switch
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......
  • 数据库tips23
    OLAP服务器即联机分析处理服务器,是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察它是数据仓库三层系统结构中的中间层。查询和报表工具、数据挖掘工具都......
  • web - JavaScript
    JavaScript1,JavaScript简介JavaScript是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。JavaScript是用来控制网页行为的,它能使......
  • WPF Customcontrol with ellipse and textblock display randomly in canvas of mainw
    //usercontrol.xaml<UserControlx:Class="WpfApp381.ElpImgTbk"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"......
  • JavaScript高级——内存溢出和内存泄漏
    1、闭包的缺点与解决方法(1)缺点:函数执行完后,函数内的局部变量没有释放,占用内存时间会变长。 容易造成内存泄漏。(2)解决:能不用闭包就不用。 及时释放。2、内存溢出①一种程序运行出现的错误②当程序需要的内存超过了剩余的内存时,就会出现内存溢出的错误3、内存泄......
  • JavaScript高级——对象创建模式
    1、Object构造函数模式①套路:先创建空Object对象,再动态添加属性/方法②使用场景:起始时不确定对象内部数据③问题:语句太多2、对象字面量模式①套路:使用{  } 创建对象,同时指定属性/方法②适用场景:起始时对象内部数据是确定的③问题:如果创建多个对象,有重......
  • Java开发环境搭建:JDK与Eclipse的完美组合
    摘要:本文简述了Java开发环境的搭建,包括JDK的安装、环境变量配置,以及EclipseIDE的设置。提供了详细的步骤指导,帮助Java初学者快速搭建开发环境并运行第一个项目。Java的跨平台特性与环境需求我们写C/C++时,直接下载VisualStudio,然后在里面直接写代码就可以了。但是Java不行。这不是......
  • 如何使用Open UI异地远程办公设计前端网页无需公网IP
    文章目录前言1.本地部署OpenUI1.1安装Git、Python、pip1.2安装OpenUI2.本地访问OpenUI3.安装Cpolar内网穿透4.实现公网访问OpenUI5.固定OpenUI公网地址前言本篇文章介绍如何在Windows系统本地部署OpenUI并结合Cpolar内网穿透工具配置公网地址,轻松实......
  • NOIP2024集训 Day33 总结
    前言若巅峰不在,那就重踏来时之路。今天是\(\texttt{DP}\)优化专题,感觉只要写出了暴力,剩下的部分都挺典的。怎么说,感觉今天状态不太好,老是细节上出现一些很逆天的错误。例如:for(autoi=dp.begin();i!=dp.end();++i){pair<ll,ll>j=*i;ans=j.first......
  • 传输层——TCP协议
    文章目录TCP协议段格式确认应答(ACK)机制超时重传机制三次握手四次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答TCP协议段格式源/目的端口号:从哪个进程来到哪个进程去;32位序号/32位确认序号:分别代表TCP报文当中每个字节数据的编号以及对对方的确认,是TCP保证可......