计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议
1 主机、路由器网络层主要功能

2 IP数据报
2.1 图示

2.2 字段详细介绍
1)版本号
占4位:IP协议的版本号。4表示IPv4,6表示IPv6。
2)首部长度
占4位:表示IP分组首部长度。
以4字节为单位。如值为5,则表示首部长度为20字节(5*4=20)
3)服务类型TOS
占8位:指示期望获得哪种类型的服务
3 IP分片和重组
3.1 最大传输单元
3.2 链路MTU不同引发的问题
3.3 分片和重组
大IP分组向较小MTU链路转发时,可以被“分片” (fragmented)
1个IP分组分为多片IP分组IP分片到达目的主机后进行“重组”(reassembled)。注意,重组是到达目标主机后才进行的,在中间节点不会重组,原因很简单,如果分片了到达下一个路由器就重组,在下一次遇到最大输出单元较小的链路又得分片。
3.4 首部几个相关的字段
1)标识(ID)
占16位:标识一个IP分组
3)片偏移
占13位:一个IP分组分片封装原IP分组数据的相对偏移量。片偏移字段以8字节为单位。
如一个报文的大小为128,每个分组可以封装的数据为32,那么第一个分组的偏移量为0(32/8*(1-1)),第二个分组的偏移量为4(32/8*(2-1)),第三个分组的偏移量为8(32/8*(3-1)).......
3.5 分片过程
假设原IP分组总长度为L,待转发链路的MTU为M

每片的片偏移字段取值为:i表示第几个分片


每片的MF标志位为:

3.6 示例

4 IP编址
分为IPV4和IPV6,此处将IPV4
4.1 简介
IPV4地址长度是32位。由两部分组成,网络号和主机号。
通常写成10进制的200.221.222.101这种形式,便于使用和记忆。200.221.101就是网络号,101就是主机号。
4.2 IP子网

5 有类IP编址
5.1 IP分类
如下图,采用二分法把ip地址分为5类
A类地址,第一位是0的所有IP,占了全部IP的50%。它的前8位是网络号,后24位是主机号
B类地址,第一位是1,第二位是0的所有IP,占了全部IP的25%。它的前16位是网络号,后16位是主机号
C类地址,第一位是1,第二位是1,第三位是0的所有IP,占了全部IP的12.5%。它的前24位是网络号,后8位是主机号
D类地址,第一、二、三位是1,第四位是0的所有IP,占了全部IP的6.5%。不区分网络号和主机号。用来命令或标识Internet网络中一组主机。只能作为IP分组中的目的地址,不能作为发送地址。也叫作多波地址
E类地址,第一、二、三、四位是1的所有IP,占了全部IP的6.5%。不区分网络号和主机号。作为研究使用。

5.2 特殊的IP

5.3 私有IP地址
6 IP子网划分和子网掩码
6.1 子网再划分的原因
A类的网络号有8位,且第一位固定是0,所以A类的子网可以有2^7-1个。每个子网下面可以分配的ip数为2^24-1
B类的网络号有16位,且前两位固定是10,所以B类的子网可以有2^14-1个。每个子网下面可以分配的ip数为2^16-1=65535
C类的网络号有24位,且前三位固定是110,所以C类的子网可以有2^21-1个。每个子网下面可以分配的ip数为2^8-1=255
由此可见,A的子网数最少,但是每个子网可分配的ip最多
现在一个组织,有2000台主机,给他C类ip,才可以分配255个ip,肯定是不够的,给它一个B类ip,又太浪费,B类可分配65565个,而他只需要2000个,大量的ip浪费了。
所以,需要一种手段,把子网分成更小的子网。
6.2 子网号
在之前,ip地址分为网络号和主机号。现在,加上一个子网号。它占用原来的主机号的前几位来表示子网号,具体占用几位不固定。
通过网络号+子网号来表示一个更小的子网。

6.3 子网掩码
6.3.1 简介
子网掩码也是32位,形式和ip一样。
取值NetID、SubID位全取1,HostID位全取0
例如:A网的默认子网掩码为:255.0.0.0,B网的默认子网掩码为:255.255.0.0,C网的默认子网掩码为:255.255.255.0
借用3比特划分子网的B网的子网掩码为:255.255.224.0(11111111 11111111 11100000 00000000)
6.3.2 子网划分示例
子网201.2.3.0,255.255.255.0被子网掩码255.255.255.192(11111111 11111111 11000000 00000000)划分为4个等长的子网
201.2.3.0-201.2.3.63
201.2.3.64-201.2.3.127
201.2.3.128-201.2.3.191
201.2.3.192-201.2.3.255

