4.1 TCP/IP 协议分层

  • TCP/IP 协议是互联网通信的工业标准,其实它是一组协议,TCP和IP协议是这一组协议的代表。协议就是计算机通信,提前定义好的语法、语义、同步。
  • 这些协议按功能分为应用层协议、传输层协议、网络层协议、数据链路层协议。
  • 应用层:是应用程序需要实现的工程,例如:上传和下载文件,收发电子邮件等。
  • 传输层:负责数据的传输,如果数据包有丢失的情况,传输层要对其进行处理,保证数据的可靠传输和完整性。
  • 网络层:负责管理传输的地址,要往那发要明确,并对对网络路径进行最优的选择
  • 数据链路层:对数据包进行再次封装,加上 MAC 地址进行传输。

image.png

4.2 封装和解封

  • 发送端加上传输层首部、网络层首部、数据链路层首部的过程叫做封装。
  • 接收端收到后,去掉数据链层首部、去掉网络层首部、去掉传输层首部的过程叫做解封。
  • 每经过一个链路,数据包都要重新封装

image.png

4.3 将计算机通信分层的好处

  • 各层之间相互独立,只要实现各层各自的功能就可以了。
  • 灵活性好。
  • 结构上可以分开。
  • 易于实现和维护。
  • 能促进标准化工作。

image.png
image.png

4.4 TCP/IP协议的体系结构

  • 体系结构就是包括哪些协议以及他们之间的关系。
  • 如果底层协议能够支持多种上层协议的封装,在底层协议必然要有一个字段用来指明封装的是哪种上层协议。否则接收端就不知道提交给上层的那个协议。

image.png

抓包分析TCP/IP协议体系结构。

image.png

4.5 CP/IP 通信过程

1.目标MAC地址决定了数据帧下一跳由哪个设备接收
2.目标IP地址决定了数据包最终到达那个计算机
3.不同的网络数据链路层使用不同的协议,帧格式也不相同,路由器在不同网络转发数据包,需要将数据包重新封装
Aliplayer1652939506567.png
image.png
过程如下:

  1. 应用层:一个完整的网页对应应用层数据单元。
  2. 传输层:网页的内容非常多,需要把网页放入传输层,网页不是一下子都放入传输层,是通过字节分成多个段,每个段都有编号,缓存在传输层。传输层满了后要等传输层的数据发送完后清掉缓存,才可以继续往传输层放入数据,传输层是一个边发边缓存的状态,传输层的存储空间是有限的。传输层的内容属于数据段。
    1. 每个数据段都有首部,首部包含了传输层的协议。
    2. 传输层的缓存数据只有在目标计算机确认已接收后才能清楚缓存,由于网络传输过程中会有丢包的情况,需要重传,所以需要接收端真正接收了才能清理传输层的缓存。
  3. 网络层:数据到达网络层后,需要添加网络层首部(网络层协议),数据需要知道数据要发到那个目的地,网络层会把目的地地址放入数据段中,形成一个数据包,网络层的内容属于数据包
  4. 数据链路层:由于数据包传输到目标地址需要经过很多个路由器,每个计算机上的网卡都有唯一的MAC地址,路由器的接口也有MAC地址,数据链路层需要将源计算机的和下一个目标(路由器)的MAC进行封装,添加数据层首部,形成数据帧。
    1. 数据帧将01的进制数据传到下一个路由器,路由器收到数据帧后,去掉数据帧首部,只留下数据包,路由器发到下个路由器是用的是点对点链路(PPP协议),点到点协议不需要MAC地址,直接传输。直到最后的路由器发给最终的接收地址(计算机),最后一个路由器会封自己的MAC地址(ME)和目标MAC地址(MF),目标计算机网卡看到MF是自己的MAC地址就会进行接收。
    2. 目标计算机收到数据后,数据链接成去掉MAC地址(数据链路层首部)后交给网络层,网路层去掉网络层首部后给传输层,到达传输层后,浏览器到传输层里读取缓存数据(字节)展示到页面中。有时候打开一个网页一点点显示,就是页面在读取传输层的数据,并没有一下读出来的原因。

IP是确定了数据最终发送的目的地,IP地址全球唯一,MAC地址决定了下一跳由那个设备接收

4.6 网络设备分层

  • 客户端的应用层和服务端的应用层是对等实体
  • 客户端的传输层跟服务端的传输层是对等实体
  • 客户端和服务端的网络层和路由器网络层是对等实体
  • 客户端和服务端的数据链路层和路由器的数据链路层是对等实体
  • 路由器是三层设备

image.png

4.7 OSI 与 TCP/IP 之间的关系

  1. 传输层
    1. TCP:可靠传输
    2. UDP:不可靠传输

image.png