电子说
4.0 TCP/IP协议组
TCP/IP协议组在OSI模型之前流行。最初的TCP/IP有四层,显然与OSI模型的层不匹配。当OSI模型被引入时,人们相信它将在商业上压倒TCP/IP,但并未如愿。
4.1 介绍
TCP/IP是在七层OSI模型引入之前由美国防部开发的。它实际上是互联网的全球标准。互联网(早期称为ARPANET)是美国高级研究计划局(ARPA)军事计划的一部分,基于此的通信模型称为ARPA模型。美国开发的ARPA早于欧洲ISO组织开发的OSI模型。虽然OSI模型确切地规定了每一层必须执行的功能,但TCP/IP由几个相对独立的协议组成,可以以多种方式组合。
并非必须使用TCP/IP模型中的所有层,例如,某些应用层协议直接在IP之上运行。TCP/IP不包括底层网络接口,但它依赖于底层网络接口来访问媒介。TCP/IP是层次化的协议,就是说每个上层协议总是由一个/多个下层协议支持。
4.2. 协议体系结构
五层TCP/IP参考模型如下表所示:
应用层对应于OSI模型的上面三层,即应用程序层、表示层和会话层。位于传输层的TCP确保数据传递到适当的进程。网络层在IP地址的帮助下,通过一个或多个网络将数据从主机路由到目标节点。数据链路层将终端系统与网络连接起来,而最低层或物理层则负责信号速率、信号编码等。
下图,显示了TCP/IP协议套件中不同层可用的协议。
在不同的层上,可以使用不同的协议。其中, TCP和UDP属于传输层,而网络层中的IP是构成数据从位于地球一端的一台计算机向位于另一端的另一台计算机传递的基础。
4.2.1 TCP
TCP是一种面向连接的传输层协议。功能包括可靠的数据传输、拥塞控制、重复数据抑制、流量控制等。大多数用户应用协议,如FTP和Telnet,都使用TCP。在传输层,TCP/IP使用3种协议:TCP、UDP和SCTP (stream control transmission protocol,流控制传输协议)。两个进程可以借助IP数据报,通过TCP连接相互通信。结果如下图所示。
TCP在发起传输之前,在发送进程和接收进程之间建立会话。有一些工具可以检查所有数据包是否已被接收,并在数据包丢失的情况下安排重新传输。这涉及到额外的开销,并导致更高的处理时间和报头大小,但同时使系统更可靠。
TCP在必要时将一大块数据分割成更小的段,对段进行编号,重新组装整个消息,在失败时检测并安排重传,对收到的数据发出确认,为到远程主机端口的多个连接提供套接字服务。分段后的消息在接收端接收时可能是乱序的,而TCP则会按照正确的顺序重新组装这些消息。
每一个TCP段都有一个报头,它包含了正确的数据传递和检索所需的所有信息。
4.2.2 UDP
UDP是一种无连接协议。它不需要在数据传输之前建立任何连接。UDP不需要任何序列号、计时器、同步参数、重传数据包和优先级选项。因此,它的开销更少。它的主要缺点是不能保证送达。UDP通常用于广播、一般网络公告、实时数据等。
UDP头如下图所示。它只有四个字段。
源端口为可选端口。当它被使用时,它表示发送进程的端口地址。当不使用时,将为该字段插入一个零值。目的端口表示数据要传送到的进程。长度是以字节为单位的所用数据报的长度,包括报头。校验和是一个可选的16位字段,用于验证目的。
4.2.3 IP
在TCP/IP的网络层中有一些非常重要的协议:网络协议(IP)、因特网控制报文协议(ICMP)、地址解析协议(ARP)和DHCP。它们一起执行数据报寻址、路由、交付、动态地址配置,并在网络层地址和网络接口层地址之间进行解析。IP以分组的形式发送数据,称为数据报。分组(或数据报)可以沿着不同的路径(路由)传输,并且可能不按顺序到达。IP不具备在接收端重新排列分组的能力。
IP是一种不可靠的、无连接的、尽力而为的分组传输协议。尽力而为交付意味着通过IP发送的数据包可能丢失,可能乱序,甚至可能重复。处理这些问题是高层的责任。无连接网络协议用于减少对使用分层连接网络的特定计算中心的依赖。
IP寻址是在互联网上识别主机所必须的。因此,每台主机都分配了一个IP地址或互联网地址。主机由这个IP地址识别。一台主机可能连接到多个网络,称为多宿主(multihomed),在这种情况下,主机必须为每个网络接口有一个单独的地址。
IP地址由32位无符号二进制值表示,并以点分十进制格式表示。每个IP地址由一个网络号和一个主机号组成。网络号码由三个地区性互联网注册中心(RIR)之一管理:美国互联网号码注册中心(ARIN)、欧洲IP研究所(mature)和亚太网络信息中心(APNIC)。例如:128.3.7.8,128.3是IP地址,128.3表示网络号,7.8表示主机号。有时,用网络地址或netID来代替网络号,用主机地址或hosteID来代替主机号。
IP数据报(主机之间交换的基本数据包)包含一个源IP地址和一个目的IP地址。要将数据报发送到目的IP地址,必须将其转换或映射为物理地址。例如,在局域网中,通过ARP (address resolution protocol)将IP地址转换为物理MAC地址。
有五类IP地址:A、B、C、D和E,这取决于主机数量和网络大小。使用IP地址交付的数据报可以是以下任何一种类型:单播、广播、多播或任播,如下图所示:
IPv4负责在发送主机和接收主机之间传递数据包(数据报)。以太网可以处理1500字节,而X.25可以处理576字节。由于帧长度的限制,消息被分解为称为数据报(datagram)的片段。每个数据报都有一个IP首部,然后由发送主机发送。接收主机根据收到的数据报重建消息。IPv4首部至少由5个32位长字组成,总共20字节。这个IP头附加到它从高层协议接收到的信息。
4.3. 操作
TCP/IP协议套件有助于将消息从与驻留在一台主机上的端口相关联的进程发送到与另一台主机上的端口相关联的另一个进程。接收主机可能位于同一网络或另一个网络上。对于后一种情况,消息在到达最终目的地的过程中必须经过几个路由器。需要注意的是,IP在所有端系统和路由器中都实现,而TCP只在端系统中实现。
如前文所述,要将一台主机上的进程数据发送到另一台主机上的另一个进程,需要两级寻址。接收端需要一个本地端口地址来保证数据的正确传输。同样,需要一个网络地址,使消息能够传递到接收主机。
比方说,驻留在属于某个主机的端口上的进程数据将被交付给另一个拥有自己端口地址且属于另一个主机的进程。发送端进程将消息传递给TCP。它有指令将其发送到特定端口的第二个主机。TCP将消息传递给IP,并指示将消息传递给另一台主机。IP对于目标主机的端口地址是完全透明的。所有这些都是通过在TCP/IP协议组的每一层附加到消息的控制信息来管理的。
4.4 协议数据单元(PDU)
控制信息以头部和尾部的形式在不同层附加到消息中,以确保在适当的目的地以最大的可靠性交付适当的数据。下图,给出了TCP/IP体系结构中的数据封装和PDU。
在TCP层,以TCP首部的形式附加控制信息,形成一个TCP段或带有PDU的TCP段。TCP首部中包含的控制信息有:
目的端口地址、序列号和校验和。同样,在在网络层,增加一个IP报头,产生带有PDU的IP。IP报头包括目的网络地址。它可能包括一些其他控制信息,如数据传输的优先级等。
4.5 寻址
通过TCP/IP协议寻址涉及通过Internet将数据从一个进程发送到另一个进程。寻址包括:“物理或链路地址”、“逻辑或IP地址”、“端口”和“特定地址”。
寻址涉及TCP/IP模型中的特定层,如下图:
4.5.1 物理地址
物理地址或链路地址是最低级地址。它是局域网或广域网在其帧中指定的站或节点的地址。根据网络类型的不同,地址的大小和格式也不同。以太网使用嵌入在其NIC中的6字节地址。
4.5.2 逻辑地址
逻辑地址对应于TCP/IP模型中的网络层。物理地址可能会有所不同(取决于网络的类型)。逻辑地址通过识别主机而不考虑物理地址类型来克服这个困难。目前,32位逻辑地址可以唯一地识别一台连接到互联网的主机。为了区分和识别两台不同主机的逻辑地址,不能有两个相同的IP地址。
4.5.3 端口
一台计算机可以同时运行几个进程。它可以通过文件传输协议、消息处理服务或TELNET与另一台计算机通信。因此,驻留在一台计算机上的这些进程必须有各自的地址,以便同时从其他计算机接收数据。这是由端口地址处理的。端口地址长度为2字节。计算机上的端口地址,有助于特定进程在到达目标主机后准确地交付数据/消息。
4.5.4 特定地址
特定地址是用户友好的地址,如电子邮件地址或URL(通用资源定位符)。电子邮件地址定位世界上任何地方的特定收件人,而URL有助于定位从万维网上可用的某些文档/文章/信息。
全部0条评论
快来发表一下你的评论吧 !