计算机网络五层结构功能汇总

引言

  • 网上有很多博客介绍过计算机网络五层结构,但专门汇总五层结构功能的博文非常少;
  • 本文从纵向的角度,清晰概述计算机网络五层结构的功能和特点;
  • 本文总结了计算机网络五层结构的协议名和专用术语,并对一些结构性问题加以解释;
  • 本文没有介绍五层结构的实现细节;

五层结构的作用汇总

层级名称 主要作用和功能
物理层 发送和接收比特流;
负责将比特流调制到载波上面(调幅、调频、调相);
可以用信道复用等技术提升发送速率;
数据链路层 负责相邻设备间通信,这两个设备间没有交换节点,具体表现为点对点通信(PPP协议)和广播通信(CSMA/CD协议);
用MAC地址识别参与通信的两个节点(源节点、目的节点),MAC地址是本层及以下层专用;
上层网络层根据目的IP确定下一跳IP地址,数据链路层(交换机)根据下一跳IP地址就能确定下一跳的MAC地址,并将网络层数据报再次封装,加上目的MAC地址,交由物理层传送;
负责帧的差错检测,丢弃错误的帧(只检错不纠错),错误可能是帧丢失、帧重复、帧失序;
网络层 负责不相邻的两个节点间的通信,比如我的电脑和网页服务器之间的通信;
用IP地址识别源地址、目的地址,IP地址是本层及以上层专用;
能够确定转发路线,使得效率最高;
运输层 识别并将数据报正确交付相应的应用程序,识别数据报属于哪个应用程序的方法为看端口;
TCP可靠传输,UDP不可靠传输;
应用层 使用得到的报文段,为用户提供各种服务(浏览器、邮件、远程通信);
向上面向用户(域名给用户看),向下面向运输层和网络层(域名解析给他们看);

五层结构传输单元名称

层级名称 传输单元名称
应用层 报文
运输层 TCP:报文段;
UDP:用户数据报;
网络层 分组或IP数据报(简称数据报)
数据链路层
物理层 比特

各层协议和专用术语汇总

层级名称 传输单元名称
应用层 网际组管理协议IGMP:使得连接在本局域网上的多播路由器知道本局域网上是否有主机(指主机上的进程)参加或退出某个多播组;
DNS:域名系统;
简单文件传送协议TFTP;
文件传送协议FTP;
NFS:网络文件系统;
动态主机配置协议DHCP:用于自动分配IP地址;
简单网络管理协议SNMP;
简单邮件传送协议SMTP:用于发送邮件;
邮件读取协议POP和IMAP:用于读取邮件;
远程终端协议TELNET;
超文本传送协议HTTP;
socket:IP和端口统称套接字,java语言中称为java socket编程;
安全外壳SSH(Secure Shell):不是一种协议,是运用运输层SSL协议构建的一个类似telnet的应用,SSH = TELNET + SSL,和web开发框架中的SSH框架没有任何关系(SSH=Struts+Spring+Hibernate);
运输层 传输控制协议TCP:面向连接;
用户数据报协议UDP:无连接;
安全套接层SSL:是一种在运输层对网络数据进行加密的协议;
网络层 地址解析协议ARP:已知一台机器的IP地址,需要找出其相对应的硬件MAC地址;
网际控制报文协议ICMP:分为ICMP差错报文和ICMP询问报文,用于主机和路由器报告差错和异常情况,ping命令是在应用层直接使用网络层协议的例子;
内部网关协议IGP:一个自治系统内部使用的路由协议,包括RIP和OSPF协议;
外部网关协议EGP:自治系统间路由协议,包括BGP协议;
VPN:虚拟专用网技术,用到了网络地址转换NAT技术;
数据链路层 PPP:点对点信道所使用的协议;
CSMA/CD:广播信道使用的协议;
MAC地址;
物理层 传输介质:双绞线、同轴电缆;
信道复用技术:频分复用、时分复用、码分复用;
宽带接入技术:ADSL(非对称用户数字线);

各层典型设备

层级名称 设备名称
应用层 网关:连接两个或多个使用不同协议的网络,充当“协议转换器”,是两个局域网之间的通道;
运输层 暂无
网络层 路由器:连接不同网络的设备,自动选择设定路由,寻找最佳路径,在某些情况下,路由器也被称做网关;
数据链路层 网卡(网络适配器):当接收帧错误时就丢弃,正确时就交付网络层,内含MAC地址;
交换机:相当于多个网桥,将好多计算机连接成一个局域网,负责局域网内部的数据交换,相当于扩展的网桥,允许在还没把数据帧接受完全的情况下转发帧;
网桥/桥接器:把一个局域网隔离成许多网段,维护转发表,对收到的帧进行转发、过滤或丢弃(完全接收到一帧后才转发);
物理层 集线器/转发器:简单转发比特,不维护任何表;

几个结构性问题的解释

  • 为何不能只有MAC地址,IP地址没有行不行?
  • 这和”能不能只有数据链路层,没有网络层”的问题一样;
  • 他们处理的是不同层面的事务,前者专注于相邻节点传输、后者则专注于不相邻节点传输;
  • 这是”网络”这个事务由小到大、量变产生质变的必然选择;
  • 为何不将TCP可靠传输的任务交由网络层负责?
  • 其实这是”可靠”怎么理解的问题,如果网络层可靠了,但是在传输层不可靠,数据也无法正确及时的送达应用程序手中;
  • 如果网络层和运输层都保证可靠,协议未免太过复杂,效率降低;
  • 所以只在运输层保证可靠,是在效率、可靠性之间权衡做出的最佳选择;
您的支持是对我最大的鼓励!