里面最主要的数据是计算机的硬件地址(MAC 地址)。每一块网卡都有这个地址
MAC地址是负责局域网(也就是内网)
如果在局域网当中(即在同一个网络当中),那么传递数据就不是靠IP,而是靠MAC地址(即,物理地址)
MAC地址也就是网卡映像地址,它是48位
里面最主要的数据是IP地址
作用:设备之间的比特流的传输、物理接口、电气特性
常见的设备:网线、网卡
作用:成帧、用MAC地址访问媒介、错误检测与修正
MAC地址是负责在局域网中传递的时候使用
作用:提供逻辑地址(IP地址,用来找到电脑,相当于门牌号)、确认IP地址、选择路径(比如,选择经过那些路由器)
IP地址是负责在互联网中传递的时候用
作用:可靠与不可靠的传输、确认端口号(端口号相当于收件人)、传输前的错误检测、流控(也就是如果网络卡了,可以要求缓一缓再传输;如果网络好了,可以要求快一些来传)
作用:对应用会话的管理、同步
起到一个判断的作用,判断从应用层发送的过来的东西会不会进行网络传递。例如,在电脑上面写了一个ppt,一点保存,数据同样会传到表示层(如果要加密,就在这一层加密),然后再传到会话层。会话层一看,这是个幻灯片,它根本就不是用来进行网络传递的,所以会话层就不会把这个ppt投递给传输层,而是直接把这个ppt交给硬盘,然后说把它存起来,然后硬盘保存一下就好了;如果是在电脑上写了一封邮件,会话层一看,说:我不会发,但是没事,有人会为我服务,于是就把这封邮件投给传输层。传输层接到这封邮件之后,开始写入发送邮件的应用的端口号和接收邮件的邮箱服务器的端口号,并且确定传输层的协议。然后再传递给网络层,网络层要做的就是把自己的IP地址写进去,把接收端的IP地址也写进去(因为发邮箱的时候我们已经填写了接收端的邮箱,把这个接收端的邮箱解析出来,就是接收端的IP地址。所以是知道IP地址的)。然后数据传给数据链路层,在里面写入了源MAC地址和目标MAC地址(IP是负责在互联网传递的,但是数据还是要在局域网中传递。通过一个局域网,然后跳到另一个局域网,一直传递过去)
数据的表现形式、特定功能的实现(比如,加密、压缩)
应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP
传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)
TCP是面向连接的,因为在两台主机建立TCP连接的时候,要进行三次握手。握手完了之后才可以发送数据,而且在发送数据的过程中,两台主机之间始终要保持交流。所以是面向连接的
握手三次原因:
从两军问题去理解
TCP类似于打电话:
1、发起方(客户端)开始的时候问接收方(服务端)你是某某某吗?
2、然后接收方说:是的,你是谁?
3、最后,发起方说:我是某某某
UDP类似于发短信:
我直接发过去,这样到达更快。但是,短信有可能会丢失
网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)
ping
就是利用了ICMP协议。ping
用来给指定的计算机发一个数据包,如果回应了,说明两者之间网络是通的。例如:
网络接口层与OSI模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接
地址解析协议(ARP)
工作在此层,即OSI参考模型的数据链路层
作用:把IP地址翻译层物理地址
举个例子,在cmd里面,我们执行:
arp -a
结果:
报头的固定长度是20字节
正是因为图中“选项”的那一部分存在,导致IPV4传输速度没有IPV6快。因为IPV4协议的报头是不固定的,有可能是20字节,也有可能比20个字节长。这时候,没接受一个数据包,都要检测这个数据包的报头有多长,才能把这个报头取下来,这非常浪费资源。在下一代IP协议,也就是IPV6,已经吸取了这个教训,报头已经采用了定长的长度
从图中可以看出,IP地址有32位,所以IP地址理论上可以有2的32次方个(但是并不是这么多都是有效的IP地址)
正是因为有那么大的数字,所以每8位用.
隔开,这样更好记
网络数就是指网段数
图中私有IP地址指的是不需要花钱买的(而所有的公网IP都必须花钱),任何人都可以随便设置,是用来做内网IP的。私有IP不能直接访问,需要跟公网IP进行转换才能访问(需要进过网关<一般都是路由器>进行IP地址转换,把内网IP翻译成真正的公网IP,这个公网IP是全球唯一的)
私有IP节约了大量的公网IP
在使用TCP/IP 协议的网络中,主机标识段host ID 为全0代表网络本身;全1 的IP 地址为广播地址
对于A类IP:
*.0.0.0
代表网络本身,不能分配;
*.255.255.255
代表当前网络的广播地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络 的网络号
我们发现A类和B类之间少了一个127开头的。因为127ip地址是保留回环地址,使用保留地址的网络只能在内部进行通信,而不能与其他网络互连
例如,1.0.0.0 和 2.0.0.0 代表不同的网络。不同的网络之间通信,需要使用路由器。路由器是用来跨网络通信的。但是在同一个网络之间通信,我们只需要使用交换机就行了
但是,如果第一个数相同,而后面的三个任意变化,则代表一个网段之内的不同主机
后两个数用标识同一个网段中的不同主机
最后一个数用标识同一个网段中的不同主机
A、B、C类是由不同的网络号和主机号构成,而这些都是由子网掩码决定的
用来确定IP地址当中哪一个数变化代表不同的网段,哪一个数变化代表一个网段中的不同主机(只要是和255对应的IP变化,就是不同的网段;只要是和0对应的IP变化,就是一个网段中的不同主机)
标准的子网掩码:255.0.0.0
、255.255.0.0
、255.255.255.0
注意:子网掩码不能和IP地址分开查看,它们两个必须一块查看
只要子网掩码中的1从左到右都是紧接着的,就是合理的子网掩码
例如:
我们发现,一个B类的IP地址,分给它的子网掩码却是C类的。但是,这是合理的子网掩码。说明,前三个数变化,代表是不同的网段,最后一个数变化,代表一个网段的不同主机
不合理的子网掩码的例子:
11111111.01111111.00000000.00000000
可以发现,第八个1和第十个1中间隔了一个0。所以这不是子网掩码
IP地址是一共有32位的长度,所以理论上是有2的32次方个不同的IP地址;但是,端口分为源端口和目的端口,所以平分,各占16位
可以看出UDP协议的包头要比TCP协议的包头简单的多
简单带来的好处:在使用和确认的时候,耗费的资源更少,所以它更快(当然,UDP比TCP快还有其他的原因)
FTP(文件传输协议):端口号 20 21
SSH(安全shell协议):端口号 22
Linux的远程管理协议就是SSH
telnet(远程登录协议):端口号 23
注意,无论是Windows还是Linux,都禁止开启23端口。原因是23端口是明文传递,那后台是没有加密的。只要劫获,就可以看到里面的数据,不需要破解。所以23端口如果能不用,就不要使用
SMTP(简单邮件传输协议):端口号 25
DNS(域名系统):端口号 53
既是TCP协议,又是UDP协议。两种协议都可以识别
http(超文本传输协议):端口号 80
POP3(邮局协议3代):端口号 110
netstat -an
Linux和Windows下都支持这条命令
选项:
-a
:查看所有连接和监听端口
-n
:显示IP地址和端口号,而不显示域名和服务名
执行后,看其中的几条结果:
我们可以发现,那几个80端口代表我们访问了那5台服务器的网页(网页服务器的默认端口是80)
因为我们是作为服务端,连接它们的服务器,所以,我们的端口是随机的
但是,如果我们是作为服务器端,我们开启80端口。有人通过外网连接我们,那么,我们的端口就是目标端口,此时我们开启的端口就是固定的
LISTENING:代表这个端口被监听,说明这些是我们开启的服务
ESTABLISHED:代表已经存在连接,始终是连接的
-名称解析效能下降
-主机维护困难
-层次性
-分布式
-客户机向DNS服务器发送域名查询请求
-DNS服务器告知客户机Web服务器的IP地址
-客户机与Web服务器通信
例如,我访问了一个网站:http://www.imooc.com/learn/jf9jrrj23oiuio923590qdfefefjhreui434t5432rtfir
可以看到,这个url很长,我们不敢确定是否真正的访问的是imooc这个网站。此时,要注意二级域名imooc
和一级域名com
(因为 www.imooc.com 和 www.imooc.cn 这两个是不同的域名,因为一级域名不同),如果这两个是对的,那么访问的一定是慕课网。因为域名是唯一的,而且DNS服务器是很专业的,被劫持的可能性非常小
解释:
客户机问本地的域名服务器说:你知道www.imooc.com.cn
这个域名对应的IP吗?
如果本地的域名服务器知道(也就是曾经解析过,被缓存起来了,默认是3天),就会直接告诉客户机那个域名对应的IP
如果本地的域名服务器不知道,那么本地域名服务器就会去问根DNS服务器(所有的DNS都知道全球的13台根DNS服务器在哪)
虽然根服务器不知道完整的www.imooc.com.cn
,但是知道cn
这个一级域名的IP(也就是说,根服务器只负责维护所有的一级域,不管整个完整的域名服务器,也就是所有的服务器),然后就会把cn
这个一级域名服务器的IP告诉本地域名服务器
然后本地域名服务器就去问cn
这个域名服务器:你知道www.imooc.com.cn
的IP吗?
然后,cn
服务器说:我不知道,但是知道com.cn
域名的IP地址。然后告诉本地服务器com.cn
的IP
一直执行这样的过程,执行完了第5步之后,就知道了www.imooc.com.cn
的IP。然后本地域名服务器就告诉客户机这个IP
最后客户机就可以通过查询出来的IP去访问www.imooc.com.cn
这个网站了
网关一般情况下是路由器,当然,也可以拿一台服务器,在服务器上面搭建路由功能,用它来模拟路由器,也是可以做到的。所以,网关就是一个具有路由功能的设备
1、网关(Gateway)又称为网间连接器、协议转换器
2、网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连
3、网关既可以用于广域网互连,也可用于局域网互连
4、网关是一种充当转换重任的服务器或路由器
在所有内网计算机访问的不是本网段的数据报时使用
网关负责将内网IP转换为公网IP,公网IP转换为内网IP
只要不是发送给本局域网内的的计算机的数据,统统交给网关来处理。进过网关一级一级来处理,最终到达目标
上面的四台是在同一个网段,下面四台是在另一个网段
图中的“云”代表互联网
在局域网内通信是通过MAC地址来进行的
如果网线插在交换机上,交换机会先闪一会,然后才能正常使用。而这个闪烁的过程就是在记录插在上面的计算机或者网络设备的网卡的MAC地址。当有其他的计算机或者网络设备的网线插在同一个交换机上面的时候,也会记录下MAC地址。然后,这些设备要通信,就是通过这些MAC地址来进行的(其实交换机是不认识IP的)
一旦重启计算机或者重启网络服务,这个IP地址就会消失。一般做实验和测试的时候是用这种方法
ifconfig
命令:查看与配置网络状态命令,当前生效的IP地址是什么
图中显示的两段是当前Linux拥有的两块网卡
其中 lo 是 Loopback 的缩写,也就是本地环回网卡的缩写。在任何的计算机里面(包括Windows)都有这样一块网卡,它的IP地址是127.0.0.1。但是,它对我们实际工作没有太大的意义,这个网卡,哪怕不插网线,也是可以ping
通的,它只是说明当前计算机的网络协议是正常的。所以不用太关注
而对我们有用的是eth0这块网卡
在Linux中,一切皆文件,当然,网卡也是文件
eth0代表第一块网卡。如果有第二块网卡,那么就是eth1
图中
encap:Ethernet 代表网络类型是Ethernet
HWaddr 00:16:3e:02:0d:76 代表网卡地址(物理地址)是:00:16:3e:02:0d:76
addr:172.18.42.117 代表当前的IP地址是:172.18.42.117
Bcast:172.18.47.255 代表广播地址是:172.18.47.255
Mask:255.255.240.0 代表这个IP的子网掩码是:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 是当前的网卡参数
RX packets:576818 代表当前接收到了那么多的数据包
TX packets:467546 代表当前发送了那么多的数据包
以上对我们最有效的是:IP和网卡地址
ifconfig命令:
ifconfig eth0 192.168.254.200 netmask 255.255.255.0 #临时设置eth0网卡的IP地址与子网掩码
红帽专有图形化工具
标准配置方式
配置的IP必须和真实机在同一个网段
vim /etc/sysconfig/network-scripts/ifcfg-eth0
#把 ONBOOT=no
#改为 ONBOOT=yes
改完之后,重启网络服务:
service network restart
#重启网络服务
如果是自己手动安装的虚拟机,那么不需要进行这些步骤;如果是直接把其他的虚拟机复制过来的,就需要执行这些步骤,因为,这两台的UUID是一样的,会起冲突
vim /etc/sysconfig/network-scripts/ifcfg-eth0
#删除MAC地址行,也就是 HWADDR 这一行
rm -rf /etc/udev/rules.d/70-persistent-net.rules
#删除网卡和MAC地址绑定文件
shutdown -r
#重新启动系统
执行完了这三步之后,UUID就被修改了
虚拟机在网络配置里面有三个网络连接的方法
虚拟机中点击设置 -> 网络适配器,里面支持三种网络连接方式:
桥接(最为简单,只需要让虚拟机和真实机在相同的网段,就可以直接使用)
我们先打开Windows下的网络连接:
可以发现,图中圈出来的部分是安装完虚拟机之后出现的虚拟网卡
而下图中:
圈出来的部分是真实主机的无线网卡
下图:
圈出来的部分是真实主机的有线网卡
如果我们在虚拟机里面选择的网络连接方式是桥接,它指的是虚拟机和真实机之间进行通信,使用利用真实网卡,例如真实机的无线网卡
使用这种方式的缺点是:需要占用真实网段的一个IP地址。如果有很多虚拟机在同一个网段使用这种方式连接,容易造成IP冲突
使用这种方式的有点是:虚拟机不光可以和我们的真实机进行通信,还可以和局域网内其他计算机进行通信;和外网的计算机也行。也就是当成了局域网内一台真正的计算机,相当于利用了真实网卡来和互联网进行通信
NAT
如果选的是NAT,它指的是虚拟机和真实机之间通信,使用的是图片中的VMnet8这块虚拟网卡来进行通信
缺点:虚拟机只能和自己的真实机进行通信,不能连接到局域网内的其他计算机(当然,局域网内的计算机如果连了网,就可以和它们进行通信了)
优点:能够访问公网,能访问互联网
Host-only
如果选择的是Host-only,它指的是虚拟机和真实机之间通信,使用的是图片中的VMnet1这块虚拟网卡来进行通信
缺点:虚拟机只能和自己的真实机进行通信,不能连接到局域网内的其他计算机。不能够访问公网,不能访问互联网
因为,真实机一般都带有两个网卡。如图片中的,一个无线网卡,一个有线网卡。所以,我们需要指明虚拟机利用的是真实机的哪一个真实网卡来通信
点击虚拟的的编辑 -> 虚拟网络编辑器:
解释,屌丝要发送东西(苍老师)给高富帅。那么要使用屌丝的公钥和高富帅的公钥来对苍老师进行加密。然后再把苍老师发送给高富帅,高富帅用密钥来解密这个信息
这样做最大的好处就是,屌丝不需要把自己的密码(123)告诉高富帅。因为屌丝的很多应用(例如,邮箱,qq等等)的密码都有可能是123。如果告诉了高富帅,则很有可能其他应用会被高富帅登录
对发送的数据进行加密,此时,数据不是明文的,而是加密了的,所以更加安全
ssh 用户名@ip
#远程管理指定Linux服务器
exit
#退出远程登录
例如,在cmd下执行如果命令:
它的意思是需要下载112.74.172.7的公钥
我们需要下载,所以输入:yes
下载完了之后,需要我们输入 112.74.172.7 的 root用户的密码;
当我们输入正确之后,就可以对那台主机进行操作了
scp [-r] 用户名@ip:文件路径 本地路径
#下载文件,这条命令不会登录到对方主机
#例如:scp test.txt [email protected]:/root
如果是下载文件,不需要加 -r;如果是下载目录,需要加 -r
scp [-r] 本地文件 用户名@ip:上传路径
#上传文件
如果是上传文件,不需要加 -r;如果是上传目录,需要加 -r