在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。
网络协议是什么?
在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。
为什么要对网络协议分层?
- 简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。
- 灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。
- 易于实现和维护。
- 促进标准化工作。分开后,每层功能可以相对简单地被描述。
网络协议分层的缺点: 功能可能出现在多个层里,产生了额外开销。
为了使不同体系结构的计算机网络都能互联,国际标准化组织 iso 于1977年提出了一个试图使各种计算机在世界范围内互联成网的标准框架,即著名的开放系统互联基本参考模型 osi/rm,简称为osi。
osi 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用,tcp/ip 体系结构则不同,但它现在却得到了非常广泛的应用。tcp/ip 是一个四层体系结构,它包含应用层,运输层,网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题),不过从实质上讲,tcp/ip 只有最上面的三层,因为最下面的网络接口层并没有什么具体内容,因此在学习计算机网络的原理时往往采用折中的办法,即综合 osi 和 tcp/ip 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚,有时为了方便,也可把最底下两层称为网络接口层。
四层协议,五层协议和七层协议的关系如下:
tcp/ip是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。
五层协议的体系结构主要包括:应用层、运输层、网络层,数据链路层和物理层。
osi七层协议模型主要包括是:应用层(application)、表示层(presentation)、会话层(session)、运输层(transport)、网络层(network)、数据链路层(data link)、物理层(physical)。
注:五层协议的体系结构只是为了介绍网络原理而设计的,实际应用还是 tcp/ip 四层体系结构。
tcp/ip 协议族
应用层
应用层( application-layer )的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。
对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 dns,支持万维网应用的 http 协议,支持电子邮件的 smtp 协议等等。
运输层
运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
运输层主要使用一下两种协议
- 传输控制协议-tcp:提供面向连接的,可靠的数据传输服务。
- 用户数据协议-udp:提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。
每一个应用层(tcp/ip参考模型的最高层)协议一般都会使用到两个传输层协议之一:
运行在tcp协议上的协议:
- http(hypertext transfer protocol,超文本传输协议),主要用于普通浏览。
- https(http over ssl,安全超文本传输协议),http协议的安全版本。
- ftp(file transfer protocol,文件传输协议),用于文件传输。
- pop3(post office protocol, version 3,邮局协议),收邮件用。
- smtp(simple mail transfer protocol,简单邮件传输协议),用来发送电子邮件。
- telnet(teletype over the network,网络电传),通过一个终端(terminal)登陆到网络。
- ssh(secure shell,用于替代安全性差的telnet),用于加密安全登陆用。
运行在udp协议上的协议:
- bootp(boot protocol,启动协议),应用于无盘设备。
- ntp(network time protocol,网络时间协议),用于网络同步。
- dhcp(dynamic host configuration protocol,动态主机配置协议),动态配置ip地址。
运行在tcp和udp协议上:
- dns(domain name service,域名服务),用于完成地址查找,邮件转发等工作。
网络层
网络层的任务就是选择合适的网间路由和交换结点,确保计算机通信的数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 tcp/ip 体系结构中,由于网络层使用 ip 协议,因此分组也叫 ip 数据报 ,简称数据报。
互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(intert prococol)和许多路由选择协议,因此互联网的网络层也叫做网际层或 ip 层。
数据链路层
数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。
在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 ip 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。
一般的web应用的通信传输流是这样的:
发送端在层与层之间传输数据时,每经过一层时会被打上一个该层所属的首部信息。反之,接收端在层与层之间传输数据时,每经过一层时会把对应的首部信息去除。
物理层
在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
tcp/ip 协议族
在互联网使用的各种协议中最重要和最著名的就是 tcp/ip 两个协议。现在人们经常提到的 tcp/ip 并不一定是单指 tcp 和 ip 这两个具体的协议,而往往是表示互联网所使用的整个 tcp/ip 协议族。
互联网协议套件(英语:internet protocol suite,缩写ips)是一个网络通讯模型,以及一整个网络传输协议家族,为网际网络的基础通讯架构。它常被通称为tcp/ip协议族(英语:tcp/ip protocol suite,或tcp/ip protocols),简称tcp/ip。因为该协定家族的两个核心协定:tcp(传输控制协议)和ip(网际协议),为该家族中最早通过的标准。
划重点:
tcp(传输控制协议)和ip(网际协议) 是最先定义的两个核心协议,所以才统称为tcp/ip协议族