学习视频:https://www.bilibili.com/video/BV1c4411d7jb/?p=7&spm_id_from=pageDriver&vd_source=75dce036dc8244310435eaf03de4e330
一、计算机网络体系结构
1 常见的计算机网络体系结构
- OSI体系结构和TCP/IP体系结构
TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互连全世界各种不同的网络接口,例如有线的以太网接口,无线的wifi接口等。
IP协议是TCP/IP体系网际层的核心协议;
TCP,UDP是运输层的两个重要协议;
应用层包含大量的应用层协议,例如HTTP, SMTP, DNS…
IP协议可以将不同的网络接口互连,并向其上的TCP协议和UDP协议提供网络互连服务。而TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠的传输的服务。UDP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠的传输的服务。
IP协议作为TCP/IP体系结构中的核心协议, 一方面负责互连不同的网络接口;另一方面给不同的网络应用提供服务。
TCP/IP体系结构中包含大量协议,TCP和IP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议大家族,TCP/IP族,TCP/IP协议栈。
OSI标准失败的原因可归纳为:
- OSI专家们缺乏实际经验
- OSI协议实现过于复杂且效率低
- OSI标准的制定周琪太长,按OSI生成设计的设备无法及时进入市场。
- OSI的层次划分也不太合理,有些功能在多个层次重复出现。
五层原理体系结构:由于TCP/IP体系结构为了将不同的网络接口进行互连,因此它的网络接口层并没有规定什么具体的内容,这就对学习计算机网络完整体系就会缺少一部分内容,于是学习时采用中和的办法,结合OSI和TCP/IP体系结构的优点,采用五层原理体系结构。
2 计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
IP地址:前三位数用来标识网络,最后一位数标识主机,192.168.1.2。
3 计算机网络体系结构分层思想举例
N1 为主机,N2为web服务器。使用主机中的浏览器来访问web服务器,当输入网址后,主机会向web服务器发送请求,web服务器收到请求后,会发回相应的响应。主机浏览器收到响应后,将其解析为具体的网页内容显示出来。
-
浏览器封装数据过程:
1). 应用层按HTTP协议的规定,构建一个HTTP请求报文。应用层将HTTP请求报文交付给运输层处理。
2). 运输层给HTTP请求报文添加一个TCP首部使之成为TCP报文段。运输层将TCP报文段交付给网络层处理。
3). 网络层给TCP报文段添加一个IP首部使之成为IP数据报,该首部的作用主要是使IP数据报可以在互连网上传输,也就是被路由器转发。网络层将IP数据报交付给数据链路层处理。
4). 数据链路层为IP数据报添加一个首部和一个尾部使之成为帧。该首部的作用是使一个帧能够在一个链路或一个网络上传输,能够被相应的目的主机接收。尾部是为了帮助检查所接收到的帧是否有误码。数据链路将帧交付给物理层。
5). 物理层将帧看作是比特流。由于网络N1是以太网,因此物理层还会给该以太网前面添加前导码。其作用是为了让目的主机做好接收帧的准备。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体。
6). 信号通过传输媒体到达路由器。 -
路由器的处理过程:
1). 物理层将信号变换为比特流。然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧。
2).数据链路层将帧的首部和尾部去掉后将其交付给网络层,这实际上交付的是IP数据报。
3).网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。网络层将IP数据报交付给数据链路层。
4). 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧。数据链路层将帧交付给物理层。
5). 物理层将帧看成是比特流。由于网络N2是以太网,因此物理层还会给该比特流前面添加前导码。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体。
7). 信号通过传输媒体到达web服务器。 -
web服务器的处理过程:
1). 物理层将信号变换为比特流。然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧。
2). 数据链路层将帧的首部和尾部去掉后将其交付给网络层,这实际上交付的是IP数据报。
3). 网络层将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段。
4). 运输层将TCP报文段首部去掉后将其交付给应用层,这实际上交付的是HTTP请求报文。
5). 应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。 -
返回web服务器响应:
1). 与之前类似,HTTP响应报文需要在web服务器层层封装,
2). 然后通过物理层变换成相应的信号,再通过传输媒体传输到路由器。
3). 路由器转发响应报文给主机。
4). 主机通过物理层将收到的信号转换为比特流。
5). 之后通过逐层解封,最终取出HTTP响应报文。
4 计算机网络体系结构中的专用术语
- 实体:任何可发送或接收信息的硬件或软件进程。
对等实体:收发双方相同层次中的实体。
- 协议:控制两个对等实体进行逻辑通信的规则的集合。
协议的三要素:语法、语义、同步- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
- 服务:
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下面一层所提供的服务。
- 协议是“水平的”,服务是“垂直的”
- 实体看得见相邻下层所提供的服务,但不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
- 数据链路层的服务访问点为帧的“类型”字段。
- 网络层的服务访问点为IP数据报首部的“协议字段”。
- 运输层的服务访问点为“端口号”。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。(比特流、帧、IP数据报或分组…)
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。