自身总结一些 网络及协议上的细节点

详细描述一下tcp三次握手和四次挥手的过程和各个阶段的状态机。

假设ClinetCServerS

TCP三次握手:

在正式握手之前S会进行socket()创建套接字用来通信,调用bind()绑定这个文件文件描述符,调用listen()监听端口是否有客户端请求。

1.C请求连接,发送一个带SYN标志的TCP报文给服务器,占用一个随记序列号seq假设为xC进入SYN_SENT状态。

2.S调用accept()接受到该报文后短暂时间内回应客户端报文,该报文同时带有ACKSYN标志表示对刚才客户端SYN报文的回应,同时又标志SYN给客户端询问是否做好准备进行数据通讯。SYNACK标志位均置为1ack=x+1,seq=yS进入SYN_RCVD状态。

3.C收到回应S一个ACK报文,其ack=y+1,seq=x+1。进入Established状态。S收到后也随即进入Established状态。至此完成了三次握手建立TCP连接。

TCP四次挥手:

1.C主动请求关闭连接,向S发送一个FIN报文,用来关闭客户端到服务器的数据传送,占用一个随机序列号seq=iFIN=1C进入FIN_WAIT1状态

2.S收到后该报文后回应一个ACK报文,表示确认收到客户端关闭其数据传送的报文。ack=i+1seq=jS进入CLOSE_WAIT状态,C收到该报文随即进入FIN_WAIT2状态。

3.S端查看自身是否还有未发送或待发送的数据。若无,服务端被动关闭连接,向C发送FIN报文,表示要关闭服务端到客户端的数据传输,FIN=1,seq=k。若有待续传输的数据,传输完这些数据后执行上述动作。S进入Last_ACK状态。

4.C收到FIN报文后客户端随即发回ACK报文确认。ack=k+1.C进入TIME_WAIT状态(用于可靠的终止TCP连接,保证让迟来的TCP报文段有足够短时间被识别并丢弃),待两个MSL后进入closed.S收到后进入closed状态。至此完成四次挥手断开连接。

 

详细描述一下ospf协议中从初始化到建立完成的邻接关系的过程,以及各个阶段的状态机

过程:Down--init--2-WAY--Exstart--Exchange--Loading—Full

1 Init:在Down状态下路由器发出第一个hello包。当R2收到一个Hello包,并且在这个hello包中看不到自已的ID,则将自已和邻居的关系转到Init状态。Init下一个one way 状态,当R1R2都认识对方(收到hello包邻居里有自己Router-id)后就会进入Two Way状态。【路由器收到邻居发来的hello包】

2)在Two Way时,将选举DB/BDRMA网络)。进入Two way状态后(即从Exstart开始),表示这两个路由器已经建立了邻居关系了。但最终能不能邻接关系要看最后是不是FULL【已经建立双向连接,建立邻居关系;NBMA和广播网络选DR/BDR

