月辉清照

博客园 首页 新随笔 联系 订阅 管理

1、简述osi七层模型和TCP/IP五层模型

OSI七层模型

第七层:应用层

应用层是常见的一些服务应用程序的数据起始或终止点,它们产生的数据就是应用层数据,它们接收到的数据也是在应用层接收的。

第六层:表示层

表示层将为应用层产生的数据提供数据转换类的服务,也就是数据如何展现、如何表示的功能。如格式转换、编码转换、数据压缩、数据加解密等。

第五层:会话层

跨主机的两个计算机之间的应用程序要进行通信,需要建立会话。会话层虽然不参与具体的数据传输,但它对数据传输进行管理。

第四层:传输层

传输层的基本功能就是接收上一层数据,并在必要的时候将数据分割成更小的数据单元,然后把这些数据单元传递给网络层。它是一个端对端的传输控制层:通过指定端口找到对方主机上的对应服务程序。

在传输层有两种协议:UDP和TCP协议。当数据到了传输层后,将被封装成数据报或数据段。如果是采用UDP协议传输数据,则数据被封装成数据报。如果采用TCP协议传输数据,则数据被封装成数据段。

第三层:网络层

经过传输层封装后得到的数据报或数据段要通过网络传输出去,必须要指定数据的目标IP地址。

在网络层会为数据段或数据报继续封装,加上源IP和目标IP地址。加上了目标IP地址之后,数据段或数据报就成为数据包。

第二层:数据链路层

 当封装了IP地址的数据包到达数据链路层之后,将继续封装得到数据帧:将源MAC地址和目标MAC地址加入到数据包中,得到的就是数据帧。

第一层:物理层

 数据最终是通过网卡出去的,数据帧将进入最后一层物理层。在物理层,网卡会将数字信号转变成电信号传递给网线,物理层处理后得到的数据是二进制数据,也成为bit位数据。

 

TCP/IP五层模型

 TCP/IP五层模型则分别是应用层、传输层、网络层、数据链路层和物理层。

 

2、总结描述TCP三次握手四次挥手

建立TCP连接三次握手的过程:

  1、当客户端A想要和服务器B建立TCP连接时,首先会发送一个连接请求报文给服务器B。在这个请求报文中,TCP首部中的SYN位设置为1,ACK位设置为0,假设此时的序号是x,即:

  SYN=1、ACK=0、seq=x。

  这个包也常称为SYN包,当客户端发送完SYN包后,它将进入SYN_SENT状态。

  2、当服务器B收到该报文后,发现其中的SYN=1、ACK=0,便知道这是一个TCP连接的请求包。如果服务器B确认与客户端A建立TCP连接,那么B需要回复A,即:

  SYN=1、ACK=1、ack=x+1、seq=y。注意区分这里的ACK和ack,ACK表示的是占用一个比特位的ACK设置位,ack是确认号。

  这个包通常被称为ACK包,当服务器B发送完ACK包之后,它将进入SYN_RECV状态。

  3、当客户端A收到服务器B的回复报文后,发现里面的SYN=1、ACK=1,于是也会向B回复一个ACK包,即:

  SYN=0、ACK=1、seq=x+1、ack=y+1。这里的SYN=0、ACK=1表示这不是建立连接的请求包,而是回复包。

  客户端A发送完之后,就进入ESTABLISHED状态,表示连接在客户端A已经建立完成了。

  4、服务器B收到客户端A的ACK包之后,也将进入ESTABLISHED状态。到此,TCP连接就建立完成。

 

断开TCP连接四次挥手的过程:

  1、客户端A首先发送一个TCP首部中FIN位置为1的包给服务器B,假设此时序号是u,即seq=u。FIN=1意味着这是一个请求关闭TCP连接的数据包,这种包也称为FIN包。

  当发送FIN包之后,A将从ESTABLISHED状态转变为FIN-WAIT-1状态。

  2、服务器B收到FIN包之后,发现其中FIN=1,知道A端请求关闭,于是发一个回复包给A。回复时,设置ACK=1,ack=u+1,同时还设置序号seq=v,发送完这个回复包之后,B进入CLOSE-WAIT状态。

  到了这个阶段,A到B方向的连接就已经释放了,A不能再发送传输数据给B,但是B到A方向的连接还没有关闭,它可以继续发送数据给A,A也会接收。因为在这个阶段只有一个方向的连接被释放,

  所以CLOSE-WAIT状态也称为半关闭(HALF-CLOSE)状态。

  3、当客户端A收到服务器B的ACK包之后,它将进入FIN-WAIT-2,等待B发起从B到A方向的连接关闭请求。

  4、当服务器B确认已经没有数据发送给客户端A之后,B开始主动关闭从B到A方向的TCP连接,这时会发送一个FIN包,同时ACK设置为1,ack仍然保持不变,是u+1,而seq则为一个新值w,

  因为进入CLOSE-WAIT之后,B可能还发送了一些数据。B发送完这个FIN+ACK包之后,将进入LAST-ACK(最后确认)状态。

  5、当客户端A收到服务器B的FIN+ACK包之后,需要对B发送的关闭请求做出回复。回复时,ACK=1,seq=u+1不变,ack=w+1。

  当发送完这个ACK包之后,A不会立即就关闭,而是进入TIME-WAIT阶段等待一段时间(2倍的MSL时长)。

  6、当服务器B收到客户端A的回复ACK包之后,意味着B到A方向的连接关闭已经确认了,于是B端关闭连接。

  7、当A等待了2MSL的时长之后,将真正关闭连接。

 

3、描述TCP和UDP区别

TCP协议的特性:

  1、工作在传输层

  2、面向连接协议

  3、全双工协议

  4、半关闭

  5、错误检查

  6、将数据打包成段,排序

  7、确认机制

  8、数据恢复,重传

  9、流量控制,滑动窗口

  10、拥塞控制,慢启动和拥塞避免算法

 

UDP协议的特性:

  1、工作在传输层

  2、提供不可靠的网络访问

  3、非面向连接协议

  4、有限的错误检查

  5、传输性能高

  6、无数据恢复特性


4、网卡绑定bond0的实现

  1、给服务器准备两块网卡,eth0和eth1,ip地址分别是192.168.56.128和192.168.56.129。现在将两块网卡逻辑地bond成为一块网卡,ip地址为192.168.56.100。

  

   查看一下现在的状态

  

 

  2、创建逻辑设备mybond0

  

   可以看到mybond0已经创建成功了。

 

  3、将eth0和eth1加入到bond0

  

   将eth0加入到bond0后,ssh客户端与服务器断开了连接,可以看到192.168.56.100已经可以连通并且ssh连接上了。将eth1也加入进去,最后查看一下状态。

  至此,eth0和eth1就成功加入到bond0了,可以使用bond0的ip地址进行通信。

  

 

 

posted on 2021-09-21 10:38  月辉清照  阅读(46)  评论(0编辑  收藏  举报