6.3.3 路由怎么确定转发到哪个子网
将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址
如:目的ip地址为172.32.1.112,子网掩码255.255.254.0

子网地址:172.32.0.0(子网掩码:255.255.254.0)
6.4 一个C类子网借用3位划分子网举例

7 CIDR和路由聚合
7.1 简介
7.2 示例
7.3 CRID的优点
由于Prefix可以任意长度,所以可以简单的自由划分任意大小的子网。也可以把多个子网合并成一个大的子网。
7.4 路由聚合示例
7.5 最长前缀匹配优先
如果,在路由转发表中匹配到多条记录,选取最长前缀(最具体)的那个范围
如路由转发表有下面两条记录
200.23.16.0/20 接口1
200.23.18.0/23 接口2
目标ip200.23.18.1,两个都可以匹配上,有限选择最长前缀的,所以选择接口2
8 DHCP协议
8.1 简介
DCHP(Dynamic Host Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网
8.2 主机获取ip地址
主机获取ip地址有两种方式
硬编码-静态配置
动态主机配置协议-DHCP: Dynamic Host ConfigurationProtocol,从服务器动态获取
8.3 静态配置
默认网关就是注意直接连接的路由器的公网ip地址,通过它可以连接网络

8.4 DHCP动态获取
8.4.1动态主机配置协议-DHCP简介

8.4.3 路由器和DCHP
现在的家用路由器都具备提供DHCP服务的能力,可以说现在的家用路由器是DHCP服务器、DNS 服务器、NAT服务器的集合体。
默认情况下路由器的DHCP服务器是启动的,并不需要用户进行配置。DHCP服务器给你连接该路由器上面的计算机分配IP地址、DNS服务器地址和默认网关地址。
9 网络地址转换NAT
9.1 简介
现在,我们日常生活中,计算机连接网络都是在一个路由器下的子网,且分配的都是私有ip,私有ip是不能直接和公网ip进行通信的,需要进行网络地址转换
如下图,右侧本地家庭网络都是采用的私有ip,想要与Internet进行通信,需要路由器进行一次网络地址转换。
10.0.0.1,10.0.0.2,10.0.0.3全部转换为138.76.29.7。那么,怎么区分来自哪台计算机呢,采用端口号来区分

9.2 网络地址转换(NAT)
9.3 NAT的实现
9.4 示例

9.5 NET端口号范围
tcp/udp端口仅仅是个标识数字,没有硬件上的意义,范围0-65535,NAT就利用它解决IP地址不足的问题。
所以NET可以同时支持605535个多并行连接
9.6 NET穿透问题
9.6.1 说明
如下图,在内网有个服务,这个内网外的其它用户想要访问它,该怎么访问呢

9.6.2 解决方法
1)静态配置NAT
将特定端口的连接请求转发给服务器 ,如配置(138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000)
2)中继(如Skype)
NAT内部的客户与中继服务器建立连接
外部客户也与中继服务器建立连接
中继服务器桥接两个连接的分组

