当前位置:首页 > 技术学院 > 技术前线
[导读]TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP协议,包含了一系列构成互联网基础的网络协议。这些协议最早发源于美国国防部的ARPA网项目。TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议)。

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。 [2]TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。

1983年1月1日,在因特网的前身(ARPA网)中,TCP/IP协议取代了旧的网络核心协议(NCP,Network Core Protocol),从而成为今天的互联网的基石。最早的TCP/IP由Vinton Cerf和Robert Kahn两位开发,慢慢地通过竞争战胜了其他一些网络协议的方案,比如国际标准化组织ISO的OSI模型。TCP/IP的蓬勃发展发生在上世纪的90年代中期。当时一些重要而可靠的工具的出世,例如页面描述语言HTML和浏览器Mosaic,导致了互联网应用的飞速发展。

随着互联网的发展,目前流行的IPv4协议(网际协议版本四)已经接近它的功能上限。IPv4最致命的两个缺陷在与:

地址只有32位,IP地址空间有限;

不支持服务等级(Quality of Service, QoS)的想法,无法管理带宽和优先级,故而不能很好的支持现今越来越多的实时的语音和视频应用。因此IPv6(网际协议版本六)浮出海面,用以取代IPv4。

TCP/IP成功的另一个因素在于对为数众多的低层协议的支持。这些低层协议对应与OSI模型 中的第一层(物理层)和第二层(数据链路层)。每层的所有协议几乎都有一半数量的支持TCP/IP,例如: 以太网(Ethernet),令牌环(Token Ring),光纤数据分布接口(FDDI),端对端协议(PPP),X.25,帧中继(Frame Relay),ATM,Sonet, SDH等。

TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。它不仅仅包括TCP和IP两个协议,而是由多个协议组成的协议簇,包括FTP、SMTP、UDP等‌。TCP/IP协议是Internet最基本的协议,定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准‌。

TCP/IP协议栈组成

整个通信网络的任务,可以划分成不同的功能区块,即所谓的层级(layer) 。用于互联网的协议可以比照TCP/IP参考模型进行分类。TCP/IP协议栈起始于第三层协议IP(网际协议)。所有这些协议都在相应的RFC文档中讨论及标准化。重要的协议在相应的RFC文档中均标记了状态: “必须”(required) ,“推荐”(recommended) ,“可选”(elective) 。其他的协议还可能有“试验”(experimental) 或“历史”(historic) 的状态。”

必须协议

所有的TCP/IP应用都必须实现IP和ICMP。对于一个路由器(router)而言,有这两个协议就可以运作了,虽然从应用的角度来看,这样一个路由器 意义不大。实际的路由器一般还需要运行许多“推荐“使用的协议,以及一些其他的协议。

几乎所有连接到互联网上的计算机上都存在的IPv4协议出生在1981年,今天的版本和最早的版本并没有多少改变。升级版IPv6的工作始于1995年,目的在与取代IPv4。ICMP协议主要用于收集有关网络的信息查找错误等工作。

范例: 不同计算机运行的不同协议

一个简单的路由器上可能会实现ARP, IP, ICMP, UDP, SNMP, RIP。

WWW用户端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。

一台用户电脑上还会运行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NNTP。

无盘设备可能会在固件比如ROM中实现了ARP, IP, ICMP, UDP, BOOT, TFTP (均为面向数据报的协议,实现起来相对简单)。

TCP/IP参考模型

TCP/IP参考模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的"层"中。每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。

完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中的,因此有时称它们为一个协议栈。

TCP/IP参考模型为TCP/IP协议栈订身制作。其中IP协议只关心如何使得数据能够跨越本地网络边界的问题,而不关心如何利用传输媒体,数据如何传输。整个TCP/IP协议栈则负责解决数据如何通过许许多多个点对点通路(一个点对点通路,也称为一"跳", 1 hop)顺利传输,由此不同的网络成员能够在许多"跳"的基础上建立相互的数据通路。

如想分析更普遍的网络通信问题,ISO的OSI模型也能起更好的帮助作用。

因特网协议组是一组实现支持因特网和大多数商业网络运行的协议栈的网络传输协议。它有时也被称为TCP/IP协议组,这个名称来源于其中两个最重要的协议:传输控制协议(TCP)和因特网协议(IP),它们也是最先定义的两个协议。

同许多其他协议一样网络传输协议也可以看作一个多层组合,每层解决数据传输中的一组问题并且向使用这些低层服务的高层提供定义好的服务。高层逻辑上与用户更为接近,所处理数据更为抽象,它们依赖于低层将数据转换成最终能够进行物理控制的形式。

网络传输协议能够大致匹配到一些厂商喜欢使用的固定7层的OSI模型。然而并不是所有这些层能够很好地与基于ip的网络对应(根据应用的设计和支持网络的不同它们确实是涉及到不同的层)并且一些人认为试图将因特网协以组对应到OSI会带来混淆而不是有所帮助。

