ISO
OSI七层模型
- 应用层(Application) 提供网络与用户应用软件之间的接口服务
- 表示层(Presentation) 提供格式化的表示和转换数据服务,如加密和压缩
- 会话层(Session) 提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制
- 传输层(Transimission) 提供建立、维护和取消传输连接功能,负责可靠地传输数据(PC)
- 网络层(Network) 处理网络间路由,确保数据及时传送(路由器)
- 数据链路层(DataLink) 负责无错传输数据,确认帧、发错重传等(交换机)
- 物理层(Physics) 提供机械、电气、功能和过程特性(网卡、网线、双绞线、同轴电缆、中继器)
四层模型
- 应用层
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- DNS(域名系统协议)
- TFTP(简单文本传输协议) 。。。
- 传输层
- TCP(传输控制协议)
- UDP(用户数据协议)
- 网络层
- IP(网络协议) 负责主机和网络之间寻址和路由数据包
- ARP(地址解析) 通过ip找mac地址
- RARP(反向地址转换) 通过mac地址找ip
- ICMP(网络控制消息) 别人ping的时候 给人发个消息 (就是 ping 用的协议)
- IGMP(互联网管理协议) IP主机向本地多路广播路由器报告主机成员
- 数据链路层
- 由底层网络定义的协议
子网掩码
- 作用 将某个IP地址分为网络地址和主机地址2个部分
tcp
三次握手
client => server 请求握手
sercer => client 收到了,我要连接你
client => server 好的
四次挥手
client => finish(1,第一次断开) => server
client <=ack(2,server表示收到) <= server
client <=finish(3,server说的,好断开) <= server
client ack=>(4,client 收到了) => server
- 为啥 23 不能合并,也就是说 server收到并且断开?
- 因为 server收到client的请求断开的时候 server数据还不一定发完
- 等server往client数据发送完成 才能给client发送finish
- 如果 等server发送数据 在进行 23处理 也不行, client发送消息后
- 会来一个定时器 没有收到服务器的消息 就是 定时在发送
TCP/IP协议族
- 是由网络层的IP协议和传输层的TCP协议组成,是一个很大的协议集合
- 物理层和数据链路层没有定义任何协议,支持所有的标准和专用的协议
- 网络层只管传递数据,成功与否并不关心
TCP
- 可靠的、面向连接的协议 传输效率低 , 发出去还要接受到
- 使用场景 访问网站 邮件 打电话 主要稳
UDP
- 不可靠的、无法连接的服务,传输效率高, 只发不收
- 使用场景 发微信 QQ聊天 短信 视频软件 主要快
数据传输案例
- 数据->传输层(包)->网络层(段Segment)->数据链路层(帧)
- 发送方是从高层到低层封装数据(接受方就是反过来)
- 在应用层要把各式各样的数据如字母、数字、汉字、图片等转换成二进制
- 在TCP传输层中,上层的数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部
- 在TCP头部有一个关键的字段信息端口号,它用于标识上层的协议或应用程序,确保上层数据的正常通信
- 计算机可以多进程并发运行,例如在发邮件的同时也可以通过浏览器浏览网页,这两种应用通过端口号进行区分
- 在网络层,上层数据被封装上亲的报文头部(IP头部),上层的数据是包括TCP头部的。IP地址包括的最关键字段信息就是IP地址,用于标识网络的逻辑地址。
- 数据链路径层,上层数据成一个MAC头部,内部有最关键的是MAC地址。MAC地址就是固化在硬件设备内部的全球唯一的物理地址。
- 在物理层,无论在之前哪一层封装的报文头和还是上层数据都是由二进制组成的,物理将这些二进制数字比特流转换成电信号在网络中传输
