您的位置:首页 > 理论基础 > 计算机网络

网络协议 -- 基础概念

2018-01-05 18:53 423 查看

一、TCP/IP协议栈



二、IP地址、子网掩码、网关

2.1 IP地址及分类

IP地址相当于互联网上的门牌号, 计算机在启动的时候可以从磁盘(无盘系统例外)上读取该主机的IP配置。IP地址由4个字节(也就是32位)的二进制码组成,包含了
网络号( net-id )
主机号( host-id )
。但现实中,我们经常还需要再继续划分
“子网”
,这时就需要借用主机号的一部分充任子网号,这样IP地址也就可以看成由
标准网络号、子网号、主机号
3部分组成的了,即
IP地址=标准网络号+子网号+主机号


网络号、子网号、主机号三者间的关系,形象的描述如下:假设你的住址IP是
武汉市文治街16号
,那么,

IP地址 = 武汉市文治街16号

网络号 = 武汉市

子网号 = 文治街

主机号 = 16号

IP地址种类二进制组成(前缀位+网络位+主机位)IP范围网络数主机数/网络
A类地址
0
+7位网络号+24位主机号
1.0.0.0 - 127.255.255.25527−227−2224−2224−2
B类地址
10
+14位网络号+16位主机号
128.0.0.0 - 191.255.255.255214−1214−1216−2216−2
C类地址
110
+21位网络号+8位主机号
192.0.0.0 - 223.255.255.255221−1221−128−228−2
D类地址
1110
+多播地址(用于多播)
224.0.0.0 - 239.255.255.255--
E类地址
1111
+保留位(不开放, 保留使用)
240.0.0.0-249.255.255.255--
从表中可以看出,A类IP的第1位(二进制位)必须是0,所以A类IP的第一个整数的范围是
0000 0000 ~ 01111 11111
,转换为十进制就是
0 ~ 127
,以此类推。

关于网络数的解释

网络数就是一种网络的子网数, 比如A类地址, 可以分为多少个子网。看表格可以推出网络数的计算公式为: 2网络号位数2网络号位数。

规定网络地址全为
0
的IP地址是保留地址,意思是“本网络”。

在A类地址中,实际上
0.0.0.0
是不指派的,而可以指派的最小网络是
1.0.0.0
;网络地址为
127
的A类IP地址保留作为本地软件环回测试本主机的进程之间的通信(比如常用的
127.0.0.1
但实际上网络地址为
127
的都可以用作本地环回地址
)。所以A类地址网络数为 27−227−2。

