linux基础17TCP/IP网络基础(下)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础17TCP/IP网络基础(下)相关的知识,希望对你有一定的参考价值。

一、IP地址

1、IANA

  IANA 就是指(Internet Assigned Numbers Authority) ,Internet号分配的机构。负责对IP地址分配规划以及对TCP/UDP公共服务的端口定义。

2、IP地址的基本格式

  IPv4使用32位(4字节)地址因此整个地址空间中有4,294,967,296(2^32)个地址,也就是近43亿个地址。IPv4地址在计算机内部是以二进制形式表示,是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。

  IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。

例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

地址格式为IP地址=网络地址+主机地址 或 IP地址=网络地址+子网地址+主机地址。 

3)、子网掩码

    子网掩码的作用就是获取主机IPv4地址中的网络地址信息

用于区别主机通信不同情况,选择不同路由

子网掩码与IP地址一样,也是由32位二进制组成的。它被分成“网络ID”和“主机ID”两部分。

“网络ID”部分全是“1”;“主机ID”部分全是“0”表示。

4)、IP地址分类 

IPv4地址的基本分类

五个类别:A、B、C、D和E。

A、B和C类用于单播通信中设备IP地址分配,D类属于组播地址,用于组播通信,E类是保留地址。

它们均有不同的网络类别(也就是“网络ID”)长度,用来标识不同的网络类别,剩余的部分被用来识别网络内的主机(称之为“主机ID”)。

“网络ID”用来确定每类网络中有的网络数

“主机ID”则用来确定每个网络中有的IP地址数

       最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID

      同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。


大:0 000 0000-0 111 1111: 0-127     #A类网

中:10 00 0000-10 11 1111: 128-191    #B类网

小:110 0 0000-110 1 1111: 192-223    #C类网

   1110  0000-1110 11111: 224-239   #组(多)播地址

   1111  0000-1111 1111: 240-255    #留作实验使用

主机位全0:网络地址

主机位全1:广播地址

A:1-126  #127段网络做回环测试

    2^7-2个网络:126个网络

    每个网络的主机:2^24-2

B:128-191

     2^14个网络

     每个网络中的主机:2^16-2

C:192-223

     2^21个网络

     每个网络中的主机:2^8-2 

1. A类IP地址 

       A类地址的网络ID为1~126。

       一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0,默认网络掩码为:255.0.0.0;可用的A类网络有126个,每个网络能容纳1亿多个主机。 


注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。

2. B类IP地址 

     B类地址的网络ID为128~191。

     一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255,默认网络掩码为:255.255.0.0;可用的B类网络有16382个,每个网络能容纳6万多个主机 。 

3. C类IP地址 

    C类地址网络ID为192~223。

     一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255,默认网络掩码为:255.255.255.0;C类网络可达209万余个,每个网络能容纳254个主机。 
4. D类地址用于多点广播(Multicast)。 
    D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 
5. E类IP地址 
     
以“11110”开始,为将来使用保留。 



127.0.0.1是代表本身呆板的回路地点,不管是不是联网,本身呆板皆是127.0.0.1。 而127段是保存区段,127.0.0.2实际中上基础用没有到那个IP,只是实际上的地点 那个应当是目前收集装备的一种特]

127.0.0.1是代表自己机器的回路地址,无论是否联网,自己机器都是127.0.0.1。
而127段是保留区段,127.0.0.2现实中上根本用不到这个IP,只是理论上的地址
而又无法由DHCP得到IP时(网络断开、DHCP服务器、路由器失效等等),就会自动分配一个169.254段的IP给自己。
有类/无类IPV4网络

有类

    A、B、C、D、E类IPv4地址

    每类IPv4地址都有固定长度的网络ID,有固定的子网掩码

    大大降低了IPv4地址的利用率和可用的网络数

无类(VLSM 可变长子网掩码)

    每个IPv4地址的网络ID长度都可以不固定

    通常把以前的有类网络称之为标准网络,而把网络ID长度大于对应标准网络的网络称之为“子网”


网络地址

     用来标识一个有类或无类网络的地址,是对应网络或子网的第一个IPv4地址,即“主机ID”部分全为0的IPv4地址

主机地址

    除了网络地址和广播地址这两个一头一尾的地址外,中间的其他所有地址都是主机地址,可以直接分配给主机使用

广播地址

    是一个有类或无类网络中的最后一个IPv4地址,即“主机ID”部分全为1的IPv4地址

IPv4地址前缀表示形式

    在一个IPv4地址后面先加上一个斜杠(/),然后在这个斜杠后面直接写出该地址所在网络的“网络ID”,或者“子网掩码”长度

如192.168.1.10/24代表的是一个标准的C类网络IPv4地址,而10.1.0.10/8则代表了一个标准的A类网络IPv4地址


私有IP地址

在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下: 

A类地址:10.0.0.0/8(10.0.0.0,255.0.0.0)    1个网络  每个网络的主机数:2^24 -2

B类地址:172.16.0.0/12(172.16.0.0,255.240.0.0)

        172.16.0.1--172.31.255.254            16个网络  每个网络的主机数:2^20 -2

C类地址:192.168.0.0/16(192.168.0.0,255.255.0.0) 256个网络  每个网络的主机数:2^16 -2

全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

查阅百度知道里一些说法如下:

1. 严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由 表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

2. 网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。

它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。

0.0.0.0 表示监听本地所有ip地址,其他电脑是可以访问的,并且修改ip不受响。
127.0.0.1 表示只监听本机回环地址,只能本机访问。
x.x.x.x ip地址,是只监听这个ip。修改ip后程序就不能监听了。需要手动修改软件监听地址才可以用
localhost 只是 127.0.0.1 的别

169.254开头的IPv4地址

   “自动专用IP地址”,其地址范围为:169.254.0.0/16,子网掩码为255.255.0.0。

127.0.0.1地址

   “环回地址”(Loopback Address),是主机IP堆栈内部的IPv4地址,主要用于网络软件测试以及本地机进程间通信;在IP网络中就是用来测试主机TCP/IP协议是否工作正常v0.0.0.0地址

0.0.0.0地址

    代表所有IPv4地址,常用于默认路由配置,或者代表整个不确定的IP地址范围


VLSM子网划分:

   把原来标准网络IPv4地址中的“网络ID”部分向“主机ID”部分借位,

把一部分原来属于“主机ID”部分的位变成“网络ID”的一部分(通常称之为“子网ID”)

原来的“网络ID”+“子网ID”=新“网络ID”

子网ID”长度决定了可以划分子网的数量

     全0子网:“全0子网”代表的是对应子网的“子网ID”部分各位都是0,是第一个子网

     全1子网:“全1子网”代表的是对应子网的“子网ID”部分各位都是1,是最后一个子网

技术分享

二进制数的逻辑运算

二进制数的逻辑运算包括

            逻辑加法(“或”运算)

            逻辑乘法(“与”运算)

            逻辑否定(“非”运算)

            逻辑“异或”运算

(1)逻辑“或”运算

又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:

0+0=0或0∨0=0

0+1=1或0∨1=1

1+0=1或1∨0=1

1+1=1或1∨1=1

可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。

(2)逻辑“与”运算

又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:

0×1=0或0·1=0或0∧1=0

1×0=0或1·0=0或1∧0=0

1×1=1或1·1=1或1∧1=1

可见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。

(3)逻辑“非”运算

又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下:

技术分享

可见,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。

4)逻辑“异或”运算 

“异或”运算,常用符号“技术分享”或“技术分享”来表示,其运算规则为:

0技术分享0=0 或 0技术分享0=0

0技术分享1=1 或 0技术分享1=1

1技术分享0=1 或 1技术分享0=1

1技术分享1=0 或 1技术分享1=0

可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1

以上仅就逻辑变量只有一位的情况得到了逻辑“与”、“或”、“非”、“异或”运算的运算规则。

当逻辑变量为多位时,可在两个逻辑变量对应位之间按上述规则进行运算

特别注意,所有的逻辑运算都是按位进行的,位与位之间没有任何联系,即不存在算术运算过程中的进位或借位关系。下面举例说明。

【例1.1】 如两变量的取值 X=00FFH,Y=5555H

Z1=XYZ2=XYZ3=技术分享Z4=X技术分享Y的值。

解:X=0000000011111111

Y=0101010101010101

则:Z1=0000000001010101=0055H

Z2=0101010111111111=55FFH

Z3=1111111100000000=FF00H

Z4=0101010110101010=55AAH

技术分享


子网掩码是一个网络或一个子网的重要属性

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。

路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。

若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

技术分享


练习:

1、一公司原来使用的是192.168.1.0/24这个标准网络,现在想为公司中每个部门(共6个)单独配置一个子网,其中最大一个部门要分配IPv4地址的数量不超过25个。求每个子网的子网掩码、地址范围、网络地址和广播地址。

子网数: 2^2<6<2^3

子网掩码为:/27,   255.255.225.224

每个子网的可用主机数:2^5 -2=30>25

每个子网的地址范围:0-31,32-63,64-95,96-127,128-159,160-191,192-223,224-255

就是说192.168.1.30/27和192.168.1.60/27属于不同网络,要三层路由能才互通


2、IPv4地址为202.112.14.137,子网掩码为255.255.255.224,求:所在子网的网络地址和广播地址各是什么?

IP:   202.112.14.1000 01001

掩码:255.255.255.1110 0000

子网:202.112.14.1000 0000   

子网数:2^3=8

每个子网的地址范围:0-31,32-63,64-95,96-127,128-159,160-191,192-223,224-255

答案:网络地址:202.112.14.128

      广播地址:202.112.14.159


超网(supernetting)

子网划分是把一个网络划分成为多个不同的网络,而构造超网则是把网络前缀都相同的连续的ip地址组成一个“CIDR地址块”。

其中CIDR(Classless Inter_Domain Routing)是无分类域间路由选择。使用超网能够减少路由表中的项目、减轻路由表的负担。

CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,把32位的IP地址划分为两个部分。如:128.14.35.7/20是某个CIDR地址块中的一个地址,其前20位是网络前缀(用下划线表示的部分),后面的12位为主机号:

128.14.35.7/20= 10000000 00001110 00100011 00000111

其地址掩码,也叫子网掩码是:11111111 11111111 11110000 00000000 (20个连续的1),即斜线后面的数字就是地址掩码中1的个数。

若某个公司拥有地址块 206.0.64.0/18 ,即相当于有64个C类网络。再举个简单的例子:

192.168.0.0/24   192.168.1.0/24   192.168.2.0/24   192.168.3.0/24  这四个网络,通过CIDR可以汇总成一个超网192.168.0.0/22 ,因为这四个网络 的前22 位网络号相同。  呵呵,看明白了吗?

就是向网络位借主机位咯,增加主机数,实现一个网络内超过254个主机


主机名:FQDN(Full Qulified Domain)

       完全合格域名/全称域名,是指主机名加上全路径全路径中列出了序列中所有域成员

全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式

从全域名中包含的信息可以看出主机在域名树中的位置。

DNS解析流程:首先查找本机HOSTS表,有的直接使用表中定义,没有查找网络连接中设置的DNS 服务器由他来解析。

www.magedu.com


以上是关于linux基础17TCP/IP网络基础(下)的主要内容,如果未能解决你的问题,请参考以下文章

linux基础17网络属性配置详解

Linux 下互联网络编程的基础知识

Linux C高级编程——网络编程基础

linux基础-TCP/IP协议篇

Linux:运维基础网络知识(下)

《Linux高性能服务器编程》学习总结——TCP/IP协议族