ip属于计算机网络体系结构的什么协议
ip属于计算机网络体系结构的“网络层”协议。IP指网际互连协议,是TCP/IP体系中的网络层协议,它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。
本教程操作环境:windows7系统、Dell G3电脑。
ip属于计算机网络体系结构的“网络层”协议。
IP协议简述
IP指网际互连协议,Internet Protocol的缩写,IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。
设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
虽然IPV4终将会被IPV6替代,但是目前IPV4仍然是IP协议的主流版本,所以我们重点介绍一下IPV4版本。在学习TCP协议和socket套接字编程的时候我们知道,如果想要在互联网这个共享网络中精确定位到一台主机,那么就一定需要该主机的IP地址。主机是拥有IP地址,但是不能进行路由控制(Routing,意思是中转、分组数据包),路由器(Router)这种设备既有IP地址,又可以进行路由控制;我们可以将接入互联网中的主机和路由器都叫做节点。
举个例子,我们普通人只有自己的地址,如果想要发送快递给朋友或者从别人那接受快递,只能向邮递员提供对方的地址或我们自己的地址,即我们只有地址标识,但是我们不能发送快递;而快递员就像是路由器,他自己也有自己的地址,也可以收到他的私人快递,但是他还可以将用户的快递,根据目的地不同,选择不同的快递线路进行运输。下图可以清楚表达IP协议在网络环境中的作用。
IP协议首部格式(IPV4)
和之前学习TCP、UDP协议一样,先来介绍一下IP协议的首部格式
我们可以发现IP协议首部与TCP协议首部非常相似,如果没有特殊情况,都是20个字节,因此我们也经常会把两者放在一起称为TCP/IP协议。下面将IP协议首部每个字段都详细介绍一下:
- 4位版本号(Version):用来指定IP协议的版本,IPV4的版本号就是4,如果这个IP报文是IPV4版本,那么这个字段的值就是4,用4位来标识就是0100。IPV6的版本号则是6。
- 4位首部长度(Internet Header Length):表明IP首部的大小,单位是4个字节,length * 4的字节数,因为这一字段共4个比特位,所以这一字段最大值为2 ^ 4 - 1即15,所以IP首部最大长度为15 * 4即60字节;在默认情况下,该字段被设置为5,所以默认IP首部20字节。
- 8位服务类型(Type Of Service):前三位表示优先度(已经弃用),第4位表示最低延迟、第5位表示最大吞吐、第6位表示最大可靠性、第7位表示最小代价,这四位互相冲突,只能选择一个。需要根据不同情况进行选择,如果是SSH/TELNET这类远端登录,那么就应该选择最小延时,如果是FTP类型的程序,则应该选择最大吞吐量;第8位是保留位,目前没有使用,必须填0。
- 16位总长度(Total Length):表示IP首部和后面携带的数据部分一共有多少个字节。该字段有16个比特位,因此IP数据报整体最大长度为65535个字节。
- 16位标识(ID):唯一地标识主机发送的报文,如果一份IP报文在数据链路层被分片,那么每一片的该字段应该都是相同值。帮助对端主机在接收后进行分片重组。
- 3位标志(Flag):第一位保留(保留的意思是现在不使用,未来如果需要的话再使用),必须填0;第二位用来指明是否可以分片,如果为0则可以分片,如果为1则不能分片,假如一个IP报文禁止分片且长度还大于了MTU(Maximum Transmission Unit最大传输单元,后面详细介绍),则该本文只能被丢弃;如果报文被分片,第三位为1表示它是分片中段的报文,即后续还有分片报文,如果第三位为0则表示这是最后一片。
- 13位片偏移(Fragment Offset):该字段表示分片相对于原始IP报文开始处的偏移量,其实就是表示当前分片在原报文中所处的位置,第一个分片对应值为0。由于该字段总共13个比特位,因此最多可以表示2 ^ 13即8192个相对位置。单位为8字节,所以最大可以表示8192 * 8 = 65536个字节的位置。
- 8位生存时间(Time To Live):数据报到达目的地的最大报文跳数(Hop,指网络中一个区间,IP数据包正是在网络中一个跳间被转发),一般为64,每次经过一个路由,TTL–,如果TTL == 0时还没到达目的地,那么这个报文就会被丢弃。这个字段主要是为了防止出现路由循环,数据包在一个循环中一直转发,浪费网络资源。
- 8位协议(Protocol):表示IP的上层是什么协议,我们熟知的TCP、UDP、ICMP等都是在IP上层的。
- 16位首部校验和(Header Checksum):使用CRC进行校验,鉴别IP首部是否收到损坏,如果损坏直接丢弃,它只校验IP头部,不校验下面的内容,因为内容部分的校验是上层传输层(TCP)需要考虑的,IP协议只要发现首部有问题就直接丢弃该报文。
- 32位源IP地址(Source Address):表示发送端的IP。
- 32位目的IP地址(Destination Address):表示接收端的IP。
- 选项字段(Options):不定长,最大可以到40个字节。
补充:分片与组装
MTU(Maximum Transmission Unit最大传输单元)是在IP层下面的MAC协议中的概念,MAC协议我们可以理解为是物理层的一些协议,它位于IP协议的下层,那么在发送数据时相当于是用户数据 + 应用层协议报头(如HTTP请求报头)
作为有效载荷交给传输层(如TCP协议),TCP协议再将TCP报头 + 应用层传来的数据
下交给IP层,IP层再将IP协议首部 + TCP层传来的TCP报文
交付给MAC帧。因此每个MAC帧其实是IP协议首部 + IP层的有效载荷
。而MAC帧是有长度限制的,所以就要求IP数据报向下交付时并不是随心所欲想发多长就发多长,如果MAC帧要求MTU为1500字节,而IP数据包总长度有2000字节,那么就需要分片,将原有的IP数据包分成两片,依次发送,对端的主机在接收后,由对端的IP层再完成组装。我们在Linux环境下可以使用ifconfig
命令查看到MTU。
分片和组装对于上层TCP/UDP和下层的MAC都是透明的,即上层和下层都不知道IP层将数据包进行了分片操作,因此分片和组装操作会由发送方IP层和接收方IP层自动完成。但是分片意味着需要把一份数据变为多组数据传输,并且在对端还需要进行组装,这样会大大降低网络传输效率以及提升错误风险,因此在传输过程中应当尽量避免分片,即尽量不要发送超过MTU长度的IP数据报。
IP地址
IP地址的定义:
IPV4中我们由32位正整数来表示IP地址,计算机内部会直接以二进制来保存IP地址,不过人并不善于记忆二进制整数,所以我们采用点分十进制来记录IP地址:即将32位IP地址每8位一组,分成4组,组间用’ . '进行分隔,再将每组转换为十进制。
因此我们可以直接算出,在IPV4标准下最多有2 ^ 32 = 4292967296个IP地址,但是能被人们使用的远远不足这个数字。(比如某些IP地址是有特殊作用被预留的,某些设备如路由器会占有多个IP地址)
IP地址的组成:
IP地址由网络标识(网络地址)和主机标识(主机地址)两部分组成。
我们查找到一个IP地址的过程就像是去某个地方旅游一样,例如我们想要去天安门玩,不可能直接坐高铁到达天安门,我们一定是先抵达北京市(目的网络),再通过北京市内的交通抵达天安门(目的主机)。因此我们在路由选择时,应该先找到目标主机所在的局域网,再在该局域网中找到目标主机。这种方式可以快速帮我们定位到目标局域网,在局域网内搜索目标主机就比在茫茫的网络中找一台主机要快速多了。
网络号:保证互相连接的两个网段具有不同的标识。
主机号:保证在同一个网段中,两台主机具有不同的标识。
IP地址的划分:
IP地址划分为五个级别,分别为A类、B类、C类、D类和E类(一直没有使用过),所以目前我们所能见到的IP地址只有A、B、C、D四类。划分的依据就是IP地址从第1位到第4位的比特位。
- A类地址:0.0.0.0 ~ 127.255.255.255
- B类地址:128.0.0.0 ~ 191.255.255.255
- C类地址:192.0.0.0 ~ 223.255.255.255
- D类地址:224.0.0.0 ~ 239.255.255.255
- E类地址:240.0.0.0 ~ 247.255.255.255
在不考虑E类IP地址的时候,我们可以发现,A、B、C、D类地址的网络号所占比特位逐渐增加,而主机号所占的比特位在逐渐减少。这就意味着上述四类地址中,一类地址中的子网数量越来越多,但是子网中可以连接的主机变得越来越少。以国内一所普通高校为例,全校师生大约3万人,如果每个人都有一台笔记本电脑需要连接到校园局域网中,有些同学还会有一些平板电脑等其他需要连接网络的终端设备,那么在申请网络时就应该以5~6万个IP地址去申请,如果使用A类地址,那么主机号24位会产生2 ^ 24 = 16777216个IP地址,远远超过实际所需要的,如果使用C类地址,则只有2 ^ 8 = 256个IP地址,远少于所需IP地址,所以最合适的是B类地址,有2 ^ 16 = 65536个IP地址。这个例子也告诉我们,IP地址不能太多,会造成大量浪费;也不能太少,否则很多设备会无法连接网络。
引入子网掩码:
随着Internet的发展,使用前四位是否为1来分类的方案弊端开始显现:那就是很多子网的申请者都会去申请B类网络地址,因为A类根本用不完,而C类不够用。导致B类的网络地址很快就被分配完了。而申请了A类的网络又会浪费大量的IP地址,在这种情况下,人们提出了新的划分方案:CIDR(Classless Interdomain Routing无类型域间选路)
- 引入子网掩码来区分网络号和主机号
- 子网掩码也是一个32位的正整数,但结尾通常是一串0
- 将IP地址与子网掩码进行
&
操作,所得结果就是网络号 - 网络号和主机号的划分就与这个IP地址是A类、B类还是C类无关了
举两个例子帮助理解通过子网掩码来划分网络号和主机号
例一:
IP地址 | 二进制表达 |
---|---|
140.252.20.68 | 1000 1100 1111 1100 0001 0100 0100 0100 |
子网掩码 | 二进制表达 |
---|---|
255.255.255.0 | 1111 1111 1111 1111 1111 1111 0000 0000 |
将IP地址与子网掩码进行按位与操作后得到1000 1100 1111 1100 0001 0100 0000 0000
,再转化为方便人们使用的点分十进制为140.252.20.0
,这就是该子网的网络号了。并且它的子网掩码末尾的8个比特位为0,这个子网可以表示2 ^ 8 = 256台主机,因此这个子网的地址范围是140.252.20.0 ~ 140.252.20.255
例二:
IP地址 | 二进制表达 |
---|---|
140. 252. 20. 68 | 1000 1100 1111 1100 0001 0100 0100 0100 |
子网掩码 | 二进制表达 |
---|---|
255.255.255.240 | 1111 1111 1111 1111 1111 1111 1111 0000 |
将IP地址与子网掩码进行按位与操作后得到1000 1100 1111 1100 0001 0110 0100 0000
,即该子网的网络号,同样转换成常用的点分十进制为140.252.20.64
,它的子网掩码末尾的4个比特位为0,这个子网可以表示2 ^ 4 = 16台主机,因此这个子网的地址范围就是140.252.20.64 ~ 140.252.20.79
一些特殊的IP地址
- 将IP地址中的主机地址全设置为0,即该局域网的网络号,这个IP地址代表这个局域网。
- 将IP地址中的主机地址全设置为1,可以变成广播地址,这个广播地址可以给同一个链路中互相连接的所有主机发送数据包
- 127.*的IP地址用于本地环回测试,通常是127.0.0.1
私有IP地址和公网IP地址
假如某个大学要在校园内部组建一个局域网,只实现校园内部的网络通信而不与外界任何一台机器进行通信,那么理论上2 ^ 32个IP地址都可以使用,因为只在这个局域网中,不会出现相同的IP地址。不过RFC1918规定了组建局域网的私有IP地址的规范:
- 10.* 前8位是网络号,共有16,777,216个地址
- 172.16.*~172.31.* 前12位是网络号,共有1,048,576个地址
- 192.168.* 前16位是网络号,共有65,536个地址
上述范围内的IP地址都是私有IP,不在上述范围内的IP则为全局IP地址(公网IP地址)。
更多相关知识,请访问常见问题栏目!
以上是ip属于计算机网络体系结构的什么协议的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

