计算机网络体系结构的形成
- 相互通信的两个计算机系统必须高度协调工作才行,而这种“协调” 是相当复杂的。
- “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。
开放系统互连参考模型 OSI/RM
为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO于1977 年成立了专门机构研究该问题。
两种国际标准
网络协议三个组成要素
协议的两种形式
- 一种是使用便于人来阅读和理解的文字描述。
- 另一种是使用让计算机能够理解的程序代码。
- 这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。
协议与划分层次
- 计算机网络中的数据交换必须遵守事先约定好的规则。
- 这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
- 网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
层次式 协议结构
ARPANET 的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。
传输层协议
要将网页的内容传给浏览器,这个网页的内容非常多,要分端传输。web服务器里面有发送缓存,将这个网页分成段编号然后逐个发出去,每个段都是独立发的,走的路径可能不一样,这样可能就存在了不按照顺序到达,比如编号为3的段没到,那么浏览器有缓存可以等待3到然后顺序读取这些段。
由于分端传输,可能不按照顺序到达,这叫做乱序,还有可能丢失,因为网络当中的路由器数据量非常大,这个接口缓存占用不下了,处理不过来了,就直接丢弃,那么接收端就收不到完整的文件了,为了要实现数据的可靠传输需要在发送端和接收端有可靠传输的协议。
对丢包和乱序都要进行处理,得约定好,这就是协议。(发出去的数据包要有回复确认的消息)
传输层为应用程序提供服务的,对于HTTP协议他是不知道分了多少个段,有没有按照顺序到达,有没有重传,因为HTTP层不关心这些。这也就是传输层为上层协议提供服务。
TCP协议为上层HTTP协议提供了可靠传输。
网络层协议
段要想传输还得写上目标地址的IP地址和源IP地址,也就是段还得加上网络层地址。这个就叫做数据包了。
网络当中的路由器就需要根据地址选择转发路径,所有的路由器都要根据网络层协议进行工作,
规定如何处理和转发数据包。要没有网络层协议传输层的段可是到达不了目的地的,因此网络层是为传输层进行服务的。
数据包从网卡发出来由交换机转发给路由器,路由器和网卡的接口都有物理地址mac,交换机上面可以连接很多计算机,交换机到底转发给计算机还是路由器呢,这还得有得由个mac地址,数据包还得加上一个地址mac,数据包加上链路层地址叫做帧,数据链路负责将数据从一端转到另外一端。这个协议就算结束了,路由器拿着帧将源mac和目标mac去掉,看到的就是数据包。然后根据数据包的ip地址进行转发。
可以看到,每一层的功能不一样,传输层协议为应用层协议提供可靠传输,网络层协议负责将传输层的端发送到目的地,数据链路层负责将数据包从一端传到另外一端。
协议的作用范围
应用层作用范围在发送端接收端的应用程序
传输层协议在发送端和接收端的计算机上面
网络层范围在发送端和接收端的计算机以及网络当中的路由器,都要参与到网络层协议里面来
数据链路层就一节链路,路由器的接口工作在数据链路层
分层的好处与优缺点
各层完成的主要功能
具有五层协议的体系结构
OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
TCP/IP协议分层
应用层:telnet,sftp,dhcp
封装
应用层:版本这里是指http1.x还是http2.0呢
应用层的报文为了实现可靠传输加了一个tcp的首部,这个叫做封装。封装完成之后称为段。
段要想发送到目的地要写上地址,于是还得将段进行封装到了网络层变为了数据包。网络中的路由器就根据IP地址去转发数据包。
网络层(从一个网络到一个网络)数据链路层(从一个网卡到另外一个网卡)
帧指加了数据链路层的封装。
接收端收到数据之后层层去掉头部。
主机 1 向主机 2 发送数据