TCP/IP协议(二)

TCP和IP(一) 中,介绍了TCP、IP的正式规格和标准以及主要架构原则。本文主要对TCP、IP的四个分层(链路层、网络层、传输层、应用层)进行介绍。

链路层

链路层的协议在主机所连接的本地网络连接范围内运行。这种制度在TCP/IP的术语中称为链路,是互联网协议套件的最低组成层。链路包括所有无需穿越路由器就能访问的主机。因此,链路的大小是由网络硬件设计决定的。原则上,TCP/IP的设计是独立于硬件的,几乎可以在任何链路层技术之上实现。这不仅包括硬件实现,还包括虚拟链路层,如虚拟专用网络和网络隧道。

链路层用于在同一链路上两个不同主机的互联网层接口之间传送数据包。链路上传输和接收数据包的过程可以在网卡的设备驱动程序中控制,也可以在固件中控制,或者由专门的芯片组控制。这些执行的功能为互联网层数据包的传输做准备,最后通过传输介质将帧传输到物理层。TCP/IP模型包括将互联网协议中使用的网络寻址方法转换成链路层地址的规范,如媒体访问控制(MAC)地址。但是,该层所有其他方面都是隐性假设存在的,在TCP/IP模型中并没有明确定义。

TCP/IP模型中的链路层在OSI模型的第2层有相应的功能。

网络层

互联网需要将数据从源网络发送到目标网络。这一过程称为路由,并使用分层IP寻址系统的主机寻址和识别来支持。互联网层通过将数据包转发到适当的下一级路由器,进一步中继到目的地,在位于不同IP网络的潜在主机之间,提供不可靠的数据包传输设施。互联网层负责在潜在的多个网络之间发送数据包。有了这一功能,互联网层就有可能实现互连,实现不同IP网络的互通,它实质上建立了互联网。

互联网层不区分各种传输层协议。IP承载着各种不同上层协议的数据。这些协议都由一个独特的协议号来标识:例如,互联网控制消息协议(ICMP)和互联网组管理协议(IGMP)分别是协议1和2。

互联网协议是互联网层的主要组成部分,它定义了两个寻址系统,用于识别网络主机以及在网络上定位。ARPANET及其后继者——互联网最初的地址系统是互联网协议第4版(IPv4)。它使用32位的IP地址,因此能够识别大约40亿台主机。1998年,使用128位地址的互联网协议版本6(IPv6)的标准化消除了这一限制。IPv6大约在2006年开始启用。

传输层

传输层建立了基本的数据通道,应用程序用于特定任务的数据交换。该层以端到端消息传输服务的形式建立主机到主机的连接,这种服务独立于底层网络,独立于用户数据的结构和交换信息的物流。传输层的连接可以分为面向连接的、用TCP实现的、或无连接的和用UDP实现的。这一层的协议可以提供错误控制、分段、流量控制、拥塞控制和应用寻址(端口号)。

为了给应用提供特定过程的传输通道,该层建立了网络端口的概念。这是一个编号的逻辑结构,专门为应用程序所需的每个通信通道分配。对于许多类型的服务来说,这些端口号已经标准化,这样客户端计算机就可以在不涉及服务发现或目录服务的情况下提出服务器计算机的特定服务。

由于IP只提供了最佳的传输,所以另一些传输层协议则负责提供可靠性。

TCP是一个面向连接的协议,在提供可靠的字节流时,解决了许多可靠性问题。

  • 数据按顺序到达
  • 数据误差小
  • 重复数据被丢弃
  • 丢失或丢弃的数据包将被重新发送
  • 拥塞控制

较新的流控制传输协议(SCTP)也是一种可靠的、面向连接的传输机制。SCTP是面向消息流的,而不是像TCP那样面向字节流的,它提供在一个连接上复用多个流。它还提供多宿主支持,即一个连接端可以由多个IP地址(代表多个物理接口)来表示,这样,如果一个连接失败,连接不会中断。它最初是为电话应用开发的(通过IP传输SS7)。

通过在可靠的数据链路协议(如高级数据链路控制(HDLC))上运行IP,也可以实现可靠性。

用户数据报协议(UDP)是一种无连接的数据报协议。像IP一样,它是一个不可靠的协议。可靠性需要通过使用校验算法进行错误检测来解决。UDP通常用于流媒体(音频、视频、IP语音等)等应用,在这些应用中,准时到达比可靠性更重要,或者用于简单的查询/响应应用(如DNS查询),在这些应用中,建立一个可靠连接的开销是不成比例的。实时传输协议(RTP)是一种在UDP上使用的数据报协议,是为流媒体等实时数据设计的。

任何给定网络地址上的应用都是通过其TCP或UDP端口来区分的。按照惯例,某些众所周知的端口与特定的应用相关联。

TCP/IP模型的传输层或主机到主机层大致对应于OSI模型中的第四层,也称为传输层。

应用层

应用层包括许多协议,大多数应用程序将这些协议用于提供用户服务或通过低层协议建立的网络连接交换应用数据。这可能包括一些基本的网络支持服务,如路由和主机配置协议。应用层协议的例子包括超文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)和动态主机配置协议(DHCP)。根据应用层协议编码的数据被封装到传输层协议单元(如TCP或UDP消息)中,再利用低层协议实现实际的数据传输。

TCP/IP模型没有考虑格式化和呈现数据的具体内容,也没有像OSI模型(表示层和会话层)那样在应用层和传输层之间定义附加层。这种功能是库和应用编程接口的范畴。

应用层协议一般把传输层(及更低层)协议当作黑匣子,它提供了一个稳定的网络连接。通过这个黑匣子上进行通信,即使应用程序通常知道传输层连接的关键点,如端点IP地址和端口号。应用层协议通常与特定的客户机-服务器应用相关联,常见的服务都有互联网编号分配机构(IANA)预留的广为人知的端口号。例如,超文本传输协议使用服务器80端口,Telnet使用服务器23端口。连接到服务的客户机通常使用临时端口,即只在交易期间随机或从应用程序中配置的特定范围内分配的端口号。

传输层和下层不关心应用层协议的具体内容。路由器和交换机通常不会检查封装的流量,而只是为其提供一个通道。然而,一些防火墙和带宽节流应用必须解释应用数据。资源预订协议(RSVP)就是一个例子。有时,网络地址翻译器(NAT)的遍历也需要考虑应用有效载荷。

TCP/IP模型中的应用层经常被比作相当于OSI模型的第五层(会话)、第六层(表示)和第七层(应用)的组合。

此外,TCP/IP模型还区分了用户协议和支持协议,支持协议为网络基础设施系统提供服务。用户协议用于实际的用户应用。例如,FTP是一种用户协议,DNS是一种支持协议。

注:文案部分内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

posted @ 2020-12-04 17:56  EDI电子数据交换  阅读(200)  评论(0编辑  收藏  举报