小红书作为一款流行的社交电商平台,用户可以在这里分享生活点滴、发现心仪商品。有些用户对个人隐私较为敏感,希望在小红书上不显示IP地址,以保护自己的网络隐私。那么,小红书如何设置不显示IP地址呢?本文将围绕这一问题进行详细解答。一、小红书如何设置不显示ip地址?1.修改小红书设置:打开小红书APP,点击右下角的“我”,进入个人中心。然后点击头像,进入账号设置。在账号设置中,找到“隐私设置”,点击进入。在这里,你可以找到关于IP地址的设置选项,将其关闭即可。2.清除缓存:有时候,小红书可能会显示错误

有时大家会遇到必须手动修改ip地址的现象,但是有的windows10客户体现ip地址设置后无法保存,像这种情况要怎么解决呢?会有ip地址储存基本只因为你的ip地址填好存有错误,你可以检查一下是否把子网前缀给写出子网掩码了,如果是的话就改回来,改完之后就可正常储存ip地址了。windows10ip地址设置后无法保存怎么解决:错误图如下:填好错误了造成的提示“无法保存ip设置,请检查一个或多个设置并举试”,这里是子网前缀长短,并非子网掩码,如图所示。如上图,其实是很多用户把子网前缀给写出子网掩码了。

小米手机ip地址在哪里?在小米手机中是可以查询到ip地址,但是多数的用户不知道ip地址在哪里查询,接下来就是小编为用户带来的小米手机ip地址查看方法图文教程,感兴趣用户快来一起看看吧!小米手机ip地址在哪里1、首先打开小米手机中的设置功能,选择【我的设备】点击进入;2、然后在我的设备功能页,点击【全部参数】服务;3、接着在全部参数页面,滑动到底部选择【状态信息】;4、最后在状态信息界面即可看到ip地址。

