文章目录
计算机网络体系结构(重点和难点!!)
1、常见的计算机网络体系结构
- OSI体系结构(法律上国际标准)
- 应用层
- 表示层
- 会话层
- 运输层
- 网络层
- 数据链路层
- 物理层
- TCP/IP体系结构
- 应用层:解决通过应用进程的交互来实现
- 运输层:解决进程之间基于网络的通信问题
- 网络层(网际层):解决分组在多个网络上传输的问题
- 数据链路层:解决分组在一个网络(或者一段链路)上传输的问题
- 物理层:解决使用何种信号来传输比特的问题
- 注意:
- 主机内必须有TCP/IP 协议族,而且 连接的路由器中也会有 TCP/IP 协议族,只不过路由器一般只包含 网络接口层和网际层
- IP协议是网际层的核心协议, IP协议可以将网络接口层的网络接口互连,然后给TCP协议或UDP协议提供网络互连
- TCP和UDP是TCP/IP 体系结构中运输层的两个重要协议,TCP协议在享受IP协议提供的互连服务基础上,向应用层等协议提供可靠传输的服务;UDP协议在享受IP协议提供的互连服务基础上,向应用层等协议提供不可靠传输的服务
- 应用层有较多协议,如HTTP,SMTP,DNS,RTP等
IP协议作为计算机网络体系结构中的重要协议,一方面负责互连不同的网络接口;另一方面为各种网络应用提供服务
TCP/IP 体系结构中包含大量协议,TCP协议和IP协议又是非常重要的两个协议,所以用TCP和IP两个协议表示为这个大家族,所以常称为TCP/IP协议族
2、计算机网络体系结构分层的必要性
- 计算机是一个非常庞大且复杂的系统
- 分层可以将这些复杂的内容分解为各个部分,解决起来比较简单
分层后每一层的任务
- 物理层
- 互连时采用怎样的传输媒介
- 采用怎样的物理接口
- 采用怎样的信号表示bit 0 和 1
- 数据链路层
- 主机a想发送给主机c数据,主机a发送数据到总线后,会将数据发送给所有连接在总线上的主机,而这时就出现了问题,主机c怎么识别这个数据是发给他的呢?其他主机是如何识别这个数据不是发给他的呢?(主机编制问题,例如MAC地址)
- 如何从信号所表示的一连串bite流中区分出地址和数据
- 如果有多态主机同时发送数据到总线,那么该如何协调这种情况
- 网络层(网际层)
- 因为因特网中会有若跟个网络和网络中的主机,那么,我们如何识别各网络以及网络中的各主机(网络和主机共同编址问题,例如IP地址)
- ip地址中前三个十进制数表示网络,第四个十进制数表示主机,如198.128.1.254(假的数据),那么198.168.1表示网络,254表示主机信息
- 因为源主机和目的主机中的传输路径有很多条,就引出路由器如何转发分组,以及如何进行路由选择的问题
- 因为因特网中会有若跟个网络和网络中的主机,那么,我们如何识别各网络以及网络中的各主机(网络和主机共同编址问题,例如IP地址)
- 运输层
- 如何标识与通信相关的网络进程,进而解决进程之间基于网络的通信问题(举例,如果目的主机上有两个进程,浏览器和qq,那么源主机中发送的分组要交给谁呢?)
- 如果某个分组在传输过程中出现了“误码”,或者由于路由器繁忙导致路由器丢失分组 ,这样的传输错误应该如何处理
- 应用层
- 在其他层的基础上,只需指定各中应用层各种协议,并按协议标准编写应用程序,通过应用进程之间的交互来完成特定的网络应用(例如,支持万维网应用的HTTP,支持电子邮件的SMTP协议,支持文件传输的FTP协议)
3、计算机网络体系结构分层思想举例
应用进程之间基于网络的通信流程(拿浏览器和服务器之间的通信做例子)
- 浏览器所在主机,应用层生成一个http报文
- 将http报文交给运输层,运输层在这个http报文加TCP首部,变成TCP数据报
- 将TCP数据报交给网络层,网络层会在这个TCP数据报加IP首部,变成IP数据报
- 将IP数据报交给数据链路层,数据链路层会在这个IP数据报前后加ETH,使之成为 帧
- ETH首部是为了让该数据报可以在网络上或者该链路上传输,能够被相应的目的主机接收
- ETH尾部作用是为了让目的主机检查收到的帧是否有“误码”
- 将帧交给物理层,物理层将帧看作是比特流 ,如果该网络是以太网,那么物理层会在帧的首部加前导码,作用是让目的主机做好接收帧的准备;物理层将相应的比特流转换为某种信号发送到传输媒体
- 该信号通过传输媒体到达路由器
- 路由器的物理层将该信号翻译成比特流,将比特流的首部的前导码去掉交给数据链路层
- 路由器的数据链路层将物理层传送过来的帧的ETH首部和尾部去掉交给网络层
- 路由器的网络层将IP数据报中的IP首部去掉,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发
- 路由器的网络层向TCP数据报添加IP首部后发给数据链路层,数据链路层将收到的IP数据报前后添加ETH转换为帧,发送给物理层,物理层再将帧看作是比特流,在比特流前面加前导码,之后翻译成某种信号,通过传输媒体传输
- 信号通过传输媒体到达Web服务器
- Web服务器的物理层将这种信号翻译成bit流,将bit流的前导码去掉,转换为帧交给数据链路层
- 数据链路层将帧的ETH首部和尾部去掉变为IP数据报,交给网络层
- 网络层将IP数据包的IP首部去掉变为TCP数据报,交给运输层
- 运输层将TCP数据报的TCP首部去掉变为 源主机发送的HTTP数据报 后交给应用层
- 应用层将传过来的http报文进行解析,然后给主机发回http响应报文
- 然后进行类似的过程到达源主机
4、计算机网络体系结构中的专用术语
实体
- 任何可发送或者接收信息的硬件或者软件进程,如图中的A,B,C,D,E,F,G,H,I,J
- 对等实体标识通信双方相同层次中的实体,如图中的A,F;B,G;C,H;D,I;E,J
协议
- 控制两个对等实体进行逻辑通信的规则集合
- 逻辑通信并不存在,他只是我们假设出来的一种通信,方便我们单独研究某一层,而不用靠考虑其他层
- 协议三要素
- 语法:定义所要交换信息的格式
- 语义:定义通信双方要完成的操作
- 同步:定义通信双方的时序方式
服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要下一层提供的服务
协议是水平的,服务是垂直的
服务访问点:在同一系统中相邻的两层的实体交换信息的逻辑接口,用户区分不同的服务类型
- 数据链路层的服务访问点为帧的“类型”字段
- 网路层的服务访问点为IP数据报首部的“协议字段”、
- 运输层的服务访问点为“端口号”
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令就是服务原语
协议数据单元PDU
- 对等层次之间传送的数据包 称位该层的协议数据单元
- 物理层对等数据包为 比特流
- 链路层对等数据包为 帧
- 网络层对等数据包为 IP数据报(使用IP协议的情况下) 或者 分组(packet)
- 运输层对等数据包为 TCP报文段
- (使用TCP协议)或者 UDP用户数据报(使用UDP协议)
- 应用层对等数据报为 报文
- 上述各层数据包可以统称为 协议数据单元PDU
服务数据单元SDU
- 同一系统内,层与层之间交换的数据包称位服务数据单元
- 多个服务数据单元SDU可以合并为一个协议数据单元PDU;一个SDU也可划分为几个PDU
版权声明:本文为weixin_45753018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。