一.分层思想
分层的目的:将复杂的流程分解为几个功能相对单一的子过程
1.整个流程更加清晰,复杂问题简单化
2.更容易发现问题并针对性得解决问题
osi参考模型
1.物理层:建立,维护,断开物理连接
2.数据链路层:建立逻辑链接,进行寻址,差错校验等功能。(二层交换机。“同一个网段得数据通信,不识别地址”)
硬件地址(物理地址):MAC地址
3. 网络层:进行逻辑地址寻址,实现不同网络之间得路径选择
逻辑地址:IP地址
路径选择的标准:
1.子网掩码长度最长
2.路由协议管理距离最小的
3.路径质量最好的
4.默认路由 路由器根据路由表实现路由转发
路由器和交换机的区别?
交换机实现得是同一个网段得数据通信 ( 交换机根据MAC地址表实现MAC地址转发)
路由器实现的是不同网段得数据通信
4.传输层:
定义传输数据得协议端口号,以及流控和差错校验
传输层
1.TCP 要求安全,可靠性 传输时延长
2.UDP 要求速率高 传输时延短 传输层的协议+端口号对应应用不同的服务 TCP+80=WEB服务 TCP+25=SMTP服务 TCP+110=P0P3服务
5.会话层:建立,管理,中止会话
6.表示层:数据的表示,安全,压缩
7.应用层:网络服务与最终用户的一个接口
二.TCP/IP协议族
(一)TCP/IP四层模型
- 应用层
- 传输层
- 互联网层
- 网络接口层
(二)TCP/IP五层模型
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
三.数据封装与解封过程
1.数据封装过程
传输层及其以下的机制由内核提供, 应用层由用户进程提供, 应用程序对通讯数据的含义进行解释, 而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。 应用层数据通过协议栈发到网络上时,每层协议都要加上一个相对应的头部(header ),称为封装( Encapsulation ),如下图所示:
2.数据解封过程
不 同 的 协 议 层 对 数 据 包 有 不 同的 称 谓 ,在 传 输 层 叫 做 段(fregment ),在网络层叫做数据包(facket) ,在链路层叫做帧(frame )。数据封装成帧后发到传输介质上,到达目的主机后,每层协议再剥掉相应的头部,最后将应用层数据交给应用程序处理。
3.举例说明数据封装和解封装过程
1、从 计算机A 的应用层内网通软件向 计算机B 发出一个消息,生成数据。
2、请求从计算机A的应用层下到 计算机A 的传输层,传输层在上层数据前面加上 tcp 报头,报头中包括目标端口以及源端口。
3、传输层数据下到网络层, 计算机A 在网络层封装,源 ip 地址为 计算机A地址,目标 ip 地址为 计算机B 地址。
4、计算机A 将 计算机B 的 ip 地址和子网掩码与自己做比对, 可以发现 计算机B与自己处于相同的子网。所以数据传输不必经过网关设备。
5、数据包下到 计算机A 的数据链路层进行封装,源 mac 地址为 计算机A的 mac 地址,目标 mac 地址查询自己的 arp 表。
6、计算机A 把帧转换成 bit 流,从物理接口网卡发出。
7、物理层接收到电信号,把它交给数据链路层进行查看帧的目标 mac 地址,和自己是否相等,如果相等说明该帧是发送给自己的,于是将mac帧头解开并接着上传到网络层。
8、网络层查看目标 ip 地址和自己是否匹配,如果匹配即解开ip头封装。然后再把数据上传到传输层。
9、传输层解开对应的包头之后,继续把数据传给应用层,计算机B即可接收到计算机A发的消息。
总结:数据向外发送时,数据是由最上面的应用层向下经过一层层封装后发送给物理层;而接收数据时,数据是由物理层向上经过一层层解封后发给应用层。