xinrong2019 / xinrong2019.github.io

My Blog
https://xinrong2019.github.io
1 stars 1 forks source link

20190310 计算机网络模型 #2

Open xinrong2019 opened 5 years ago

xinrong2019 commented 5 years ago

今天早上8点多起床,吃饭带孩子到10点离开家,去湘湖度过有阳光的周末,久违的阳光。

很明显,昨天列的计划是突击学习,今天的周末时光大部分时间都是在太阳下陪着孩子和家人过的,但也不觉得什么,开心就好,晚上和下周就需要精神高度集中突击,一周一天休息我觉得没什么毛病,不需要烦死甚至责怪自己。

xinrong2019 commented 5 years ago

现在有个想法,直接将学到的东西的笔记和思考的东西或者代码都写这里好了

xinrong2019 commented 5 years ago

计算机网络层次模型

OSI七层开放互联参考模型

TCP/IP 四层协议

OSI七层模型 TCP/IP概念层模型 功能 TCP/IP协议族
应用层 应用层 文件传输,电子邮件,文件服务,虚拟终端 HTTP、FTP、SMTP、Telnet
表示层 应用层 数据格式化,代码转换,数据加密
会话层 应用层 解除或建立与别的节点的联系
传输层 传输层 提供端对端的接口 TCP,UDP
网络层 网络层 为数据包选择路由 IP
数据链路层 链路层 传输有地址的帧以及错误检测功能 ARP
物理层 链路层 以二进制数据的形式在物理媒体上传输数据 IEEE802

各层的由来是自底而上的需求演进的,了解即可,其中TCP/IP协议模型是事实的标准,所以更为重要

数据传输,是先自顶而下的层层包装,到达目标节点后再自底而上的层层拆包。

最终在物理层传输和接收到的都是可以表示二进制数据的电流强弱,有两个概念,数模转换和模数转换。

更多更详细的见有道云笔记

xinrong2019 commented 5 years ago

OSI七层协议概述

为什么要记录?

了解这个模型的演进,是了解网络通信原理的基础,是互联网工作的基础。

物理层

首先,需要解决两台机器的通信需求,机器A往机器B发送比特流,机器B能收到比特流。这是最基本的物理层要做的事。

物理层主要定义了物理设备的标准,如网线的类型、光纤的接口类型、各种传输介质的传输速率等,主要作用是传输比特流,即0101二进制数据。将它们转化为电流强弱来进行传输。到达目标机器后,再转化为0101机器码,也就是我们常说的数模转换和模数转换。

这阶段传输的数据事bit,比特

工作在这层的设备有:网卡

数据链路层

在传输比特流的过程中,会产生错传、漏传、数据传输不完整的可能。

数据链路层定义了如何格式化数据以进行传输,以及如何控制对物理介质的访问。

这层通常还提供错误检测和纠正,以确保数据传输的可靠性。

本层将比特数据组成帧。

工作在这层的设备有交换机,对帧解码,并根据帧中的信息,把数据发送到正确的接收方。

网络层

随着网络节点的不断增加,点对点通信的时候需要经过多个节点,如何找到目标节点,如何选择最佳路径,成为了此时的首要需求。

其主要功能,是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。

网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费,来决定从一个网络节点A到另一个网络节点B的最佳路径。

由于网络层处理并智能指导数据传送,路由器连接网络各段。

路由器工作在这层。

这层的数据事数据包的形式。

本层需要关注的是IP协议。

传输层

随着网络通信需求的进一步扩大,通信过程中需要发送大量数据,如海量文件传输等,可能需要很长时间,而网络在通信的过程中会中断好多次,为了传输大量文件的准确性,需要对发送的数据进行切分,切成一个个段落(segment)进行发送。

其中一个段落丢失了怎么办?要不要重传?每个段落要按照顺序到达吗?这便是传输层要考虑的问题。

传输层解决了主机间的数据传输,数据传输可以是不同网络的,并且解决了传输质量的问题,是OSI中最重要的一层。

传输协议同时进行流量控制或者是基于接收方可接收数据的快慢程度规定适当的发送速率。

此外,传输层按照网络能够处理的最大尺寸,将较大的数据包进行强制分割,每一个分割后较小的数据片分配序列号,以便数据片到达目标主机后可以按照正确的顺序重组,该过程称为排序。

本层关注的主要协议有:TCP协议和UDP协议。

会话层

已经可以给正确的计算机发送正确的数据了,但是用户体验好不好?难道每次都要调用TCP打包,调用IP协议找路由,自己去发,所以需要建立自动收发包,自动寻址的功能,于是建立了会话层。

会话层的主要工作是建立和管理应用程序间的工作。

表示层

现在能够保证应用程序自动收发包和寻址了,但是要从Linux系统给Windows系统发包,两个系统语法不一致。需要表示层,帮我们解决数据在不同系统的语法问题。

在表示层,数据按照网络能理解的方案进行格式化,这种格式化因使用的网络不同而不同。此时,发送方直到自己发送的东西,转化成字节数组后有多长,但接收方不知道,所以,应用层的网络协议诞生了。

应用层

规定发送方和接收方必须使用固定长度的消息头,消息头必须使用某种固定的组成,消息头里必须记录消息体的长度等信息,方便接收方能够正确的解析发送方发送的数据,应用层旨在让你更方便的应用从网络中接收到的数据。

本层需要关注的是HTTP协议。

image

xinrong2019 commented 5 years ago

TCP/IP

image