计算机网络 | 网络层 :IP协议详解

发布时间:2021-12-09 01:01:42



网络层
IP协议IPV4的协议格式地址管理IP地址的组成IP地址的分类特殊的IP地址子网划分私有IP地址与公网IP地址
路由选择



网络层的目的就是实现终端节点之间的通信,即点对点通信。具体功能包括路由选择与地址管理等。

这一层主要有IP和ICMP两个协议组成,在这里就先重点讲解IP协议,后面会单独将IP协议相关的如ICMP,DNS,NAT,NAPT,DHCP等协议单独写一篇博客汇总。



IP协议

IP是InternetProtocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。



因为目前IP协议主流的版本有IPV4和IPV6,但是IPV6目前不够普及,并且泛用性小,所以我这篇博客主要写的是具有代表性的IPV4。


IPV4的协议格式


4位版本号:用来标识IP首部的版本号,常见的即为IPV4和IPV6,各个版本的首部格式都有所不同,这里我画的是IPV4的。



4位首部长度:表示IP首部的长度,单位为4字节即32位,因为首部长度具有4位,所能表示的最大数据为15即2^4 - 1,所以IP首部的最大长度为15 * 4 = 60字节,因为首部长度最少为5(除选项),所以IP首部的最小长度为20字节。8位服务类型:用来表明服务质量。目前0-2位弃用,7位保留。3-6位为TOS字段,分别为最低延迟、最大吞吐、最大可靠性、(这四位合并也代表着最大安全)



16位数据报长度:标志IP首部与发送数据的长度之和,大小为2^16,即64K,65535。因为IPV4的报头和数据总大小为65535字节,但是数据中又包含了上层(传输层)传下来的数据,所以会将上层如UDP协议数据的大小限制在65535-20(ip协议首部)- 8(UDP协议首部)。IPV6则没有这个问题。16位标识:标识当前分片属于哪一个完整的上层报文,用于分片重组。因为受限于数据链路层的MTU限制,如果IP报文大于MTU,却又符合数据报长度字段,此时就会在网络层进行数据的分片,将数据拆分开来发送,之后再重组3位标志位:标识包被分片的相关信息。0位保留,1位代表是否进行分片,2位代表如果分片是否位最后一个包。



13位片偏移:当分片后的数据在对端重组时,用来确认该分片在原始报文中的位置。因为13位能够标识的最大大小为8192,而数据报长度为65535,也就是16位。所以要想用13来标识16位,就将片偏移的单位设置为了8个字节,所以也就是说,例如当前片偏移位1000,则说明在原始数据中的1000*8 = 8000处。

8位生存时间:报文的最长生命周期(也代表着可以中转的路由器数量),每经过一次路由器就会减一,为0则直接丢弃。主要用于防止路由环路问题(多个路由互相连接,形成转发环路,数据在环路中不断的转发)

8位协议:记录传输层所使用的协议,用于数据分用时,选择上层解析协议

16位校验和:用于检验接收的数据与发送的数据是否一致,不一致则丢弃。校验方法:二进制反码求和,即对报文从头开始的每个字节进行取反相加,高出16位则截断高位,与低16位相加,得到校验和。

32位源IP地址/目的IP地址:表示发送端/接收端的IP地址,用于标识通信的两台主机

0-40字节选项:主要协商和描述一些信息,如安全级别,源路径,路径记录,时间戳。因为IP首部大小最高为60字节,而前面必须的有20字节,所以选项的大小可以为0-40字节。

填充位:保证IP首部大小为4字节的整数倍,不够则填充



地址管理

地址管理的目的是让IP地址的分配更加的合理


IP地址的组成

IP地址就是网络中主机的唯一标识,无论哪个主机与哪个主机之间进行通信,都需要用到IP地址来进行定位。
而IP地址,又由网络号和主机号组成。


网络号: 标识网络,保证每一个路由器分配的IP地址都会带有自己的网络标识,(不同网络使用不同的网络号分配地址就可以避免冲突)
主机号: 标识主机,每一个主机在所在的网络中都有唯一的主机号。


例如同一网络下相邻的两个主机

/24代表着前24位是网络号,而32-24=8,也就是剩下8位为主机号。
上图中两个主机的网络号为:192.168.128
而他们的主机号分别为21和22。



不同的子网其实就是把网络号相同的主机放到一起. 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致,
但是主机号必须不能和子网中的其他主机重复



通过合理的设置主机号和网络号,就可以保证在互相连接的网络下,每台主机的IP地址都不同。


同时,可以利用DHCP技术来自动给子网中新增的主机分配IP地址,详细的在下一篇博客中。



IP地址的分类

早期时人们通过对网络号和主机号的划分,将IP地址分为5类。




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



使用较为广泛的主要为ABC三类地址,DE为特殊的IP地址。


