计算机网络中两个端系统之间的通信太复杂,因此把需要问题分而治之,通过把一次通信过程中涉及的所有问题分层归类来进行研究和处理
体系结构是抽象的,实现是真正在运行的软件和硬件
1.实体、协议、服务和服务访问点
协议必须把所有不利条件和可能出现的情况事先估计到,并给出解决方案
在体系结构的各个层次中,每个报文都分为两部分
- 数据部分:SDU(Service Data Unit),第n层的服务数据单元称为n-SDU
- 控制信息部分:PCI(Protocol Data Unit),第n层的协议控制单元称为n-PCI
两者共同组成PDU(Protocol Controll Unit),第n层的协议数据单元称为n-PDU
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU
2.ISO/OSI参考模型
3.TCP/IP的体系结构
现在互联网使用的 TCP/IP 体系结构已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层
TCP/IP中的网络接口层的功能类似于OSI参考模型的物理层+数据链路层。但实际上TCP/IP协议并没有真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传递IP数据报
物理层(physical layer)
- 传输单位:比特(bit)
- 功能:在物理媒体上为端设备(一条链路上的两端)传输原始比特流。物理层让数据链路层感受不到传输媒体以及调制、编码、信道复用技术的差异
- 该层需要解决的问题:①如何用数字信号或模拟信号去编码0和1,即接收方和发送方共同约定的什么样的电压信号去代表1/0,以及一些同步问题②确定连接电缆的插头有多少个引脚,尺寸如何等,即确定电路的接口参数③定义传输模式(单工,半双工,全双工)和传输速率。
- 设备:集线器、中继器
- 物理层接口标准:EIA-232C、EIA/TIA RS-449、RS-232-C、X.21
- 注意:物理传输媒体,如双绞线、同轴电缆、光缆、无线信道等并不在物理层范围类,它们是在物理层协议的下面
数据链路层(data link layer)
- 传输单位:帧(frame)
- 功能:为端设备(一条链路上的两端)透明地正确可靠地以一个个帧的形式传输比特流(透明:不管数据是什么样的比特组合,都应当能够在链路上传输,即对于传输的数据,即使被加入了控制字符等特殊字符或者发生了比特差错,都不会影响接收端正确解读数据的能力)
- 该层需要解决的问题:①组装成帧②差错控制③流量控制④连接管理。总的来说就是将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。在广播式网络中,数据链路层还要处理新的问题:如何控制对共享信道的访问。数据链路层中的介质访问子层就是专门处理这个问题的
- 设备:网桥、交换机
- 协议:SDLC、HDLC、PPP、STP、FR(frame relay)
- 注意:在OSI结构中,数据链路层具有流量控制功能。而在TCP/IP结构中,流量控制的功能被移到了传输层。也可能两层都有流量控制功能,只不过控制的对象不同而已。对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量,对于运输层来说,控制的是从源端到目的端之间的流量
网络层(network layer)
- 传输单位:IP数据报(datagram)(又称分组(packet)或包(packet),或简称数据报,IPv4称数据报,IPv6称分组)
- 功能:为位于不同网络上的两台主机正确可靠的传输数据
- 该层需要解决的问题:①根据路由协议生成路由表②根据路由表进行存储转发③差错控制、流量控制、拥塞控制
- 设备:路由器
- 协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
- 注意:互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器比较简单,而且价格低廉。如果主机中的进程之间的通信需要是可靠的,那么可以由更高层的传输层来负责。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。TCP/IP中,网络层并不保证分组的有序到达,各个分组的有序交付由运输层负责
运输层(transport layer)
- 传输单位:报文段(segment,TCP)、用户数据报(user datagram,UDP)
- 功能:为两台主机上的进程提供通用可靠的数据传输服务
- 该层需要解决的问题:①标识不同进程(端口号)②差错控制③流量控制④拥塞控制⑤连接管理
- 设备:无
- 协议:TCP、UDP
- 注意:通用的数据传输服务是指一台主机上的多个进程可以使用同一个运输层服务,因此运输层有复用和分用的功能。网络层也有复用和分用的功能,但网络层的复用是指发送方的不同协议的数据都可以封装成IP数据报发送出去,分用指接收方的网络层在剥去首部后把数据交付给相应的协议
应用层(application layer)
- 传输单位:报文(message)
- 功能:通过应用进程间的交互来完成特定网络应用
- 该层需要解决的问题:①进程间通信所使用的数据格式和交互规则②连接管理
- 设备:无
- 协议:FTP、SMTP、HTTP