3ExstartExstartfirstDBD, 确认主从关系。双方互相发送第一个DBD报文,
选取主从(router-id大的是Master【确定主从关系Master/Slave

4 Exchange Exchange是通过DBD交换LSA的头部信息。
注意:DBD分为FirstDBDDBD【通过DBD交换LSA的头部信息】
FirstDBD携带除LSA头部外的信息(I/M/MS,DD SN,OptionMTU等)。
通过firstDBD确认主从关系,从会使用主的Seq Num(同步序号),最后从给主发DBD来隐式确认
DBD只携带LSAHeader,没有携带LSA的具体信息。承载完整LSALSU

5Loading:等待M位为0时,才进入loading
LSR:是不携带LSA头部的,只通过部分字段(公告IDLSA 类型,linkID)来请求具体的条目。【根据DBD发送LSR来更新链路状态信息】
LSU:含有真正LSA完整信息的,用来回应LSR

6FULL:完成了邻接关系的完整建立。

 

自己写的,上面是参考答案和个人理解。

过程:Down--init--2-WAY--Exstart--Exchange--Loading--Full

1.Down状态,路由器没有收到邻居任何消息。

2.Init状态,路由器收到了邻居发送的hello包。

3.2-Way状态,说明两台路由器之间已经建立了双向的链接,除广播和NBMA网络下,Drother之间维持邻居关系外,其余将进行下一步建立邻接关系如选DR/BDR2-way下双方仅知道邻居的存在双方并无实质性数据的交互。

4.Exstart状态,根据prority协商主从关系,其他路由器和DRBDR初始sequence number来形成邻接。

5.Exchange状态,OSPF路由器交换DBD包(包含LSA描述链路状态数据库的内容)。

6.Loading状态。基于DBD报文提供的信息路由器会发送链路状态请求报文LSR等来跟新链路状态信息。

7.Full状态。路由器间更新同步即完成了数据库同步的工作。他们链路的状态信息一致。已建立完成邻接关系。

 

自然连接:是一种特殊的等值俩捏,它要求两个关系中比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不会去掉重复的属性列。

内连接:结果仅包含符合连接条件的两表中的

外连接:结果包含符合条件的行,同时包含不符合条件的行(分为左外连接、右外连接和全外连接)

 

左外连接:左表全部行+右表匹配的行,如果左表中某行 在右表中没有匹配的行,则右表该行显示NULL

右外连接:和左外连接相反。

全外连接:不管匹配不匹配,全部显示出来,左表在右表没有的显示NULL,右表在左表没有的显示NULL

 

VLAN标签问题

  1. 交换机内部转发数据帧的时候,均是携带vlan tag的。即交换机内部帧一定是有vlan tag的。
  2. 所以数据帧从交换机的端口发出时必定携带vlan tag
  3.  

报文入方向:在入方向上,交换机的根本任务是决定该报文是否允许进入该端口

 根据入报文的tag/untag的属性以及端口属性,细分为如下情况:

  • 报文为untag:允许报文进入该端口,并打上PVID的vlan tag,与端口属性无关。
  • 报文为tag:在这种情况下,需要交换机来判断是否允许该报文进入端口:

   (1)Access端口:PVID和报文中的vlan tag标明的vlan一致,接受并处理报文。否则丢弃;

   (2)Trunk/Hybrid端口:如果端口允许tag中标明的vlan通过,则接收并处理报文,否则丢弃

报文出方向:在出方向上,交换机已经完成对报文的转发,其根本任务就是在转发出端口时,是否携带tag转发出去 

  根据出端口属性,细分如下情况:

   (1)Access端口:将标签剥掉,不带tag转发。

   (2)Trunk端口:报文所在vlan和PVID相同,则剥掉标签后报文不带tag;否则带tag

   (3)Hybrid端口:报文所在VLAN配置[vlan list]是含有tag的,则报文带tag,否则不带tag

4.以太网端口三种链路类型:AccessHybridtrunk

Access类型的端口只能属于1VLAN,一般用于连接计算机的端口;
Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

 

Ping的请求超时和不可达原因的区别:请求超时,路由表存在目标因其他原因到达不了;而不可达,路由表没有存在到达目标路由。

 

BGP

  1. BGP连接是否建立用【show tcp bri】查看是否建立,一般为本地随机大端口到目标的179端口。谁发起建立连接,则发起方为随机端口到目标的179端口
  2. Ebgp给身后的ibgp需要next-hop-selfEbgp之间需要ebgp-mutihop 2-255

3.

 

IPsec VPN

  1. show crypto isakmp sa / show crypto ipsec sa】最直观查看是否建立成功
  2. show crypto engine connections active】查看加密数据包,如果加密成功,那么可能是对方路由的问题导致回不来。

 

ACL

  1. 要删除ACL中的某条规则,需要进入该ACL配置模式中在删除某条规则,在全局下删除该规则时,会默认将该ACL整条删除。

 

 

#经典、知名端口是目的Destination,如2380

猜你喜欢

转载自blog.csdn.net/Pespi_Co1a/article/details/85684357
今日推荐