一. 客户端服务端模型的引入
- 网络服务, 客户端按照 TCP / IP 协议栈的规定将需要处理的数据通过网络网线实际传输到服务器端, 服务器返回客户端一个响应结果
二. 从操作系统的层次去宏观的看整个网络体系
- 整体体系结构图解
- 网络协议栈细节挖掘, 宏观介绍
细节刨析
应用层: 最上层, 我们直接可以接触到的一层,我们平时使用的手机app 都是在应用层实现的. 应用层只是专注于为用户提供功能服务, 不需要关心数据是如何传输的等等细节问题. ( 仅对数据进行分析处理, 以达到业务性的目的 )
传输层: 应用层的数据包会传输给传输层, 保证数据尽可能可靠的传输给对方, 标志性是 TCP传输层协议, 相对于UDP 可以进行 流量控制, 超时重传, 拥塞控制.
网络层: 负责在复杂的网络大环境中完成数据转发, 也就是寻路 ( 进行路径选择等等, 处理数据该去哪里的问题)
数据链路层 + 物理层 : 完成数据的实际传输过程
三. 网络的发展 从局域网介绍到广域网
- 局域网: 所谓的局域网就是同一路由器或交换机下面连接的网段,说白了 就是在一个路由器或交换机下面连接的多个计算机,,就构成了一个局域网环境
局域网就是交换机连接不同主机构成的一个网段 ( 同一个局域网中两台主机可以直接进行通信, 局域网就是为了同网络(网段) 通信 )
局域网中的数据封包和解包过程 ( 同一个局域网(网段)中 )
数据包装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame). (段 数据报 帧)
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装 (Encapsulation). (自上而下的添加报头)
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议 字段" 将数据交给对应的上层协议处理 ( 自下向上的解包过程)
细节解剖
认识协议: 协议的本质是一种约定, 比如我们约定好 1. 怎么怎么样, 2. 怎么怎么样、、、、
协议为何要存在, 协议存在是为了统一标准.....
每一层的报头 和 有效载荷如何拆分?
局域网通信原理
- MAC 地址 : 网卡出厂时确定, 内置48位序号, 全球唯一.
如上 : 一般是 16进制位, 一个字节一个字节为分割, 分割符号是冒号.
- MAC数据帧如下:
上述写dst 写的是全部f : 代表的含义是向同一网段下, 同一个交换机下面的所有主机发送报文,也叫做广播.... 如下的ARP 协议就是采取的这种方式, 广播的方式, 后序会慢慢解释
局域网的通信原理也是通过广播的方式完成的..
文字叙述一下局域网的通信原理: 一台主机向另一台主机发送数据包的时候, 事实上是同一个局域网中的所有主机都会收到这样的一个数据包, 只是会对于这个数据包进行判断, 如果不是发给自己的就会直接扔掉, 是发给自己的就接收.
要求: 一个时刻只能一个机器进行发送数据, 发生了碰撞当前主机是可以检测到的, 所有的主机都要进行 "碰撞避免" 算法
- 广域网:
- ⼀旦数据需要跨⽹络传输,就需要有⼀个设备同时在两个⽹络当中,这个设备⼀般是路由器,路由器可以通过路由 表计算出下⼀个要去的 IP 地址。
- IP地址: 标识全网类的唯一一台主机. 默认都是IPV4 : IPV4的意思是32位比特位标识IP地址
- IP地址 以 点 作为分隔符号, 每一个分隔的数字都代表一个字节, 范围是 0 - 255.
- 图解: 广域网中跨网段的数据传输过程。。。
四. 总结概述... 对于上述的很多理解作书面
网络分层: 自上而下: 应用层(开发层), 传输层,网络层. 数据链路层, 物理层
应用层 : 负责实现业务逻辑, 对用户提供服务
传输层 : 并不负责真正的传输, 而是做传输过程的监测者 保证尽可能的可靠传输数据, TCP协议 ( 流量控制、超时重传、拥塞控制 ) 保证数据可靠传输给对方, UDP (前面的各种保证可靠传输的机制全部没有) 我只管数据传输, 丢包, 网络拥堵我都不管, 传出去了就ok了, 我不会重传, 我只保证实时高效, 数据是否能到不管我事情, 对于 如何实时高效后序重点刨析各种协议会知道
网络层 : 负责地址管理和路由选择. 负责规划数据传输过程, 数据下一站目的地究竟该传到哪(下一个IP地址), 将数据从一个设备传入到另外一个设备中, 如何找设备, 有IP, IP标识全网唯一一台主机设备, 所以路由器的作用就是寻路, 寻啥路, 寻下一个目的IP路......
数据链路层 和 物理层 : 加MAC报头, 和真正的传输数据, 物理层还涉及数据包的光电信号的转换, 因为只有转换之后才能真正在介质中传输