前端必备知识——计算机网络(一)前言 每次看八股的时候都是零零散散的,所以面试的时候总会问到自己不会的,所以在一开始的时
前言
每次看八股的时候都是零零散散的,所以面试的时候总会问到自己不会的,所以在一开始的时候就应该去系统的学习,本文从最基础的计算机网络开始。
网络层次模型
OSI七层模型
OSI (Open System Interconnect)模型全称为开放式系统互联模型,由国际标准化组织 ( ISO ) 提出,一个试图使各种计算机在世界范围内互连为网络的标准框架,也是我们俗称的网络七层模型。
该模型将通信系统中的数据流划分为七个层,从分布式应用程序数据的最高层表示到跨通信介质传输数据的物理实现。
应用层
应用层(Application Layer)位于 OSI 参考模型的第七层,其作用是通过应用程序间的交互来完成特定的网络应用,该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。例如域名系统 DNS
,支持万维网应用的 HTTP
协议,电子邮件系统采用的 SMTP
协议等,在应用层交互的数据单元我们称之为报文
表示层
表示层(Presentation Layer)提供的服务主要包括数据压缩,数据加密以及数据描述,作用是把数据转换为能与接收者的系统格式兼容并适合传输的格式。其位于 OSI
参考模型的第六层,向上为应用层提供服务,向下接收来自会话层的服务。
会话层
会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案的方法,负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。
传输层
传输层的主要任务是为两台主机进程之间的通信提供服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节,应用程序不需要关心数据在网络上是如何传输的,只需要使用传输层提供的抽象接口即可。因此,它是计算机通信体系结构中关键的一层。其中,主要的传输层协议是TCP
和UDP
网络层
网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送。因为两台计算机之间传送数据时其通信链路往往不止一条,所传输的信息甚至可能经过很多通信子网在发送数据时。网络层把传输层产生的报文或用户数据报封装成分组和包,向下传输到数据链路层。在网络层使用的协议是无连接的网际协议(Internet Protocol)和许多路由协议,因此我们通常把该层简单地称为IP层
数据链路层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP
数据报封装成帧,在两个相邻节点间的链路上传送帧。
每一帧的数据可以分成:报头head
和数据data
两部分:
- head 标明数据发送者、接受者、数据类型,如 MAC地址
- data 存储了计算机之间交互的数据
物理层
物理层(Physical Layer)它负责管理计算机通信设备和网络媒体之间的互通。该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性,过程特性),该层主要是和硬件有关,与软件关系不大
传输过程
- 应用层报文被传送到运输层
- 在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用
- 应用层报文和运输层首部信息一道构成了运输层报文段。附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变
- 运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报
- 网络层数据报接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧
- 在物理层数据帧被封装成比特流,之后通过传输介质传送到对端
- 对端再一步步解开封装,获取到传送的数据
互联网协议套件(TCP/IP协议)
互联网协议套件(Internet Protocol Suite,缩写IPS),是一种网络通信模型,以及用于网络传输的协议集合,为网际网络的基础通信架构,被应用于各种网络通信中。常通称为TCP/IP协议蔟
- TCP(传输控制协议)
一种面向连接的、可靠的、基于字节流的传输层通信协议
- IP(网际协议)
用于封包交换数据网络的协议
TCP/IP协议不仅仅指的是TCP
和IP
两个协议,而是指一个由FTP
、SMTP
、TCP
、UDP
、IP
等协议构成的协议簇,只是因为在TCP/IP
协议中TCP
协议和IP
协议最具代表性,所以通称为TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols)
划分
TCP/IP协议族按层次分别了五层体系或者四层体系
五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括应用层、传输层、网络层、数据链路层和物理层
五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构,包括应用层、传输层、网络层(网际互联层)、网络接口层
五层体系
应用层
TCP/IP
模型将 OSI
参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务
如:FTP
、Telnet
、DNS
、SMTP
等
传输层
该层对应于 OSI 参考模型的传输层,为上层实体提供源端到对端主机的通信功能
传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)
其中面向连接的 TCP 协议保证了数据的传输可靠性,面向无连接的 UDP 协议能够实现数据包简单、快速地传输
网络层
负责为分组网络中的不同主机提供通信服务,并通过选择合适的路由将数据传递到目标主机
在发送数据时,网络层把运输层产生的报文段或用户数据封装成分组或包进行传送
数据链路层
数据链路层在两个相邻节点传输数据时,将网络层交下来的IP数据报组装成帧,在两个相邻节点之间的链路上传送帧
物理层
四层体系
保数据可以在各种物理媒介上进行传输,为数据的传输提供可靠的环境
TCP/IP 的四层结构则如下表所示:
层次名称 | 单位 | 功 能 | 协 议 |
---|---|---|---|
网络接口层 | 帧 | 负责实际数据的传输,对应OSI参考模型的下两层 | HDLC(高级链路控制协议)PPP(点对点协议) SLIP(串行线路接口协议) |
网络层 | 数据报 | 负责网络间的寻址数据传输,对应OSI参考模型的第三层 | IP(网际协议) ICMP(网际控制消息协议)ARP(地址解析协议) RARP(反向地址解析协议) |
传输层 | 报文段 | 负责提供可靠的传输服务,对应OSI参考模型的第四层 | TCP(控制传输协议) UDP(用户数据报协议) |
应用层 | 负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层 | FTP(文件传输协议) HTTP(超文本传输协议) DNS(域名服务器协议)SMTP(简单邮件传输协议)NFS(网络文件系统协议) |
总结
OSI 参考模型与 TCP/IP 参考模型区别如下:
相同点:
- OSI 参考模型与 TCP/IP 参考模型都采用了层次结构
- 都能够提供面向连接和无连接两种通信服务机制
不同点:
- OSI 采用的七层模型; TCP/IP 是四层或五层结构
- TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分
- OSI 参考模型虽然网络划分为七层,但实现起来较困难。TCP/IP 参考模型作为一种简化的分层结构是可以的
- TCP/IP协议去掉表示层和会话层的原因在于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的
转载自:https://juejin.cn/post/7403547017777512498