OSI与TCP/IP各层的结构与功能,都有哪些协议?
学习计算机⽹络时我们⼀般采⽤折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采⽤⼀种只有 五层协议的体系结构,这样既简洁⼜能将概念阐述清楚。
结合互联⽹的情况,⾃上⽽下地,⾮常简要的介绍⼀下各层的作⽤。
应用层
应⽤层(application-layer)的任务是通过应⽤进程间的交互来完成特定⽹络应⽤。应⽤层协议定义的是应⽤进程(进程:主机中正在运⾏的程序)间的通信和交互的规则。对于不同的⽹络应⽤ 需要不同的应⽤层协议。在互联⽹中应⽤层协议很多,如域名系统DNS,⽀持万维⽹应⽤的 HTTP 协议,⽀持电⼦邮件的 SMTP 协议等等。我们把应⽤层交互的数据单元称为报⽂。
运输层
运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通⽤的数据传输服务。应⽤进程利⽤该服务传送应⽤层报⽂。“通⽤的”是指并不针对某⼀个特定的⽹络应⽤,⽽是 多种应⽤可以使⽤同⼀个运输层服务。由于⼀台主机可同时运⾏多个线程,因此运输层有复⽤和 分⽤的功能。所谓复⽤就是指多个应⽤层进程可同时使⽤下⾯运输层的服务,分⽤和复⽤相反, 是运输层把收到的信息分别交付上⾯应⽤层中的相应进程。
运输层主要使⽤以下两种协议:
- 传输控制协议 TCP(Transmission Control Protocol)--提供⾯向连接的,可靠的数据传输 服务。
- ⽤户数据协议 UDP(User Datagram Protocol)--提供⽆连接的,尽最⼤努⼒的数据传输服 务(不保证数据传输的可靠性)。
网络层
在 计算机⽹络中进⾏通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通 信⼦⽹。⽹络层的任务就是选择合适的⽹间路由和交换结点, 确保数据及时传送。 在发送数据 时,⽹络层把运输层产⽣的 报⽂段 或 ⽤户数据报 封装成 分组 和 包 进⾏传送。在 TCP/IP 体系结构 中,由于⽹络层使⽤ IP 协议,因此分组也叫 IP数据报 ,简称 数据报。
- 互联⽹是由⼤量的异构(heterogeneous)⽹络通过路由器(router)相互连接起来的。互联⽹使⽤的⽹络层协议是⽆连接的⽹际协议(Intert Protocol)和许多 路由选择协议,因此互联⽹的⽹络层也叫做 ⽹际层 或 IP层。
数据链路层
数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在⼀段⼀段的链路上传送的,这就需要使⽤专⻔的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将⽹络层交下来的 IP数据报 组装成 帧,在两个相邻节点间的链路上传送帧。每⼀帧包括 数据 和 必要的控制信息(如同步信息,地址信息,差错控制等)。
- 在接收数据时,控制信息使接收端能够知道⼀个帧从哪个⽐特开始和到哪个⽐特结束。这样,数据链路层在收到⼀个帧后,就可从中提出数据部分,上交给⽹络层。
- 控制信息还使接收端能够检测到所收到的帧中有误差错。如果发现差错,数据链路层就简单地丢 弃这个出了差错的帧,以避免继续在⽹络中传送下去⽩⽩浪费⽹络资源。如果需要改正数据在链 路层传输时出现差错(这就是说,数据链路层不仅要检错,⽽且还要纠错),那么就要采⽤可靠 性传输协议来纠正出现的差错。这种⽅法会使链路层的协议复杂些。
物理层
在物理层上所传送的数据单位是⽐特。 物理层(physical layer)的作⽤是实现相邻计算机节点之间⽐特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上⾯的数据链路层不必考虑⽹络的具体传输介质是什么。 “透明传送⽐特流”表示经实际电路传送后的⽐特流没有发⽣变化,对传送的⽐特流来说,这个电 路好像是看不⻅的。
- 在互联⽹使⽤的各种协中最重要和最著名的就是 TCP/IP 两个协议。现在⼈们经常提到的TCP/IP 并不⼀定单指TCP和IP这两个具体的协议,⽽往往表示互联⽹所使⽤的整个TCP/IP协议族。
几种传输单元名词辨析