TCP/IP入门(二)-五层模型

内容来自Introduction to TCP/IP
这篇介绍的是 TCP/IP五层模型,我们从应用层开始,经过传输层、网络层、数据链路层到物理层逐一介绍。

image.png

五层模型概览

五层模型中的每一层都有自己的职责,互相不越界,但互相依赖完成互联网中端到端的通讯。

  • 应用层:是应用程序发起网络通讯的地方,比如Email客户端、浏览器,它们使用传输层发送连接请求
  • 传输层:为运行在不同主机上的应用建立连接,TCP用来建立可靠连接,UDP用来建立快速连接。它使用端口来区分应用中的进程
  • 网络层:负责创建在网络中传送的数据包(Packet),使用IP地址来标识数据包的源和目标
  • 数据链路层:负责创建在网络中传送的帧(Frame),帧封装了数据包,使用MAC地址标识源和目标
  • 物理层:对帧中的位进行编解码,作为收发器处理网络中的信号
tcp_ip层级概览

数据的逐层封装

  • 应用层:生成请求信息,比如下载一个网页
  • 传输层:在上层的基础上添加TCP或UDP消息头,包括源和目标的地址、端口,如果是TCP还包括数据包的序列号。传输层生成的数据,如果是给TCP使用称为Segment,如果是给UDP使用称为Datagram
  • 网络层:在上层的基础上添加的消息头包括源和目标的IP地址,这时数据称为数据包
  • 数据链路层:在上层的基础上添加MAC地址信息作为消息头,这时数据称为帧,帧被送到物理层以比特的形式传送出去
transmit_data.png

五层模型涉及到的一些术语总结如下,每层都有对应的协议,数据在不同协议下有专有名称,反过来,通过专用名称也能知道目前数据处在哪一层。

术语.png

应用层

这是网络结构中最上面一层,规定应用程序的数据格式,发起网络连接请求

传输层

传输层使用TCP或UDP在主机之间创建了虚拟连接,

  • TCP通过错误检查、重传、确认等机制保障连接是可靠的,数据是不会丢失的
  • UDP不可靠,会丢失数据,优点是速度快、开销小
  • 浏览器是典型的使用TCP连接的应用,语音电话是典型 的使用UDP的应用
  • TCP只能点对点的单播,UDP可以多播或广播
TCPvsUDP.png

传输层添加的消息头中包含的不仅仅是端口号,下图列出了详细信息,可见TCP消息头要比UDP复杂的多

TCP_UDP_headers.png

网络层

当从传输层收到需要发送的数据,网络层添加包含IP地址的消息头,打包成Packet发给数据链路层。但从链路层收到Packet,网络层需要检查主机是否包含目标IP地址,因为一个主机有时不止一个IP地址,所以是包含,如果是的再传给传输层。路由就是在此层处理IP地址相关工作。下图是IPv4数据包消息头格式

IPv4_heade.png

链路层

链路层使用Media Access Controller (MAC)生成要传送的帧(Frame),MAC控制着物理传送媒介,WIFI使用的无线传送媒介和以太网使用的有线传输媒介有着不同的要求,因此需要不同的MAC和PHY,上层应用既不会感知到也不会受到物理接口差别的影响

和传输层类似,将发送的数据添加MAC地址消息头发给物理层,当收到数据,检查目标MAC与主机是否匹配,是的话发送传输层。交换机就是在此层处理MAC地址相关的工作。以太网和WIFI使用的协议不一样,下图列出了两者详细的格式。所以同时支持有线和无线的设备至少有两个MAC地址

ethernet_wifi_frames.png

物理层

通过在网线或天线上发送或接受信号来传送帧中的比特

小结

从上面的介绍能看出来传输层和网络层内容比较多,其所对应的TCP和IP也比较复杂,它们是网络通讯的重点和代表,这也是为什么TCP/IP经常出现在网络编程中

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容