Java面试知识点(五十八)OSI七层模型和 五层体系结构

学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。

OSI 七层模型

每一层的作用:

  • 物理层:通过媒介传输比特,确定机械及电气规范(比特 Bit)
  • 数据链路层:将比特组装成帧和点到点的传递(帧 Frame)
  • 网络层:负责数据包从源到宿的传递和网际互连(包 Packet)
  • 传输层:提供端到端的可靠报文传递和错误恢复(段 Segment)
  • 会话层:建立、管理和终止会话(会话协议数据单元 SPDU)
  • 表示层:对数据进行翻译、加密和压缩(表示协议数据单元 PPDU)
  • 应用层:允许访问 OSI 环境的手段(应用协议数据单元 APDU)

每一层的协议:

  • 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)
  • 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
  • 网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
  • 传输层:TCP、UDP、SPX
  • 会话层:NFS、SQL、NETBIOS、RPC
  • 表示层:JPEG、MPEG、ASII
  • 应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

TCP 对应的应用层协议

  • FTP:定义了文件传输协议,使用 21 端口。常说某某计算机开了 FTP 服务便是启动了文件传输服务。下载文件,上传主页,都要用到 FTP 服务。
  • Telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于 DOS 模式下的通信服务。如以前的 BBS 是 - 纯字符界面的,支持 BBS 的服务器将 23 端口打开,对外提供服务。
  • SMTP:定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口,所以在电子邮件设置 - 中常看到有这么 SMTP 端口设置这个栏,服务器开放的是 25 号端口。
  • POP3:它是和 SMTP 对应,POP3 用于接收邮件。通常情况下,POP3 协议所用的是 110 端口。也是说,只要你有相应的使用 POP3 协议的程序(例如 Fo-xmail 或 Outlook),就可以不以 Web 方式登陆进邮箱界面,直接用邮件程序就可以收到邮件(如是 163 邮箱就没有必要先进入网易网站,再进入自己的邮 - 箱来收信)。
  • HTTP:从 Web 服务器传输超文本到本地浏览器的传送协议。

UDP 对应的应用层协议

  • DNS:用于域名解析服务,将域名地址转换为 IP 地址。DNS 用的是 53 号端口。
  • SNMP:简单网络管理协议,使用 161 号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
  • TFTP (Trival File Transfer Protocal):简单文件传输协议,该协议在熟知端口 69 上使用 UDP 服务。

五层协议的体系结构

学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。

应用层

应用层 (application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。


运输层

运输层 (transport layer) 的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的” 是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
运输层主要使用以下两种协议:

  • 传输控制协议 TCP(Transmission Control Protocol)-- 提供 面向连接的,可靠的数据传输服务。
  • 用户数据协议 UDP(User Datagram Protocol)-- 提供 无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。

网络层

在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称 数据报。

这里要注意:不要把运输层的 “用户数据报 UDP” 和网络层的 “ IP 数据报” 弄混。另外,无论是哪一层的数据单元,都可笼统地用 “分组” 来表示。

这里强调指出,网络层中的 “网络” 二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称.

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Protocol)和许多路由选择协议,因此互联网的网络层也叫做网际层或 IP 层。


数据链路层

数据链路层 (data link layer) 通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装程帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。 控制信息还使接收端能够检测到所收到的帧中有误差错。如果发现差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错(这就是说,数据链路层不仅要检错,而且还要纠错),那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。


物理层

在物理层上所传送的数据单位是比特。 **物理层 (physical layer) 的作用是实现相邻计算机节点之间比特流的透明传送,**尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流” 表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。


在互联网使用的各种协中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的 TCP/IP 并不一定单指 TCP 和 IP 这两个具体的协议,而往往表示互联网所使用的整个 TCP/IP 协议族。

补充

ip地址的分类

Java面试知识点(五十八)OSI七层模型和 五层体系结构_第1张图片

  • A 类地址:以 0 开头, 第一个字节范围:0~127(1.0.0.0 – 126.255.255.255);
  • B 类地址:以 10 开头, 第一个字节范围:128~191(128.0.0.0 – 191.255.255.255);
  • C 类地址:以 110 开头, 第一个字节范围:192~223(192.0.0.0 – 223.255.255.255);
    10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet 上保留地址用于内部)

ARP 协议

ARP 地址解析协议,简单说就是,在 IP 以太网中,当一个上层协议要发包时,有了该节点的 IP 地址,ARP 就能提供该节点的 MAC 地址。它的工作原理如下:

  1. 首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
  2. 当源主机要发送数据时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址。
  3. 当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
  4. 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
  5. 如果目标 IP 与自己不在同一个网段,这种情况需要将包发给默认网关,所以主要获取网关的 MAC 地址。如果 arp 高速缓存有默认网关的 MAC 地址,直接发送 IP 数据报道默认网关,再由网关转发到外网;如果 arp 高速缓存没有默认网关的 MAC 地址,还是发送 ARP 广播请求默认网关的 MAC 地址,缓存该地址,并且发送数据报到网关。

HTTP 协议

HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP 协议的主要特点可概括如下:

  • 支持客户 / 服务器模式。
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

你可能感兴趣的:(java,面试,计算机网络,Java面试知识汇总)