1、简述osi七层模型和TCP/IP五层模型
一、OSI参考模型
1、OSI的来源
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
2、OSI七层模型的划分
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图。
每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。
MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。 在实际使用中,LLC子层并非必需的。
(给快递打上含具体地址和中转站等信息的二维码标签方便发货、收货时校验是否发错位置和物品)
<7> 物理层
二、TCP/IP五层模型
TCP/IP五层协议和OSI的七层协议对应关系如下。
在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。
在每一层实现的协议也各不同,即每一层的服务也不同.下图列出了每层主要的协议
参考文档来自:OSI七层模型与TCP/IP五层模型 - SevenFormer - 博客园
2、总结描述TCP三次握手四次挥手
三次握手
三次握手可以这么理解:
TCP客户端是A,TCP服务器是B,A打电话给B要谈事情
A 拨通B的电话 (客户端请求服务器建立连接)
B接通电话后问:我是B,你是哪位? (服务器要求客户端确认连接)
A回答:我是A,我要跟你交流一个问题。 (客户端确认连接)
相互确认身份后A与B持续交谈中 (数据传输过程)
三次握手确立了TCP服务器和客户端的通信关系。为什么需要三次握手,两次握手不行吗?从通信角度看,对于客户端两次就够了,但对于服务器不够,因为,两次握手服务器仅仅知道客户端和服务器之间的信道是通的,但服务器和客户端之间还未知,所以需要收到客户端发来的确认消息双方才能确认双方的消息通路都是ok的。
四次挥手
对于连接的断开需要四次挥手,也是客户端发起,即由A发起结束谈话。
A:我这边没什么意见了,今天谈话就先到这吧。 (客户端已经没有数据可以传输)
B急忙说到:我还有个问题 (服务器这端还有未发送完的数据)
就是…… (没有发送完的数据继续传输)
B:OK今天就先到这吧,你那边还有问题么? (服务器这端数据传输完毕)
A:没有了,保持联系…… (等待Time_Wait时间到,结束通话)
这里有个注意的点是,客户端在收到服务器发送的数据传输完毕的消息后(第三次挥手),不能立即关闭连接,必须等待2MSL时间才能关闭,因为这期间最后一次挥手服务器未必能收到,如果没有收到,服务器会重新发送第三次挥手的消息,这时候如果客户端关闭,将无法回应第四次挥手消息,使得四次挥手过程无法完成。
参考:总结描述TCP三次握手四次挥手_liaowunonghen的专栏-CSDN博客
3、描述TCP和UDP区别
-
TCP提供的是面向连接的、可靠的数据流传输;
UDP提供的是非面向连接的、不可靠的数据流传输。
-
TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失,不重复,按序到达;UDP尽最大努力交付,即不保证可靠交付。
-
TCP面向字节流;
UDP面向报文。
-
TCP连接只能是点到点的;
UDP支持一对一、一对多、多对一和多对多的交互通信。
-
TCP首部开销20字节;
UDP的首部开销小,只有8个字节。
-
TCP的逻辑通信信道是全双工的可靠信道;
UDP的逻辑通信信道是不可靠信道。
4、网卡绑定bond0的实现
1、什么是bond?
网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels 2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。
2、实现原理:
网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcpdump工作用的也是混杂模式(promisc),将两块网卡的 MAC地址修改为相同接收特定MAC的数据帧,然后把相应的数据帧传送给bond驱动程序进行处理。
配置如下图: