目录
1、ISO/OSI七层模型简介
现在通用的网络模型是TCP/IP四层模型,它是在ISO/OSI七层模型的基础上进行优化后产生的。因此,学习ISO/OSI七层模型是学好计算机网络的基础。(如下的表和图要牢记,并结合实际生活去理解,想深入理解可以查阅《计算机网络:自顶向下方法》)
应用层 | 给用户提供服务的接口 |
表示层 | 数据的表现形式、特定功能的实现如-加密 |
会话层 | 对应用会话的管理、同步 |
传输层 | 可靠与不可靠的传输、传输前的错误检测、流控 |
网络层 | 提供逻辑地址、选路 |
数据链路层 | 成帧、用MAC地址访问媒介、错误检测与修正 |
物理层 | 设备之间的比特流的传输、物理接口、电气特性 |
2、TCP/IP四层模型
IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。P地址通常用“点分十进制”表示成
(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进
制数(01100100.00000100.00000101.00000110)。
①、IP地址=网络号+主机号
IP地址由网络号与主机号构成,其中主机号为全0。
②、IP地址分等级的地址结构
分为A、B、C、D、E五类,描述如下:
A类地址的第一位总是0,8位分配给网络号,24位分配给主机号。
B类地址的前两位总是10,16位分配给网络号,16位分配给主机号。
C类地址的前三位总是110,24位分配给网络号,8位分配给主机号。
D类地址的前四位总是1110。用于组传播。(一对多的通信)
E类地址的前五位总是11110。用于科研保留。(为保留地址,供以后使用)
注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。
且网络号=前面数字位(0,10,110,1110,11110等)+网络地址,通过网络地址可以计算出最大的网络数量,从主机号的位数可以计算出某一个网络下最大的主机数量
③、广播地址
广播地址通常称为直接广播地址,是为了区分受限广播地址。
广播地址与普通IP地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有
主机都能收到该广播消息。
④、有效地址A,B,C类地址的范围
网络类别 | IP地址范围 | 最大子网数 | 最大主机数 | 默认掩码 | 私有IP地址范围 |
A | 1.0.0.0 到126.255.255.255 | 126(2^7-2) | 2^24-2 | 255.0.0.0/8 | 10.0.0.0到10.255.255.255 |
B | 128.0.0.0到191.255.255.255 | 16384(2^14) | 2^16-2 | 255.255.0.0/16 | 172.16.0.0到172.31.255.255 |
C | 192.0.0.0到223.255.255.255 | 2097152(2^21) | 2^8-2 | 255.255.255.0/24 | 192.168.0.0到192.168.255.255 |
注:A类最大主机数=2^24-2的原因,1.255.255.255代表当前网络的直接广播地址,1.0.0.0代表网络本身,这两者都不能分配主机;同理B,C类IP也具有类似的特点。A类最大网络数=2^7-2的原因,首先A类的网络地址占7位,因此理论上应该有2^7个不同的网络,但IP地址0.x.x.x不属于A类地址,而回环地址127.x.x.x表示本机的地址。因此要减去这两个。上述计算出的最大子网数及最大主机数是基于默认掩码计算的,如果不是默认掩码,则不成立。
⑤、255.255.255.255
该IP地址是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据包;若发送受限广播数据包,则不能收到。
注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。
⑥、0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知的IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
⑦、回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用得最多的是127.0.0.1
⑧、A、B、C类私有地址
私有地址也叫专用地址,它们不会在全球使用,只具有本地意义,此地址不能直接同公网进行通信,需要转换为普通IP地址后才能通信,但私有地址可以互相重叠,可以有效地保护公网IP的数量,而且不需要花钱购买。
⑨、网路地址
主机号全为0的地址是网络地址,网络地址同广播地址一样不能分配给主机。
3、子网掩码
①、点分十进制表示法
二进制转换十进制,每8位用点号隔开
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0
②、CIDR斜线记法
IP地址/n
例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。
注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2^(32-n)-2(-2的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址)。
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个位1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点分十进制来表示的。子网掩码一般高位全为1,低位全为0,不能出现0和1交错出现的现象。如以下子网掩码就不推荐使用:
11111111 11111111 11111111 10011010
如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
- 通过子网掩码,就可以判断两个IP在不在一个局域网内部
- 根据子网掩码可以分割网络号+主机号
-
根据IP地址和子网掩码求网络地址和广播地址
实例:一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址
首先,子网掩码255.255.255.224转化为二进制为:
11111111 11111111 11111111 11100000
可见高位有27个1,低位有5个1,即网络号有27位,主机号有5位。
IP地址&子网掩码(即做位相与运算):
11001010 01110000 00001110 10001001 #IP地址 202.112.14.137
11111111 11111111 11111111 11100000 #子网掩码 255.255.255.224
#上面两者做相与运算得网络地址
11001010 01110000 00001110 10000000 #得到网络地址 202.112.14.128
#子网掩码中代表主机号位数的0全换作1得广播地址
11001010 01110000 00001110 10011111 #得到广播地址 202.112.14.159
#主机的IP范围为:202.112.14.129到202.112.14.158,即总共能分(158-129+1)=30台主机
4、端口的作用
端口号可以想象成计算机的收件人,这个收件人是个抽象的概念。比如,通过IP我们可以确定对方服务器在网络中的位置,但服务器开启了很多服务,比如说网页服务,文件传输服务,邮件服务等,如果你想该服务器为你提供网页服务,你就得指定“收件人”为网页服务。端口号标称服务器上开启的服务并标明客户访问的目标服务。因此常见的对外服务的端口号应该是固定的,如果更改了,客户端就不知道怎么指定对应的服务了。当然本地服务是可以更改的,因为更改信息本地是知道的。TCP/IP协议中的端口,端口号的范围从0到65535(0到2^16-1即总共2^16方个端口)
①、常见的端口号:(应该当做常识)
服务(协议)名称 | 客户端端口号 | 服务端端口号 |
FTP(文本传输协议) | 20 | 21 |
SSH(安全shell协议) | 22 | 22 |
telnet(远程登录协议) | 23 | 23 |
DNS(域名系统) | 53 | 53 |
http(超文本传输协议) | 80 | 80 |
SMTP(简单邮件传输协议) | 25 | 25 |
POP3(邮局协议3代) | 110 | 110 |
HTTPS(超文本传输安全协议) | 443 | 443 |
②、netstat命令
查看本机启用的端口(在linux及windows中都通用)
netstat -an
选项:
-a: 查看所有连接和监听端口
-n: 显示IP地址和端口号,而不显示域名和服务名
小知识:dos的清屏命令:cls linux的清屏命令:clear(ctrl+l)
在windows中使用netstat命令有:
5、DNS的作用
在互联网中,通过IP地址来进行通信,IP地址用点分十进制表示,记忆起来还是不太方便,人类对域名更加敏感,如:http://www.imooc.com/,因此现在的网络通信都是通过域名来访问的,那么这中间的过程是什么样的呢?其实,域名本质上是与某一IP对应的,当在浏览器中键入域名时,其本质访问的是域名对应的IP地址。那么电脑是怎么知道域名所对应的IP的呢,在windows中主要有两种方法:
- 在windows中的C:\Windows\System32\drivers\etc下有个名为hosts的文件夹,里面可以人为地添加域名对应的静态IP,并且此IP与域名的对应关系的优先级高于DNS服务器。(经常用于软件的联网破解)
- 采用DNS域名解析服务器,通过分布式的管理域名与IP地址,方便地解析域名,不会像host文件那样,当记录信息太大,电脑或服务器可能会崩溃。
早期的hosts文件解析域名具有名称解析效能下降,主机维护困难的缺点,而DNS服务器对域名实施层级化的管理,并采用分布式的存储信息的方法,解析效能大幅提高,主机维护方便。成为了现在普遍的域名解析方法。
①、DNS的工作过程
客户机向DNS服务器发送域名查询请求,DNS服务器告知客户机web服务器的IP地址,客户机与web服务器通信。
DNS服务器一般由网络运营商提供,如移动,电信,网通等,在windows中可以通过ipconfig命令来查询DNS服务器IP。
②、域名的空间结构
域名是通过分层管理的,这就涉及到域名空间结构。处于根域的"."的DNS服务器全球只有13台,它负责管理edu,gov等顶级域,顶级域包括组织域与国家或地区域。每个顶级域又负责管理二级域,如:imooc,Microsoft,IBM等,这是个人或企业向域名分配组织申请购买的。三级域名又称主机域名,三级域名是申请二级域名后自己命名的,但一般会使用www等;
三级域名+二级域名+顶级域名=完整域名 (并且域名是全球唯一的)
③、DNS的查询过程
④、DNS的查询方式
从查询方式上分
-递归查询
·要么做出查询成功响应,要么作出查询失败的响应.一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机
-迭代查询
·服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其它DNS服务器的地址
从查询内容上分
-正向查询
由域名查找IP地址
-反向查询
由IP地址查找域名(一般只有邮件服务器才需要反向查询)
6、网关的概念
①、网关的作用
- 网关(Gateway)又称网间连接器、协议转换器
- 网关在网络层以上实现网络互连,是最复杂的网路连接设备,仅用于两个高层协议不用的网络互连。
- 网关既可以用于广域网互连,也可以用于局域网互连
- 网关是一种充当转换重任的服务器或路由器
在上图中,连接在同一个交换机上的主机之间是通过网卡的mac地址实现互相访问的,交换机是处在同一个网段的主机之间实现互访的工具;而路由器或者专门作为网关的服务器是实现不同网段的主机之间数据互访的工具。某个网段的网关会占用一个该网段的一个IP地址。网关将该网段的某个主机的内网IP(即私有IP,不同网段可以采用相同的内网IP)转换为公网IP,然后传递到目标网段的网关,目标网段的网关再将数据分组传递到目标主机,当然这中间可以进行不止一次的网关传递。
参考链接: