UDP协议和TCP协议
HTTP协议和HTTPS协议
1)至少拥有两台以上的计算机。
2)传输媒体和通信设备把若干台计算机连接到一起。
3)需要网络软件,含操作系统。
4)为了正确地通信,需要有一个共同遵守的约定——通信协议。
5)把多台计算机连接在一起,形成一个网络,是为了通信和资源共享。
2.1 根据覆盖地理范围划分:
1)局域网 LAN:方圆几千米以内。
2)城域网 MAN
3) 广域网 WAN:几十千米到几百千米。
4)Internet 因特网
2.2 网络体系结构/网络模型分类
1) ISO/OSI 模型
国际标准化组织/开放系统互联模型
2)TCP/IP 模型
TCP/IP(Transmission Control Protocol/Internet Protocol),传输控制协议/互联网协议,是由很多协议构成的一个协议族
因特网中实际采用的标准,TCP/IP 是 ARPANET 为了实现异种网的互联,在对网间网的研究和应用中产生的
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户以及各种应用程序和网络之间的接口。
具体功能:
1)实现各种服务
2)用户接口。
应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
在其他6层工作的基础上,应用层负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。
相关协议:
应用层为用户提供的服务和协议有:
文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。
表示层(Presentation Layer)是OSI模型的第六层,
它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。
其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。
具体功能:
数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此在设备之间需要具有在不同字符集或格式之间转换的功能。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:可以提高网络的安全性
将不同实体之间的表示层的连接称为会话。会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,
主要任务是:
向两个实体的表示层提供建立和使用连接的方法,即建立端口到端口的通信。
组织和协调两个会话进程之间的通信,并对数据交换进行管理。
用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。
域名(DN)就是一种网络上使用的远程地址例如:www.3721.com就是一个域名。
具体功能:
会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
会话流量控制:提供会话流量控制和交叉会话功能。
寻址:使用远程地址建立会话连接。
出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。
OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。
该层的主要任务是:
向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
该层常见的协议:
TCP/IP中的TCP协议
Novell网络中的SPX协议
微软的NetBIOS/NetBEUI协议。
传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。
综上,传输层的主要功能如下:
传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。
在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。监控服务质量。
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。
其主要任务是:
通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
网络层负责将数据从一个设备传输到另一个设备,即建立主机到主机的通信。
主要用到IP协议和路由:
IP协议的寻址作用是告诉下一个目的该朝哪个方向走,
路由则是根据下一个目的地选择路径。
在实现网络层功能时,需要解决的主要问题如下:
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
路由器,防火墙
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。
该层的主要功能是:
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。
数据链路层的具体工作是:
交换机:
在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。
物理层的主要功能是:
利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么
“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
负责把两台计算机连起来,然后通过高低电平来传送电信号。并且为数据链路层提供二进制传输的服务(光纤、电缆、双绞线等介质)。
集线器:
建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来:
服务说明某一层为上一层提供一些什么功能
接口说明上一层如何使用下层的服务
协议涉及如何实现本层的服务
这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。
网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:
减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;
在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;
能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术
IP的作用是主机之间通信的,
MAC的作用则是实现直连的两个设备之间通信,而IP则负责在没有直连的两个网络之间进行通信传输。
源IP地址和目的地址在传输过程中是不会变化的,只有源MAC地址和目标MAC地址一直在变化。
PC1首先判断目标ip是否和自己在同一网段,是就进行ARP广播,解析出MAC地址。不是,则将网关的MAC地址作为MAC地址。
PC1封装的数据包括目标、源的端口号、IP、MAC地址。
交换机收到数据后,对比MAC地址表,知道从哪个口发出数据。
路由收到数据后根据路由表将数据发往下一个目标地。
最后一个路由通过ARP解析出PC2的MAC地址。
路由封装的数据包括目标、源的端口号、IP、MAC地址。
计算机网络“点到点”与“端到端”
计算机网络中端到端与点到点的区别
数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。
端到端与点到点是针对网络中传输的两端设备间的关系而言的。
1)点到点
点到点是主机到主机之间的通信,即直接相连的结点对等实体的通信,基于mac地址或者ip地址,是指一个设备发数据给与该这边直接连接的其他设备,这台设备又在合适的时候将数据传递给与它相连的下一个设备,通过一台一台直接相连的设备把数据传递到接收端。
它只提供一台机器到另一台机器之间的通信,不会涉及到程序或进程的概念。
点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
同一台计算机同时可以和很多台计算机通信,使用IP对不同的计算机加以区分。(点到点)
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务。点到点是数据链路层的说法,因为数据链路层只负责直接相连的两个结点之间的通信,一个结点的数据链路层接受网络层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个结点。
2)端到端
端到端是进程到进程之间的通信。
端到端通信是针对传输层来说的,它是一个网络连接,指的是在数据传输之前,在发送端与接收端之间(忽略中间有多少设备)为数据的传输建立一条链路,链路建立以后,发送端就可以发送数据,知道数据发送完毕,接收端确认接收成功。 也就是说**在数据传输之前,先为数据的传输开辟一条通道,然后在进行传输。从发送端发出数据到接收端接收完毕,**结束。
端到端是传输层的说法,因为无论TCP还是UDP协议,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少结点。只不过TCP比较可靠而UDP不可靠而已。所以称之为端到端,也就是从发送端到接收端。
一台计算机上的一个程序(如qq)和很多其他计算机上的程序通信,需要使用IP+端口才能唯一的表示一个会话。
如你用QQ同时和a、b、c三个用户通信,就是用三个用户连接的IP和端口号来区分的。
交换机、路由器和防火墙都工作在OSI七层协议的哪一层?
集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。
主要功能:
把所有的信号线连接在一起,即把所有节点集中在以它为中心的节点上。
起到中继器的作用,即:对接收到的信号进行再生整形放大,以扩大网络的传输距离。
集线器的工作过程:
集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。
实物图:
百度百科:交换机
一般指工作在数据链路层的传统交换机,即二层交换机,
交换机是一种基于MAC地址识别,能完成封装转发数据帧功能的网络设备。
交换机可以 “学习” MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
工作原理:
交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。
交换机的任意节点收到数据传输指令后,会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,然后再将数据传输到该节点上。
如果在地址表中找到相应的位置,则进行传输;
如果没有,广播到所有的端口,接收端口回应后交换机就会将该地址进行记录,以利于下次寻找和使用。
交换机一般只需要将帧发送到相应的点,而无需如集线器发送到所有节点,从而节省了资源和时间,提高了数据传输的速率。
主要功能:
交换机起到收发和中转的作用
连接数个相同网段的不同主机,利用存储转发和过滤技术来从物理上分割网段,减少网内冲突,隔离冲突域。
交换机的工作速率受到交换机内部cpu的限制
随着安全和管理的需要以及VLAN技术的应用,当下大型局域网已普遍应用了具有部分路由功能三层交换机,其能够做到一次路由、多次转发,大大减少了广播风暴的危害,三层交换机顾名思义就是工作在OSI协议的第三层网络层。
就以太网设备而言,交换机和集线器的本质区别就在于:
当A发信息给B时,如果通过集线器,则接入集线器的所有网络节点都会收到这条信息(也就是以广播形式发送),只是网卡在硬件层面就会过滤掉不是发给本机的信息;
而如果通过交换机,交换机的通道是独立的,除非A通知交换机广播,否则发给B的信息C绝不会收到(获取交换机控制权限从而监听的情况除外)。
集线器给不同的节点发送数据时需要排队,交换机不需要排队
交换机内部有程序,有cpu,集线器内部无
工作在数据链路层,
在不同或相同类型的LAN之间存储并转发数据帧,必要时进行链路层上的协议转换。
可连接两个或多个网络,在其中传送信息包。
网卡是什么
工作在数据链路层
计算机与外界局域网的连接是通过主机箱内插入一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。
网卡是工作在数据链路层的网路组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
网卡的主要功能有以下三个:
1)数据的封装与解封
2)链路管理
3)编码与译码
路由器基础知识详解
路由器在操作中仅接受源站或者其他相关路由器传递的信息,是一种基于网络层的互联设备,可在异种网络之间(即不同类型的局域网互连,局域网与广域网,广域网与广域网)传输数据并进行路径选择,使用专门的软件协议从逻辑上对整个网络进行划分。
网络中的设备相互通信主要是用它们的IP地址,路由器只能根据具体的IP地址来转发数据。IP地址由网络地址和主机地址两部分组成。
在同一个网络中,IP地址的网络地址必须是相同的。计算机之间的通信只能在具有相同网络地址的IP地址之间进行,如果想要与其他网段的计算机进行通信,则必须经过路由器转发出去。
不同网络地址的IP地址是不能直接通信的,即便它们距离非常近,也不能进行通信。
路由器的多个端口可以连接多个网段,每个端口的IP地址的网络地址都必须与所连接的网段的网络地址一致。不同的端口它的网络地址是不同的,所对应的网段也是不同的,这样才能使各个网段中的主机通过自己网段的IP地址把数据发送到路由器上。
路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 具体功能有以下几点:
实现IP、TCP、UDP、ICMP等网络的互连。
对数据进行处理。收发数据包,具有对数据的分组过滤、复用、加密、压缩及防护墙等各项功能。
依据路由表的信息,对数据包下一传输目的地进行选择。
进行外部网关协议和其他自制域之间拓扑信息的交换。
实现网络管理和系统支持功能。
路由器的工作原理定义
路由表的作用
路由表中一般包括哪些信息
操作系统首先判断目标ip是否为局域网内,
在局域网内的话使用ARP协议,通过广播的形式找到目标ip地址的mac地址
如果不是局域网内会将消息帧发送到网关,操作系统初始化时会有默认的网关地址,网关收到消息后会路由表进行消息转发。
路由表中表项内容一般包括:
destination:目的地址,用来标识IP包的目的地址或者目的网络。
mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。
interface:输出接口,说明IP包将从该路由器哪个接口转发。
跃点数(Metric):跃点数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跃点数量,一个跃点代表经过一个路由器。
跃点数越低,代表路由成本越低;跃点数越高,代表路由成本越高。当具有多条到达相同目的网络的路由项时,TCP/IP会选择具有更低跃点数的路由项。
一条路由主要包括目的地址和下一跳两部分。
目的(记做D)可以是一台主机,也可以是某个网络,还可以是某个网络的一个子集。
下一跳(记做N)是直译,英文称为“next-hop”
这个路由信息所表示的意思就是要到达D,先要去N。
路由的目的是一个复合成员,由一个IP地址和一个掩码组成。
目的掩码为全“1”(255.255.255.255)的路由俗称主机路由,它的目的地是一台主机。
如果目的掩码不是全“1”,则该路由是要去往某个网段(子网)。
根据下一跳的性质可以将路由分为直接路由和间接路由两类。
下图是直接路由和间接路由的对比。
NAT技术与ARP协议
网络地址转换NAT (Network Address Translation) :
在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT技术当前是解决IPv4地址不够用的主要手段,是路由器的一个重要功能;
NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法;
很多学校, 家庭, 公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;
WAN口就是路由器的外网接口,相当于外面的进线接口,它有自己的IP,MAC地址,和获取IP的多种方式。
LAN口就是路由器的内网接口,它的LAN口就是它在内网之间的PC访问时的一个身份。
如果说路由器的WAN口和LAN口的IP地址为艺名的话,那么WAN口和LAN口的MAC地址为它的真实姓名。IP地址都是虚拟出来的地址,好使用和识别些。MAC地址就是物理地址的意思。
LAN的MAC就是路由器上连接电脑的一端的端口物理地址;
WAN的MAC就是路由器上连接猫或外网网线的端口物理地址;
在自己电脑上查到的MAC地址是自己电脑网卡的MAC地址,也就是自己电脑上网口的MAC地址。
传统的包过滤防火墙工作在网络层,
电路网关防火墙工作在传输层(线路级防火墙工作在会话层),
应用网关类的代理防火墙则工作在OSI最高的应用层。
所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法。
防火墙主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外,防火墙技术的警报功能十分强大,在外部的用户要进入到计算机内时,防火墙就会迅速的发出相应的警报,并提醒用户的行为,并进行自我的判断来决定是否允许外部的用户进入到内部,只要是在网络环境内的用户,这种防火墙都能够进行有效的查询,同时把查到信息朝用户进行显示,然后用户需要按照自身需要对防火墙实施相应设置,对不允许的用户行为进行阻断。
通过防火墙还能够对信息数据的流量实施有效查看,并且还能够对数据信息的上传和下载速度进行掌握,便于用户对计算机使用的情况具有良好的控制判断,计算机的内部情况也可以通过这种防火墙进行查看,还具有启动与关闭程序的功能,而计算机系统的内部中具有的日志功能,其实也是防火墙对计算机的内部系统实时安全情况与每日流量情况进行的总结和整理。
防火墙是在两个网络通讯时执行的一种访问控制尺度,能最大限度阻止网络中的黑客访问你的网络。
。
1)包过滤技术
包过滤是最早使用的一种防火墙技术
包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预先设定好的防火墙过滤规则(Filtering Rule)进行核对,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为“阻止”的时候,这个包就会被丢弃。
2)应用级网关技术(应用代理技术)
由于包过滤技术无法提供完善的数据保护措施,而且一些特殊的报文攻击仅仅使用过滤的方法并不能消除危害(如SYN攻击、ICMP洪水等),因此人们需要一种更全面的防火墙保护技术,在这样的需求背景下,采用“应用代理”(Application Proxy)技术的防火墙诞生了。
一个完整的代理设备包含一个服务端和客户端,服务端接收来自用户的请求,调用自身的客户端模拟一个基于用户请求的连接到目标服务器,再把目标服务器返回的数据转发给用户,完成一次代理工作过程。
3)状态检测技术
这种防火墙技术通过一种被称为“状态监视”的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则作出安全决策NAT技术,是网络地址转换技术,将专用网的网络地址转换为全球IP地址,从而与外界进行通信。
需要注意的是,NAT技术可以隐藏内部网的主机,从而在一定程度上避免网络攻击,但不是主要的实现防火墙的技术。
工作在传输层及以上层次
TCP/IP四层网络协议分别是应用层,网络层,传输层,数据链路层
常用网络协议
应用层:
HTTP:超文本传输协议,端口号80
用于访问网站
HTTPS:安全的超文本传输协议:端口号443
FTP:文件传输协议 : 端口号21
用于上传文件和下载文件
DNS:域名系统:端口号53
用于将域名解析为 IP 地址、将 IP 地址解析为域名
SSH:安全外壳
DHCP协议: 动态主机配置协议
动态获取IP地址,省去配置IP信息的过程。
Telnet 远程协议:远程登录协议:端口号23
用于远程连接计算机
SMTP: 简单邮件传输协议:端口号25
用于发送邮件
POP3: 邮局协议版本 3 :端口号110
用于收邮件
传输层:
TCP
UDP
网络层:
IP协议:网际协议 / 互联网协议 / 网络协议
ARP:地址解析协议
由IP地址求MAC地址
反向地址转换RARP
由MAC地址求IP地址
ICMP:互联网控制报文协议
侦测远端主机是否存在、建立及维护路由资料、重导资料传送路径、资料流量控制。
IGMP:互联网组管理协议
组播的管理
RIP:路由信息协议
BGP:边界网关协议
数据链路层:
ARQ:自动重传请求协议
CSMA/CD:停止等待协议
PPP:点对点协议
NAT:网络地址转换
IP (Internet Protocol)译为网际协议/网络协议/互联网协议。
1)对数据包寻址和路由,并从一个网络转发到另一个网络。
2)分割和重组在传输层被分割的数据包。
3)无连接传递数据。
要实现数据包的可靠传输,就必须依靠高层的协议或应用程序,如传输层的 TCP 协议。
TELNET协议
Telnet协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,允许界面终端设备和面向终端的过程能通过一个标准过程进行互相交互。
应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
SSH协议介绍
secure shell:安全外壳
当我们需要远程登录到服务器上进行操作的时候,一般就会用ssh。
通过使用SSH,可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。
SSH协议框架中最主要的部分是三个协议:
传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性 等的支持;
用户认证协议(The User Authentication Protocol) 则为服务器提供客户端的身份鉴别;
连接协议(The Connection Protocol) 将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用; 各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。
同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次关系可以用如下图来表示:
简要过程如下:
Client端向Server端发起SSH连接请求。
Server端向Client端发起版本协商。
协商结束后Server端发送Host Key公钥 Server Key公钥,随机数等信息。到这里所有通信是不加密的。
Client端返回确认信息,同时附带用公钥加密过的一个随机数,用于双方计算Session Key。
进入认证阶段。从此以后所有通信均加密。
认证成功后,进入交互阶段。
在整个通讯过程中,为实现 SSH的安全连接,服务器端与客户端要经历如下五个阶段:
版本号协商阶段,
SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
密钥和算法协商阶段,
SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
认证阶段,
SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
会话请求阶段,
认证通过后,客户端向服务器端发送会话请求
交互会话阶段 ,
会话请求通过后,服务器端和客户端进行信息的交互
1)版本号协商阶段
版本号协商阶段报文都是采用明文方式传输的。
服务器打开端口,等待客户端连接。
客户端向服务器端发起 TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,
协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。
客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。
客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。
如果协商成功,则进入密钥和算法协商阶段,否则服务器端断开 TCP连接。
2)密钥和算法协商阶段
服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等;
服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
服务器端和客户端利用 DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话 ID。
通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID。
对于后续传输的数据,两端都会使用会话密钥进行加密和解密,
保证了数据传送的安全
在认证阶段,两端会使用会话 ID用于认证过程。
Note:
在协商阶段之前,服务器端已经生成 RSA或 DSA密钥对,他们主要用于参与会话密钥的生成。
3)认证阶段
客户端向服务器端发送认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容(如:password认证时,内容为密码)。
服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。
客户端从认证方法列表中选取一种认证方法再次进行认证。
该过程反复进行, 直到认证成功或者认证次数达到上限, 服务器关闭连接为止
SSH提供两种认证方式:
password认证:客户端向服务器发出 password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。
publickey 认证:采用数字签名的方法来认证客户端。目前,设备上可以利用RSA和 DSA两种公共密钥算法实现数字签名。客户端发送包含用户名、公共密钥和公共密钥算法的 publickey 认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息
数字签名是什么?
SSH2.0还提供了 password-publickey 认证和 any 认证:
password-publickey 认证:指定该用户的认证方式为 password 和 publickey认证同时满足。客户端版本为 SSH1的用户只要通过其中一种认证即可登录;客户端版本为 SSH2的用户必须两种认证都通过才能登录。
any认证:指定该用户的认证方式可以是 password,也可以是 publickey。
4)会话请求阶段
服务器等待客户端的请求;
认证通过后,客户端向服务器发送会话请求;
服务器处理客户端的请求。
请求被成功处理后, 服务器会向客户端回SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;
否则回应 SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。
5)交互会话阶段
在这个模式下,数据被双向传送:
客户端将要执行的命令加密后传给服务器;
服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端;
客户端将接收到的结果解密后显示到终端上.
Address Resolution Protocol:地址解析协议
在任何时候,一台主机有IP数据报文发送给另一台主机,它都要知道接收方的逻辑(IP)地址。但是IP地址必须封装成帧才能通过物理网络。这就意味着发送方必须有接收方的物理(MAC)地址,因此需要完成逻辑地址到物理地址的映射。
如果发送者与接收者在同一个物理网(局域网)上,则可以通过地址解析协议(ARP)或手动配置来确定接收者的物理地址。
ARP用于共享式网络,如以太网。
手动配置方法主要用于不能运行ARP的非共享式网络。
如果发送者与接收者不在一个物理网上,则需要路由。
ARP协议详解
ARP协议可以接收来自IP协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给数据链路层。
ARP流程:
1)ARP请求
任何时候,当主机需要找出这个网络中的另一个主机的物理地址时,它就可以发送一个ARP请求报文,这个报文包好了发送方的MAC地址和IP地址以及接收方的IP地址。
局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,
只有验证成功的主机才会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址。
这个报文利用收到的ARP请求报文中的请求方物理地址以单播的方式直接发送给ARP请求报文的请求方。
是数据链路层的协议,
基本原理是每发送一个分组,必须要停下来等待,等接收方确认后才可以继续发送下一个分组,如果没有收到确认,就只能超时重传
但是信道利用率太低,所以又出现了连续ARQ协议和选择重传ARQ协议。
IP地址:
IP地址由32位正整数来表示,由网络号+主机号识别。
A类:0+7位网络号+24位主机号 0.0.0.0~127.255.255.255
B类:10+14位网络号+16位主机号 128.0.0.0~191.255.255.255
C类:110+24位网络号+8位主机号 192.0.0.0~223.255.255.255
主机号全为1,指定某网络下的所有主机(用于广播)。
使用D类地址用于多播(可以穿透路由)。
ip地址的abcd类是怎样分的
A类地址的表示范围是:0.0.0.0-126.255.255.255,默认网络掩码为:255.0.0.0,A类地址分配给规模特别大的网络使用,
B类地址表示范围是:128.0.0.0-191.255.255.255,默认网络掩码为欸:255.255.0.0,B类地址分配给一般的中型网络
C类地址的表示范围是192.0.0.0-223.255.255.255,默认网络掩码是:255.255.255.0,C类地址分配给小型网络,如局域网
D类地址称为广播地址,共特殊协议向选定的节点发送信息使用。 这样便于寻址和层次化的构造网络。
为什么要分离网络号和主机号:
子网掩码的应用:
用来表征ip地址所处的网络位置,进而用于判断两台主机间能否连通。(连通指通过同一根网线就可以相互传输,不需要外网)
IP地址 & 子网掩码 = 网络号
判断步骤
将 IP 地址和子网掩码转换成二进制
将 IP 地址和子网掩码按位进行与运算
得出子网号,判断是否相等
网号相同,则可以相互连通,否则不能连通
案例:
192.168.5.23 与 192.168.5.175,子网掩码 255.255.255.0 192.168.5.23 与 192.168.5.175,子网掩码 255.255.255.128
技巧:
任何数与 255 = 任何数
任何数与 0 = 0
因为IP分类存在许多缺点,所有后面提出了无分类地址的方案,这种方式不再有分类地址的概念
32比特的IP地址被划分为两部分,前面是网络号,后面是主机号。表现形式是a.b.c.d/x,其中/x 表示前 x 位属于网络号, x 的范围是 0 ~ 32,这就使得 IP 地址更加具有灵活性。
比如10.100.122.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号。
网络前缀 + 主机号 (网络前缀是任意的)
CIDR中没有A/B/C类网络号,和子网划分的概念。CIDR将网络前缀相同的IIP地址称为一个“CIDR地址块”。相比原来子网划分更加灵活。
IPv6的128位地址通常写成8组,每组由四个十六进制数组成。
IPv4与IPv6的区别是什么?
区别:
IPv6的地址空间更大。
IPv4中规定IP地址长度为32,即有2^ 32-1个地址;
而IPv6中IP地址的长度为128,即有2^128-1个地址。
IPv6的路由表更小。
IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
IPv6的组播支持以及对流的支持增强。
这使得网络上的多媒体应用有了长足发展的机会,为服务质量控制提供了良好的网络平台。
IPv6加入了对自动配置的支持。
这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
IPv6具有更高的安全性。
在使用IPv6网络中,用户可以对网络层的数据进行加密并对IP报文进行校验,这极大地增强了网络安全。