TCP/IP模型(详细介绍)

在前面的文章《TCP/IP简介》,我们主要介绍了TCP数据段格式及IP数据 文格式。本节我们详细介绍一下TCP/IP模型的各层协议及其工作流程。

1. TCP/IP模型

TCP/IP协议是在OSI参考模型出现之间就被开发的,并广泛部署在计算机 络中。但是,后来由于概念混淆,TCP/IP模型的层次和名称往往与OSI模型的层次名称相互借用。在此我们不做深入的讨论,以该书中的模型为例进行介绍。如图1.所示,该模型可能和之前介绍的TCP/IP模型相一致,但是并不妨碍我们对于协议的理解。

图1. OSI模型与TCP/IP模型对比

2. TCP/IP协议族

TCP/IP是一个由许多单独协议组成的开放的协议栈,TCP/IP四层协议分别是指:应用层、传输层(也称,主机到主机层)、 际层和 络接入层,各层的协议如图2.所示。

图2. TCP/IP协议栈包含的协议

3. 传输层协议

传输层的两个主要的协议是TCP和UDP,其中TCP是面向连接的协议,而UDP是一个面向无连接的协议(参考《TCP,UDP通信使用场景及区别比较》)。


TCP通信协议

  • TCP是面向连接的;
  • 每条TCP连接只能由于两个端点,一对一通信;
  • TCP提供可靠的交付服务,传输数据无差错,不丢失,不重复,且按时序到达;
  • TCP提供全双工通信;
  • 面向字节流,TCP根据对方给出的窗口和当前的 络拥塞程度决定一个 文应该包含多少个字节。
  • UDP通信协议

  • 无连接;
  • UDP使用尽最大努力交付,不保证可靠性UDP是面向 文的,UDP对应用层交付下来的 文,既不合并,也不拆分,而是保留 文的边界;
  • 应用层交给UDP多长的 文,UDP就照样发送,即一次发送一个 文;
  • UDP没有拥塞控制;
  • UDP支持一对一,一对多,多对一和多对多的交互通信。
  • UDP的首部开销小,只有8字节。

  • TCP和UDP都有2的16次方个端口,即65536个。端口 就是通信链路两端所在传输数据时候使用的地址 ,端口 允许单个IP地址支持多个同时发生的通信。

  • 0~1023端口被称为知名端口或服务端口,因为它们已经按照标准分配给了不同的服务。如23端口是Telnet的标准端口,25端口是SMTP标准端口;
  • 1024~49151被称为已注册软件端口,这些端口具有注册到IANA的一个或多个互联 软件产品,目的是为试图连接服务的客户端提供一个标准的端口编 系统;
  • 49152~65535被称为随机端口,常被客户端随机使用。
  • TCP是面向连接的,这是因为他在两个系统之间使用握手过程建立一个通信会话。当握手过程完成时,就会建立能够在客户端和服务器之间支持数据传输的通信会话。

    图3. TCP三次握手

    三次握手的内容分别是:

  • 客户端向服务器发送SYN(同步)数据包;
  • 服务器使用SYN/ACK(同步和确认)数据包相应客户端;
  • 客户端使用ACK(确认)数据包影响服务器。
  • TCP的三次握手确保客户端和服务器能够正常接收彼此的信息。这个和LTE中的随机接入过程很像,如图4。

    图4.LTE基于竞争的随机接入信令流程

    不同的是LTE的接入过程要求要更加严格,它不仅要确保信道的畅通,同时还要考虑到无限资源的竞争与分配问题。言归正传,我们继续说TCP/IP协议。

    用户数据 (UDP)也是在OSI模型的传输层上运作的,它是一种无连接的、“尽力而为”的通信协议。UDP不提供错误检测或纠正,不适用序列,不适用流量控制机制,不适用预先建立的会话,并且被认为是不可靠的。UDP具有极低的系统开销,因此能够快速传输数据。

    4. 络层协议

    运行在 际层协议是IP,IP为数据包提供了路由寻址。路由寻址是全球性互联 通信的基础。这是因为它提供了身份标识手段并规定了传输路径。IP是无连接的、不可靠的数据 服务。IP不保证传输数据包或以正确顺序传送数据包,并且不保证只进行一次传送。因此,在IP上使用TCP协议,从而获取可靠的和受控制的通信会话。

    IP地址等于 络地址加上主机地址,IP被分为五个等级,如表所示。其中D类子 被用于多播,E类子 被保留将来使用。

    图5. IP地址分级

    其中A类地址可以支持16777214台主机,B类地址支持65534台主机,C类地址支持254太主机。

    5. 常见的应用层协议

    在TCP/IP模型的应用层上,驻留着许多特定应用或服务的协议。比如:

  • 远程登陆(Telnet),TCP端口23,这是一个终端仿真 络应用,支持能够知性命令和运行应用程序的远程连通性,但是不支持文件传输;
  • 文件传输协议(FTP),TCP端口20和21,支持文件交换的 络应用,文件交换要求进行匿名的或特定的身份认证;
  • 普通文件传输协议(TFTP),UDP端口69,支持文件交换的 络应用,文件交换不要求进行身份认证;
  • 简单邮件传输协议(SMTP),TCP端口25,用于从客户端向邮件服务器以及从一个邮件服务器到另一个邮件服务器发送邮件;
  • 邮局协议(POP3),TCP端口110,用于将邮件服务器收件箱中的邮件传送至邮件客户端;
  • 互联 消息访问协议(IMAP),TCP端口143,用于将邮件服务器收件箱中的邮件传输至客户端。IMAP比POP3更加安全,并且能够从邮件服务器中取出邮件头,再不必先下载至本地客户端的情况下就可以直接从邮箱服务器中删除邮件。
  • 动态主机配置协议(DHCP),UDP端口67和68,DHCP将端口67用于服务器点对点响应,将端口68用于客户端请求广播。再系统启动时,DHCP用于为系统指派TCP/IP配置设置。DHCP提供了对 络寻址的集中化控制;
  • 超文本传输协议(HTTP),TCP端口80,用于从Web服务器向Web服务器传送Web页面元素;
  • 安全套接字(SSL),TCP端口443,再会话层上运作的,像VPN一样的安全协议;
  • 形式打印后台程序(LPD),TCP端口515,用于管理打印作业以及向打印机发送打印作业的 络服务。
  • 相关的历史文章还有:


    《TCP/IP简介》

    《基于java的TCP通信》

    《TCP,UDP通信使用场景及区别比较》

    《Arduino基于UDP协议的远程通信》

    《OSI七层模型(详细介绍)》

    《LTE下行物理信道与物理信 》

    《LTE接入层协议架构》

    《LTE的组 架构与接口协议》

    《LTE核心 EPC介绍》

    《LTE核心 拾遗》


    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年6月5日
    下一篇 2019年6月5日

    相关推荐