浅谈TCP/IP模型

来源:互联网 发布:淘宝刷销量好评 编辑:程序博客网 时间:2024/06/08 17:09

当前常见的TCP/IP模型有两种,一种称之为TCP/IP四层模型,另外一种为OSI模型(七层模型)。

这里写图片描述

OSI七层模型

在四层模型的基础上,将网络接口层细分为物理层和数据链路层,将应用层细分为应用层、表示层、会话层。虽然会带来一定的复杂性,但是会让协议层有更加明确的服务,提供了更多的灵活性。

  • 物理层:物理接口,如网线接口、插头、针脚、集线器、中继器等等物理设备,它负责把数据转化为传输介质上的电子流或者脉冲,并监视数据传输。

  • 数据链路层:完成网络中相邻结点之间的可靠连接,即连接2个通信设备的物理层设备的传输,可以理解为局域网之间的传输。而在其中主要的网络设备有网卡、网桥、传统交换机等等。

  • 网络层:主要功能是完成网络中主机间的报文,在广域网下采用路由协议,选择最优路径来进行传输,在网络层所涉及的协议就有IP等,可以理解为负责北京的主机和纽约的主机通信。

  • 传输层:该层是整个网络中的关键部分,用来实现两个用户进程间端到端的可靠通信,其重要的协议有TCP协议、UDP协议。可以理解为两个两台主机上某两个应用之间的通信。

  • 会话层:在通信的应用程序之间建立会话。

  • 表示层:把数据转化为标准格式,管理数据的加密和压缩。

  • 应用层:用于在不同计算机之间的进程通信时不受其网络结构限制,在应用层下就有人们所需要的各种协议,如:HTTP、FTP等。

在知乎看到有一个比喻比较贴切的描述了七层模型最低四层的功能:
为了实现跨越互联网的,主机 A 的进程 P1,和主机 B 的进程 P2 之间的通信,我们逐层把这个任务交给 TCP/IP 协议栈。

运输层:“如果有人能帮我把数据从某个网络中的机器 A 搬到另一个网络中的机器 B,我就可以搞定这个任务,因为我知道不同的数据应该交给机器上的哪个进程。”(负责端口之间通信)
网络层:“如果有人能帮我把数据从局域网中直接相连的一台机器搬到另一台机器,我就可以把数据从一个网络搬到另一个网络,因为我知道路线怎么走,要经过哪些节点。”(负责不同主机之间通信)
链路层:“我知道怎样在局域网中搬数据,还能用 CSMA/CD 协议协调工作,还能用 CRC32 校验发送的数据和接收的数据是一致的,blabla… But,我只是说说,我不干苦力活。”(负责局域网通信)
物理层:“楼上的大爷们发话了,兄弟们上。”(负责网线层面上通信)

https://www.zhihu.com/question/29949319/answer/46248356

四层模型

  • 网络接口层:功能为同SO中的物理层和数据链路层。

  • 网络层:用来处理传输层的分组发送请求、处理输入数据报、处理ICMP,而其有点像OSI的网络层

  • 传输层:同ISO传输层。

  • 应用层:同ISO应用层。


数据处理流程

数据从源端口到目标端口经历了层层磨难,这里我们将数据成为数据包。

数据包发送流程如下:

  1. 数据在应用层生成,我们称之为消息。
  2. 传输层把从应用层传递的效益捆绑上其报头(“包含当前层相关信息”)。此时数据包成为数据段。
  3. 网络层接收传输层传递的数据包并且捆绑上其报头,此时数据包称为数据报。
  4. 数据链路层将接收到的数据报封装并捆绑其报头,此时数据成为帧。
  5. 物理层将接受到的帧,转化为比特流,传送到介质中。

而数据包的接收过程就是发送流程的接包过程。

原创粉丝点击