vlambda博客
学习文章列表

TCP/IP协议一家老小详细介绍介绍

一、 TCP/IP协议族

TCP/IP协议一家老小详细介绍介绍

TCP_IP协议体系结构

TCP/IP主要组成,自底而上分别是:

数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(以太网、令牌环等)上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节

其中包括两个常用的协议:

  • ARP(地址解析协议)和RARP(逆地址解析协议)

网络层:实现了数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),通信的两台主机一般不是直接相连而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,来确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑的连接细节,使得在传输层和网络应用程序来看,通信双方是直接相连的。

其中包括两个主要的协议:

  • IP协议(核心)和ICMP协议(因特网控制报文协议)

ICMP协议是IP协议的重要补充,主要用于检测网络连接,比如目标不可达和重定向,另一类是查询报文,用来查询网络信息,例如ping程序就是

传输层:主要包括三个:

  • TCP协议、UDP协议和SCTP协议

TCP(传输控制协议)协议:为应用层提供可靠的、面向连接的和基于流的服务。TCP协议使用超时重传,数据确认等方式来确保数据包被正确地发送至目的地,因此其是可靠的。使用双方需要先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接的状态、读写缓冲区、以及诸多定时器等。通信结束时,双方必须关闭连接和释放这些内核数据。其是基于流的,数据没有边界限制,它源源不断地从通信的一端流入另一端,可以逐个字节地向数据流中写数据,接收端也可以逐个字节地读出

应用层:在用户空间实现,负责处理众多逻辑

其中包括:ping(应用程序)、telnet协议、OSPF(开放最短路径优先)协议、DNS(域名服务)协议等

应用层协议或程序,可能跳过传输层直接使用网络层提供的服务,如ping程序和OSPF协议

封装过程

TCP/IP协议一家老小详细介绍介绍

TCP_IP封装

TCP报文段封装过程

TCP/IP协议一家老小详细介绍介绍

TCP报文段封装过程

当发送端应用程序使用send(或write)函数向一个TCP连接写入数据时,内核中的TCP模块首先把这些数据复制到与该连接对应的TCP内核发送缓冲区中,然后TCP模块调用IP模块提供的服务,传递的参数包括TCP头部信息和TCP发送缓冲区中的数据,即TCP报文段

UDP封装过程类似,只不过无需为应用层数据保存副本,因为它提供的服务是不可靠的,当一个UDP数据报被成功发送后,UDP内核缓冲区中的该数据报就被丢弃了。如果应用程序检测到该数据报未能被接收端正确接收,打算重新发送这个数据报,则应用程序需要从用户空间重新将该数据报拷贝到UDP内核发送缓冲区中

IP封装后的数据称为IP数据报,IP数据报也包括头部信息和数据部分,其中数据部分就是TCP报文段、UDP数据报或者ICMP报文

经过数据链路层封装的数据成为帧,传输媒介不同,帧的类型也不同。以太网上传输的是以太网帧,而令牌环网络上传输的则是令牌环帧,帧的最大传输单元(MTU),即帧最多能携带多少上层协议数据(比如IP数据报),通常收到网络类型限制------过长的IP数据报可能需要被分片传输

各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序------这个过程成为分用

TCP/IP协议一家老小详细介绍介绍

帧的分用过程

ARP协议工作原理

以太网ARP请求/应答报文详解

TCP/IP协议一家老小详细介绍介绍

ARP请求_应答报文


好啦,今天的介绍就到这儿吧,这个系列会一直更完,关注我,不缺席。

TCP/IP协议一家老小详细介绍介绍
点击蓝字 · 关注我们





扫码关注我们



更多高质量原创文章等你来看!







END
点个“在看”不失联