A类IP地址:
用于组建大型网络。第一位固定为0,7位网络号,24位主机号。
IP地址范围:0.0.0.0 ~ 127.255.255.255
例如1.0.0.0 ~1.255.255.255。
对于其中某一个网络,其所能容纳的主机数量位2^24 - 2,也就是16581373个主机(全0和1保留不用)


B类IP地址:
用于组建中型网络。前两位固定为10,14位网络号,16位主机号。
IP地址范围:128.0.0.0 ~ 223.255.255.255
例如128.1.0.0 ~128.1.255.255。
对于其中某一个网络,其所能容纳的主机数量位2^16 - 2,也就是65534个主机(全0和1保留不用)


C类IP地址:
用于组建小型网络。前三位固定为110,21位网络号,8位主机号。
IP地址范围:192.0.0.0 ~ 223.255.255.255
例如192.168.1.0 ~192.168.1.255。
对于其中某一个网络,其所能容纳的主机数量位2^8 - 2,也就是254个主机(全0和1保留不用)


但是这种划分方法是具有局限性的,因为A类太多(几千万个主机不可能用得完),而C类太少(254个一下就用完了)。所以政府、企业、学校等组织都去申请较为适中的B类地址,但是在实际使用中,不可能每一个组织都能用满,所以造成了大量IP地址的浪费。


所以为了解决这种情况,就提出了新的划分方法,CIDR



引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号; 网络号和主机号的划分与这个地址的类型无关。

子网掩码就是一段连续的二进制1。子网掩码与IP地址相与则能得到网络号,而子网掩码取反则能得到主机号的范围。


例如:



可见,IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围;
IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高
24位是1,也就是255.255.255.0



特殊的IP地址

0.0.0.0:可以识别当前主机上任意网卡地址(也就是缺省IP地址),常用于服务器的监听地址。(表示绑定监听本机上的所有地址)
255.255.255.255:全网广播地址(任意一个主机收到这个地址的数据,都会认为是发送给自己的,常用于DHCP请求地址。)
127.0.0.1:本地虚拟回环网卡的地址(常用于本地的网络通信测试,即自己给自己发送数据)


在上面写到过,主机号全为1或者0的地址是特殊的,无法分配给主机。
主机号全为0:
其实就是网络号,代表着这个网段。
主机号全为1:
其实是UDP局域网广播地址(适配于当前网络的所有主机)。



子网划分

可以把基于每类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐*鹄矗沟么油獠靠赐缑挥斜浠饩褪亲油诼搿


例如这道题目



某单位申请到一个C类网络地址:192.168.2.0/24,该单位有4个部门,希望从这个网络中*均划分出四个子网,请列出每个子网的网络号,子网掩码,IP地址范围



因为是C类网络,主机号只有八位,而又要划分出4个子网,那么就以为着要从8位中取两位来作为网络号。
192.168.2.00 192.168.2.01 192.168.2.10 192.168.2.11。
子网掩码则为255.255.255.192
因为只剩下6位作为主机号,所以能够使用的主机数量只有2^6 -2也就是62台。


所以每个子网分别为
子网1:
网络号:192.168.2.00 子网掩码:255.255.255.192 IP地址范围:192.168.2.0 ~192.168.2.63
子网2:
网络号:192.168.2.00 子网掩码:255.255.255.192 IP地址范围:192.168.2.0 ~192.168.2.63
子网3:
网络号:192.168.2.00 子网掩码:255.255.255.192 IP地址范围:192.168.2.0 ~192.168.2.63
子网4:
网络号:192.168.2.00 子网掩码:255.255.255.192 IP地址范围:192.168.2.0 ~192.168.2.63



私有IP地址与公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都
可以,但是RFC 1918规定了用于组建局域网的私有IP地址



10.* ,前8位是网络号,共16,777,216个地址172.16.到172.31.,前12位是网络号,共1,048,576个地址192.168.*,前16位是网络号,共65,536个地址 包含在这个范围中的, 都成为私有IP, 其余的则称为全局 IP(或公网IP);一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1).子网内的主机IP地址不能重复. 但是子网之 间的IP地址就可以重复了.每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了. 子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级 替换, 最终数据包中的IP地址成为一个公网IP.这种技术称为NAT(Network Address Translation,网络地 址转换).如果希望我们自己实现的服务器程序,能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服 务器上. 这样的服务器可以在阿里云/腾讯云上进行购买.

在我们通过ipconfig查看本机IP地址时,往往看到的都是192.168.0.x。其实这个是我们的私有ip地址,可以这么说,比如在一定的区域内,划分出了很多个网段,而这些网段下也就是我们的私网ip,这个ip地址仅仅用于我们内部的通信。也就是说,在这个大的网络下,可能存在无数个这样的子网,也就是为什么我们无论在家,还是在学校等地方,所看到的ip地址几乎是一样的。
这个私有的ip地址只能内部通信,如果要与外部通信,就需要借助到NAT技术来将私有的IP地址转换为公有的IP地址。也就是说,这个网络下的所有私有,都需要用统一的公网IP地址来外部通信。


关于NAT和NAPT的详细就不在这里解释,下一篇博客在一起写。



