共计 1569 个字符,预计需要花费 4 分钟才能阅读完成。
网络七层模型,比较抽象,一直记不住,主要还是没能完全理解它的本质,抽空整理一下对于七层模型的理解,便于记忆
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
https://baike.baidu.com/item/%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B/1441391?fr=aladdin
对比一下OSI 七层模型和TCP/IP 五层模型,以及处于各层相对应的协议组成
TCP/IP五层协议相比OSI 七层协议,就是把会话层、表示层、应用层都整合为应用层了。
物理层
就是物理传输,可以通过光缆、电缆、无线电波等作为物理链接,中间传的是电信号,就是0101010这样的二进制。物理层的作用就是通过硬件设备将模拟信号转换成数字信号,即01数据流,叫做比特流。
数据链路层
底层传输的0101011的数据流,没有格式,计算机也看不懂,所以就要给它分组,数据链路层就是来对电信号做分组的。依据以太网协议Ethernet,一组电信号就是一个数据包,或者叫一个帧。每一个数据帧分为:报头head和数据data两部分。
- head包含:发送者(原地址6个字节),接受者(目标地址6个字节),数据类型(6个字节)
- data包含:数据包的具体内容
计算机通信中的源地址和目标地址指的就是mac地址,即网卡地址。
数据链路层的工作方式是广播,在一个局域网内,广播出去以后,局域网内所有计算机都收的到,都会拆开这个包,读发送者是谁,接收者是谁,只要接收者不是自己的MAC地址就丢弃掉。但是,如果跨网络了,数据链路层就解决不了了,这个时候就得靠网络层了。
网络层
跨网络传输,每台计算机就得有自己在网络中身份,于是出现了IP协议。网络层定义了一个IP协议。
有一个问题,在网络中怎么获取到对方的MAC地址?这个时候就得靠ARP协议。
自己的MAC地址和IP地址都可以轻松拿到,用本机的MAC地址+本机IP+目标IP地址往网络中发一个ARP包,ARP也是广播,只有目标IP的机器会返回它的MAC地址,其他的都会被抛弃。
这样就可以正常发包了。
传输层
网络层的IP区分了子网,再根据以太网层的MAC找到了特定的主机,但是这台主机上又有很多应用程序,到底是哪个程序建立的通信,靠的就是端口(端口范围0-65535,0-1023为系统占用端口)。
传输层作用:建立端口到端口的通信。
传输层有两个重要的协议:TCP和UDP。TCP效率低但是发送包会校验是否完整,UDP效率高但是发出去就不管别人能否完整收到。
会话层
计算机收到了发送的数据,但是有那么多进程,具体哪个进程需要用到这个数据,则把他输送到那个进程。例如:如果80端口要用,所以系统内数据通信,将接收端口数据送至需求端口。
表示层
现在正确接收到了需要的数据,但是因为数据在传输过程中可能基于安全性,或者是算法上的压缩,还有就是网络类型不同。那就得有一个沟通的桥梁来整理整理,还原出原本应该有的表示,类似于一个拆快递的过程。
应用层
应用层是最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。但是要注意的是,应用层并非由计算机运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(应用程序接口)组成。
包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)