简述一下OSI七层网络模型与TCP/IP协议四层网络模型

因为最近的工作会涉及网络这方面的知识,所以对网络这一块基础内容进行一个回顾,之前在学校学习都是马马虎虎,再次回顾一下这些基础内容,再结合实际工作经验,希望能让自己在网络这一块上面建立起基础知识模型,这篇文章主要是在看完计算机网络基础之后的总结,因为之前面试过程中一直会提及这些知识点,所以简单做一个记录。

一、OSI七层网络模型
OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
因为是从事开发工作,所以从上往下进行梳理。

面向程序员

1、应用层
应用层指的是能够产生网络流量并能够和用户交互的应用程序。这一层其实没什么好说,就好比微信,QQ,公司的Link都是面向用户的应用产品,从计算机网络分层结构上来说,这些应用都是属于应用层,用户通过这些产品来进行网络访问,信息交流。

2、表示层
表示层指的是对通讯数据进行加密,压缩这个层面的过程。这一过程主要面向的是程序员,这可以让我联想到的是在开发的过程中我们时常需要对前后端通讯数据进行控制,比如前后端通讯格式使用的是json,使用nginx或者自定义http请求头对http请求报文做压缩,使用谷歌浏览器对ajax请求的监控等等操作,应该就是在表示层上面做工作,表示层的数据不直接面向用户,如json不可能直接显示,这一层面的东西就是表示层。

3、会话层
会话层指的是服务器端与客户端建立的会话这一层面的东西。其实在最开始的时候我就在想这个会话是不是就是web这边的session的概念,后面细想了之后觉得应该不是,session是基于cookies的,cookies的传输是在http请求头中实现的,那这应该是表示层的东西。后面看了讲解之后讲到是服务器端与客户端建立会话,那应该就是平常我们使用netstate、ss里面看到的东西,这个会话应该指的是TCP或UDP建立起来的会话,不是http协议,而是更加底层,讲起来比较抽象,但是在实际的业务中http协议发生的问题总是容易排查,而底层的TCP/UDP发生的问题很难定位,容易联想到的就是之前开发的爬虫程序,因为没有处理好异常问题,导致电脑中出现大量的time_wait。

网络工程师

4、传输层(典型设备:网关)
传输层指的是控制可靠传输与不可靠传输,以及流量控制的问题,在看完视频之后,其实这一层主要的核心就是tcp,udp协议,因为学习的课程在这一张没有详细的讲述,质量效果不好,所以后期我打算通过两本书来巩固这一层的知识内容,立一个flag

《TCP/IP协议卷一》:三卷之中、卷一是讲述基础理论,卷二讲述的是实现,卷三讲的是事务,对我来说我觉得看卷一应该就够了,卷二是C/C++写的,也看不懂
《图解TCP/IP》:看过《图解HTTP》,这系列的书对读者来说还是比较容易接受的,因为图比较多,对晦涩的知识能够通过图来讲解

虽然这一层了解不多,但是至少还是要记得几个知识点:
TCP与UDP有什么区别?
TCP是可靠传输,是通过会话的形式进行的,需要通信的两方都参与的,通讯时需要不断的确认数据段会被对方收到,如果收不到的话需要重传,在下一层的IP协议等都是不可靠传输,数据链路都不提供可靠性保障,只复制传输。可以说应用的大多数协议都是基于TCP协议的,教程中有一句话大概是这么说的,应用层的协议就是基于TCP协议+应用+端口来构建的,那我应该可以理解为,其实应用层是特殊化的TCP协议把。
UDP是一次性传输,不可靠传输。我把它理解为,我发一个包给你,你收到没受到与我无关,发了便完事。

TCP socket状态 变化总结->能理解难背诵呀

5、网络层(典型设备:路由器,网桥路由器)
网络层指的是IP地址编址、选择最佳路径等,这里已经涉及到路由器这一方面的到东西了,在计算机网络通讯中如何找到计算机,这一块内容我也得加深了解。在看完教程后知道了这一层的核心是IP协议,关于IP协议教程提及到主要要记得以下的结构

