分层模型
分层思想
分层思想有助于将复杂的问题简单化、清晰化,就像企业组织架构在企业管理中的重要地位一样,赋予计算机网络不同的分层,每一层具有一定的功能,相邻层之间通过接口来通信,下层为上层提供服务。一旦发生网络故障,很容易确定故障问题所在,大大节省了排查成本。
OSI七层模型
之前由于各个计算机厂商之间都采用私有的网络模型,给通信带来麻烦,在1984年国际化标准组织(ISO)颁布了开放系统互联参考模型(OSI)。
应用层:包含大量人们普遍需要的协议,在人机交互时,把人的语言输入到计算机中,如在微信聊天的对话窗口输入字符。
表示层:用于完成某些特定功能,对这些特定功能人们常常希望找到普遍的解决方法,而不必由每一个用户自己来实现,所以计算机会将接收到的数据翻译成二进制数组成的计算机语言,并对数据进行压制和解压、数据加密和解密等工作。
会话层:允许不同机器上的用户之间建立会话连接关系。
传输层:实现网络中不同主机上用户进程之间的数据通信,将上层应用数据分片并加上端口号封装成数据段,或通过对报文头中的端口识别。
网络层:实现数据从源端到目的端的传输,将上层数据加上源和目的方的逻辑(IP)地址封装成数据段。
数据链路层:负责将上层数据封装成固定格式的帧,将上层数据加上源和目的方的物理(MAC)地址封装成数据帧。
物理层:完成相邻节点之间原始比特流的传输;报文头部和上层数据信息都是由二进制数组成的,物理层将二进制数字组成的比特流转换成电信号在网络中传输。
TCP/IP协议簇
TCP/IP是传输控制协议/网络互联协议的简称。早期TCP/IP模型是一个四层结构,从上至下依次是应用层、传输层、互联网层、网络接口层。后来借鉴OSI七层模型,又将互联网接口层划分为物理层和数据链路层,形成了一个新的五层结构。TCP/IP是一系列协议的集合,所以严格称呼是TCP/IP协议簇。
IP(网际协议)协议及其功能:
ARP(地址解析协议):用于在局域网中根据IP地址获取物理地址
RARP(逆地址解析协议):用于在局域网中通过ARP表根据物理地址请求IP地址
ICMP(网际控制报文协议):用于验证网络是否通畅
IGMP(网际组管理协议):用于主机与组播路由器之间组播通信
数据传输过程
数据封装
- 应用层——数据被“翻译”成二进制数据
- 传输层——上层数据被分割成小的数据段,并在每个数据后封装TCP报文头部
- 网络层——上层数据被封装上IP头部
- 数据链路层——上层数据被封装上MAC头部
- 物理层——二进制数据组成的比特流转换成电信号在网络中传播
数据解封装
- 物理层——电信号转化为二进制数据,并将其送至数据链路层
- 数据链路层——查看MAC地址,是否是自己的,是就拆掉MAC头部,数据送至上一层; 否就丢弃数据
- 网络层——查看IP地址,是否地址是自己,是就拆掉IP头部,继续上传;否就丢弃数据
- 传输层——查看TCP头部,判断应该传到哪里,然后重组数据,传输到应用层
- 应用层——二进制转化为原始信息
TCP和UDP协议
TCP协议
TCP(传输控制协议)协议应用的端口及其协议功能——传输更加稳定可靠
80 HTTP(超文本传输协议):用于浏览器和Web服务之间的请求和响应的交互
21 FTP(文件传输协议):用于控制连接FTP服务器
53 DNS(域名系统):用于连接DNS服务器
25 SMTP(简单邮件传输协议):用于发邮件
110 POP3(邮局协议版本3):用于接收邮件
22 SSH(安全外壳协议):用于计算机之间的远程加密登录
UDP协议
UDP(用户数据报协议)协议应用的端口及其协议功能——传输效率更高
69 TFTP(简单文件传输协议):用于小文件的传输
53 DNS(域名系统):用于解析DNS
111 SNMP(简单网络管理协议):用于网络设备的管理
123 NTP(网络时间协议):用于网络时间同步