TCP/IP的分层协议

234 阅读6分钟

TCP/IP协议族分为以下4层:应用层、传输层、网络层、链路层(网络接口层)

一、应用层

决定了向用户提供应用服务通信的活动

  1. 为应用软件提供网络服务。
  2. 协调应用程序之间的协作。

在TCP/IP协议中,应用层包含了大量的协议,例如HTTP、FTP、SMTP、DNS等。以下是一些常见的应用层协议:

  1. HTTP(HyperText Transfer Protocol):超文本传输协议,是用于从服务器传输超文本到本地浏览器的协议,用于在Web浏览器和网站之间传递信息。
  2. FTP(File Transfer Protocol):文件传输协议,用于在网络上进行文件传输。
  3. SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送和接收邮件。
  4. DNS(Domain Name System):域名系统,用于域名和IP地址之间的转换。
  5. POP3(Post Office Protocol version 3)和IMAP(Internet Message Access Protocol):这两种协议都是邮件访问协议,用于接收邮件。

二、传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的 数据传输。(主要负责端到端(End-to-End)的数据传输。)

在TCP/IP协议族中,传输层主要包括两个重要的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)

  1. TCP协议:TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在通信双方建立可靠连接后进行数据交换,能够保证数据包的顺序交付。如果在传输过程中发生丢包,TCP协议会进行重传。同时,TCP协议还可以进行流量控制和拥塞控制。
  2. UDP协议:与TCP不同,UDP协议是一种无连接的、不可靠的、基于数据报的传输层协议。它不需要建立连接,就可以直接发送数据。UDP协议不保证数据包的顺序交付,也不进行重传。因此,UDP协议的传输效率更高,但可靠性较差。

传输层的主要功能包括:

  1. 提供端到端的通信服务。
  2. 保证数据包的顺序交付(TCP协议)。
  3. 数据重传(TCP协议)。
  4. 流量控制和拥塞控制(TCP协议)。

传输层通过端口号来标识通信的应用程序,每个运行在设备上的应用程序都会有一个唯一的端口号。当数据包到达传输层时,它会根据端口号把数据包交付给对应的应用程序。

三、网络层

主要负责的是数据包的发送和接收。在发送端,网络层的主要任务是将来自传输层的数据段封装成数据包,并负责选择最佳路径将数据包发送到目标主机。在接收端,网络层的主要任务是从数据链路层接收数据包,并将数据包中的数据段传送到传输层。

网络层的核心协议是互联网协议(Internet Protocol,简称IP)。IP协议定义了每个主机的地址(IP地址)和数据包的格式。

IP协议有两个版本:IPv4和IPv6。IPv4是目前最广泛使用的版本,它使用32位的地址,可以提供约43亿个唯一的地址。由于互联网的快速发展,IPv4地址已经接近耗尽,因此逐渐开始使用128位地址的IPv6。

除了IP协议,网络层还有其他的一些协议,如路由选择协议(如OSPF、BGP等),它们负责在复杂的网络环境中选择最佳的传输路径。

网络层在整个网络通信中起着非常重要的作用,它既要保证数据包能正确无误地送达目标地址,又要尽可能快速地将数据包送达目的地,以提高网络通信的效率。

四、链路层(网络接口层)

处理与网络硬件及接口有关的详情。在发送端,网络接口层将网络层传来的 IP 数据报封装进帧,然后通过物理媒介(如以太网、WIFI、光纤)发送出去。在接收端,网络接口层从物理媒介接收帧,然后将帧中的 IP 数据报解封装后传送到网络层。

在OSI七层模型中网络接口层相当于物理层和数据链路层

在这一层中,有几个关键任务需要完成:

  1. 帧的创建和解析:在发送端,网络接口层会添加必要的头部和尾部信息(如目标MAC地址、源MAC地址、帧类型等)来创建帧。在接收端,网络接口层会解析这些头部和尾部信息,然后提取出数据报。

  2. 错误检测:网络接口层通常还会进行错误检测。例如,以太网使用CRC(循环冗余校验)来检测数据在传输过程中是否有错误。

  3. 流量控制:在某些情况下,网络接口层也会进行流量控制,以防止发送端发送数据的速度超过接收端接收数据的速度。

网络接口层涉及到的主要协议有以太网(Ethernet)、Wi-Fi(无线局域网)、PPP(点对点协议)等。

其他

  1. Segment(段):在传输层(TCP或UDP)的上下文中,段是指的一块数据,它包括传输层协议的头部信息(如源端口、目标端口等)和应用层的数据。如果使用TCP协议,传输层会将应用层的数据分割成多个段进行发送,以确保数据的可靠传输。
  1. Packet(数据包):在网络层的上下文中,数据包是指包括网络层头部信息(如源IP地址、目标IP地址等)和传输层的段的数据单元。网络层的任务就是将这些数据包从源主机发送到目标主机。
  1. Frame(帧):在数据链路层的上下文中,帧是指包括数据链路层头部信息(如源MAC地址、目标MAC地址等)和网络层的数据包的数据单元。数据链路层的任务是在同一网络内进行数据传输,如在同一局域网内的主机之间进行数据传输。
  1. Bit Stream(比特流):在物理层的上下文中,比特流是指经过物理编码后能在物理媒介(如电缆、光纤、无线电波等)上传输的信号。比特流是最终在网络中传输的数据形式,也是最基础的数据单位。