网络分层
问题一:OSI七层模型和TCP/IP五层模型各层的作用?
OSI 将网络分为七层:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层。OSI 七层协议体系结构概念清除,理论完善,但是既复杂也不实用。 TCP/IP 是一个四层体系结构,包含应用层、运输层、网际层和网络接口层(网际层是为了强调该层是为了解决不同网络的互联问题),这种体系结构得到了广泛应用。 应用层的作用是为位于不同主机中的多个应用进程之间的通信和协同工作定义通信规则。应用层协议的定义包括应用进行交换的报文类型、各种报文类型的语法格式、字段语义、进程何时如何发送报文等信息。比如万维网的应用层协议是http,它定义了在万维网浏览器和万维网服务器之间传送的报文类型、格式和序列等规则。应用层的协议主要包括域名解析DNS,支持万维网应用的http,支持电子邮件的SMTP等。
传输层的作用是负责为两台不同主机进程的通信提供数据传输服务。向它的上面的应用层提供通信服务,向下层网络层提供tcp报文。传输层有一个很重要的功能就是复用和分用,复用是指发送方不同的应用进程可以使用同一个传输层协议传输数据(加上适当的报文首部);分用是指接收方传输层在收到tcp报文后除去报文首部,然后能够正确的交付到各个目的进程中。传输层提供的是应用进程之间的逻辑通信,逻辑通信指的是从应用层看,只要它把应用层报文交给下面的传输层,他就可以把报文直接传送到对方的传输层。但实际上不同主机的传输层之间并没有水平的物理连接,而是要经过下面的网络层、数据链路层和物理层,只是传输层向用户屏蔽了下面网络的核心细节。传输层的协议主要有TCP/UDP。网络层使用的中间设备是路由器。
网络层主要负责为分组交换网上的不同主机提供通信服务,将传输层产生的tcp报文或用户数据报封装成分组或包进行传输。主要的任务是根据目标IP地址,在路由器的路由表中查找下一跳路由的IP地址,将IP数据报传送给路由表中指明的下一跳路由器,直到找到目的主机。查到下一跳IP地址后,通过ARP协议找到该IP地址对应的硬件MAC地址,然后将MAC地址和IP数据报向下传送至数据链路层。网络层的主要协议有IP、ARP、ICMP、IGMP等。数据链路层使用的中间设备是网桥或桥接器。
数据链路层主要任务是将网络层传下来的IP数据报和MAC地址封装成帧,在相邻两个节点之间的链路上传输帧,每一帧都要包括数据和必要控制信息(同步信息、地址信息、差错控制等),数据链路层的协议有PPP、CSMA/CD。 物理层的主要任务就是尽可能地去屏蔽掉传输媒质和通信手段上的差异性,是的物理层上面的数据链路层感受不到这些差异。物理层传输的是0和1这样的比特流。使用的中间设备是转发器。
问题二:交换机、路由器、网关的概念,并知道各自的用途?
交换机:在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC地址的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。 交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。 交换机被广泛应用于二层网络交换,俗称“二层交换机”。 交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层和第七层,并因此而得名。
路由器:路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。 路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。 静态路由和动态路由有什么区别: 静态路由是由管理员手工配置的,适合比较简单的网络或需要做路由特殊控制。而动态路由则是由动态路由协议自动维护的,不需人工干预,适合比较复杂大型的网络。 路由器能够自动地建立自己的路由表,并且能够根据实际实际情况的变化适时地进行调整。动态路由机制的运作依赖路由器的两个基本功能:对路由表的维护;路由器之间适时的路由信息交换。
在Linux环境中怎么配置一条默认路由? 在linux上可以用“route add default gw<默认路由器 IP>”命令配置一条默认路由。
网关:网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。 在传统TCP/IP术语中,网络设备只分成两种,一种为网关,另一种为主机(host)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系 统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关与路由器还没有区别。 在现代网络术语中,网关与路由器的定义不同。网关能在不同协议间移动数据,而路由器是在不同网络间移动数据,相当于传统所说的IP网关。 网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。 对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。 网络接口卡(网卡)的功能? 进行串行/并行转换。 对数据进行缓存。 在计算机的操作系统安装设备驱动程序。 实现以太网协议。 网桥:网桥是一个局域网与另一个局域网之间建立连接的桥梁
各层的协议
应用层:
问题一:理解域名解析系统DNS?
DNS系统是互联网使用的命名系统,通过它将域名解析成IP地址。DNS是一个联机分布式数据库系统,采用客户服务器方式。DNS使大多数名字都在本地进行解析,也有少量的解析需要再互联网上通信,因而DNS系统的效率是非常高的。由于它的分布式系统,即使单个计算机出现了故障,也不会妨碍整个DNS系统正常运行。
问题二:域名解析过程?
当一个应用进程需要把主机名解析成IP地址,首先该应用进程调用解析程序,成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。然后本地域名服务器查找在查找到域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。如果本地域名服务器不能回答该请求,就继续向其他域名服务器发送查询请求,直到找到能够回答该请求的域名服务器为止。 主机向本地域名服务器的查询一般都采用递归查询,递归查询指如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份向其他根域名服务器继续发出查询请求报文。递归查询额结果是要查询的 IP 地址,或者是报错,表示无法查询到所需的 IP 地址。 本地域名服务器向根域名服务器查询通常采用迭代查询,迭代查询指当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉它该向哪一个域名服务器进行查询。本地域名服务器也可以采用递归查询,这取决于最初的查询请求报文设置的查询方式。
问题三:理解超文本传输协议HTTP?
定义:HTTP是超文本传输协议,定义了浏览器也就是万维网客户进程如何向万维网服务器请求文档,以及服务器如何把文档传给浏览器。 特点:HTTP是面向事务的应用层协议,是浏览器和服务器之间传送数据文件的重要基础。HTTP协议是无状态的,也就是说它对事务是没有记忆的。同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的时间相同,不会记住这个客户之前是否访问过。优点是它的无状态性简化了服务器的设计,使得服务器更容易支持大量并发的HTTP请求。HTTP本身是无连接的,就是说通信双方在交换HTTP报文之前是不需要先建立HTTP连接的,但是在下面的传输层使用的TCP协议还是面向连接的。解决无状态性的方法:可以使用cookie和session。Cookie是用来在某个Web站点间会话间持久的保持数据。Cookie相当于服务器给浏览器一个通行证,是一个唯一标识码,服务器发送的响应报文添加一个叫做Set-Cookie的首部字段,客户端得到响应报文之后将Cookie内容保存到浏览器当中。客户端之后再向同一个浏览器发送请求的时候,会从浏览器中取出Cookie的信息并通过Cookie首部字段向服务器发送请求,服务器就可以识别同一客户。而Session是基于服务器的会话技术,Session的数据是存储在服务器端的。Cookie和Session的区别:Cookie只能存储ASCII码字符串,Session可以存储任何类型的数据,考虑数据复杂性时可以选择Session。Cookie存储在浏览器中,容易被恶意查看,但可以通过加解密的方式保护隐私,Session数据存在服务器中。对于大型网站,用户量很大,所有信息都用Session存储开销也会非常庞大。 HTTP请求报文的方法: GET是指请求获取被URL标识的资源 POST是指给服务器添加信息 安全性:安全的HTTP方法不会改变服务器状态,也就是说它只是可读的。GET方法是安全的,而POST却不是,因为 POST 的目的是传送实体主体内容,这个内容可能是用户上传的表单数据,上传成功之后,服务器可能把这个数据存储到数据库中,因此状态也就发生了改变。 PUT 上传文件 DELETE 删除文件 OPTIONS 查看当前URL支持的HTTP方法 HEAD 获取首部
HTTP一次完整请求所经历的步骤: 首先检查输入的URL的合法性,然后通过DNS域名解析对应的IP地址,然后依次从浏览器缓存、系统缓存、路由器缓存中查询,如果有记录直接显示内容;如果没有记录,通过刚刚解析到的IP找到客户端到服务器的路径,客户端向服务器发送一个HTTP会话。传输层进行TCP三次握手建立连接,将HTTP请求分成报文分段并添加端口号形成TCP报文,然后再传输到网络层,通过目标IP地址,在路由表中查找到下一跳路由,中间可能会经历多个路由器,直到到达最终的服务器。在网络层在TCP报文的首部添加IP地址,形成IP报文传给链路层将IP报文和对应的MAC地址封装成帧。最后将帧转换成比特流进行实际物理层的传输。 服务器收到浏览器请求后,进行处理并响应,返回请求的内容。浏览器收到服务器数据后,发送请求给内嵌在HTML中的资源将最终渲染的页面呈现给用户。
HTTP和HTTPS的区别: HTTP是明文传输,内容可能会被窃听,无法保证报文的完整性内容也有可能被窃听。客户端和服务器端都无法验证对方身份,所以存在安全隐患。HTTPS是以安全为目标的HTTP协议的改进,S代表的是Security,HTTP先和SSL通信,再由SSL和TCP通信,也就是说HTTPS使用了隧道进行通信。从而HTTPS具有加密、认证和完整性保护的功能。HTTP的端口号是80,HTTPS的端口号是443。
HTTPS实现加密的流程: 浏览器和服务器建立TCP连接后,客户端会发送一个证书请求,其中包含了自己可以实现的加密算法和一些必要信息。服务器收到请求后会选择加密算法,然后返回证书,包含了服务器的信息,域名、申请证书的公司、加密的公钥以及加密的算法等。浏览器收到之后,检查签发该证书的机构是否正确,该机构的公钥签名是否有效,如果有效就生成对称密钥,并利用公钥对其加密,然后发送给服务器。服务器收到密钥后,利用自己的私钥解密。之后浏览器和服务器就可以基于对称加密对数据进行加密和通信。
HTTP1.1和HTTP1.0的区别: HTTP1.0使用的是非持续连接,每次请求文档就有2倍的RTT(往返时延)开销,另外客户和服务器每一次建立新的TCP连接都要分配缓存和变量,这种非持续连接会给服务器造成很大的压力。 HTTP1.1使用的是持续连接,服务器会在发送响应后在一段时间内继续保持这条连接,使同一个浏览器和服务器可以继续在这条连接上传输后续的HTTP请求和响应报文。HTTP1.1的持续连接有两种工作方式,非流水线和流水线方式。非流水线方式就是客户在收到前一个响应后才能发送下一个请求,流水线方式是客户收到响应前就能连着发送新的请求。 HTTP的长连接和短连接? HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议. 短连接:浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 长连接:当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。 TCP短连接: client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是client先发起 close操作.短连接一般只会在 client/server间传递一次读写操作 TCP长连接: client向server发起连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。
问题四:理解文件传送协议FTP?
FTP 使用 TCP 可靠的运输服务,FTP 使用客户服务器方式,一个 FTP 服务器进程可以同时为多个客户进程提供服务,在进行文件传输时,FTP 的客户和服务器之间要建立两个并行的 TCP 连接:控制连接和数据连接,实际用于传输文件的是数据连接。
问题五:理解电子邮件系统协议SMTP/POP3/IMAP?
一个电子邮件系统有三个主要组成构件,即用户代理、邮件服务器、以及邮件协议。 从用户代理把邮件传送到邮件服务器,以及在邮件服务器之间的传送都要使用 SMTP,但用户代理从邮件服务器读取邮件时则要使用 POP3 或 IMAP 协议。 基于万维网的电子邮件使用户可以利用浏览器收发电子邮件,用户浏览器和邮件服务器之间使用 HTTP 协议,而邮件服务器之间的传送仍然使用 SMTP 协议。
问题六:理解动态主机配置协议DHCP?
动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。一个局域网的网络协议,使用UDP协议工作,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
问题七:理解简单网络管理协议SNMP?
SNMP 由三部分组成,SNMP 本身,负责读取和改变各代理中的对象名及其状态数值;管理信息结构 SMI,定义命名对象和对象类型的通用规则,以及把对象之间值进行编码的基本编码规范 BER;管理信息库 MIB,在被管理的实体中创建命名对象并规定其类型。
传输层:
问题一:传输控制协议TCP和用户数据报协议UDP的特点和区别?
UDP是面向无连接的,在发送数据之前不需要建立连接;UDP尽最大努力交付,不保证数据传输的可靠性。它是面向报文的,发送方将应用层传下来的报文添加首部之后就交付给下面的IP层。UDP支持一对一、一对多、多对一和多对多交互通信。UDP首部开销小,只有8字节,而TCP是20个字节。 TCP是面向连接的传输协议,所谓连接就是指TCP在进行数据通信之前要先建立连接,是通过三次握手实现的,在数据通信后再通过四次握手断开连接,因此它提供的是可靠传输。TCP是面向字节流的,流入进程和流出进程的是字节序列,TCP会将数据块看成一串无结构的字节流。每条TCP连接只能是两个端点,是端点与端点之间的通信,并且是全双工通信的。
问题二:TCP协议如何保证可靠性?
TCP的发送的报文是交给IP层传送的,而IP只能提供尽最大努力服务,所以TCP必须采取适当的措施才能使得两个运输层之间的通信变得可靠。采用的方法包括: 停止等待协议和自动请求重传ARQ协议:每发送一个分组就停下来,等收到对方的分组的确认后再继续发送下一个分组。每发送完一个分组就设置一个超时计时器,如果在规定的时间没有收到分组的确认信息,就会进行超时重传。在规定的时间内受到了确认消息就会撤销计时器。 连续ARQ协议:连续ARQ规定每收到一个确认就把发送窗口向前滑动一个分组的位置,接收方一般采用累积确认的方式,就是说接收方不必对收到的分组逐个确认,只需要对按序到达的最后一个分组进行确认,表明:到这个分组位置的所有分组都正确收到了。优点是实现容易,即使确认丢失也不必重传,缺点是不能向发送方反映出接收方已经正确收到的所有分组的消息。例如发送方发生了5个分组,第3个分组丢失了,接收方只能确认前2个,发送方必须把后面3个都重新发送。 流量控制协议:一般我们都希望发送数据的速度尽可能快,但如果发送数据的速度过快,接收端来不及接收,就可能导致数据丢失的问题。所谓流量控制,就是根据接收端的接收能力,动态地调整发送端的发送速度,确保接收端来的及接收。TCP连接的两端都有一个固定大小的缓冲空间,TCP接收端只允许对方发送缓冲区所能接纳的数据量,这样可以防止较快的主机致使较慢的主机缓冲区溢出,TCP的流量控制协议就是通过可变滑动窗口机制来实现可靠传输。 拥塞控制:当网络中对资源的需求超过了资源的可用量,就叫做拥塞。当吞吐量明显小于理想的吞吐量时就出现了轻度拥塞,当吞吐量随着负载的增加反而下降时,网络就进入了拥塞状态。当吞吐量降为0时,网络已无法正常工作,进入了死锁。拥塞控制就是尽量减少注入网络的数据,减轻网络中的路由器和链路的负担。 拥塞控制是一个全局性的问题,它涉及网络中的所有路由器和主机,而流量控制只是一个端到端的问题,是两个端点之间通信量的控制。 拥塞控制主要有四个方法,慢开始,拥塞避免,快重传和快恢复。 慢开始,就是基于窗口的拥塞控制,发送端设有一个拥塞窗口,拥塞窗口取决于网络的拥塞程度,发送窗口就等于拥塞窗口,初始时为了防止注入过多的数据引起网络拥塞,所以将拥塞窗口值设为1,然后逐渐增大拥塞窗口,逐渐增大发送窗口,每经过一次传输轮次,拥塞窗口就加倍。有一个慢开始门限,当小于该值时就使用慢开始,等于时既可以使用慢开始也可以使用拥塞避免,大于该值时使用拥塞避免。 拥塞避免,就是每经过一个往返时间RRT将拥塞窗口的值增加1,而不是像慢开始那样加倍地增大拥塞窗口。慢开始不是指窗口增大的速度慢,而是在TCP开始发生报文时先设置拥塞窗口为1,使发送方开始只发送一个报文段,相比一下将许多报文注入到网络慢。 但是有时候个别报文段丢失,而网络中并没有出现拥塞,错误地导致慢开始,降低了传输效率。这时应该使用快重传来让发送方尽早知道出现了个别分组的丢失,快重传要求接收端不要等待自己发送数据时再捎带确认,而是要立即发送确认。即使收到了乱序的报文段后也要立即发出对已收到报文段的重复确认。当发送端连续收到三个重复的确认后就知道出现了报文段丢失的情况,就会立即重传,快重传可以使整个网络的吞吐量提升约20%。 当发送方知道了只是丢失了个别报文段使,不会使用慢开始,而是使用快恢复来设置阻塞窗口的值,并开始执行拥塞避免算法。 问题三:描述三次握手、四次挥手过程? 三次握手 TCP是全双工通信,任何一方都可以发起建立连接的请求,假设A是客户端,B是服务器。 初始时A和B均处于CLOSED状态,B会创建传输进程控制块TCB,然后处于LISTEND状态,监听端口是否收到了TCP请求以便及时响应。 当A要发生数据时,就向B发送一个连接请求报文,TCP规定连接请求报文的SYN=1,ACK=0,SYN表示synchronization,ACK表示acknowledgement,SYN不可以携带数据,但要消耗一个序号,此时A发送的序号seq假设为x。发送完之后,A就进入了SYN-SENT同步已发送状态。 当B收到了A的连接请求报文后,如果B同意建立连接,会发送给A一个确认连接请求报文,其中SYN=1,ACK=1,ack=x+1,seq=y,ack的值为A发送的序号加1,ACK可以携带数据,如果不携带的话,则不消耗序号。发送完之后,B进入SYN-RCVD同步已接收状态。 当A收到了B的确认连接请求报文后,还要对该确认再进行一次确认,报文的ACK=1,ack=y+1,seq=x+1,发送之后A处于established状态,当B接收到该报文后也进入established状态。 之所以要进行三次握手,是因为第二次握手时A知道了自己的发送和接收是没有问题的,而第三次握手时B才能知道自己的发送和接收也都是没有问题的。同时三次握手防止了已失效的连接请求问题,假设这样一种正常情况,A发送的第一个连接请求报文丢失了,之后超时重传,建立了连接,通信之后释放了连接。但假设A第一个发送的连接请求报文并没有丢失,而是在网络中某结点停滞了,之后又到达了B。如果是两次握手,此时B会以为是A请求建立连接,同意之后并不会收到任何数据,因为A已经关闭了,此时B的资源就会被白白浪费。 四次挥手 当A已经没有要发送的数据了,决定释放连接,就会发送一个终止连接报文,其中FIN=1,seq=u,u的值为之前A发送的最后一个序号+1。此时A进入FIN-WAIT-1状态。 B收到该报文后,发送给A一个确认报文,ACK=1,ack=u+1,seq=v,v的值为B之前发送的最后一个序号+1。此时A进入了FIN-WAIT-2状态,但B进入了CLOSE-WAIT状态,但连接并未完全释放,B会通知高层的应用层结束A到B这一方向的连接,此时TCP处于半关闭状态。 当B发送完数据后,准备释放连接时就向A发送连接终止报文,FIN=1,同时还要重发ACK=1,ack=u+1,seq=w(在半关闭状态B可能又发送了一些数据)。此时B进入LAST-ACK状态。 A收到连接终止报文后还要再进行一次确认,确认报文中ACK=1,ack=w+1,seq=u+1。发送完之后进入TIME-WAIT状态,等待2MSL之后进入CLOSED状态,B收到该确认后也进入CLOSED状态。 MSL是最大报文段寿命,之所以要等待2MSL是为了保证A发送的最后一个ACK报文能被B接收,如果A发送的确认报文丢失,B没有收到就会超时重传之前的FIN+ACK报文,而如果A在发送了确认报文之后就立即释放连接就无法收到B超时重传的报文,因而也不会再一次发送确认报文段,B就无法正常进入CLOSED状态。第二点原因是2MSL时间之后,本连接中的所有报文就都会从网络中消失,防止出现三次握手中的已失效的请求报文问题,影响下一次的TCP连接。 之所以不是三次挥手是因为服务器TCP是全双工的,当A发送完数据之后可能B还没有发送完,当B发送完所有的数据之后才会关闭B到A方向的连接。除此之外,TCP还设有一个保活计时器,用于解决服务器故障的问题,服务器每收到一次客户的数据就重新设置保活计时器,时间为2小时。如果2小时内没有收到就间隔75秒发送一次探测报文,连续10次都没有响应后就关闭连接。
网络层:
问题一:理解IP协议?
IP(internet protocol)网际协议,是用来使互连起来的许多计算机能够通信。传输层TCP协议和网络层IP协议的区别是,TCP协议主要负责主机间进程的逻辑通信,而IP协议主要是负责提供主机间的逻辑通信。与IP协议配套使用的还有三个协议:地址解析协议ARP、网络控制报文协议ICMP、网际组管理协议IGMP IP地址就是给互联网上的每一台主机或者路由器的每一个接口在全世界范围内分配唯一的32位的标识符。IP地址的结构使我们方便在互联网上进行寻址。 IP地址::={<网络号>,<主机号>} “::=” 表示“定义为”,从结构看,IP地址并不仅仅指明一台主机,还指明了主机所连接到的网络。把IP地址划分为A类、B类、C类,是考虑到有的网络拥有很多主机,有的网络拥有很少主机,主要是为了更好地满足不同的用户需求。 IP地址的特点:
- IP地址只分配网络号,剩下来的主机号是由得到该网络号的单位自行分配的。路由器仅根据主机所连接到的网络号来转发分组,而不考虑主机号,这样可以使路由表中的项目幅度减少,从而减少了路由表所占用存储空间以及查找路由表的时间。
- IP地址标志的是一台主机和一条链路的接口,当一台主机同时连接到两个网络的时候,该主机就必须同时具有两个相应的IP地址。一个路由器至少是连接到两个网络的,因此路由器至少应当有两个不同的IP地址。
- 一个网络指的是具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍然为一个网络。
- 在IP地址中,所分配到网络号的网络都是平等的,互联网平等对待每一个IP地址
问题二:理解地址解析协议ARP?
由于 IP 协议使用了 ARP 协议,因此把 ARP 协议归到网络层,但 ARP 的作用是从网络层的 IP 地址解析出在数据链路层使用的硬件地址,通过一个 ARP 高速缓存存储本地局域网的各主机和路由器的 IP 地址到硬件地址的映射表。硬件地址是数据链路层和物理层使用的地址,而IP地址是网络层及以上层使用的逻辑地址。 IP数据报的首部存放的是源IP地址和目标IP地址,在传输的过程中的不发生变化的;而硬件地址存放在MAC帧的首部,MAC帧在不同网络上传输时,MAC帧首部中的源地址和目的地址是要发生变化的,变化是依据IP数据报首部目标站的IP地址与路由表中的子网掩码进行与操作得到下一跳的路由的IP地址,(路由表包含目的网络地址、子网掩码、下一跳地址)在通过ARP协议解析到该IP地址对应的硬件MAC地址。
问题三:理解网际控制报文协议ICMP?
ICMP 报文作为 IP 数据报的数据部分,加上首部后组成 IP 数据报发送出去,使用 ICMP 并非为了实现可靠传输,ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。 ICMP 的一个重要应用就是分组间探测 PING,用来测试两台主机之间的连通性,PING 使用了 ICMP 回送请求与回送回答报文。 问题四:理解网际组管理协议IGMP? IP 多播使用 IGMP 协议,IGMP 并非在互联网范围内对所有多播组成员进行管理,它不知道 IP 多播组包含的成员个数也不知道这些成员都分布在哪些网络上。 IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机上的某个进程参加或推出了某个多播组。
问题五:路由选择协议 RIP/OSPF/BGP-4
路由选择协议有两大类:内部网关协议,如 RIP 和 OSPF;外部网关协议,如 BGP-4。 RIP 是分布式的基于距离向量的路由选择协议,只适用于小型互联网。RIP 按照固定的时间间隔与相邻路由器交换信息,交换的信息是当前路由表。OSPF 是分布式的链路状态协议,适用于大型互联网,只在链路状态发生变化时才向本自治系统中的所有路由器用洪泛法发送与本路由器相邻的所有路由器的链路状态信息。 BGP-4 是不同自治系统的路由器之间交换路由信息的协议,是一种路径向量路由选择协议。其目标是寻找一条能够到达目的网络且比较好的路由而不是最佳路由。
数据链路层:
问题一:理解点对点协议PPP?
在通信线路质量较差的年代,使用高级数据链路控制 HDLC 作为实现可靠传输的数据链路层协议,但现在 HDLC 已经很少使用了,对于点对点的链路,简单得多的点对点协议 PPP 是目前使用得最广泛的数据链路层协议。 PPP 协议的特点是简单、只检测差错而不纠正差错、不使用序号也不进行流量控制、可同时支持多种网络层协议。
问题二:理解CSMA/CD协议?
以太网采用的是具有冲突检测的载波监听多点接入 CSMA/CD 协议,协议的要点是:发送前先监听、边发送边监听,一旦发现总线上出现了碰撞就立即停止发送。然后按照退避算法等待一段随机时间后再次发送,因此每一个站在自己发送数据之后的一小段时间内存在遭遇碰撞的可能性。以太网上各站点都平等地争用以太网信道。 每一层通过接口的方式与上下的层交互信息,所以在每一层是屏蔽的下面的细节信息的,可以直接考虑通信过程就在某一层的情况,比如在传输层,传输层向下的接口传输的 用户数据报报文的数据部分和首部以及,ip地址。对OSI体系或TCP/IT各层级的作用从横向实现的目的,纵向传输的具体数据进行分析
|