闲鱼是一款很实用的二手交易平台,在这里我们可以购买很多不同的商品,也能出售自己的闲置物品,如果想修改自己的地址怎么操作呢?下面就来和小编一起看看吧!闲鱼ip地址修改方法分享首先打开闲鱼软件,进入首页后,在左上角可以看到海鲜市场、推荐、地址等选项,点击“地址”。2、然后在地址的页面中我们点击地址旁边的【向下箭头】;3、最后点击过后在选择城市的页面中我们点击城市即可;

1、打开小娜搜索,输入cmd,然后选择命令提示符右击以管理员身份运行。2、输入:netshwinsockresetcatalog,按回车。3、然后再输入:netshintipresetreset.log,按回车。4、重启电脑,之后在IP设置里面输入你想要输入的IP、DNS等信息,确定。

用户们通过抖音分享生活、展示才艺,与全国乃至全球的网友互动。有些用户出于隐私保护或地域限制等原因,希望改变自己在抖音上的IP地址。那么,抖音IP地址怎么变位置呢?一、抖音IP地址怎么变位置?代理服务器是一种用于将用户请求转发到互联网并返回响应的中介服务。通过配置代理服务器,用户可以隐藏其真实IP地址,实现IP地址的变更。这种方式有助于保护用户的隐私并提高网络安全性。代理服务器还可用于访问受限内容或绕过地理位置限制。总的来说,使用代理服务器是一种实用的网络工具,可以帮助用户更安全、更自由地浏览互联

比特币交易IP地址比特币交易IP地址是比特币交易系统中不可或缺的一个重要组成部分。它是比特币交易平台的核心,比特币交易者可以通过它进行比特币交易。比特币交易IP地址是比特币交易系统的基础,也是比特币交易者可以进行比特币交易的基础。比特币交易IP地址是一个全球性的网络地址,用于定位比特币交易系统的服务器和交易者的设备。通过查询比特币交易IP地址,可以获取交易状态和相关信息。此外,比特币交易IP地址还可用于连接比特币交易系统的客户端和交易者的设备。比特币交易IP地址公开吗?比特币交易的IP地址不会公

Go语言正则表达式指南:如何匹配IP地址导言:正则表达式是一种强大的工具,用于在字符串中匹配和搜索特定的模式。在Go语言中,可以使用内置的regexp包来实现正则表达式的操作。本文将介绍如何使用Go语言的正则表达式来匹配IP地址。IP地址格式:IP地址是一个由32位二进制数组成的地址,通常用分隔的四个十进制数表示,每个十进制数取值范围在0到255之间,例如: