今天,小编给大家介绍的是关于cnna考试认证的基础,就是TCP/IP参考模型,并且列举了在这个参考模型下比较常见的协议,重点就是ARP协议以及TCP协议的工作原理了。
TCP/IP参考模型和OSI参考模型的对应关系
TCP/IP参考模型分四层,这四个层面分别是:网络访问层(NetworkAccess)、网际层(Internet)、传输层(Transport)和应用层(application)。
ISO/OSI参考模型是在协议被开发出来之前就已经被设计出来的了,它并不以某个特定的协议集设计为基础,所以它具有通用性,但在协议实现方面存在着缺点。TCP/IP模型是先有协议,模型只对现有的协议进行描述,因此和现有协议十分的吻合,但是它在描述非TCP/IP网络时的用处不太大。
TCP/IP参考模型和ISO/OSI参考模型的对应关系如下图:
下面介绍的是TCP/IP参考模型这四层的作用。
(一)网络访问层(Network Access)
网络访问层的功能包括IP地址还有MAC地址的映射,把IP封装成帧,提供物理介质连接,它接收从网际层传来的IP数据报,并把这个数据包通过底层物理接口发送出去。
(二)网际层(Internet)
网际层的主要功能有三个:
第一:处理本机向外发送的来自传输层的分组发送请求,将分组装入IP数据报,填充报头,选择目的节点的路径,然后把封装好的IP数据包发到相对应的接口;
第二:处理从外部输入的数据报,检查是否合法,进行路由选择,如果数据报的目的地是本机,就去掉报头,将IP数据报数据提交给上层传输层对应协议处理,若数据报的目的不是本机的话就根据路由表进行转发;
第三:处理ICMP(Internet Control Message Protocol网际控制信息协议)报文,处理网络路由选择,流量控制等等;
网际层的重要协议:
1)IP协议:IP协议的主要功能是寻址和根据目的IP地址转发的功能。应用中常见的TTL,我们ping某个IP或网址的时候会出现下图所示的TTL=XX:
注意:TTL是IP协议中的一个字段,这个字段的值随着经过的路由数量减少,而当这个字段是0时,路由将丢弃这个数据报。64为系统设定的一个初始值,这个初始值根据不同系统构架而不同,有的是128,有的是256。TTL如果小于64,就用64减;如果TLL大于64小于128,就用128减;如果TLL大于128小于256的话,就用256减。
IP报头各字段如下图:
2)ICMP协议:我们常用的ping命令就是使用这个协议。还有Windows下的tracert命令也是基于这个协议而进行的。IP报头中协议字段为1,就是说这是一个ICMP报文;下图就是ICMP报文中的一个应用,Tracert可以用来显示从本地到目的地中间所要经过的路由(注意:部分地区的网络提供商屏蔽了tracert,所以看到的返回结果全部是星号)。
3)ARP协议:这是局域网中应用的最多的协议之一,在局域网中,数据帧的传输是需要封装MAC地址的,ARP协议的作用主要是在发送数据帧之前,根据目的IP获得目的MAC。所以它叫做地址解析协议,ARP工作原理如下:
三台个人电脑连接在一台二层交换机上,他们的IP地址和MAC地址如上图,下面是一次ARP查询过程:
a:计算机A要给计算机B发送数据包,首先A要判断B是否与本机处在同一个子网中。如果处在同一个子网,计算机A先在本机的ARP缓存中搜索B的IP对应的MAC是否存在,如果找到B的MAC缓存,就直接用找到的MAC封装帧发送出去;
b:如果A没有找到B的MAC缓存,那么它将封装一个ARP源IP地址为A的IP地址的查询包,目的IP地址是B的IP地址,查询包的源MAC是A自己的MAC(AAAAAAAAAAAA),目的MAC是广播MAC地址(FFFFFFFFFFFF);
c:A封装完后以广播的形式将这个查询包发送出去,这个ARP广播包到达交换机接口1,根据交换机的工作原理,就是对广播包进行泛洪转发,发往除接收端口以外的所有端口,这时计算机B和C都可以收到这个ARP查询广播包;
d:C收到这个ARP查询广播包,它对这个数据包解封装,发现目的MAC不是本机MAC,是广播MAC,即接收目的地是本机MAC或者广播MAC的数据帧,C解封装这个数据帧并把它传到网络层,网络层对目的IP进行检查发现目的IP是B的IP和本机IP不同,C放弃对这个数据报的继续处理,同时在本地的ARP缓存中更新或添加A的IP地址对应的MAC条目,最后,丢弃这个数据包;
e:B收到这个数据包,首先对数据链路层的目的MAC是广播进行判断,所以它也解封装这个数据包传送到网络层,并发现目的IP与本机IP也一样,这是针对本机(B)进行的ARPMAC地址查询。刚开始它将A的MAC和对应的IP记录在自己的MAC缓存中,然后封装一个ARP应答包(ARP Reply)发回。ARP应答包的源IP是B的IP,目的IP是A的IP,源MAC是B自己的MAC(BBBBBBBBBBBB)目的MAC是A的MAC,这个包封装好后被送达交换机接口2;
f:交换机接收到这个ARP应答包以后,根据MAC目的地址进行判断,目的MAC(AAAAAAAAAAAA)在自己的接口1上,就是交换机收到A的ARP查询的时候,就将A的MAC地址和对应的接口1记录在自己的MAC地址表中了,这时交换机就直接将这个数据报从接口1发出;
g:A收到这个ARP应答包,这时它就知道了B的MAC,就可以封装其他数据发送了;
4)Proxy-ARP协议(代理ARP):因为ARP查询包是广播包,而路由器就是隔离广播的,路由器的每个接口都是一个独立的广播域,所以在上面的例子当中,如果此时交换机的4端口上接着一个路由器,如下图,当ARP查询包通过交换机泛洪转发时,路由器可以从自己的接口5接收到A发出的ARP查询包,在没有开启Proxy-ARP协议的情况,路由器直接将这个包进行丢弃。如果路由的接口5开启了Proxy-ARP协议,那么这个广播包就可以转发到路由上其他的接口。所有Cisco路由的以太网接口默认都启动了该协议。
5)RARP(反向地址转换协议):这个协议正好和ARP相反,是本机MAC询问本机IP的一个协议,现在被DHCP协议所替代。
(三)传输层(Transport)
在网际层中的IP协议,采用没有连接的数据报机制,不验证也不确认,而TCP/IP在传输层体现可靠性,传输层的常见协议如下:
1)TCP:是一种面向连接的传输层的协议,可以提供可靠的数据传输,在传输数据前需要首先建立连接,下面是TCP从"三次握手"建立连接到数据传输,再到"四次握手"断开连接的过程:
建立连接的"三次握手"过程:
a:首先客户端发送连接请求报文(SYN);
b:服务端接受连接后回复(SYN+ACK)报文,并为这次连接分配资源;
c:客户端接收到(SYN+ACK)报文后向服务端回发(ACK)报文,并分配资源,这样TCP连接就建立了;
数据传输阶段——建立连接后双方的状态都是"ESTABLISHED",此时就可以互传数据了;
断开连接的"四次握手"过程:
a:断开连接的(FIN)报文既可以是客户端也可以是服务端发出,本例假设是客户端发出,(FIN)报文告诉服务器:"我是客户端,我已经没有数据需要发给你了,如果你还有数据没有发送完成,不必急着关闭Socket,仍然可以继续发送数据给我";
b:服务器收到这个(FIN)报文以后,先发送(ACK)告诉客户端:"你的请求我收到了,请继续等我的消息";客户端收到这个(ACK)就进入FIN_WAIT的状态,继续等待Server端的FIN报文;
c:当服务器确定数据已静完成发送,则向客户端发送(FIN)报文告诉客户端:"我这边数据发完了,准备好关闭连接";
d:客户端收到(FIN)报文后,知道可以关闭连接了,最后向服务端进行关闭确认,进入"TIME_WAIT"状态,如果服务端没有收到(ACK)则可以进行重传;服务端收到(ACK)后,将连接关闭。客户端等待了MSL后依然没有收到回复,则证明服务端已经正常关闭,此时客户端也将连接关闭。TCP连接断开就完成;
使用浏览器打开某个网页后,Linux用户可以输入"netstat-antp"在终端,Windows用户可以输入"netstat-an"在cmd中,在"State"下可以查看到TCP的连接处于哪个状态,重复上面的命令,结合TCP的理论进行解释,就会对TCP连接过程有一个全新的认识。
TCP报头分段格式:
2)UDP协议:是一种无连接的传输协议,他的结构非常简单,适合语音和视频数据的传输。
(四)应用层(Application)
TCP/IP的应用层和OSI参考模型中的应用程序协议是一致的。
下面这张图是TCP/IP协议族中各协议所在层以及他们之间的关系,仅供参考:
以上就是就是TCP/IP参考模型以及这个参考模型比较常见的协议了,大家都掌握了关于TCP/IP参考模型以及这个参考模型比较常见的协议了吧。大家如果希望能够学习到更多关于CCNA的内容,那就继续关注我们的网站:编程学习网教育吧。