路由选择

路由选择,即路由器为每一个流经的数据根据目的IP地址进行路径选择。



当IP数据包, 到达路由器时, 路由器会先查看目的IP;路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器;依次反复, 一直到达目标IP地址;


路由器内部通过维护一个路由表,来决定数据转发的路径。
路由表的每一项中记录了目的网络,子网掩码,下一跳。
通过查询路由表来决定转发的对象。



路由表可以使用route命令查看如果目的IP命中了路由表, 就直接转发即可;路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配 时,就按缺省路由条目规定的接口发送到下一跳地址。

路由表可以通过手动维护(静态路由),也可以通过ospf,rip等路由选择算法来自动选取。

相关文档

  • 虐心说说短句子
  • 我学会了游泳经典小学作文
  • 七大雅思听力备考细节
  • [软件测试] 测试用例的设计方法
  • 番茄工作法,定时提醒小程序,番茄计时器
  • 陌陌如何设置静音但是显示有消息
  • 脸上长斑后怎么样调理
  • 酒酿蛋可以每天吃一碗吗,酒酿蛋放多少酒酿
  • 2020年高中班主任个人工作总结5篇
  • -[__NSArrayI addObject:]: unrecognized selector sent to instance 0x1744523c0
  • 野菜好吃 小心过敏
  • 长毛地毯品牌排行榜前十名
  • 梦见和老公的情人吵架
  • pxe安装系统ubuntu之二 安装ubuntu
  • 教师学习师德师风心得体会
  • 律师合同以及教师聘用通用合同
  • 怎么把搜索记录删除
  • 丁香又开花了
  • 我的新朋友-小学优秀日记
  • 轿车怎么把汽油吸出来
  • idea导入项目出现Cannot resolve method XXXXX(java.lang.String)’问题
  • 《偏爱》吉他谱
  • 做电工的基本知识
  • 雪孩子动画片观后感
  • “高枕”
  • openssl 64位编译_如何在ubuntu16.04 中正确安装OpenSSL?
  • 5款好看的WordPress博客主题下载
  • 答李翊书阅读答案
  • 关于秋天的段落伤感
  • 农业致富项目网
  • 猜你喜欢

  • 工信部:中国将加快推动核心技术的突破
  • 【人力资源】女装品牌国内品牌运营市场部工作手册(doc 17资料
  • 团队精神培训心得体会五篇
  • 读《丁丁在美洲》有感400字
  • poco mysql 中文_Poco数据库操作用户手册(一)
  • The application of the Racial Equality Directive of the EU
  • 语文S(部编)版四年级上册《三单元 语文百花园三 笔下生辉》精品课教案_3
  • 法院办公室20xx年工作总结范文
  • 福州市鼓楼区卫盾辐射防护工程有限公司(企业信用报告)- 天眼查
  • 【精品】(福建省专用)2011届高三英语二轮复* 考前特训 考前第27天(考前高分必读)专题课件
  • 这家火锅店分店很多,在寒冬里那份炙热让人永远难忘:香猪坊
  • 机关党委发展党员工作负面清单排查方案
  • XX年小学防溺水工作计划小结
  • 交通事故官司处理流程是什么
  • 重庆正泰特种塑胶有限公司*(企业信用报告)- 天眼查
  • RocketMq ConsumerGroup Tag对消费的影响
  • 苏教版数学一年级上册易错题汇总
  • 铰刀项目立项申请报告(58亩)
  • 初二话题作文《因为心中有爱》1000字(共13页PPT)
  • 羊毛大衣缩水怎么恢复
  • 委托书支付令授权委托书
  • 北师大版八年级下册数学2.6《一元一次不等式组》课件3 (共19张PPT)
  • 研究性学*计划
  • 哈尔滨市动力区华兴废品收购站企业信用报告-天眼查
  • 一年级品德与社会上册《装扮我们的教室》教案精选
  • 川外2012英语专业考研真题(基础英语)
  • vivoy97可以无线充电吗
  • 2018-2024年中国户外照明灯具行业深度调研研究报告(目录)
  • S版三年级语文下册词语、句子整理复*.
  • 贵阳兄弟铭车汽车配件销售有限公司(企业信用报告)- 天眼查
  • 住房和城乡建设部公告第773号??关于2010年第九批一级建造师注册
  • 第4章__产品成本核算概述
  • 高中政治 第四单元 认识社会与价值选择 第十二课 实现人生的价值课件 新人教版必修4
  • 计算机网络技术与应用第9章
  • 最新 初中语文阅读教学中设疑提问的方法-精品
  • 2016年8月通用大一新生入党申请书2500字
  • 南京鼎盾智能科技有限公司企业信用报告-天眼查
  • 谈笑间学会数仓dim层设计①
  • 2020最新人教版一年级语文下册教学计划
  • 善变的雨初三作文共2篇
  • Linux下安装VMware tools并建立共享文件夹
  • 教育咨询师招生话术
  • 电脑版