在B类地址中,实际上
128.0.0.0
是不指派的,而可以指派的最小网络是 `128.1.0.0,所以B类地址网络数是 214−1214−1。

在C类地址中,实际上
192.0.0.0
是不指派的,而可以指派的最小网络是 192.0.1.0,所以C类地址网络数是 221−1221−1。

关于主机数的解释

主机数就是一个子网里面可以容纳多少台主机。看表格可以推出主机数的计算公式为:
2^主机号位数-2
。主机号全为0表示该网络,而主机号全为1表示广播地址,所以要排除掉这两个。比如A类地址
1.0.0.0
表示主机所在的网段的网络地址,
1.255.255.255
为该网段的广播地址。

2.2 私有IP地址

经常可以看到
192.168.1.101
这类的IP地址, 这些是私有IP地址, 专用地址, 也就是局域网内使用的的IP地址。

公网IP地址是需要向有关部门申请备案的,私有IP地址不用申请, 但是仅限内网使用, 也节约公网IP。

IP地址种类私有IP范围
A类地址10.0.0.0 - 10.255.255.255
B类地址172.16.0.0 - 172.31.255.255
C类地址192.168.0.0 - 192.168.255.255
路由器看到专用地址就不转发,所以说专用地址作为目的地址是不可能在因特网上传送的。专用IP地址也可叫做可重用地址。那好,问题来了,如果配置了这些专用地址的主机想和因特网上的主机通信,怎么办呢?NAT(network address translation: 网络地址转换)在这种情况下就应运而生了。NAT就是将这种地址转换成有效的外部全球IP地址,使得整个专用网只需要一个全球IP地址就可以与因特网联通。

2.3 子网掩码

IP地址=标准网络号+子网号+主机号
。从IP分类可以很容易确定“标准网络号”,
32bit
的IP地址除去前面的“标准网络号”之后,剩下的就是“子网号”和“主机号”,那么怎么确定“子网号”和“主机号”了? 这就需要借助
“子网掩码”
了。子网掩码也是一个32bit(
xxx.xxx.xxx.xxx
)的值,其中值为1的bit留给“标准网络号”和“子网号”,为0的bit留给“主机号”。我们可以将子网掩码和IP地址进行二进制
“与运算”
,通过得到的结果来确定“子网号”。

以C类IP地址为例,对于规范的C类IP地址来说,规范子网掩码为
255.255.255.0
,即用32比特IP地址的前24比特标识网络号,后8比特标识主机号。因而,每个C类网络下共可容纳254台主机(28−228−2)。 如今,我们先思索借用2比特的主机号来充任子网络号的情形。

C类网络地址
210.31.233.0
,我们借用2bit的主机号来充当子网号,子网的数目为22−222−2(子网号无法全为0或1,所以减2).



为了借用原来8位主机号中的前2位充任子网络号,采用了新的非规范子网掩255.255.255.192。

采用了新的子网掩码后,借用的2位子网号可以用来标识两个子网:01子网和10子网(子网号无法全为0或1,因而00、11子网无法用)。

对于上图的01子网来说,其网络号的点分十进制的方式为:
210.31.233.64
,该子网的最小IP地址为:
210.31.233.65
,最大IP地址为:
210.31.233.126
(主机号全为1位广播地址),共可容纳62台主机。对该子网的直接广播地址为:
210.31.233.127
(主机号全为1)。

经常见到像
192.168.1.0/24
这样的写法,它的意思是网络号为
192.168.1.0
;子网掩码为24位,即
111111111 111111111 111111111 00000000
,转为点分十进制就为
255.255.255.0
,没有借用主机号来充当子网号,可以拥有的主机数为2828-2.

2.3 网关的作用

你的住址IP是
武汉市洪山区文治街16号
,你的父母只允许你和文治街的小朋友(同一个子网)一起玩耍,如果你想要去和别的街道(别的子网)的小朋友玩耍,你就需要经过你的父母的同意,由你的父母带你过去,这时候你的父母就充当了网关的角色,没有你的父母,你就不能和其他街道(其他子网)的小朋友玩耍。

相关文章:

WebRTC – IP地址

网络地址结构、转换函数介绍

debain 配置IP和DNS

三、包的封装(encapsulation)与解封装(Demultiplexing)

当应用程序使用网络传送数据时,数据按照协议栈从上到下的顺序,逐次通过每一层。其中每一层对收到的数据都要增加一些首部信息(有时还增加尾部信息)。最终生成一串比特流通过以太网来传输,我们称这串比特流叫帧。

如图:



当数据报到达链路层时,链路层也要对IP数据包封装进行包装。链路层也要对IP数据包封装的方式主要有
以太网IP数据包封装
(RFC894)、
IEEE 802 IP数据报封装
(RFC1042)两种,最常使用的封装格式是以太网IP数据包封装(RFC894)。下图显示了这两种不同形式的封装格式:



从图中可以看到
以太网封装
限制了数据帧的最大长度为1500字节,这个限制叫做MTU,最大传输单元(详见第四节)。

接收端收到帧之后,按照和上面相反的顺序(协议栈从下到上)来解包,依次解析每一层加入的头部(或尾部),最终将原始数据传给最上层应用程序。

如图:



因为传输层的TCP、UDP、ICMP等都要向网络层IP协议传送数据,这样在IP协议层解包的时候,需要知道这个包对应的上层协议是哪一个,因此IP协议必须在生成的IP首部加入某种标识,以表明数据的上一层的具体协议。为此,IP在首部中存入了一个长度为8bit的数值,称作协议域。常见的IP协议号有:

1表示ICMP协议,2表示IGMP协议,6表示TCP协议,17表示UDP协议。

完整的IP协议号见:IP协议号列表

四、MTU

前面第三节提到了以太网封装限制了数据帧的长度为1500字节,这个限制是在链路层封装IP数据报时作的。如果IP层的数据报比链路层的这个MTU值大,那么IP层就需要分片(英文:fragmentation),把数据报分成若干片,保证每一片的大小都小于MTU值。

windows系统修改MTU值

查询当前MTU值

netsh interface ipv4 show subinterfaces




修改MTU值

netsh interface ipv4 set subinterface "本地连接" mtu=1480 store=persistent


文章参考:

https://m.vipcn.com/a/360973/

https://ahaochan.github.io/posts/IP_address,_subnet_mask,_gateway_Introduction.html

https://www.zhihu.com/question/20717354

《TCP/IP详解 卷1:协议》在线阅读地址:http://www.52im.net/topic-tcpipvol1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: