首先我们学习了OSI七层参考模型,七层参考模型分为以下七层
第七层:应用层--通过人机交互来实现各种各样的服务
应用层是OSI参考模型中的最高层,也是最接近用户的一层, 用户可以利用不同的应用软件产生或得到不同类型(例如语音、文字、图片等)的网络数据。
第六层:表示层 --编码 解码 加密 解密
这一层提供格式化的表示和转换数据服务, 解决上一层用户信息的语法表示问题,对数据进行压缩、格式转换、加密和解密等工作, 并为下一层实现其功能做好准备。
第五层:会话层--发现 建立 维持 终止会话进程
该层负责在两个节点间建立端与端的连接,进行对话的连接、管理和拆除, 但是会话层并不参与具体的传输。
上三层产生数据,不会涉及到数据的运输,其实也可以分为一类。所以在TCP/IP Stack中上三层也被分为一层,叫应用层
数据--数据报文 报头就是报文的头部
TCP的头部
Resv---预留位--保留出来的----服务质量
Rst--重置位
Urg--紧急指针--urgent pointer
Ctl ---控制位--只有0和1 为0 不生效 为1 生效
Window size --窗口大小 ---滑动窗口
Checksum ---校验和
Options---选项---有就有 没有就没有
UDP的头部
IP的头部
Version 版本 IPv4
IHL IP header length
Service type ---服务类型
Packet length --数据包的长度
标识 标志 片偏移 ----支撑跨层封装
Time to live ---生存时间 主要作用--防止环路
取值范围 0-255
默认 情况下每经过一台路由器减1,为0 不传递
Protocol 协议号 ---标识上层协议
第四层:传输层--通过端口号来区分不同的服务
传输层则负责将数据可靠地传送到相应的端口。如何实行可靠,可靠的机制就是:确认 重传 排序 流控
端口号:0-65535
静态端口号:1-1023 动态端口号:1024-65535 0为保留端口号---在网络编程中使用--代表所有端口号
一个端口号代表一个特定的服务,且呈永久绑定关系
常用的两个协议的端口号
1:http --超文本传输协议 80
2:https--安全的超文本传输协议 443
而协议就是双方约定的标准
传输层中相当重要的两个协议:TCP协议(Transmission Control Protocol,面向连接的可靠传输协议)、 UDP协议(User Datagram Protocol,非面向连接的不可靠传输协议)在TCP中实现面向链接就需要三次握手,四次挥手
三次握手
SYN--同步序列号请求 ---请求连接的一种方式
Seq--序列号--记录发送的次数 ---随机生成---不同厂商设定的
Ctl--控制位
Ack---确认
Ack=seq+1
Sequence number --序列号
四次挥手
FIN--请求断开连接
ACK--确认
seq相同---同时发送----时间间隔
TCP 可靠 传输慢 -浏览网页
UDP 不可靠 传输快 -视频流量
在数据的传输中最大段长度为1480B,而最大传输单位为1500B,差距的20B就用在了分装与解分装上面。
第三层:网络层--根据IP地址来进行逻辑寻址
IP就是网际网络协议,在互联网中每一个节点都有一个IP地址。
代表设备就是路由器
路由器的作用:
- 隔离广播域/划分广播域 广播域--广播的范围
- 连接不同的网络
- 路由
第二层:数据链路层--为上层提供FCS校验,通过mac地址来进行物理寻址
MAC就是网络终端设备的身份证号,一般在出厂之后烧录在网卡上的编号,一般不能进行更改
代表设备就是交换机和网桥,主要的协议就是以太网协议
交换机的作用:
- 无线延长传输距离
- 实现单播
- 解决冲突域 冲突域---可能产生冲突的地方
- 一般一个交换机属于一个广播域
第一层:物理层--定义电气电压 光学特性 接口规范
物理层的重要设备就是中继器,中继器则会产生冲突,冲突则有交换机解决
解决冲突:
- FIFO --先入先出
First in first out
- CSMA/CD --带冲突检测的载波多路访问技术
TCP/IP协议栈与OSI七层参考模型的相同点:
1.二者都是模型化层次
2.下层对上层提供给服务支持
3.每层协议彼此互相独立
TCP/IP协议栈与OSI七层参考模型的不同点:
1.OSI先有模型才有协议
2.TCP/IP先有协议才有模型
3. TCP/IP协议栈只适用于TCP/IP网络层量不同