第一章 概述(二)
计算机网络参考模型
对于计算机网络来讲,硬件并不重要,连接起来很简单,主要就是怎样在软件上面实现,通过模型来分析计算机网络软件是怎样工作的
简介
- 参考模型
- ISO/OSI参考模型
- 国际标准化组织提供的一个开放互联的模型
- 说明了一台机器上面的一个应用进程要跟另一台机器上面的应用进程进行交流要做哪些事情
- TCP/IP参考模型
- 主要用于互联网中
- ISO/OSI参考模型
ISO/OSI参考模型
- 这个模型通常被称为: 七层模型/七层协议
- 通常遇见一个大问题,先把他分解成若干个小问题,一个一个解决,同样,计算机网络通信也是,这个模型就把计算机网络通信分成了七大部分工作,这也就是网络协议的七个层次(物理/数据链路/网络/传输/会话/表示/应用)
- 物理层的工作:
- 主机A的二进制比特串传入到主机B上去
- 这个信息传递非常不安全,任何物理链路都会有干扰,(打雷/其他干扰信号)影响信号传递,因此就有了第二层的工作-数据链路层
- 数据链路层的工作:
- 保证主机A上的二进制比特串传到主机B上是完全正确的
- 如何保证: 把要传递的数据,分成一组一组的传递,每一组称为帧
- 如何保证每一个帧的正确性:通过计算机计算,先对这一串数据进行计算,让后将计算的结果跟原始数据一块发出去;到接收方,用同样的方法对原始数据进行计算,计算的结果如果是相同的,认为正确
- 现在只能做到,A主机传递到B主机数据的正确性,但是计算机之间传输并不是直接两点之间通过一条线的,主机A到主机B中间可能会经过一个通信子网,消息传到一个通信子网的中继结点,然后再传到下一个结点…最终到主机B,那么就出现一个问题,如何找到相应的结点传入,然后形成一条路传到B呢?因此就必须有一套机制,告诉我A主机到B主机,我应该经过哪些中继的节点,即在整个网络当中找到一套路径,找到路径后才能沿着这个路径一段一段的传过去,这个机制就是网络层
- 网络层的作用:
- 找到一条通信的路径,数据链路层通过这条路径传递信息.
- 对于计算机网络来讲,他的最总目的并不是某一台机器,而是这台机器上面的某一个应用进程,即计算机网络通信实质上是计算机上面的进程之间的通信.
- 那么必须有一套机制来标示A机器上面到底是哪一个应用进程要传递出去,那么这就需要传输层来实现
- 传入层的作用:
- 传输层就标志了我这个服务到底是谁请求的要交给谁
- A要给B会话,需要B事先做好准备,否则,消息发送浪费;因此,进行通信前,事先要给B打好招呼,由谁来打招呼呢? 这就用到了会话层
- 会话层的作用:
- 事先打好招呼,然后开始通信
- 尽管可以通信了,但是A发送的数据,B能理解吗?(比如:对方是外国人,他听不懂怎么办?),这就需要翻译,每台计算机都有自己的语言信息表示方法,(大多数PC字符语言都用ASCII码表示),但是也有用其他表示的,不同的编码,表示的结果不一样,因此,表示层就是用来翻译的
- 表示层的作用:
- 作用就是信息的理解翻译,A中表示字符,到B时也要表示成字符.或者A机上表示整型字符2个字节,但是B大型机上却是用4个字节表示,此时表示层就要告诉B机,要去2个字节,不能取4个字节.
- 更形象的表达是:把汉语翻译成英语,但是意思不变.
- 但是翻译后他也不一定能够理解,比如:给我发来一段考古方面的文章,尽管我认识字,但是却不理解,那就需要去先学习,再理解,这个学习的过程,就是应用层
- 应用层的作用:
- 每一个应用都有他特定的表示方式,他需要一个学习的过程,这就是应用层的作用.
层/协议和接口
- 为何成为7层协议?
- A主机与B主机通信,每一层都应该有一个约定好的协议.比如物理层,约定好0用什么电信号表示,1用什么电信号表示,这个信号持续时间多长,比如:RS232就是物理层的协议
- 因此网络不能笼统的说我用的是哪个协议,因该是哪一层用的是哪个协议
- 接口
- 每一层他和他的下层之间都有一个接口,每一层都会提供一些接口共他的上一层来调用.比如:链路层将数据分成帧之后,交给物理层,物理层将二进制比特位传递出去就行了.
- 每一层的功能都是为它的上一层服务的
- 分层的好处
- 通过每一层实现一种相对独立的功能来简化问题
- 每一层的设计都是独立的,它不必关心下一层是如何实现的,只需知道下一层为我提供的服务,和我必须为上一层提供哪些服务
- 当由于技术的变化使某层的实现需要变化时,不影响其他的层次
各个层的总结
- 物理层(physical layer)
- 与传输媒体的接口,完成传输媒体上的信号与二进制数据间的转换
- 物理接口上发送或接收的是一串以某种规则表示的二进制的数据
- 物理层定义的是接口的机械特性(插头行状/每个引脚作用)、电气特性(信号编码方式)、功能和过程特性等
- 物理层实际上反应的是计算机上一些物理的接口,串行接口/并行接口/RJ45接口等等,这些都是物理层协议.
- 例如:插头、插座的几何尺寸,每根引脚的功能定义,逻辑[0]和[1]的电平定义,信号宽带定义
- 数据链路层(data link layer)
- 提供点到点的可靠传输,通常需把数据分成帧,并且保证帧的正确发送和接收
- 识别帧的标志
- 帧的发送和接收,需校验(根据校验码)、确认
- 发送方在超时或收到否定性确认后,要重发
- 重复帧要丢弃
- 在共享网络中,需解决信道共享问题等
- 提供点到点的可靠传输,通常需把数据分成帧,并且保证帧的正确发送和接收
- 网络层(network layer)
- 提供主机到主机的通路,其间可能存在多条通路,网络层将实现的功能包括:
- 选择路由
- 拥塞控制
- 协议的转换
- 分段和重组
- 对用户的分组、字符等计数 等等
- 提供主机到主机的通路,其间可能存在多条通路,网络层将实现的功能包括:
- 传输层(transport layer)
- 提供端到端的通路,应用到应用的通路
- 传输层将把高层要求传输的数据分成若干个报文
- 报文与帧不一样,帧只有帧标志(起始标志、结束标志),而报文有信源和信宿的地址及端口、报文的顺序号、确认号等等
- 低三层的通信对象通常是路由器,传输层是端到端的,必须考虑该报文怎样才能从源端正确地传输到目的端,而源端和目的端通常是主机
- 提供端到端的通路,应用到应用的通路
- 会话层(session layer)
- 建立有关会话的机制,或双向对话,或双向对话时要有切换等
- 如:说的一方应说一段就听一下对方的反应,因为,可能线路已断
- 表示层(presentation layer)
- 表示层关心的是语法和语义
- 对相关的数据的描述采用抽象的定义,如浮点数都用科学表示法
- 相关数据的表示法转换
- 抽象数据结构的转换
- 应用层(application layer)
- 包括所有应用方面的协议
- 如:全屏幕功能,不同的终端其控制字符不尽相同,应作相应的转换,通常定义一个网络虚拟终端
- 不同系统之间的文件传输的方式不同,但表示的形式必须一致
- 包括所有应用方面的协议
OSI模型的数据传输
- 发送信息时有个封装的过程,接收的时候有个解封装的过程
- 信的内容就是应用层的信息,信的格式/语言等等都是应用层协议
TCP/IP参考模型
- OSI的七层协议是最经典的一个参考模型,非常具体的把计算机网络要实现的所有功能都提到了,但是实际中并没有一个计算机的通信是完全按照基层协议来设计的,但是都是参考这个基层协议来设计的.目前最常用的就是TCP/IP的参考模型.
- 网络互连的协议,TCP/IP解决的是将不同的网络怎样互通起来
- 简化成了4层协议(应用层/传输层/物联网/主机至网络)
- 应用层相当于OSI的应用层,由于现在所有的小型PC机都是ASCII协议,因此把表示层放到的应用层中(加密/解密).
- 传输层:把OSI的会话层与OSI的传输层放到了一起.
- 互联网层: 对应了OSI中的网络层,除此之外,因为它还提供了把不同的网络(不同的协议)互连起来的功能,因此有一个协议的转换功能.互联网怎样互连起来的关键就是网络层,因此这节内容比较多.
各个层的分析
- 互联网层(internet layer)
- 由于不同的网络有不同的协议,那么怎么交互呢?如果每一个之间都互相翻译那么就非常麻烦.就像各个国家的语言交流一样,但是如果定义一种世界通用的语言,这样大家都会这种语言就可以了.
- TCP/IP实现不同网络之间的互联就是定义了一种世界语言,这种世界语言就是IP协议
- IP协议最关键的是定义了一个在网络层的分组格式,这个数据包要在我这个网络上传递,你必须把他装成我这个分组的格式,这就是TCP/IP怎样的实现网络互联的.
- 这里的互联网是基于无连接的分组交换网络
- 互联网层定义了正式的分组格式和协议,即IP协议(internet protocol),每个IP包的路由问题是互联网层要解决的问题
- 互联网层与OSI中的网络层相对应
- 一个报文的各个不同的分组(称为IP包),可以通过不同的路径到达目的地,其到达顺序与发送顺序可能不一致
- 传输层
- 位于互联网层的上层,与OSI中的传输层相对应
- 其功能是使源端和目的端主机的对等实体进行对话
- 定义了两个端到端的协议:
- 传输控制协议TCP(transmission control protocol)
- 用户数据报协议UDP(user datagram protocol)
- TCP/IP协议的传输层有两个协议:一个是TCP协议,一个是UDP协议.
- TCP协议为应用层提供了一个可靠的服务,UDP提供了一个不可靠的服务.
- TCP/IP为何称为TCP/IP协议呢?
- TCP/IP协议有一组协议
- 用的最多的两个:一个是互联网层的IP协议,一个是传输层的TCP协议.
- 这两个协议加起来统称为TCP/IP协议.
- 应用层(application layer)
- TCP/IP模型的应用层包括所有的高层协议 (实际上,OSI模型中的会话层和表示层在很多应用中是没用的)
- 应用层常用协议:
- TELNET:标准终端仿真协议
- FTP(File Transfer Protocol):文件传输协议
- SMTP(Simple Mail Transfer Protocol): 电子邮件协议
- DNS(Domain Name Service):域名系统服务
- 主机至网络层
- 在互联网层以下,TCP/IP参考模型没有定义,认为互联网是网络的互联,至于主机如何接入网络不是TCP/IP模型所需要考虑的问题
- TCP/IP模型面向的是网络,而不是主机
TCP/IP模型中的协议与网络
TCP/IP协议簇
- TCP/IP协议是一组协议的总称,包括:
- IP层(即互联网层):
- IP、ICMP、ARP、RARP、OSPF… …
- TCP层(即传输层):
- TCP、UDP
- 应用层:
- FTP、SMTP、SNMP、TELNET、HTTP、DNS… …
- IP层(即互联网层):