文章目录
分层思想
首先要认识什么是分层思想,以我们日常从超市采购的薯片为例:薯片的原型是土豆,从种植->采摘->过检->去皮->切片->油炸->包装->质检->销售,最后到我们从超市里买到的薯片。网络的原型也如此,很多使用网络的人未必知道数据的传输过程。
分层思想就是将复杂的流程分解为几个功能相对单一的子过程。
分层思想的优点有:工作层独立、灵活性好、易于维护、便于标准化等。
一、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.解封
向上同理解封装就是封装的逆向思维
3.PDU(协议数据单元)
PDU是协议层在对等层之间交换的信息每一层对应的传输格式如下表所示:
应用层 | 报文/消息 |
---|---|
传输层 | 数据段 |
网络层 | 数据包 |
数据链路层 | 数据帧 |
物理层 | 比特流(1/0) |
UDP知道信息发送的返回确认
四、各层级之间的通信
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协议的方式进行数据的传输。
4.1ARP与RARP协议
ARP协议:正向地址解析
工作原理:源PC机对除其本身之外左右的PC机进行广播寻址(MAC地址),当收到广播的PC机收到的MAC地址与其本身的MAC地址进行对比,如若对比结果相同则作出回应,若对比结果不同则丢弃。
适用场合:已知目标IP地址而为之目标MAC地址
数据传输的通讯地址:源IP、源MAC、目标IP、目标MAC
RARP协议:反向地址解析
适用场合:一直目标MAC地址而为之目标IP地址
思考
点到点与端到端之间的区别
点到点 | 主机到主机之间的通信 |
---|---|
端到端 | 进程和进程之间的通信 |
源和目的方的物理地址和逻辑地址:源MAC、源IP、目标MAC、目标IP
数据传输的方式
传输方式 | 过程 | 举例 |
---|---|---|
单工 | 同一时间内只能以防接收或发送信息,不能实现双向通信 | 广播、电视 |
半双工 | 允许双向通信,但是同一时间内只能实现发送或接收信息,可以实现双向通信 | 对讲机 |
全双工 | 允许同时在两个方向上传输,两端设备要同时满足发送和接收能力,实现双向通信 | 电话通信 |
总结
OSI七层模型的分层结构有:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
高三层属于应用层,面向用户和应用
第四层属于数据流层,主要是硬件为主
其中网络层主要面向IP地址,数据链路层面向MAC地址,物理层是比特流
各个层级之间的通信都有不同的传输协议