目录
应用层:抽象语言-->编码 把人类的语言转换成计算机编码,为应用程序提供网络服务
表示层:编码--->二进制(0、1) 定义数据格式,对数据加密、解密、压缩、解压缩
会话层:建立、维持、断开通信双方间的会话,session id:区分同一应用进程间不同的会话.
上三层为应用程序对数据加工处理的阶段; 故统称为应用层;
传输层:建立端到端的连接 分段 端口号 TCP/UDP
端口号取值:0-65535(0和65535是系统保留的),1-65534
DHCP(动态主机配置协议):67(服务器)、68(客户端)---UDP
SMTP:(简单邮件传输协议)-----发送端--TCP 25
分段: 超大数据包在网络中无法与他人共享带宽,将出现带宽抢占,导致数据包损坏,重传,大 大增加网络的延时; 故必须对数据包进行分段;分段时需要受到 MTU 限制
MTU: 最大传输单元,默认 1500;
端口号:16位二进制构成 取值范围 0-65535 其中1-1023 注明端口 静态端口号 1024-65535动态端口 高端口
客户端访问服务端时,客户端随机使用高端口作为源端口号来标记本地的进程;使用注明端 口号作为目标端口号来对应服务;
80 http 443 https 53dns 21 ftp 22 ssh 23 telnet ..... 有兴趣可以去查看端口号对应列表UDP: 用户数据报文协议 非面向连接的不可靠传输协议仅完成传输的基础工作--- 分段、端口号
TCP :传输控制协议
面向连接的可靠传输协议--在完成了传输层的基础工作外,还需要保障传输的可靠性;面向连接:在传输数据前,需要通过三次握手 建立端到端的虚链路
可靠传输:传输过程中使用到 4 种可靠传输机制; -- 确认、排序、流控(滑动窗口)、重传
俩本相关的书 《TCP/IP 路由技术》(行业圣经)、《TCP/IP 详解》TCP三次握手详见:
网络层:IP寻址 . 逻辑寻址、提供路由、转发数据 运行的是 互联网协议(internet协议)
IPV4报头:标准20字节 可扩展到60字节
数据链路层:介质访问控制---控制物理设备 (核心作用) MAC寻址
数据链路层的核心作用在于控制物理层设备;因为物理设备不能自动工作的;需要程序控制:由于大部分网络环境物理层均使用以太网技术,故数据链路层的思考大多基于以太网的二层封装封装来进行;
以太网二代帧头部:
仅以太网技术在二层使用 MAC 地址进行物理寻址;
物理层:传输比特流、传输电信号
封装--- 从高向低层数据加工处理的一个过程;过程中数据包将不断的变大
解封装--- 数据从低层向高层的一个读取过程; 过程中数据包将不断的变小
两个设备正常的通讯,必须已知目标 p 地址; ip 地址的获取方式---1域名 2APP 记录3管理员直接提供
PC----访问的目标 ip 地址与本地在同一网段
--- ARP 获取对端 mac 地址,获取失败放弃通讯,等待超时获取成功后正常通讯
交换机-- -- 接收到一段比特流后,先识别成二层数据帧,优先查看数据中的源 mac 地址将其对应的进入接口映射后记录在本地的 MAC 地址表中;再关注数据中的目标 mac 地址,基于本地 mac 表查询,表中存在记录将按照记录单播转发,若没有记录将洪泛该流量;路由器---- 接收到一段比特流后,先识别成二层数据帧: 查看目标 mac 地址,之后丢弃或解封装;解封装到 3 层后,关注目标 p 地址,查询本地的路由表,若表中存在记录将无条件按照记录重新封装二层后转发; 若没有记录将丢弃该流量;
TCP/IP: 协议栈道 是 OSI 模型的前身;也是当下真实运行的模型TCP/IP 与 OSI 模型的区别:
1、层数不同2、两种模型之间的不同点:
- TCP/IP支持跨层封装-- 跳层封装,而OSI不行;
作用主要在于直连设备间协议,减少层面,加快计算; 非直连间使用的跨层封装协议为CMP. 当跨层后,被跨层面的工作,必须由其他层面临时的来进行;
- OSI参考模型的核心思想是分层,而分层的目的就是上层协议在其下层协议提供的服务的基础上提供增值服务。
- TCP/IP模型其本身就是先有的协议,后有的模型。TCP/IP协议簇里的协议本身都是相互独立的,每层中的协议可以根据系统的需要进行组合配。
3、TCP/IP的跨层封装
(1)跨层封装的目的 --- 提高封装和解封装的速度,加快传输效率。
- 跨四层封装 --- 应用层封装后的数据直接封装网络层。(传输层的功能将由网络层代替----协议号代替端口号,将数据填充到IP报头,分片代替分段)
正常封装,其上层是TCP或者UDP协议。TCP协议对应的协议号是6,UDP协议对应的协议号是17。但是我们这个协议号的取值范围是0 - 255(8位二进制),剩余的这些协议号都是用来标定跨层封装协议的。比如我们OSPF协议,对应的协议号是89。ICMP协议,对应协议号是1
- 跨三四层封装--- 应用层封装后的数据直接封装二层。
典型代表:STP协议(可抓包看)-----生成树协议-----二层环路问题
三四层的工作需要二层完成,以太网Ⅱ帧里类型字段,可以用来区分上层协议,勉强能完成四层工作,但是三层的分片工作并无法完成。这时候我们就需要使用另外一种以太网的帧结构了,802.3帧。
太网Ⅱ帧格式:
类型:上层使用的网络层协议类型;
FCS:帧校验序列:差错检测,校验数据的完整性;
LLC层:(逻辑链路控制子层)负责分片和提供帧类型号(802.2协议实现的),多路复用、流量控制、差错检测
MAC层:(介质访问控制子层)负责正常的MAC地址和前导码的作用
目标MAC地址字段(Destination Address):目标主机的MAC地址
源MAC地址字段(Source Address):发送数据的主机的MAC地址
帧长度(Length/Type):从本字段以后的本数据帧的字节数
数据字段(Data):数据区最小46个字节,最大1500个字节。规定一帧数据的最小字节数是为了定时的需要,如果不够这个字节数的数据,则需要填充。
总结:
1、主机需要一个IP地址才能上网(本场景中通过DHCP服务获取IP地址)
2、首先要得到 www.goole.com( www.baidu.com)的ip地址
在华为的设备中一下四个包类型如图,在华三的设备中一下四个包类型全部都是广播包
实例: 设备00:16:D3:23:68:8A通过DHCP服务获取IP地址:
包格式: 物理层+数据链路层+网络层+传输层+应用层
DHCP discover包:
物理层+ 目标MAC:FF-FF-FF-FF-FF-FF 源MAC:00:16:D3:23:68:8A
+目标IP:255.255.255.255 源IP:0.0.0.0 + 目标端口:67 源端口:68 +应用层+数据
物理层+ 目标MAC:00:16:D3:23:68:8A 源MAC:00:22:6B:45:1F:1B
+目标IP:68.85.2.101 源IP:68.85.2.1 +目标端口:68 源端口:67 +应用层+数据
物理层 +目标MAC:00:22:6B:45:1F:1B 源MAC:00:16:D3:23:68:8A
+目标IP:68.85.2.1 源IP:0.0.0.0 +目标端口:67源端口:68 +应用层+数据
物理层 +目标:00:16:D3:23:68:8A 源MAC:00:22:6B:45:1F:1B+
目标IP:68.85.2.101 源IP:68.85.2.1 +目标端口:68 源端口:67 +应用层+数据
DHCP租期:
DHCP租期更新:
租期到达50%,如果客户端在线,会向服务器发起租约更新的请求租期到达87.5%,如果客户端在线,会向服务器发起租约更新的请求
DHCP地址释放 (DHCP release) :
租约到期,服务器端无响应,客户端会自动停止使用该IP地址;如果客户端不再便用服务酷分配的IP地址,也可以主动向DHCP服务发送DHCP RELEASE (DHCP释放报文) 报文,释放该IP地址
DHCP的8个报文:
DHCP discover:
DHCP NAK:DHCP响应拒绝报文,这是服务器端对客户端的DHCP request报文的响应拒绝,比如:租期到期,客户端不在线。服务器端出现故障,导致其没法分配IP地址,则会给客户端发送一个DHCP NAK报文。
DHCP decline:DHCP拒绝报文,当客户端发现服务器端分配给自己的IP地址发生冲突,会给服务器端发送一个DHCP decline报文
DHCP inform:DHCP通告报文,客户端已经获取到了IP地址,此时客户端会向服务发送一个DHCP inform报文,向服服器请求IP地址相应的掩码、网关、DNS服务器地址等信息
DHCP的第一个报文通过网线来到了---交换机
交换机泛洪后,数据将顺着网线,来到网关---路由器
arp:将IP地址解析为MAC 原理:广播请求(arp request)、单播回复(arp reply)
主机A 发出包:目标:C 源MAC:A+目标IP:10.2.0.1/16 源IP:10.1.0.1/16+数据
用于域名和IP地址的相互解析,采用C/S模式,是一个具有树状层次结构的、联机分布式的数据库系统;基于TCP/UDP协议的53号端口
域名的特点:不同等级的域名之间使用点号隔开,级别最低的写在左边,高的在右边;
域名的根域用'.'表示,以点号结尾的域名被称为完全合格域名(FQND)
根域:全世界只有十三台根域服务器
完全合格域名:www.sina.com.cn. www.baidu.com.
.:根域 com.cn/com :顶级域 sina/baidu:二级域 www:三级域
注意:com 和com.cn其实是同一级别的 只不过com是由外国人所创立,com.cn.是有中国所创立的,
(4)域名解析原理
递归查询:UDP
DNS服务器会返回一个已知的其他DNS服务器,由请求者自行查询
目标MAC:路由器网关MAC 源MAC:主机 +目标IP:68.87.71.226 源IP:68.85.2.101+目标端口号:53 源端口:6000+应用层+数据
3、客户端知道谷歌(百度)的ip地址后,会触发客户端与服务器建立TCP连接(TCP三次握手过程)
SYN:建立头部的标志位 seq = x /seq=y:数据包的序列号(数据包的编号) 随机数字。
ACK:确认位(确认数据包是否收到) ack=x+1 :(表示已经收到seq=x的数据包)
4、建立连接后,客户端使用http协议发送数据包给服务器
客户端发送数据包给谷歌(百度)服务器,谷歌(百度)服务器收到数据包后将数据返回给客户端的浏览器,浏览器通过渲染,最终用户看到了网站上的主页信息。
FIN:链接断开的标志位 seq = u /seq=v/seq=w:数据包的序列号(数据包的编号) 随机数字。
详细过程看博客(HCIP静态路由综合实验)