OSI
7层模型和TCP/IP 4层模型
OSI:open system interconnection 开放式系统互联参考模型
OSI模型各层的基本作用
序 | 层 | 说明 |
---|---|---|
7 | 应用层 | 为应用程序提供网络服务 |
6 | 表示层 | 数据格式化、加密、解密 |
5 | 会话层 | 建立、维护、管理会话连接 |
4 | 传输层 | 建立、维护、管理端到端连接 |
3 | 网络层 | IP寻址和路由选择 |
2 | 数据链路层 | 控制网络层与物理层之间通信 |
1 | 物理层 | 比特流传输 |
OSI 和 TCP/IP 的对应关系和协议
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
---|---|---|
应用层(Application) | 应用层 | HTTP、TFTP、FTP、NFS、WAIS、SMTP |
表示层(Presentation) | 应用层 | Telnet、Rlogin、SNMP、Gopher |
会话层(Session) | 应用层 | SMTP、DNS |
传输层(Transport) | 传输层 | TCP、UDP |
网络层(Network) | 网络层 | IP、ICMP、ARP、RARP、AKP、UUCP |
数据链路层(Data Link) | 数据链路层 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP |
物理层(Physical) | 数据链路层 | IEEE 802.1A、IEEE 802.2到IEEE 802.11 |
OSI模型的详解
- 1 物理层
- 1.1 通过光缆、电缆、无线电波等方式将设备连接起来组网
- 1.2 两个不同局域网(移动、电信)通信,需要ISP互联网服务供应商的物理连接
- 1.3 作用:传送比特流 0和1
- 2 数据链路层
- 2.1 作用:根据以太网协议将一组电信号组成一个数据包,称作“帧”,并控制他的传输
- 有两部分:
- 1 标头head:标明数据发送者、接收者、数据类型
- 2 数据data
- 有两部分:
- 2.2 MAC地址
- 2.2.1 作用:定位数据包的路径,如发送者、接收者
- 2.2.2 既网卡地址,每个网卡都是独一无二的12个16进制数
- 2.2.3 前6个表厂商,后6个表流水号
- 2.3 广播方式
- 2.3.1 发送者把数据包,发送给局域网内的所有pc,当每个pc根据MAC地址自动匹配
- 2.3.2 发送媒介:分组交换机/网络交换机
- 2.4 网络交换机network switch
- 2.4.1 扩展网络的机器
- 2.4.2 作用:为子网提供更多的接口,以连接更多的pc
- 2.1 作用:根据以太网协议将一组电信号组成一个数据包,称作“帧”,并控制他的传输
- 3 网络层
- 3.1 作用:建立 主机-主机的连接
- 3.2 引入新的地址模式-IP地址/网络地址,可以区分哪些PC是在同一子网(局域网)内
- 3.3 IP类型分类
- 3.3.1 IPv4 32个二进制,4字节*8位
- 前24位表网格同一子网下,必须相同
- 后8位表主机
- 3.3.2 IPv6 128个二进制,8字节*16位
- 3.3.1 IPv4 32个二进制,4字节*8位
- 3.4 子网掩码subnet mask:通过and运算判断是否在同一子网下 ip and 255.255.255.0
- 3.5 路由 routing
- 3.5.1 作用:
- 通过网络把数据从原地址到目标地址
- 引导分组传送,经过一些中间节点后,到达目的地
- 3.5.2 实现方法:定义一条路径,经过因特网把包发送到目的地,但不指定完全路径,只定义两个网关之间的路径段
- 3.5.3 路由器router:连接两个或多个网络并实现路由功能的机器;可看作配有多个网卡的专用电脑,让网卡接入不同的网络中
- 3.5.4 网关 gateway: 网络层使用的路由器,通常指路由器的ip
- 3.5.5 ex: A:发送地址 B:接收地址
- 1 若在同一局域网:通过广播方式即可找到
- 2 若在不同局域网:
- A先生将包根据网关添加路由器/主机地址,通过交换机的广播方式发给主机
- A的主机将数据包传送给B所在的主机,再由主机根据MAC广播给B 完成
- 注:IP包不断被路由封装和拆开(添加/删除地址)
- 3.5.1 作用:
- 3.6 ARP协议
- 3.6.1 作用:局域网内IP和MAC地址的对应关系
- 3.6.2 作用位置:介于数据链路层和网络层之间
- 3.6.3 局限:仅限ipv4,ipv6用Neighbor Discovery Protocol替代
- 4 传输层
- 4.1 作用:建立 端口-端口间的连接
- 4.2 端口号port
- 4.3 socket
- 4.3.1 进程间通信:需要双方IP,端口号,通信采用的协议栈
- 4.3.2 格式:无符号整型变量,用来表示一个通信进程
- 4.3.3 本质:是编程接口API,对TCP/IP协议的封装
- 4.4 UDP/TCP
- 4.4.1 作用:在数据包标头加上端口号
- 4.4.2 TCP:复杂,稳定,有包遗失,会重发
- 4.4.3 UDP:简单,但不稳定,不能确定对方是否成功接收
- 5 会话层
- 6 表示层
- 7 应用层 (对会话层、表示层、应用层合并为TCP/IP的应用层)
- 7.1 作用
- 7.1.1 规定应用程序的数据格式
- 7.1.2 如ftp,网页、smtp的数据格式
- 7.2 是对OSI模型中最高3层的合并,直接面向用户
- 7.1 作用
数据链路层数据包(以太网数据包)格式,除了应用层没有头部,其他都有
由于以太网数据包的数据部分,最大长度为1500字节,当IP包过大时,会分割下来,但是每个分割包的头部都一样
数据包在传送时的封装和解封装如下所示