毕业设计网站设计,免费网站如何被百度收录,网站备案注销原因,专做特卖的网站文章目录 一、IP协议#xff08;1#xff09;IP地址协议概念和理解#xff08;2#xff09;IP地址协议格式#xff08;3#xff09;网络号和主机号#xff08;4#xff09;地址管理#xff08;一#xff09;分配IP地址方法#xff08;二#xff09;CIDR分配IP地址1IP地址协议概念和理解2IP地址协议格式3网络号和主机号4地址管理一分配IP地址方法二CIDR分配IP地址三子网划分四特殊类IP地址五IP地址的数量限制 5私有IP地址和公网IP地址6路由选择 一、IP协议
1IP地址协议概念和理解
IP是InternetProtocol网际互连协议的缩写是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性 一是解决互联网问题实现大规模、异构网络的互联互通 二是分割顶层网络应用和底层网络技术之间的耦合关系以利于两者的独立发展。根据端到端的设计原则IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。 如下图 因为目前IP协议主流的版本有IPV4和IPV6,但是IPV6目前不够普及并且泛用性小所以我这篇博客主要写的是具有代表性的IPV4。 分析 IP到底做了什么扮演的是什么角色 IP地址核心工作 IP层的作用是定位主机具有一个将数据A从主机跨网络送到B主机的能力。有能力不一定能做到只是体现在有非常大的概率其实本质上它只是一个行动者而tcp给它提供策略让它可靠地将数据A从主机跨网络可靠地送到B主机。 路径选择中目标IP非常重要决定我们路径如何走就如唐僧去西天取经别问他从哪来他说从东土大唐来(源IP地址)到西天(目标IP地址)取经而如果问他上一站从哪来比如他说从女儿国来这个是MAC地址(后面说)。 但是他具体去的是雷音寺(目标主机)IP目标网络目标主机。 主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称
2IP地址协议格式
4位首部长度 和TCP报头中的4位首部长度一样代表的是IP报头的长度是多少个4字节4位比特位能够表示的最大数字是15即IP头部的最大长度是15*4 60字节16位总长度 指的是IP数据报整体占多少个字节。用总长度-报头即为有效载荷。 4位版本号用来标识IP首部的版本号常见的即为IPV4和IPV6各个版本的首部格式都有所不同。 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即64K65535。因为IPV4的报头和数据总大小为65535字节但是数据中又包含了上层传输层传下来的数据所以会将上层如UDP协议数据的大小限制在65535-20ip协议首部- 8UDP协议首部。IPV6则没有这个问题。 16位标识标识当前分片属于哪一个完整的上层报文用于分片重组。因为受限于数据链路层的MTU限制如果IP报文大于MTU却又符合数据报长度字段此时就会在网络层进行数据的分片将数据拆分开来发送之后再重组唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的。
3位标志位:第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示更多分片, 如果分片了的话,最后一个分片置为1, 其他是0. 类似于一个结束标记。 第一位表示保留位。 第二位表示禁止分片。 第三位表示分片是否结束。 1表示后面还有分片 0表示后面没有分片 13位片偏移:当分片后的数据在对端重组时用来确认该分片在原始报文中的位置。因为13位能够标识的最大大小为8192而数据报长度为65535也就是16位。所以要想用13来标识16位就将片偏移的单位设置为了8个字节所以也就是说例如当前片偏移位1000则说明在原始数据中的1000*8 8000处。就相当于在原始数据的偏移量。 8位生存时间报文的最长生命周期也代表着可以中转的路由器数量每经过一次路由器就会减一为0则直接丢弃。主要用于防止路由环路问题多个路由互相连接形成转发环路数据在环路中不断的转发。 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL- 1, 一直减到0还没到达, 那么就丢弃了.。 8位协议:记录传输层所使用的协议用于数据分用时选择上层解析协议。 16位校验和使用CRC进行校验, 来鉴别头部是否损坏。 32位源IP地址/目的IP地址表示发送端/接收端的IP地址用于标识通信的两台主机。 0-40字节选项主要协商和描述一些信息如安全级别源路径路径记录时间戳。因为IP首部大小最高为60字节而前面必须的有20字节所以选项的大小可以为0-40字节。 填充位保证IP首部大小为4字节的整数倍不够则填充。
8位服务类型图 3位标志位图: 问题 说明 1.回忆前提:MTU MTU是数据链路层对到达数据链路层数据大小的规定。数据链路层进行发送数据的时候是严格遵照MTU进行发送的。数据链路层发送到数据大小一定不会超过MTU 数据链路层就会要求网络层ip协议给数据链路层提交的数据大小不能超过MTU 2.如果IP协议传输的数据大于数据链路层对于数据的限制(MTU)IP协议需要将数据进行分片传输。将大于MTU的数据报进行切分以满足MTU的要求。 16位总长度能够标识的数据最大为65536Byte如果传输层递交给网络层ip协议的数据超过65536Byte如何做处理 在网络层的ip协议进行分片传输。 1.每一条数据都是独立的ip数据报 2. 当这些ip数据报传输到对端之后对端针对ip协议个数头部的16位标识3位标志13位片偏移来组装同一条数据报 TCP需要ip协议进行分片? 不需要进行分片因为TCP协议在传输数据的时候严格按照MSS进行传输而MSS一定是小于MTU的而一般网卡的MTU都是1500字节换句话说TCP在每次传输数据的时候都是不会超过1500字节的。因此MSS是远远小于65536字节的因此也就不会触发ip协议进行分片传输。 UDP需要ip协议进行分片吗 有可能需要进行分片因为UDP协议是没有类似于MSS存在的因此UDP的数据的最大长度是65536字节网络层递交给数据链路层大小必须小于MTU的因此一旦UDP递交给网络层ip协议的数据加上ip协议报头之后总长度大于了当前主机的MTU大小时就会需要进行分片传输。 注因为UDP协议是不可靠的在ip数据报转发的时候都有自己的路由转发路径可能会造成丢失。 分片丢了会重发分片还是所有数据一起重发 有分片 则代表一定是UDP数据进行分片了。 第一个: 分片 传输一定是UDP数据 UDP协议是不保证可靠 ip协议也是不保证可靠重发: 只能从应用层协议触发重传所有数据一起重发
3网络号和主机号
ip地址网络号和主机号 网络号保证互相连接的两个网段具有不同的标识 主机号同一网段内主机之间具有相同的网络号但是必须有不同的主机号 不同的子网其实就是把网络号相同的主机放到一起。 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复。 通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同。
4地址管理
一分配IP地址方法
手动管理子网内的IP解决 有一种技术叫做DHCP, 能够自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便。 一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器。 过去曾经提出一种划分网络号和主机号的方案, 把所有IP 地址分为五类 A类 B类 C类 ABCDE: 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
二CIDR分配IP地址
但是这种划分方法是具有局限性的因为A类太多几千万个主机不可能用得完,而C类太少254个一下就用完了。所以政府、企业、学校等组织都去申请较为适中的B类地址但是在实际使用中不可能每一个组织都能用满所以造成了大量IP地址的浪费。 例如, 申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机. A类地址的子网内的主机数更多。 然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了。 所以为了解决这种情况。 就提出了新的划分方法CIDRClassless Interdomain Routing。
引入一个额外的子网掩码(subnet mask)来区分网络号和主机号。子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾。将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号。网络号和主机号的划分与这个IP地址是A类、B类还是C类无关。
现在的IP地址都是经过CIDR方式分配的 不存在A类B类C类IP地址的说法IP地址是路由器设备给连接上的机器分配的 分配IP地址的时候 会分配上子网掩码。 如下例 子网掩码就是一段连续的二进制1。子网掩码与IP地址相与则能得到网络号而子网掩码取反则能得到主机号的范围取反之后有多少比特位为1则表示当前子网当中的ip地址使用了多少个比特位当作是主机号。 例子
三子网划分
可以把基于每类的IP网络进一步分成更小的网络每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后通过使用掩码把子网隐藏起来使得从外部看网络没有变化这就是子网掩码。 例题 某单位申请到一个C类网络地址192.168.2.0/24该单位有4个部门希望从这个网络中平均划分出四个子网请列出每个子网的网络号子网掩码IP地址范围从8位中取两位来作为网络号所以子网掩码为而192.168.2.00 -0 192.168.2.01-64 192.168.2.10 -128 192.168.2.11-192 根据每个子网需要的主机数为62台可以计算出每个子网的子网掩码为26位因为2^664而实际可用主机数为62所以需要6位二进制位来表示主机号。 子网1 网络号192.168.2.0 子网掩码255.255.255.192 IP地址范围192.168.2.1 - 192.168.2.62 子网2 网络号192.168.2.64 子网掩码255.255.255.192 IP地址范围192.168.2.65 - 192.168.2.126 子网3 网络号192.168.2.128 子网掩码255.255.255.192 IP地址范围192.168.2.129 - 192.168.2.190 子网4 网络号192.168.2.192 子网掩码255.255.255.192 IP地址范围192.168.2.193 - 192.168.2.254 在每个子网中第一个IP地址和最后一个IP地址分别为网络号和广播地址所以可用的主机数量为62台。
四特殊类IP地址
在一个网段中都会有一个网络号的和广播号即 192.0.0.0 ~ 192.0.0.255 网络号主机号全为0的ip地址就为该网段中的网络号 广播号主机号中全为1的ip地址就为该网段中的广播号 127.0.0.1 本地回环网卡地址通常用来测试自己机器的网络连通性 0.0.0.0代表本地所有的网卡地址
五IP地址的数量限制
因为IP地址(IPv4)是一个4字节32位的正整数. 那么一共只有 2的32次方个IP地址, 大约是43亿左右. 而TCP/IP协议规定, 每个主机都需要有一个IP地址这意味着, 一共只有43亿台主机能接入网络么? 实际上, 由于一些特殊的IP地址的存在, 数量远不足43亿; 另外IP地址并非是按照主机台数来配置的, 而是每一个网卡都需要配置一个或多个IP地址。 CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率, 减少了浪费, 但是IP地址的绝对上限并没有增加), 仍然不够用.。 有三种方式来解决 1、动态分配IP地址: 只给接入网络的设备分配IP地址. 因此同一个MAC地址的设备, 每次接入互联网中, 得到的IP地址不一定是相同的。 3、IPv6: IPv6并不是IPv4的简单升级版. 这是互不相干的两个协议, 彼此并不兼容IPv6用16字节128位来表示一个IP地址; 但是目前IPv6还没有普及。 2、NAT技术(后面博客会单独介绍)。
5私有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); 在我们通过ipconfig查看本机IP地址时往往看到的都是192.168.0.x。其实这个是我们的私有ip地址比如在一定的区域内划分出了很多个网段而这些网段下也就是我们的私网ip这个ip地址仅仅用于我们内部的通信。 简单来说在这个大的网络下可能存在无数个这样的子网也就是为什么我们无论在家还是在学校等地方所看到的ip地址几乎是一样的。
这个私有的ip地址只能内部通信如果要与外部通信就需要借助到NAT技术来将私有的IP地址转换为公有的IP地址。也就是说这个网络下的所有私有都需要用统一的公网IP地址来外部通信。
6路由选择
IP网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点通信”。 IP网络层的下一层——数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路就需要借助网络层。网络层可以跨越不同的数据链路即使是在不同的数据链路上也能实现两端节点之间的数据包传输。
首先要知道一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP) 1.路由选择是在为网络数据选择合适的设备进行转发 2.路由器上面的网口 WAN : 是当前路由器连接上级路由器的网口 LAN : 是子网内机器连接本路由器的网口。 路由器LAN口连接的主机, 都从属于当前这个路由器的子网中从图中可以看出从运营商机房101.1.1.1拉出的网线插在了家用路由器的WAN口上个人设备是插在家用路由器的LAN口上。 也就是说每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP这种技术称为NAT(Network Address Translation网络地址转换)。
路由设备中都会有一个路由表路由表记录了当前的路由项路由器是如何进行网络转发。如下图 首先用网络数据中的目的ip和路由项当中的子网掩码进行按位与操作需要注意的是该目的ip先和非网关的路由项进行操作最后再和网关路由项进行操作。 其次将按位与操作的结果和路由项的Destination进行对比 1 如果说没有对比上则代表该条数据不是往该子网当中进行转发会通过默认网关发送到上级路由。 2 如果说对比上了则代表该条数据是往该子网当中的某一个主机进行转发 的隐含意思是该目的主机和源主机主机处于一个子网当中。
路由的过程, 就是这样一跳一跳(Hop by Hop) “问路” 的过程。所谓 “一跳” 就是数据链路层中的一个区间. 具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间IP数据包的传输过程也和问路一样。当IP数据包, 到达路由器时, 路由器会先查看目的IP。 路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器。依次反复, 一直到达目标IP地址 为什么要有子网划分 互联网中的每一台主机都要隶属于一个子网为了方便定位主机排除效率高因为每次路由都要在路由表里面进行查找所对应的IP地址看它属于哪个子网进而快速直接或间接定位而查找的本质是排除有了子网他可以排除一批路由器或子网。