IP协议 ICMP协议 ICMP协议
- - - - - - - -
ARP协议 反向ARP协议

懒得画图,直接用这么一个表示方法表示,什么意思呢?就是说IP协议的基础是ARP协议与反向ARP协议,在IP协议的范围里涵盖了ICMP协议与ICMP协议

ARP协议:地址解析协议,在互联网中我们都是通过IP进行交流的,但是IP并不能唯一标志一台计算机呀!所以我们需要一个协议把IP解析成MAC地址,MAC地址是全球唯一标志你计算的地址,从你的网卡并生产出来的时候就被打上标志,就好像你的身份证一样,硬件产商都会被严格分配一个地址头,所以我们也可以通过mac地址来看出网卡产商。需要把IP转换成MAC地址才能被下一层转发。

反向ARP协议:很简单呀,就是ARP协议反向,也就是把MAC地址转换成IP地址,再由路由转发。

ICMP协议:Internet控制报文协议,从理论上来理解不知道怎么描述,说白了就是你可以通过一个ICMP数据报来知道你的网络能不能通到对方网路过去,ping命令知道把?ping命令就是通过这个协议的报文来反馈你能不能通,这个协议也是基于IP协议的。

IGMP协议:是用于多播或广播的协议,在互联网上有时候也需要广播,比如说发一条广播让网段内的计算机都反馈一下IP地址等

IP协议:说白了就是通过IP来转发下一层的数据帧,在互联网中IP是有限的…. 真的不知道怎么描述了,还是看教程,有时候真的觉得知识这种东西很难三言两语就记录下来….

在网络层的学习中,让我收获很大的地方是我知道了
A类网络:1~128.0.0.0
B类网络:129~191.0.0
C类网络:192~223.0.0

知道一些网段是只能在内网中使用的
局域网的地址范围分三类:
C类:192.168.0.0-192.168.255.255
B类:172.16.0.0-172.31.255.255
A类:10.0.0.0-10.255.255.255
这三类地址不能在广域网中出现的,只是局域网中传播

另外还有一些比较特殊的IP地址
如:169.254.x.x : window 机子获取不到IP的时候自动显示这个IP,在工作中就遇到这个问题,接上wifi,IP地址显示这个,说明这个wifi有问题

还有对子网的划分方法,子网掩码是什么,网关的作用等,在实际工作用立刻能用到的是这样:
平常在工作中同时
需要链接外网网络(通过网线接电脑)
需要链接客户的内网网络(通过特殊的手机热点)
以前是当链接两个网络时,要么上不了外网,要么上不了内网,现在我可以通过配置路由的方式来让我的机子同时去到两个网络,说白了就是通过路由的方式,如果我去到某个内网的网段那么就走手机热点的网关,如果走互联网的话,那就走外网的网关。

6、数据链路层(典型设备:交换机、网桥、网卡)
数据链路层主要是进行数据的分装,添加物理层地址,MAC地址等,这一层看完知识点已经很久了 大概也记不得很起来,作为一个软件工程师其实我觉得要求了解比较低,主要提及了一些传输差错校验的方法,如什么冗余法,还有一些链接的协议如点对点协议(Point-to-Point Protocol)

硬件

7、物理层
主要指电压、接口标准等

二、TCP/IP四层网络模型

TCP/IP四层网络模型是应用层、传输层、网络层、网络访问层。是对OSI七层网络模型的一个简化。

应用层->OSI 应用层、表示层、会话层

传输层->OSI 传输层

网络层->OSI 网络层

网络接口层->OSI 数据链路层、物理层

三、总结
其实从这篇简述中,可以看出我对会话层这一块的内容只是简单的了解,但是实际业务中却经常遇到这方面的难题,遇到时没有足够的知识可以去应对解决。
对于传输层、网络层、数据链路层几乎是没什么了解,这里虽然说是网络工程师需要解决的问题,但是认识这一层面的东西对日后服务器的维护也是有重大帮助。
物理层的话对自己的要求是能简单了解,能讲出来即可。

发布了167 篇原创文章 · 获赞 167 · 访问量 27万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览