网络 分层
OSI/RM 模型
image.png在1978年国际标准化组织(ISO)提出了“开放系统互连参考模型”,即著名的OSI/RM 模型(Open System Interconnection/Reference Model)。此后,不同厂家生产的计算机便能相互通信,建立起了计算机网络。OSI/RM将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
-
应用层:
OSI 的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等;
规定数据的传输协议; -
表示层:
表示层供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;
可以理解为:解决不同系统之间的通信,eg:Linux下的QQ和Windows下的QQ可以通信;
-
会话层
会话层建立、管理和终止表示层与实体之间的通信会话;
建立一个连接(自动的手机信息、自动的网络寻址); -
传输层
传输层向高层提供可靠的端到端的网络数据流服务。
可以理解为:每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信!常用的(TCP/IP)协议;
-
网络层
网络层负责在源和终点之间建立连接; 可以理解为,此处需要确定计算机的位置,怎么确定?IPv4,IPv6! -
数据链路层:
数据链路层通过物理网络链路供数据传输。不同的数据链路层定义了不同的网络和协 议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控;
可以简单的理解为:规定了0和1的分包形式,确定了网络数据包的形式;
- 物理层:
物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;
eg:RJ45等将数据转化成0和1;
白话七层模型
1,物理层,主要负责电子信号与比特流之间的转换
2,数据链路层,主要是负责比特流与数据帧之间的转换
3,网络层,主要是数据帧与数据包之间的转换,已经数据经过那个路由器传到那个IP地址去。
4, 传输层,检查数据是否有丢失
5,会话层,什么时候建立连接,连接多久,以及什么时候断开连接
6,表示层,接收文字,图片以及声音
7,应用层,提供针对应用的协议(DHCP(动态主机协议),HTTP协议,FTP协议(文件传输),远程登录协议(SSH,TELNET),域名解析协议(DNS))
TCP/IP 模型
很多人都把TCP/IP理解为TCP和IP,其实不是。TCP/IP其实是一个协议族群包括了TCP协议,UDP协议,IP协议,DHCP协议(动态IP),SSH(远程登录协议),HTTP协议(超文本传输协议),PPP协议(点对点通信协议)。
由于OSI/RM 模型过于复杂也难以实现,现实中广泛应用的是TCP/IP 模型。它是由ARPA 于1977 年到1979 年推出的一种网络体系结构和协议规范。TCP/IP 是一个协议集,而非指TCP 和 IP 两种协议。在很多情况下,它是利用IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。
TCP/IP 模型也是分层模型,分为4 层。OSI/RM 模型与TCP/IP 模型的参考层次如图所示:
image.png-
应用层:是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。在应用层中,数据以应用内部使用的格式进行传送,然后被编码成标准协议的格式。如HTTP 协议、FTP 协议、接收电子邮件的POP3 和IMAP 协议、发送邮件的SMTP 协议,以及远程登录使用的SSH 和Telnet 等。所以用户通常是与应用层进行交互。
-
传输层:提供两台主机之间透明的数据传输,通常用于端到端连接、流量控制或错误恢复。这一层的两个最重要的协议是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。
-
网络层:提供端到端的数据包交付,它负责数据包从源发送到目的地,任务包括网络路由、差错控制和IP 编址等。这一层包括的重要协议有IP(版本4 和版本6)、ICMP(Internet Control Message Protocol,Internet 控制报文协议)和IPSec(Internet Protocol Security,Internet 协议安全)。
-
网络接口层:负责通过网络发送和接收IP 数据报;允许主机连入网络时使用多种现成的与流行的技术,如以太网、令牌网、帧中继、ATM、X.25、DDN、SDH、WDM 等。
整体概念
image.png当用户通过http发起一个请求时,应用层,传输层,网络层,链路层的相关协议依次对该请求进行包装并协带对应的首部,最终在链路层生成以太网数据包,数据包通过物理介质传输给对方主机,对方接收到数据包后,再一层一层地采用对应的协议进行拆包,最后把应用层数据交给应用程序去处理。
TCP 协议
传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP 为提供可靠性传输,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制的机制。此外,因为TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而还具备“流量控制”、“拥塞控制”、提高网络利用率等众多功能。著名的三次握手就是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立,而终止TCP连接就是四次挥手,需要客户端和服务端总共发送四个包以确认连接的断开。
UDP 协议
用户数据报协议(User Datagram Protocol ,UDP)是TCP/IP 模型中一种面向无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP 协议与上层协议的接口。UDP 协议适用于端口分别运行在同一台设备上的多个应用程序中。与TCP 不同,UDP 并不提供对IP 协议的可靠机制、流控制以及错误恢复功能等,在数据传输之前不需要建立连接。由于UDP 比较简单,UDP 头包含很少的字节,所以比TCP负载消耗少。UDP 适用于不需要TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP 服务于很多知名应用层协议,包括网络文件系统(Network File System,NFS)、简单网络管理协议(Simple Network Management Protocol,SNMP)、域名系统(DomainName System,DNS)以及简单文件传输系统(Trivial File Transfer Protocol,TFTP)。
IP 协议
互联网协议(Internet Protocol,IP)是用于报文交换网络的一种面向数据的协议。IP是在TCP/IP 协议中网络层的主要协议,任务是根据源主机和目的主机的地址传送数据。为达到此目的,IP 定义了寻址方法和数据报的封装结构。第一个架构的主要版本,现在称为IPv4,仍然是最主要的互联网协议。当前世界各地正在积极部署IPv6。
传输方式分类
面向有连接与面向无连接
面向有连接型:在发送数据之前,需要在收发主机之间建立一条通信线路。在通信传输前后,专门进行建立和断开连接的处理,可以避免发送无谓的数据。
面向无连接型:发送数据时候不需要建立连接,发送端可以在任何时候自由发送数据,即使接收端不存在,发送端也可以将数据发送出去。
网卡(网络适配器、Network Interface Card)
它是连接计算机与网络的硬件设备,无论是光纤连接,还是电缆,都必须借助网卡才能实现数据的通信。
网卡的主要功能:
-
一是将电脑的数据封装为帧,并通过网线(无线网络是电磁波)将数据发送到网络上。
-
二是接收网络其他设备发送的帧,将帧重新组合成数据,发送到所在的电脑中
中继器
中继器是在局域网环境下用来延长网络物理距离最简单最廉价的设备,作用是将电缆传过来的电信号或光信号复制、调整、放大再传给另一个电缆,以此来解决线路传输过程中信号功率衰减的问题,延长网络的长度。
二层交换机(网桥)
二层交换机工作于OSI模型的第二层数据链路层(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层),它可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些地址与对应的连接端口记录在自己内部的一个地址表中
工作流程:
-
当交换机接收到来自某个端口传过来的数据包,先读取数据包中源MAC地址信息,这样就知道了源MAC地址是连接在哪个接口上。
-
然后再读取数据包中的目的MAC信息,并在自己的地址表中查找目的MAC对应的接口是哪个。
-
如果地址表中有目的MAC对应的端口,就直接把数据包复制到这个端口上,发送出去。
-
如果地址表中没有目的MAC对应的端口,交换机就把数据广播到所有的端口,把数据发送出去。当目的计算机回应源计算机时,交换机这时候又可以在自己的地址表中记录目的MAC来自哪个端口。(二层交换机就是这样建立和维护自己的地址表)
地址(MAC与IP)
地址的唯一性:一个地址必须明确表示一个主体对象,同一个通信网络中不允许有两个相同地址通信主体存在。
地址的层次性:MAC与IP地址都具有唯一性,但是只有IP地址具有层次性。
网络中通信地址越来越多,如何高效从一堆地址中找到通信的目标地址,这就需要地址具有层次性。 IP地址由网络号和主机号组成。IPv4是一个32位的地址,用4个十进制数字表示。以C类地址192.168.24.1为例,其中前24位是网络地址,后8位是主机地址。如果两个IP地址在同一个子网内,则网络地址一定相同。
网关
网关是从一个网络到另一个网络的关口,或者说是从一个网络通向其他网络的IP地址。比如有网络A和网络B,A的IP范围是192.168.1.1~ 192.168.1.254,子网掩码255.255.255.0,B的IP范围是192.168.2.1 ~192.168.2.254,子网掩码为255.255.255.0。在没有路由器的情况下,A网络和B网络是不能进行TCP/IP通信的。TCP/IP协议会判定两个网络中的主机属于不同的网络。如果网络A中的主机发现数据包的目的主机不在自己所属的网络中,它就会把数据包发送给自己的网关,再由网关转发给网络B的网关,最终网络B的网关再转发个网络B中的某个主机。
所以只有设置好网关的IP,TCP/IP协议才能实现不同网络之间的通信。网关的IP地址是具有路由功能的设备的IP地址,也就是路由器。