文章目录
OSI参考模型和TCP/IP模型
OSI参考模型
7.应用层 对应用程序提供接口(提供服务)
6.表示层 数据格式转换 各应用层数数据互相识别、理解
5.会话层 在通信双方之间建立、管理和终止回话
4.传输层 建立、维护和取消一次端到端的数据传输过程
3.网络层 定义逻辑地址;实现数据从源到目的地的转发
2.数据链路层 将数据封装成帧;实现点到点/多点直接通信;差错校验(FCS)
1.物理层 在媒介上传输比特流
为什么要分层
网络通信的过程很复杂
为了降低网络设计的复杂性,将协议进行了分层设计
分层设计的好处
- 复杂问题简单化
- 灵活性好
- 结构上可分割开
- 易于实现和维护
- 能促进标准化工作
TCP/IP参考模型
TCP/IP常见协议
PDU protocol data unit
协议层的协议在对等层之间交换的信息叫协议数据单元
上层 message
传输层 segment 数据段
网络层 packet 数据包
数据链路层 frame 数据帧
物理层 bit 比特流
数据传输
发送方数据封装
接收方数据解封装
封装和解封装(互逆)
封装
发送方数据通过网络进行传输,从高向下逐层传送,加上每层的报头控制信息,这个过程叫封装
封装分为 切片和加控制信息
解封装
针对接收方,进行数据包头的剥离 封装的逆向过程
只有封装完成的数据才可以发送出去 没有网卡是无法进行数据传输的(MAC地址)
数据传输过程
判断设备工作在第几层 看设备可以封装/解封装到第几层
下层为上层提供服务
上层调用下层的功能
参考模型各层功能及常见协议
物理层
数据达到物理层之后 物理层会根据物理介质的不同 将数字信号转换成光信号、电信号或电磁波信号
物理层的PDU被称为 比特流(Bitstream)
常见物理层设备 集线器(hub)、连接器、中继器
物理层位于模型的最底层
物理层作用
- 负责比特流在介质上的传输
- 规范了线缆、针脚、电压、接口等物理特性规范
- 常见传输介质 双绞线、光纤、电磁波等
双绞线 RJ-45连接器
同/异步串口线缆
光纤(反射) 无线信号
数据链路层
可以向网络层IP IPV6等协议提供服务
数据链路层的PDU被称为帧(Frame)
常见数据链路层设备 网桥 二层交换机
数据链路层位于网络层和物理层之间
数据链路层作用
- 数据链路层向网络提供段内通信
- 负责组帧、物理编址(MAC地址)、差错控制(FCS尾部)等功能
- 常见协议 以太网(Ethernet) PPP PPPoE等
网络层
负责数据从一台主机到另一台主机之间的传递
网络层的PDU被称为包(Packet)
常见网络层设备 路由器 三层交换机
网络层作用
- 为网络中的设备提供逻辑地址
- 负责数据包的寻径和转发
- 常见协议 IPV4 IPV6 ICMP IGMP
传输层
负责建立主机之间进程于进程之间的连接
接受来自于应用层的数据 封装相应的传输层头部 帮助其建立端到端的连接
TCP为可靠传输 UDP为尽力而为传输
传输层的PDU被称为段(Segment)
传输层协议
TCP 面向连接 可靠 由IETF定义
UDP 无连接 由IEFE的RF768定义
应用层
为应用软件提供接口 使应用程序能够使用网络服务
应用层会指定相应的传输层协议和传输层使用的端口
应用层层的PDU被称为数据(Data)
部分应用层协议 默认端口
1-1023为知名端口
HTTP 80(TCP)超文本传输协议
HTTPS 443(TCP)超文本传输安全协议
Telnet 23(TCP) 远程登录协议
FTP 20(控制) 21(数据)(TCP) 文件传输协议
TFTP 69(UDP) 简单文件传输协议
SMTP 25(TCP)简单邮件传输协议
SSH 22(TCP)安全外壳协议
DNS 53 (UDP+TCP)域名解析系统
DHCP 67(S) 68© (UDP)动态主机配置协议
源IP SIP
目的IP DIP
源端口 SP
目的端口 DP
源MAC地址 SMAC
目的MAC地址 DMAC
报文格式
TCP报文格式
1.端口号
用16个bit表示 范围为0~2^16-1 为0~65535
其中0-1023 知名端口 系统保留
2.序号
保证传送数据包的顺序 顺序使用一个序列号来保证
3.确认号
确认数据准确传输
4.首部长度
整个TCP报头的长度 如果没有option选项 头部为20bytes
5.TCP flag 字段
URG 紧急
ACK 确认 应答
PUSH 推送 数据包立即发送
RST 连接重置
SYN 同步 TCP申请于对端建立连接 发起连接请求
FIN 结束 用于断开连接 结束TCP会话
6.窗口大小
在传输过程中动态协商 简单的流量控制功能
7.校验和
检查数据的完整性
TCP的建立
三次握手(发送数据前)
TCP窗口滑动机制
四次挥手(双向断开)
UDP报文格式
1.没有顺序号和确认号
2.端口号区分不同应用程序
如DHCP 67(S) 68© TFTP RIP 520
3.Checksum 校验和
4.提供尽力而为(best-effort)的传输
传输数据前不需要建立连接
如需要高可靠性 可依靠上层设计
IP数据包格式
1.version 版本
代表IP版本 IPv4 IPv6
2.IHL 首部长度
标记IP头部长度 不是定长(有option选项)
3.TOS
sevice type 优先级和服务类型
用于实现QoS 主要用于数据包的优先级
000 普通 Routine
001 优先的 Priority
010 立即发送 Immediate
4.包长度
数据包的总长度 IHL+上一层数据长度=包总长度
5.Idntification 标识符 flag 标志 offset 段偏移量
主要用于分片
identification标识符相同为一个数据包
flag:DF为1 不允许分片 一般为0
MF为1表示后面 还有更多分片 我不是最后一个分片
offset:表示分片在大包所处的位置 前面分片的总大小
MTU maximum transport unit 最大传输单元
6.TTL 生存时间 time to live 0-255
每经过一个路由器TTL值转发减一
用于解决数据包环路 三层防环 可以通过TTL限制数据包的传播范围
7.protocol 协议号
标识上一层协议 指的并不是传输层协议 而是最靠近的协议
icmp=1 igmp=2 tcp=6 igrp=9 udp=17 eigrp=88 ospf=89 pim=103
8.Header Checksum 首部校验和
9.souce IP 源地址
10.destination IP 目的地址
数据链路层报头
目标mac:数据帧发向的目的主机的mac地址
源mac: 发送方自己的mac地址
以太网类型:type字段 用于标识上一层协议
type值 上一层协议
0x0800 IPv4
0x0806 ARP
0x86dd IPv6
以太网 Ethernet
以太网是一种局域网技术 是目前应用最普遍的局域网技术
地址解析协议(ARP)
根据已知的IP地址解析获得其对应的MAC地址
广播