TCP/IP协议及各层常见协议间的关系

对于一名网络工程师而言,TCP/IP协议是必须学习且重点学习的内容。在计算机网络的学习中,几种网络模型也可谓是“基本功”。下图展示了三种网络模型各层间的对应关系。(a)是传统的OSI七层网络模型,(b)是TCP/IP四层模型,(c)是TCP/IP五层模型。五层模型和四层模型的唯一区别就是将网络接口层拆分成了数据链路层和物理层,五层模型是OSI七层模型和TCP/IP四层模型的折中。在本篇学习总结中,主要参考的是TCP/IP协议的五层模型。

在实际传输过程中,主机A想要给主机B发送消息,则需要按照应用层、传输层、网络层、数据链路层、物理层的顺序进行发送端数据封装,然后再通过物理介质传送给接收端,在接收端再按照物理层、数据链路层、网络层、传输层、应用层这一相反的顺序进行数据解封装,最终将信息传送给主机B。

TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议是Internet最基本的协议。下图中展示了常用的一些协议及其相应的一些关系。

这个图中,自上而下的看可以这样理解:每一层都把上一层当成自己的数据,链路层把网络层当成自己的数据、网络层把传输层当成自己的数据,以此类推,逐层封装。
下面小胖达将从上而下,逐层地进行学习总结分享。

一、应用层上的协议

