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

105 阅读6分钟

引言

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

五层结构的作用汇总

层级名称主要作用和功能
物理层发送和接收比特流; 负责将比特流调制到载波上面(调幅、调频、调相); 可以用信道复用等技术提升发送速率;
数据链路层负责相邻设备间通信,这两个设备间没有交换节点,具体表现为点对点通信(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可靠传输的任务交由网络层负责?
  • 其实这是”可靠”怎么理解的问题,如果网络层可靠了,但是在传输层不可靠,数据也无法正确及时的送达应用程序手中;
  • 如果网络层和运输层都保证可靠,协议未免太过复杂,效率降低;
  • 所以只在运输层保证可靠,是在效率、可靠性之间权衡做出的最佳选择;

注:总结太好了,转载changsiyuan.github.io/2015/09/12/…

我简单做了一下标记