计算机网络:OSI七层协议和各种协议介绍

2020-04-11  本文已影响0人  浅蓝色的麻吉

Github issues:https://github.com/littlejoyo/Blog/issues/

1.什么是OSI七层模型?

维基百科介绍OSI模型:

开放式系统互联模型(英语:Open System Interconnection Model,缩写:OSI;简称为OSI模型)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。

概念不重要,最重要是理解好各层次的含义和对应的典型协议应用。

OSI七层协议自上而下分为:

2.OSI模型各层介绍

osi

物理层

数据链路层

网络层

网络层通过寻址(寻址地址)来建立两个节点之间的连接,我们的电脑连接上网络后都会有一个IP地址,我们可以通过IP地址来确定不同的计算机是否在同一个子网路。当我们的电脑连接上网络后就有两种地址:物理地址(MAC)网络地址(IP地址),网络上的计算机要通信,必须要知道通信的计算机“在哪里”, 首先通过网络地址来判断是否处于同一个子网络,然后再对物理地址(MAC)地址进行处理,从而来确定要通信计算机的位置。

传输层

通过MAC和IP地址,帮助我们找到互联网上任意两台主机来建立通信。然而这里有一个问题,找到主机后,主机上有很多程序都需要用到网络,比如说你在一边听歌和使用QQ聊天, 当网络上发送来一个数据包时, 该怎么知道它是表示聊天的内容还是歌曲的内容的, 这时候就需要一个参数来表示这个数据包是发送给那个程序(进程)来使用的,这个参数我们就叫做端口号,主机上用端口号来标识不同的程序(进程),端口是0到65535之间的一个整数,0到1023的端口被系统占用,用户只能选择大于1023的端口

会话层

表示层

应用层

3.TCP/IP四层模型

TCP/IP协议簇是一个四层协议系统,可以说是OSI模型的简化,结构如下图:

TCP/IP

应用层:

应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:

提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

网络层:

负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:

对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

数据解包和装包

数据解包和装包 xxx

4.OSI七层模型各层代表协议

5.TCP/IP协议介绍

TCP、UDP、IP协议在此不介绍,另起文章细究。

ICMP协议

ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。

NAT协议

基于IPv4的IP地址只有32位,最多只有42.9亿个地址,还要去掉保留地址、组播地址,能用的地址只有36亿左右,但是当下有数以万亿的主机,没有这么多IP地址可以对应,虽然现在有了IPv6,但是当下IPv4还是主流,利用IPv4怎么满足这么多主机的IP地址呢?答案就是NAT,NAT技术使公司、机构以及个人产生以及局域网,然后在各个局域网的边界WAN端口使用一个或多个公网的IPv4进行一对多转换

DHCP协议

一个主机如何获取IP地址?有两种获取方法,一种是静态配置,就是从网络管理员获取一个给定的IP地址,也叫硬编码,属于静态IP,还有一种就是动态配置IP地址,也就四基于DHCP协议进行动态IP配置。

ARP协议

工作流程:

  1. 通过DNS域名解析到主机的IP地址,应用程序发送请求通过TCP或者UDP使用得到的IP建立连接。

  2. 当主机知道IP地址,并把数据报发过去的过程之前,主机在链路层实际上是要知道目标主机的物理地址的,每台主机的物理地址又称MAC地址是全球唯一的。在这一步,就需要我们的ARP协议。

  3. 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

  4. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。

  5. 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

  6. 源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
    广播发送ARP请求,单播发送ARP响应。

  7. 得到了目的主机的硬件地址后,就包含着IP数据报的以太网数据帧就可以正常发送了。

RARP协议

工作流程:

  1. 在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系

  2. 当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去

  3. 当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。

  4. 因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

FTP协议

TFTP协议

HTTP协议

DNS协议

Telnet 协议

Telnet

其中,工作流程分为 6 个步骤,每个步骤含义如下:

  1. Telnet 客户端通过 TCP 协议的三次握手与 Telnet 服务器建立连接。

  2. 建立连接后,需要通过用户名和密码才能远程登录到服务器。因此,服务器要求客户端提供用户名和密码。

  3. Telnet 客户端输入用户名和密码,尝试登录服务器。

  4. 成功登录后客户端向服务器发送要执行的命令。

  5. 服务器收到客户端发来的执行命令,开始执行命令,并将结果返回给客户端。

  6. 客户端不再需要远程执行命令,将向服务器发送 TCP 断开数据包,用于撤销连接。

SNMP 协议

工作流程如图所示:

snmp

上图中展现了管理员通过 NMS 获取网关监控数据的工作流程,其中涉及了一些 SNMP 协议的关键信息。

为了方便理解,下面先介绍这些信息的作用及含义。

MIB(管理信息库):

任何一个被管理的设备都表示成一个对象,并称为被管理的对象。而 MIB 就是被管理对象的集合。它定义了被管理对象的一系列属性,如对象的名称、对象的访问权限和对象的数据类型等。每个设备都有自己的 MIB。MIB 是一种树状数据库,MIB 管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字。

SNMP 代理:

是一种嵌入在被管理设备中的网络管理软件模块,主要用来控制本地机器的管理信息。它还负责将管理信息转换成 SNMP 兼容的格式,传递给 NMS。

上图所示的工作流程分为以下 4 个步骤:

  1. 当管理员查询被管理设备中的对象的相关值时,首先通过网络管理站 NMS 中的 MIB 找到相关对象。

  2. 网络管理站 NMS 向 SNMP 代理申请 MIB 中定义对象的相关值。

  3. SNMP 代理在自己的 MIB 库中进行查找。

  4. SNMP 代理将找到的对象相关值返回给网络管理站 NMS。

6.硬件介绍

中继器

网桥

交换机

路由器

路由表

路由表

区分交换机和路由器

利用现实例子了解路由器和交换机的区别:

扮演角色:

楼管王大爷:交换机(只负责局域网分配不同的IP)

邮局:路由器,可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP,也就是只把信送到宿舍楼下,共用一个邮箱(IP)

7.典型面试题

请介绍在浏览器中输入 www.baidu.com 后执行的全部过程。

  1. 客户端浏览器首先获取本地host文件获取IP,如果获取不到再通过DNS解析到www.baidu.com 的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。

  2. 客户端浏览器发起一个HTTP会话到220.181.27.48,通过TCP握手建立连接,然后通过TCP进行封装数据包,输入到网络层。

  3. 在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。

  4. 然后使用IP层的IP地址查找目的端。客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器。

  5. 期间可能经过多个路由器,这些都是由路由器来完成的工作,无非就是通过查找路由表决定通过那个路径到达服务器。

  6. 客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址。

  7. 然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

  8. 服务器处理请求后响应首页数据反向传输,传输到客户端后,TCP连接释放,浏览器将首页文件进行解析,并将Web页显示给用户。

微信公众号

扫一扫关注Joyo说公众号,共同学习和研究开发技术。

weixin-a
上一篇下一篇

猜你喜欢

热点阅读