常见面试题目:
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
对于TCP面向字节流和UDP面向数据报的理解
UDP是面向报文的,发送方的UDP对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层,
也就是说无论应用层交给UDP多长的报文,它统统发送,一次发送一个。而对接收方,接到后直接去除首部,交给上面的应用
层就完成任务了。因此,它需要应用层控制报文的大小TCP是面向字节流的,它把上面应用层交下来的数据看成无结构的字节
流来发送,可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送
就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小。
通过给出IP地址和掩码来计算相关信息
ip地址分类
IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。
一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。
1. A类地址
A类地址的表示范围为:1.0.0.1~126.255.255.255,默认网络屏蔽为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,
后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。
127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。
0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。
一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。
每个A类地址理论上可连接16777214<256*256*256-2>台主机(-2是因为主机中要用去一个网络号和一个广播号),Internet有126个可用的A类地址。
A类地址适用于有大量主机的大型网络。
2. B类地址
B类地址的表示范围为:128.0.0.1~191.255.255.255,默认网络屏蔽为:255.255.0.0;B类地址分配给一般的中型网络。
B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,
这时你将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。
每个B类地址可连接65534(216-2, 因为主机号的各位不能同时为0,1)台主机,Internet有16383(2 14-1)个B类地址(因为B类网络地址128.0.0.0是不指派的,
而可以指派的最小地址为128.1.0.0[COME06])。
3. C类地址
C类地址的表示范围为:192.0.0.1~223.255.255.255,默认网络屏蔽为:255.255.255.0;C类地址分配给小型网络,如一般的局域网,
它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。
一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”,即第一段数字范围为192~223。每个C类地址可连接254台主机,
Internet有2097152个C类地址段(32*256*256),有532676608个地址(32*256*256*254)。
RFC 1918留出了3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址。在这个范围内的IP地址不能被路由到Internet骨干网上;
Internet路由器将丢弃该私有地址。
IP地址类别 RFC 1918内部地址范围
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
使用私有地址将网络连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。
实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:
D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。D类地址范围:224.0.0.1到239.255.255.254 。D类地址用于多点播送。D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。
E类地址保留给将来使用。
连接到Internet上的每台计算机,不论其IP地址属于哪类都与网络中的其它计算机处于平等地位,因为只有IP地址才是区别计算机的唯一标识。所以,以上IP地址的分类只适用于网络分类。
在Internet中,一台计算机可以有一个或多个IP地址,就像一个人可以有多个通信地址一样,但两台或多台计算机却不能共享一个IP地址。如果有两台计算机的IP地址相同,则会引起异常现象,无论哪台计算机都将无法正常工作。
顺便提一下几类特殊的IP地址:
1.广播地址目的端为给定网络上的所有主机,一般主机段为全1
2.单播地址目的端为指定网络上的单个主机地址
3.组播地址目的端为同一组内的所有主机地址
4.环回地址127.0.0.1 在环回测试和广播测试时会使用
子网掩码详解
一般考试中都会给定一个IP地址和对应的子网掩码,让你计算:
1、子网数目
2、网络号
3、主机号
4、广播地址
5、可用IP
地址范围
关于正确有效的掩码:正确有效的掩码应该满足一定的条件,即把十进制掩码换算成二进制后,
掩码的左边部分一定要是全为1且中间不能有0出现。比方说将255.255.248.0转为二进制是11111111.11111111.11111000.00000000可以看到左边都是1,在1的中间没有0出现(0都在1的右边),这样就是一个有效的掩码。
我们再来看254.255.248.0,转成二进制是11111110.11111111.11111000.00000000,这不是一个正确有效的掩码,因为在1中间有一个0的存在。再来看255.255.249.0,转为二进制是11111111.11111111.11111001.00000000,这也不是一个正确有效的掩码,因为在1中间也有0的存在。
网络中有两个IP地址不可用:
不管是A类还是B类还是C类网络,在不划分子网的情况下,都是有两个IP地址不可用的:网络号和广播地址。
比如在一个没有划分子网的C类大网中用202.203.34.0来表示网络号,用202.203.34.255来表示广播地址,因为C类大网的IP地址有256个,
现在减去这两个IP地址,那么可用的IP地址就只剩下256-2=254个了。
如果题目问:把一个C类大网划分为4个子网,会增加多少个不可用的IP地址?可以
这样想:在C类大网不划分子网时,有两个IP地址不可用;
现在将C类大网划分为4个子网,那么每个子网中都有2个IP地址不可用,所以4个子网中就有8个IP地址不可用,用8个IP地址减去没划分子网时的那两个不可用的IP地址,得到结果为6个。
所以在将C类大网划分为4个子网后,将会多出6个不可用的IP地址。
综合实例分析:
已知172.31.128.255/18,试计算:
1) 子网数目, 2)网络号, 3)主机号, 4)广播地址, 5)可分配IP的起止范围
解: 1)算子网数目
首先将/18换成为我们习惯的表示法: 11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16位(16个0)来表示可分配的IP地址,本题中的掩码在B类默认掩码的基础上多出了两个表示网络号的1,这就是说是将B类大网划分为(11)2进制个子网,将(11)2进制转换为十进制就是4,所以本题中是将B类大网划分为4个子网。
2) 算网络号 用公式:将IP地址的二进制和子网掩码的二进制进行“与”(and)运算,得到的结果就是网络号。“与运算”的规则是1和1得1,0和1得0,1和0得0。 172.31.128.255转为二进制是10101100.00011111.10000000.11111111,掩码是:11111111.11111111.11000000.00000000 所以:
10101100.00011111.10000000.11111111
“与”
11111111.11111111.11000000.00000000
得:
10101100.00011111.10000000.00000000 ;
将10101100.00011111.10000000.00000000 转换为十进制就是172.31.128.0,所以网络号是172.31.128.0
3) 算主机号 也用公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“与”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。由于掩码是
11111111.11111111.11000000.00000000 ,所以其反码表示为00000000.00000000.00111111.11111111,再将IP地址的二进制和掩码的反码表示法进行“与”运算:
10101100.00011111.10000000.11111111
“与”
00000000.00000000.00111111.11111111
得:
00000000.00000000.00000000.11111111 ;
将00000000.00000000.00000000.11111111转换为十进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表示网络号再加上255就是这个IP地址了。
4)算广播地址 也用公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000,网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,我们将网络号172.31.128.0,转换为二进制是10101100.00011111.10000000.00000000,然后从右边数起,将14个0全部替换为1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是172.31.191.255
5)算可用IP地址范围 因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 到广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254