除了上面两种方法,还有其它的一些方法就不介绍了
计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议的更多相关文章
- <再看TCP/IP第一卷>关于网络层及协议细节---ICMP协议几个要注意的地方
在TCP/IP协议族中,ICMP协议是一个介于网络层和传输层中间的一个协议,许多材料都会认为ICMP是网络层的一个部分,但是ICMP协议的报头是被包裹在IP协议之中的,而UDP协议又可以被ICMP协议 ...
- IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...
- 计算机网络(二),TCP/IP四层模型常见协议
目录 1.应用层协议 2.传输层协议 3.网络层协议 4.链路层协议 二.TCP/IP四层模型常见协议 1.应用层协议 (1)POP3 (2)FTP (3)HTTP (4)Telnet (5)SMTP ...
- 【网络协议】ICMP协议、Ping、Traceroute
ICMP协议 ICMP常常被觉得是IP层的一个组成部分,它是网络层的一个协议.它传递差错报文以及其它须要注意的信息.ICMP报文通常被IP层或更高层(TCP.UDP等)使用,它是在IP数据报内 ...
- 11.秋招复习简单整理之什么是ICMP协议,ICMP协议的功能是什么?
ICMP即 InternetControlMessageProtocol,是网络控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息指网络通不通.主机是否 ...
- TCP/IP协议和OSI协议
作为一个与网络密切相关的Web前端工程师,TCP/IP和OSI模型不可不知,至少要知道一下这些常识性知识,在这我做一下记录 TCP/IP协议簇: TCP/IP是一组协议的代名词,包括许多别的协议,组成 ...
- ICMP(Internet Control Message Protocol)网际控制报文协议初识
ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网 ...
- 【知识强化】第四章 网络层 4.3 IP
这节课我们来学习一下IP数据报的格式.那之所以把路由算法这一小节跳过呢,就是因为我们之后会要讲到路由的选择协议.那在路由选择协议这一块讲路由算法,我觉得是比较合适的.那我们先来看一下这节课要讲的知识. ...
- 网络协议 5 - ICMP 与 ping:投石问路的侦察兵
日常开发中,我们经常会碰到查询网络是否畅通以及域名对应 IP 地址等小需求,这时候用的最多的应该就是 ping 命令了. 那你知道 ping 命令是怎么工作的吗?今天,我们就来一起认识下 pi ...
- 网络协议 12 - HTTP 协议
日常开发中,我们经常会碰到查询网络是否畅通以及域名对应 IP 地址等小需求,这时候用的最多的应该就是 ping 命令了. 那你知道 ping 命令是怎么工作的吗?今天,我们就来一起认识下 ping 命 ...
随机推荐
- 图解S.O.L.I.D原则
如果您熟悉面向对象的编程,那么您可能已经听说过SOLID原理. 这五项软件开发原则是构建软件时要遵循的准则,以便于扩展和维护. 它们受到软件工程师Robert C. Martin的欢迎. 在线上有很多 ...
- Codeforces Round #834 (Div. 3) A-G
比赛链接 A 题目 知识点:模拟. 确定开头字母,然后循环比较即可. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 题解 #include <bits/stdc++.h> # ...
- 模块/collections/random/time/datetime
内容概要 模块--包的具体使用 编程思想介绍 软件开发--目录规范 常用模块介绍--collections模块 常用模块介绍--time.datetime 常用模块介绍--random 1.包的具体使 ...
- Redux 的困扰与如何技术选型
文章的名字我想了很久,备选项有"我再不推荐 Redux","Redux 为什么令我头疼","Redux 进化启示录"等等.通过这一系列名字我 ...
- 初学RNN
FNN 定义 FNN(Feedforward Neural Network),即前馈神经网络,它是网络信息单向传递的一种神经网络,数据由输入层开始输入,依次流入隐藏层各层神经元,最终由输出层输出.其当 ...
- WeetCode2滑动窗口系列
系列文章目录和关于我 一丶[无重复字符的最长子串](3. 无重复字符的最长子串 - 力扣(Leetcode)) 思路: 维护一个窗口,窗口中不存在重复的字符,窗口右边界从第一个字符移动到最后,使用一个 ...
- mybatis中xml的sql之test中文报错
在mybatis中sql,test中文报错( java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常).需加.tostring(). <if test ...
- 网络I/O模型 解读
网络.内核 网卡能「接收所有在网络上传输的信号」,但正常情况下只接受发送到该电脑的帧和广播帧,将其余的帧丢弃. 所以网络 I/O 其实是网络与服务端(电脑内存)之间的输入与输出 内核 查看内核版本 : ...
- Blazor 部署 pdf.js 不能正确显示中文资源解决办法
在Blazor项目嵌入 pdf.js 时不能正确显示中文,浏览器F12显示如下错误 错误 l10n.js /web/locale/locale.properties not found. 我找到了解决 ...
- LeetCode HOT 100:在排序数组中查找元素的第一个和最后一个位置
题目:34. 在排序数组中查找元素的第一个和最后一个位置 题目描述: 给你一个递增数组,和一个目标值target,最终返回数组中第一次出现target和最后一次出现target的下标.如果该数组中没有 ...