因特网协议栈中的层

人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。

另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议和生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

应用层

该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。 应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序的以这种应用内部使用的格式的传过来,然后被编码成标准协议的格式。

一些特定的程序被认为运行在这个层上。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括HTTP(The World Wide Web)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS (名称<-> IP 地址寻找)以及许多其他协议。

一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。

在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个公开的端口号相联系。服务器应用程序的端口由Internet Assigned Numbers Authority (IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。应用软件通常也允许用户强制性地指定端口号作为运行参数。

连结外部的客户端程序通常使用系统分配的一个随机端口号。监听一个端口并且然后通过服务器将那个端口发送到应用的另外一个副本以建立对等连结(如IRC上的dcc文件传输)的应用也可以使用一个随机端口,但是应用程序通常允许定义一个特定的端口范围的规范以允许端口能够通过实现网络地址转换(NAT)的路由器映射到内部。

每一个应用层(TCP/IP参考模型 的最高层) 协议一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议 。

常用的应用层协议有:

运行在TCP协议上的协议:

HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。

FTP(File Transfer Protocol, 文件传输协议),由名知义,用于文件传输。

POP3 (Post Office Protocol, version 3, 邮局协议) ,收邮件用。

SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件 。

TELNET(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络。

SSH (Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。

运行在UDP协议上的协议:

BOOTP (Boot Protocol,启动协议) ,应用于无盘设备。

NTP (Network Time Protocol,网络时间协议) ,用于网络同步。

其他:

DNS (Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上) 。

ECHO (Echo Protocol, 回绕协议) ,用于查错及测量应答时间(运行在TCP和UDP协议上) 。

SNMP (Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

ARP (Address Resolution Protocol,地址解析协议) ,用于动态解析以太网硬件的地址。

传输层

传输层的协议能够解决诸如可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。

在TCP/IP协议组中技术上位于这个层的动态路由协议通常被认为是网络层的一部分;一个例子就是OSPF(IP协议89)。

TCP(IP协议6)是一个“可靠的”、面向连结的传输机制,它提供一种可靠的字节流保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。这是它与UDP不同之处,这在实时数据流或者路由高网络层丢失率应用的时候可能成为一个缺陷。

较新的SCTP也是一个“可靠的”、面向连结的传输机制。它是面向纪录而不是面向字节的,它在一个单独的连结上提供了通过多路复用提供了多个子流。它也提供了多路自寻址支持,其中连结终端能够被多个IP地址表示(代表多个物理接口),这样的话即使其中一个失败了连接也不中断。它最初是为电话应用开发的(在IP上传输SS7),但是也可以用于其他的应用。

UDP(IP协议号17)是一个无连结的数据报协议。它是一个“best effort”或者“不可靠”协议——不是因为它特别不可靠,而是因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特点,它必须自己提供或者使用TCP。

UDP的典型性应用是如流媒体(音频和视频等)这样按时到达比可靠性更重要的应用,或者如DNS查找这样的简单查询/响应应用,如果建立可靠的连结所作的额外工作将是不成比例地大。

DCCP目前正由IEFT开发。它提供TCP流动控制语义,但对于用户来说保留了UDP的数据报服务模型。

TCP和UDP都用来支持一些高层的应用。任何给定网络地址的应用通过它们的TCP或者UDP端口号区分。根据惯例一些大众所知的端口与特定的应用相联系。

RTP是为如音频和视频流这样的实时数据设计的数据报协议。RTP是使用UDP包格式作为基础的会话层,然而据说它位于因特网协议栈的传输层。

网络层

正如最初所定义的,网络层解决在一个单一网络上传输数据包的问题。类似的协议有X.25和ARPANET的Host/IMP Protocol。

随着因特网思想的出现,在这个层上添加了附加的功能,也就是将数据从源网络传输到目的网络。这就牵涉到在网络组成的网上选择路径将数据包传输,也就是因特网。

在因特网协议组中,IP完成数据从源发送到目的基本任务。IP能够承载多种不同的高层协议的数据;这些协议使用一个唯一的IP协议号进行标识。ICMP和IGMP分别是1和2。

一些IP承载的协议,如ICMP(用来发送关于IP发送的诊断信息)和IGMP(用来管理多播数据),它们位于IP层之上但是完成网络层的功能,这表明了因特网和OSI模型之间的不兼容性。所有的路由协议,如BGP、 OSPF、和RIP实际上也是网络层的一部分,尽管似乎它们应该属于更高的协议栈。

链路层

链路层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到里另外一个设备的网络层的方法。这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。这将完成如添加报头准备发送、通过物理媒介实际发送这样一些数据链路功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。

然而,链路层并不经常这样简单。它也可能是一个虚拟专有网络(VPN)或者隧道,在这里从网络层来的包使用隧道协议和其他(或者同样的)协议组发送而不是发送到物理的接口上。VPN和隧道通常预先建好,并且它们有一些直接发送到物理接口所没有的特殊特点(例如,它可以加密经过它的数据)。由于现在链路“层”现在是一个完整的网络,这种协议组的递归使用可能引起混淆。但是它是一个实现常见复杂功能的一个优秀方法。(尽管需要注意以防一个已经封装并且经隧道发送下去的数据包进行再次地封装和发送)。

TCP/IP层次结构

TCP/IP协议族按照功能被划分为四个层次,从上到下依次是:

应用层(Application Layer):直接为用户的应用程序提供服务,包括HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。

传输层(Transport Layer):负责数据在主机之间的传输,主要协议有TCP和UDP(User Datagram Protocol,用户数据报协议)。TCP提供可靠的、面向连接的通信服务,而UDP则提供无连接的、不可靠的服务,但速度更快。

网络层(Network Layer):负责数据的路由和转发,核心协议是IP。此外,还包括ICMP(Internet Control Message Protocol,互联网控制消息协议)、ARP(Address Resolution Protocol,地址解析协议)等辅助协议。

数据链路层(Data Link Layer):负责物理网络中帧的传输和错误检测,包括以太网、PPP(Point-to-Point Protocol,点对点协议)等协议。该层通常还包含MAC地址管理和逻辑链路控制(LLC)功能。

TCP/IP工作原理

TCP/IP协议的工作可以概括为以下几个关键步骤:

地址解析:当应用程序准备发送数据时,首先通过DNS(Domain Name System,域名系统)将域名解析为IP地址,同时确定目标主机的MAC地址(如果需要)。

封装与分段:应用层数据被封装成传输层报文段(TCP/UDP),再根据网络层最大传输单元(MTU)大小进行分段,每个分段加上IP头部,形成IP数据包。

路由选择:IP数据包通过路由器在网络中传输,每个路由器根据数据包的目的IP地址和自身的路由表决定最佳路径。

传输控制:TCP协议在数据传输过程中,通过三次握手建立连接,使用序列号确保数据顺序,通过确认应答(ACK)机制保证数据到达,并在必要时进行超时重传。

数据重组:接收端根据IP数据包中的序列号重新组装成原始的应用层数据,再传递给上层应用程序。

连接释放:TCP连接在完成数据传输后,通过四次挥手过程优雅地关闭连接,释放资源。

TCP/IP的分层结构:

TCP/IP 协议族按照层次由上到下分成 4 层,分别是应用层(Application Layer)、传输层(Transport Layer)、网络层(Internet Layer,或称网际层)和网络接口层(Network Interface Layer,或称数据链路层)。

应用层包含所有的高层协议,比如 Telnet(Telecommunications Network,远程登录协议)、FTP、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、DNS(Domain Name Service,域名服务)、NNTP(Net News Transfer Protocol,网络新闻传输协议)和 HTTP 等。Telnet 允许一台机器上的用户登录远程机器进行工作,FTP 提供将文件从一台机器上移到另一台机器上的有效方法,SMTP用于电子邮件的收发,DNS 用于把主机名映射到网络地址,NNTP 用于新闻的发布、检索和获取,HTTP 用于在 WWW 上获取主页。

应用层的下面一层是传输层,著名的 TCP 和 UDP(User Datagram Protocol,用户数据报协议)就在这一层。TCP 是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP 是面向无连接的不可靠传输协议,主要用于不需要TCP的排序和流量控制等功能的应用程序。

传输层的下面一层是网络层,该层是整个 TCP/IP 体系结构的关键部分,其功能是使主机可以把数据报(Packet,或称为分组)发往任何网络,并使分组独立地传向目标。这些分组经由不同的网络到达的顺序和发送的顺序可能不同。网络层使用的协议有 IP。

网络层的下面是数据链路层,该层是整个体系结构的基础部分,负责接收 IP 层的 IP 数据报,通过网络向外发送,或接收从网络上来的物理帧,抽出 IP 数据报,向 IP 层发送。该层是主机与网络的实际连接层。

数据链路层下面就是实体线路(比如以太网络、光纤网络等)。数据链路层有以太网、令牌环网等标准,负责网卡设备的驱动、帧同步(就是从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。交换机可以在不同的数据链路层的网络之间(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间)转发数据帧,由于不同数据链路层的帧格式不同,交换机要将进来的数据报拆掉报头重新封装之后再转发。

不同的协议层对数据报有不同的称谓,在传输层叫作段(Segment),在网络层叫作数据报(Datagram),在数据链路层叫作帧(Frame)。数据封装成帧后发送到传输介质上,到达目的主机后,每层协议再剥掉相应的报头,最后将应用层数据交给应用程序处理。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