文章目录
前言
首先要认识什么是分层思想,以我们日常从超市采购的薯片为例:薯片的原型是土豆,从种植->采摘->过检->去皮->切片->油炸->包装->质检->销售,最后到我们从超市里买到的薯片。网络的原型也如此,很多使用网络的人未必知道数据的传输过程。
分层思想就是将复杂的流程分解为几个功能相对单一的子过程。
分层思想的优点有:工作层独立、灵活性好、易于维护、便于标准化等。
一、OSI参考模型
OSI是一个开放式的结构体系,将网络分成了七层结构,自上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,每一层对应的作用都不同
层级 | 特性 | 对应设备 |
---|---|---|
应用层 | 提供网络服务和用户接口 | 计算机 |
表示层 | 数据的表示、安全、压缩 | |
会话层 | 建立管理用户之间的会话连接 | |
传输层 | 定义传输数据的协议端口号 | 防火墙 |
网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择 | 路由 |
数据链路层 | 建立逻辑连接、进行硬件寻址、差错校验等功能 | 交换机 |
物理层 | 建立、维护、断开物理连接 | 网卡 |
二、OSI与TCP/IP
1、OSI模型与TCP/IP模型
2、OSI与TCP/IP的对比
相同 | 不同 |
---|---|
都有分层 | TCP/IP将表示层和会话层涵盖到了应用层 |
都有应用层 | TCP/IP将OSI的数据链路层和物理层包括到了一层中 |
都有可比较的传输层和应用层 | TCP/IP更为简洁;OSI更容易开发和排除故障 |
使用的分组交换而不是电路交换技术 | TCP/IP产生于实践中 |
三、封装与解封
1、封装
应用层将原始数据转换成二进制数,到传输层后把二进制数据压缩并封装TCP头部(数据段) ,到网络层后将传输传来的数据封装上IP头部 (数据包),到数据链路层将传来的数据封装MAC头部 (数据帧),到物理层后二进制数组成的比特流转化为电信号传输 (比特流)
2、解封
物理层先将电信号转化为二进制数,将其送至数据链路层后查MAC地址,地址是自己,就拆封MAC头部,继续传输(地址不是自己,就丢弃数据)网络层查验IP地址,地址是自己,就拆封IP头部,继续传输(地址不是自己,就丢弃数据),传输层查看TCP头部,地址是自己,就拆封TCP头部,继续传输(地址不是自己,就丢弃数据)传输到应用层,应用层最后二进制转化为原始上层数据
3、PDU(协议数据单元)
PDU是协议层在对等层之间交换的信息每一层对应的传输格式如下表所示:
应用层 | 报文/消息 |
---|---|
传输层 | 数据段 |
网络层 | 数据包 |
数据链路层 | 数据帧 |
物理层 | 比特流(1/0) |
四、各层级之间的通信
1、各层之间的通信
2、各层之间的协议
应用层: HTTP (超文本协议) 80
HTTPS 443
FTP (文件传输协议) 20、21
TFTP
SMTP (邮件传输协议)
SNMP (简单管理协议)
DNS (域名解析) 53 #UDP协议
telent 23
传输层: TCP (传输控制协议) #邮件传输会选择使用TCP协议
UDP (用户数据报协议)
网络层: ICMP (国际控制报文协议)
IGMP (国际组管理协议)
IP (国际协议)
ARP (地址解析) #已知目标IP地址,未知目标MAC地址
RARP (逆地址解析) #已知目标MAC地址,未知目标IP地址
网络接口层:由底层网络定义的协议
IEEE 802.3 有限局域网(以太网)标准
IEEE 802.11 无线局域网标准
3、TCP协议的建立与终止
进入网络后才开始建立连接
3.1 TCP协议三次握手
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态;
服务器端收到SYN报文,回应一个SYN (SEQ=J)ACK(ACK=J+1)报文,进入SYN_RECV状态;
客户端收到服务器端的SYN报文,回应一个ACK(ACK=K+1)报文,进入Established状态;三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
3.2 TCP协议四次挥手
客户机发送一个FIN,用来关闭客户机到服务器的数据传送,此时客户机进入FIN_WAIT_1状态;
服务器收到FIN后,发送一个ACK给客户机,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器进入CLOSE_WAIT状态;
服务器发送一个FIN,用来关闭服务器到客户机的数据传送,服务器进入LAST_ACK状态;
客户机收到FIN后,客户机随即进入TIME_WAIT_2状态,接着发送一个ACK给服务器,确认序号为收到序号+1,服务器进入CLOSED状态,完成四次挥手。
3.3展开(了解一下百度的访问流程)
提示:百度的访问流程也是有用到TCP协议的三次握手和四次挥手
从家里连接路由器/TP-LINK/ADSL等有线设备的时候,使用① 物理层的那种"网线" 接入到② 数据链路层二层交换机(基于MAC地址通讯的原理)/③ 网络层三层交换机或路由器设备之后(基于MAC地址/基于IP-port转发)的方式接入公网环境,然后使用④ 逻辑地址寻址(IP:PORT)的方式定位到百度服务器的位置(DNS不知道有没有学,学的话加上)⑤ 通过TCP的三次握手四次挥手与百度网站建立连接,再以HTTP/HTTPS协议的方式传输数据
以上点到 家——》百度① 物理层输入的数据以比特流的方式传输(上层数据) ② 链路层使用数据帧(封装MAC ) ③ 网络层使用ip头部封装,数据包,④ 以TCP/UDP协议进行传输(数据段)⑤-⑦ 通过会话层、表示层、应用层,通过应用层的HTTP/HTTPS协议进行访问,同时依次进行解封装过程,最终解封装MAC,查看到隔壁老张的数据
4、1ARP与RARP协议
ARP协议:正向地址解析
适用场合:已知目标IP地址而为之目标MAC地址
数据传输的通讯地址:源IP、源MAC、目标IP、目标MAC
RARP协议:反向地址解析
适用场合:一直目标MAC地址而为之目标IP地址
总结
OSI七层模型的分层结构从上至下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
其中:高三层属于应用层,面向用户和应用;第四层属于数据流层,主要是硬件为主
网络层主要面向IP地址,数据链路层面向MAC地址,物理层是比特流
各个层级之间的通信都有不同的传输协议
思考
点到点与端到端之间的区别
点到点 | 主机到主机之间的通信 |
---|---|
端到端 | 进程和进程之间的通信 |
源和目的方的物理地址和逻辑地址:源MAC、源IP、目标MAC、目标IP |
数据传输的方式
传输方式 | 过程 | 举例 |
---|---|---|
单工 | 同一时间内只能以防接收或发送信息,不能实现双向通信 | 广播、电视 |
半双工 | 允许双向通信,但是同一时间内只能实现发送或接收信息,可以实现双向通信 | 对讲机 |
全双工 | 允许同时在两个方向上传输,两端设备要同时满足发送和接收能力,实现双向通信 | 电话通信 |