1.以TCP协议作为传输层协议,使用TCP端口应用层协议
(1)FTP协议(File Transfer Protocol文件传输协议是用于在网络上进行文件传输的一套标准协议,它工作在应用层,使用 TCP 传输,客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。FTP协议会使用到两个端口进行文件传输:数据端口和控制端口,数据端口是TCP端口20,用于传输文件数据,控制端口是TCP端口21,用于建立FTP连接和发送控制命令。
(2)SSH协议(Secure Shell安全外壳协议为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。虽然SSH本身支持使用UDP,但是出于安全和性能考虑,通常SSH会使用TCP作为其基础传输层。SSH协议通常使用TCP端口22进行安全连接。
(3)Telnet协议为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。Telnet协议是Internet远程登录服务的标准协议和主要方式,使用TCP协议作为传输层协议,通常在TCP端口23进行通信。
(4)HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网WWW(World Wide Web)的数据通信的基础。HTTP协议默认使用TCP端口80,通常用于web服务。
(5)HTTPs协议(Hypertext Transfer Protocol Secure,超文本传输安全协议)是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。其主要由两部分组成:HTTP+SSL/TLS,也即在HTTP上加上了一层处理加密模块。HTTPs协议默认使用TCP端口443
2.以UDP协议作为传输层协议,使用UDP端口应用层协议
(1)DNSDomain Name System域名系统它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53
(2)DHCP协议(Dynamic Host Configuration Protocol,动态主机设置协议)是一个局域网的网络协议,使用UDP协议工作,主要用于局域网或网络服务供应商自动分配IP地址给用户、局域网管理员作为对所有计算机作中央管理的手段。DHCP协议使用UDP协议作为传输层协议,且使用UDP端口67作为Server端口,使用UDP端口68作为Client端。
(3)TFTP协议(Trivial File Transfer Protocol简单文件传输协议是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,使用UDP端口69
(4)SNMP协议(Simple Network Management Protocol,简单网络管理协议能够帮助网络管理员提高网络管理效率,及时发现和解决网络问题,对网络增长做好规划。网络管理员还可以通过 SNMP 协议,接收网络节点的通知消息和警告事件报告等,从而获知网络出现的问题。该协议是使用UDP协议作为传输层协议,使用UDP端口161和162,其中UDP端口161用于NMS发送Get、GetNext、GetBulk和Set操作请求以及SNMP Agent响应这些请求操作,UDP端口162用于接收和发送SNMP信息,如获取设备状态信息、修改设备参数等。
(5)ISAKMP协议(Internet Security Association and Key Management Protocol,互联网安全协会和秘钥管理协议)是一种用于安全密钥协商和管理的协议,它是IPsec(Internet Protocol Security)协议套件中的一部分,用于确保网络通信的机密性、完整性和可用性。使用UDP端口500。

二、传输层网络层上的协议

在这里首先需要普及两个概念:面向连接和无连接协议。

在面向连接的方法中,网络负责顺序发送报文分组并且以一种可靠的方法检测丢失和冲突。在这种方法中,在两个端点之间建立了一条数据通信信道,这条信道提供了一条在网络上顺序发送报文分组的预定义路径,发送方与接收方保持联系以协调会话和报文分组接收或失败的信号。这种方法被“可靠的”传输服务使用。
在无连接的方法中,网络只需要将报文分组发送到接收点,检错与流控由发送方和接收方处理。在这种方法中,网络除了把分组传送到目的地以外不需做任何事情。如果分组丢失了,接收方必须检测出错误并请求重发;如果分组因采用不同的路径而没有按序到达,接收方必须将它们重新排序。
举个例子:假定你想给你在另一个城市的朋友发送一系列信件,信件类似于通过计算机网络发送的数据分组。有两种当时能将这一系列信件送达:
①把信件交给一位可信的朋友,由他私人传送,之后再向你证实已经发送。在这种方法中,你在传送的两端都保持着联系,你的朋友提供了面向连接的服务。
②在信封上注明地址并将它们投进邮局,你并没有得到保证说每封信都会达到目的地,如果都到达了,它们可能在不同的时间到达并且不是连续的,这就像一个无连接服务。收到的信件还需收信人(接收端)按照一定的方法进行排序、检测以恢复这一系列“信件”的顺序。

1.传输层上的协议

在传输层的协议中,TCP协议就是一种面向连接的协议,UDP协议就是一种面向无连接的协议。
(1)TCP协议(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,旨在在不可靠的互联网络上提供可靠的端到端字节流。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。TCP协议使用三次握手协议建立连接,如下图所示。

TCP三次握手建立连接

三次握手完成后,客户端Client和服务器Server成功建立连接,就可以开始传输数据了。

TCP的连接建立需要三次握手过程,当传输完成后需要关闭连接时,则需要四次挥手过程。

TCP四次挥手释放连接
位于传输层的TCP数据分组称为段(Segment),又译为报文段、数据段或分段。TCP将来自应用层的数据分块并封装成TCP段进行发送。TCP段封装在IP数据报中,然后再封装成数据链路层中的帧。TCP协议号在IP报文中是6。
对于TCP协议的详细学习笔记,后续小胖达会持续更新。在本篇学习笔记中,主要目的是梳理理清TCP/IP协议簇中各层常见常考协议之间的关系,故通过本次学习笔记的阅读能够精准辨别、分清各层各个协议的关系即可。
(2)UDP协议(User Datagram Protocol用户数据报协议是 TCP/IP 协议簇中的最基本的传输层通信协议,它使用最低限度的通信机制,为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
UDP 被认为是一种不可靠的传输协议,但它通过使用 IP 服务来完成其工作,提供了一种尽力而为的传递方法。在 UDP 中,接收方不生成数据包的确认,发送方也不等待数据包的确认。正是这个不足,使得该协议虽不可靠但是易于处理。同时,也正是因为这一问题,当发送方发送的报文分组有一定顺序性时,传输路径存在一个不确定性,接受方通过UDP接受到的报文分组顺序也存在不确定性,需要接收方通过一定方法将就收到的报文分组进行排序恢复。
像上文举的例子中,②就可以认为是一个UDP传输过程示例。UDP协议号在IP报文中是17。
需要说明的一点是,像图中明明在传输层列出了那么多协议,怎么就TCP协议和UDP协议算呢?
这是因为在传输层列出的这8个协议的信息都是封装在IP报文中的,所以将它们列成了一排。但是这里再次明确!!!传输层协议只有TCP协议和UDP协议。

2.网络层上的协议

在上面所提的三种协议:IP、ARP、IPv6,都是通过Ethernet II帧进行工作的网络层协议。
(1)ARP协议(Address Resolution Protocol地址解析协议是在局域网中,根据IP地址解析获取物理地址(MAC地址)的协议。当主机要向局域网中的另一台主机发送数据时,需要知道目标主机的MAC地址。ARP协议就是用来解析目标主机的MAC地址的。其工作示意图如下。

图文结合能够更好地去理解ARP协议的工作过程:首先,主机会广播一个ARP请求包,请求目标主机回应自己的MAC地址;之后,因为是采用广播的方式向局域网中的其他主机都会收到ARP请求包,非目标主机接收后忽略,只有目标主机对该ARP请求包进行响应;最后,目标主机接收到请求后会返回一个ARP响应包,包括自己的MAC地址。这样,请求主机就可以通过MAC地址向目标主机发送数据。
在这里有趣的一点是,ARP协议是一个网络层协议,将一至IP地址解析为MAC地址,从而进行数据交互。IP地址是位于第三层(网络层),而MAC地址是位于第二层(数据链路层),ARP协议通过IP地址解析MAC地址,实际上是在第二层和第三层之间进行连接。所以一般也说ARP协议是工作在2.5层的协议,位于第二层(数据链路层)和第三层(网络层)之间。

(2)IP协议(Internet Protoco,互联网际协议)可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。在上一篇学习笔记中,对IP地址相关知识、IP地址划分进行了学习总结。在本文上述第一部分、第二部分提到的应用层协议、传输层协议和网络层协议都是基于IP协议的,所以说IP协议是整个TCP/IP协议簇的核心,也是构成互联网的基础。

  • 在传送IP信息包时,一定会指明源地址与目的地址。源地址当然只有一个,但是目的地址却可能代表单一或多部设备。根据目的地址的不同,区分为3种传送方式:单点传送、广播传送以及多点传送。
  • IP协议也有两个协议版本:IPv4和IPv6。
  • IP地址由网络号和主机号两部分组成。网络号用于划分不同的网段,主机号表示同一网段内的不同主机。一些详细的内容,在小胖达的上一篇学习笔记中,感兴趣的同学可以去翻阅哦。
那么这里要提到的是IP协议的报文格式,如图所示。

IPv4报文格式

IP协议报文主要由IP首部和数据部分组成,图中展示的大部分则是IP首部内容(共20字节)。图中A圈的位置用四位二进制表示协议版本,0100表示是IPv4,0110表示是IPv6(但是IPv6的报文格式和IPv4有一点差异)。图中B圈的位置用八位二进制区分IP协议上的上层协议。例如TCP协议在IP报文中的协议号是6,即00000110,UDP协议在IP报文中的协议号是17,即00010001。
此外,以下六个协议也都是网络层协议,且这六个协议的信息都封装在IP报文中。
  • ICMP(Internet Contral Message Protocol,网络控制报文协议)是互联网控制报文协议,通常被认为是!P协议的一部分,但是他既不是网络层协议,也不是传输层协议,是介于两者之间的协议。其IP协议号是1。
  • IGMPInternet Group Management Protocol网际组管理协议主要用于IP主机与组播路由器之间,通过IGMP报文来建立和维护组播组成员关系。IGMP协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机。IGMP信息封装在IP报文中,其IP的协议号为2。
  • GRE(Generic Routing Encapsulation通用路由封装协议定义了在任意一种网络层协议上封装任意一个其它网络层协议的协议,对某些网络层协议的数据报进行封装,使其能在另一个网络层协议中传输。其IP协议号是47.
  • ESP(Encapsulating Security Payload,封装安全协议)为IP报文提供数据完整性校验、身份验证、数据加密以及重放攻击保护等。其IP协议号是50。
  • AH(Authentication Header,认证头)为IP报文提高能够数据完整性校验和身份验证,还具备可选择的重放攻击保护,但不提供数据加密保护。其IP协议号是51。
  • VRRPVirtual Router Redundancy Protocol,虚拟路由冗余协议)用于自动分配可用的Intermet Protocol(IP)路由器给参与的主机。通过在IP子网上自动选择默认网关,它增加了路径的可用性和可靠性。其IP协议号是52。
(3)IPv6协议(Internet Protocol Version 6,互联网协议第6版)由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

三、数据链路层上的协议

链路一般分为两种。一种是点到点链路,即仅支持2个接口的链路。另一种是广播型链路,允许链路上存在2个以上的接口,接口多了自然就需要区分不同的接口,所以规定每个以太网接口都要有一个全球唯一但链路有效的MAC地址。
在图中主要列出了IEEE802.3协议、Ethernet II协议、PPP协议、HDLC协议四种。其中,IEEE 802.3和Ethernet II是应用于局域网中的,而PPP协议和HDLC协议多应用于广域网中。

以太网上使用两种标准帧格式。两种格式的区别在于Ethernet II格式中包含一个Type字段,标识以太网帧处理完之后将被发送到哪个上层协议进行处理;IEEE 802.3格式中,同样位置是长度字段。Ethernet II 格式相对使用广泛。从Type/Length字段值可以区分两种帧类型:当Type字段值小于等于1500(0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536(0x0600)时,帧使用的是Ethernet II格式。
图中所示的Ethernet II帧格式中,Type就代表着类型字段,字段长度2个字节,用于标识数据字段中包含的高层协议。例如,0x0800代表IP协议帧,0x0806就代表ARP协议帧,0x86DD代表IPv6协议帧。

四、学习总结

通过本次的学习笔记,旨在认识TCP/IP协议在各层的常见协议及协议之间的关系。同时,通过本次学习笔记,能够认识并记忆应用层各协议的功能、与传输层协议的关系及端口号,学习记忆传输层TCP协议和UDP协议,学习网络层ARP协议、IP协议及封装在IP报文中的网络层协议,认识数据链路网中的各种协议。之后小胖达将继续围绕本篇学习笔记梳理的各层协议的关系,逐层地进行详细地学习总结。
以上就是本次学习笔记的内容,这篇文章有没有让同学你更好地、更实用地去理解、了解TCP/IP协议簇中各层常见的协议及关系呢?

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/76530.html

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年5月21日 下午10:47
下一篇 2024年5月21日 下午10:50

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注