1. OSI七层模型 与 TCP/IP
七层:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
其中表示层和会话层用途如下
表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
会话层 :建立及管理会话。五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
五层: 应用层 传输层 网络层 数据链路层 物理层
应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。传输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。(流量控制、差错控制、服务质量、数据传输管理、端到端)
网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。(流量控制、拥塞控制、差错控制、网际互联)
数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。(封装成帧、差错控制、流量控制、传输管理)
物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
TCP/IP:它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。
2. 计算机网络的主要功能
1、硬件资源共享。可以在全网范围内提供对处理资源、存储资源、输入输出资源等昂贵设备的共享,使用户节省投资,也便于集中管理和均衡分担负荷。
2、软件资源共享。允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。
3、用户间信息交换。计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。
4、分布式处理。当计算机网络中某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。
3. 主机间的通信方式
客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
对等(P2P):不区分客户和服务器。
4. 时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积 = 传播时延 * 信道带宽。
5. 计算机网络提供的三种服务
1、面向连接服务与无连接服务
在面向连接服务中, 通信前双方必须先建立连接, 分配相应的资源(如缓冲区), 以保证通信能正常进行, 传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。
在无连接服务中, 通信前双方不需要先建立连接, 需要发送数据时可直接发送,把每个带有目的地址的包(报文分组) 传送到线路上, 由系统选定路线进行传输。这是一种不可靠的服务。
这种服务常被描述为“尽最大努力交付" (Best-Effort-Delivery), 它并不保证通信的可靠性。例如UDP就是一种无连接服务的协议。
2、可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制, 能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络只是尽量正确、可靠地传送, 而不能保证数据正确、可靠地传送到目的地, 是一种尽力而为的服务。对于提供不可靠服务的网络, 其网络的正确性、可靠性要由应用或用户来保障。例如, 用户收到信息后要判断信息的正确性, 如果不正确, 那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施, 可以把不可靠的服务变成可靠的服务。
3、有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到的数据有错误时发送否定应答。例如, 文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答, 则由高层实现。例如, 对于WWW服务, 客户端收到服务器发送的页面文件后不给出应答。
6. 端到端通信和点到点通信的区别
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到 点的服务, 而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信, 它只提供一台机器到另一台机器之间的通信, 不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机 与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到 点通信更高一级的通信方式,以完成应用程序(进程) 之间的通信。”端” 是指用户程序的端口, 端口号标识了应用层中不同的进程。