PDU ------ 协议数据单元
每进入一层,数据在各个层如何叫 单位 OSI里面: L level TCP/IP里面:
封装和解封装
封装:数据在每一层把自己最重要的数据添加到数据包,添加过程就叫封装 解封装:拆开看自己需要的信息 应用层 要封装,取决于不同的服务 传输层:端口号封装到数据中 干这件事情的是这层的协议 网络层:IP地址封装到数据中 IP协议 数据链路层 :MAC地址封装到数据中 ----- 以太网 物理层:不用封装
以太网是早期局域网的解决方案,主要依赖mac地址进行寻址 交换机是通过Mac地址寻址的 以太网主要工作在一二层,主要工作在二层,二层除了以太网协议还有其他协议
以太网的 帧结构:
Type:上一层使用的协议的类型 DA: 目地址 SA:源地址 Preamble:前导符 把单独的一个帧找出来靠这个前导符 帧结构不止这一种 ,上面的的帧结构类型叫做 如何区分一个协议是应用层还是非应用层协议: 应用层协议的特征 有些协议 会说明用什么端口号进行通信
http:超文本传输协议 基于TCP 80端口通讯
Tftp:简单文本传输协议
传输层 —TCP 和UDP协议
区别: 传输速度一定要快,但是可不可靠不一定重要,即时性
TCP和UDP使用场景:
UDP:直播类,打视频电话
什么是面向连接?
扔球游戏很重要 会话是有方向的,双向的 什么是面向连接:
TCP和UDP的头部
源端口: 分段:数据包太长了,就分段,有需要, 序号:分段每一段的序号 使分段到达的顺序一致 确认序号:请你仍6 我已经收到,可以发下一句
这是头部长度 头部长度:因为是可变长度,所以必须写,最短是0 选项:可以不写 保留可以不用管,跟我们没关系 0不生效 1 生效 URG紧急标记位:数据包中有紧急需要处理的数据放在数据域最前面 2、ACK确认标记位:我已经收到球了 如果为1 确认序号就激活 PSH: 先到后道的数据端 需要在缓冲区排序,再推送到进程,但一般情况不需要这样做 RST: 强制终止, 1、SYN:我想要和你建立连接 请求标记位:我准备好了可以开始扔球了吗?我准备好了 请求并建立会话的过程 FIN: 我已经扔完了,结束游戏,断开会话 信息是通过标记位来传递的
校验核:确认数据的完整性 TCP校验强度比较抢的校验核 ,伪头部校验 头部+数据 三层(网络层某一些字段 12字节的内容)也会校验 校验核:确认数据的完整性 TCP校验强度比较抢的校验核 ,伪头部校验 头部+数据 三层(网络层某一些字段 12字节的内容)也会校验 UDP头部有多长:8字节
TCP
TCP建立过程-----三次握手
TCP是双向会话 B建立指向A的 会话:我准备好了 以上是建立过程:通过三个数据包进行连接,所以三次握手
seg序号 ACK:确认包
TCP断开的过程------四次挥手
需要通过四个数据包结束会话 我扔完了,结束游戏:FIN 行,结束游戏并且统一结束 :ACK
B的球扔完了,请求结束:FIN A同意结束:ACK
为什么挥手一个包不能干多件事:
握手不牵扯数据传输的问题, 挥手不确定B数据是否传输完成,所以不能一次把ACK FIN一起传输给A
三次握手容易抓包抓到,四次挥手抓包很难抓到 类比:情侣分手 情侣分手:请求分手 - 考虑 - 吧同意分手 - 那我们分手吧(四次挥手断开) 请求分手 - 正好我也是这么想的 - 那我们分手吧(三次挥手断开) 请求分手 - 不回消息(一次挥手断开) reset标记位:强制终止,不需要四次挥手 RST: 讲完TCP连接过程建立过程将
上网行为监管过程:
企业监管设备:功能继承成在交换机路由器 http基于TCP连接
1、通过建立三次握手,建立好连接 2、请求者发送Get包:有一字段HOST:访问的网站信息,网址 3、企业监管设备白名单黑名单中对比 4、企业监管设备冒充服务器给你回消息 RST 值1 强制终止
TCP确保可靠性的机制:
1、确认机制 2、重传 3、排序 4、流控 排序是怎么排的: 数据包分段 第一段500字节 200 100 第一个数据包的需要要有初始值,不一定是0 三次握手用了两个数据包 第一段 握手包里面没有数据,只是序列号 如果从序列号12开始:
流控:-----滑动窗口机制
tcp发一个包都要确认,效率低,为了提高效率,增加窗口值,一次性允许发多个数据包,只需要确认一次
如何实现流控的? A:我发3个包 B:确认窗口值ACK,确认值也写3 如果可以处理三个,A那么会增加发送包的数量 当发10个实际收到7个,确认窗口值7 确认序列号是8 要的是下一个包,A知道10个大了,就会一次最大传7个包,那么8910 三个包就重传了,传输序列号就从8开始
B在不同场景处理数据的能力不同,动态变化的
TCP需要确认所以慢 根据TCP UDP 包头可以看出,TCP占用的资源多
IP
网络层: Ip地址 头部长度最短为:20字节
Ip分片:tcp分段一个道理 Ttl:生存时间 time to live ping里面路由有
TTL ----每经过一个路由转发,TTL值就-1,路由就不再进行转发
为什么要有这ttl个值?
包有初始值的TTL值 具体哪一个跟操作系统有关
经验判断方法:
64以下,大概的数据包的初始值就是64 64-128之间 初始值128
有协议不需要网络层传输层
TCP的分段和ip的分片
为什么要变短, DATA的内容不能超过1500字节 这是默认值可以修改 网络层最短20字节 传输层最短20字节 最大段长度1460字节
这个需要协商,以小的为准 在三次握手前两次进行协商
同一数据包分出来的片有相同的身份标识 ,
DNS
访问服务器有是那种: 1、用ip地址访问2、通过域名、3、通过APP或应用访问软 域名这么好记,为什么域名存在了ip还会存在 域名对人友好 Ip利于设备识别
DNS — 域名解析协议 — UDP/TCP 53 ---- C/S架构 DNS 客户机找最近的dns服务器域名解析,
域名等级,从右向左登记依次减小
DNS查询方式 递归查询 迭代查询
电脑要获取ip地址的流程: 1、客户端向本地服务器递归查询UDP 2、本地域名服务器先去问根,再逐级问下来 TCP
Dhcp
基于哪个协议的哪个端口 UDP 服务器 67/68客户端 C/S架构 说明关系不对等 DHCP对性能没有任何要求 路由器也可以成为DHCP
常见协议端口号
一、电脑首次获取ip
offer包携带一个可用的ip地址,并暂时为你保留ip 广播域里面靠mac地址 offer已经具备单播包的特点,但是单播包和广播包都有 可能
广播域里不止一个DHCP服务器,发offer可以让客户端选来自多台DH CP的offer
广播包:包给谁了不确定 交易码 区分包是不是给自己的 Request包中的ip request一定是广播包:使命1、请求得到Ip 2、还要广播告诉其他给自己发offer的DHCP没有选择他们,标明自己选择的DHCP
ACK:确认包 单播包 表明request已经获得ip
客户端如何选择offer? 选择第一个到达的offer
二、再次获取ip 电脑突然断电关机,电脑就不需要ip ,ip就还给DHCP了 直接发送request包,希望能接着用之前的Ip NACK 无法获取当时的ip,只有重新广播获取ip
DHCP里有一个租期的概念
DHCP客户端给服务器发送请求
DHCP配置
配置网关信息和dns信息
在接口启用全局配置
单播包 值0 广播包1
免费arp 避免冲突
设置为静态ip:DHCP包客户端主动释放ip地址
|