TCP/IP 协议集

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: TCP/IP 协议

TCP/IP 协议是一个协议集,由多个子协议分层组成。TCP/IP 协议集的体系结构包括 4个层次,但实际上只有 3 个层次包含了实际的协议。TCP/IP 体系结构与各层协议之间的对应关系如表 3-6 所示。

image.png

1. IP 协议:

TCP/IPTransmission Control Protocol/Internet Protocol 的简写,传输控制协议/互联网络协议)是用于互联网的第一套协议,它是最流行的网络通信协议,也是 Internet 的基础,可以跨越由不同硬件体系和不同操作系统的计算机相互连接的网络进行通信。

TCP/IP 协议其实是一组协议,它包括许多协议,组成了 TCP/IP 协议簇。传输控制协议(TCP)和网际协议(IP)是其中最重要的、确保数据完整传输的两个协议。

TCP/IP 协议的基本传输单位是数据包,TCP/IP 协议负责把数据分成若干数据包,并给每个数据包加上包头,每个数据包的包头再加上接收端的地址。如果传输过程中出现数据丢失、数据失真等情况,TCP/IP 协议会自动要求数据重新传输,并重新组包。

IP 协议保证数据的传输,TCP 协议确保数据传输的质量。

2. ICMP 协议:

由于 IP 协议是无连接的,且不进行差错检验,当网络上发生错误时它不能检测错误。这时就需要使用网际控制报文协议(ICMPInternet Control Message Protocol)。ICMP 协议主要支持 IP 数据报的传输差错处理,ICMP 仍然利用 IP 协议传递 ICMP 报文。

ICMP 协议是一种提供有关 IP 数据报文传输过程中出现故障问题而反馈信息的机制。ICMP 协议与 IP 协议同属于网络层,用于传送有关通信问题的消息,它为 IP 协议提供差错报告,例如数据报不能到达目标站,路由器没有足够的缓存空间,以及路由器向发送主机提供最短路径信息等。由于 ICMP 报文被封装在 IP 数据报中传送,因而不保证可靠的提交。

鉴于 IP 网络本身的不可靠性,ICMP 的目的仅仅是向源主机告知网络环境中出现的问题。ICMP 主要支持路由器将数据报传输的结果信息反馈回源主机。ICMP 报文是由中间路由器发现传输错误时产生的,并由 ICMP 协议向源主机发送。

IP 数据报传输系统中一旦发生传输错误,被中间路由器发现时,便立即形成 ICMP报文,并从该 IP 数据报中截取源主机的 IP 地址,形成新的 IP 数据报,转发给源主机,报告差错的发生及其原因,以便源主机采取相应纠正措施。ICMP 能够报告的一些普通错误类型有目标无法到达、阻塞等。

携带 ICMP 报文的 IP 数据报在反馈传输过程中不具有任何优先级,与正常的 IP 数据报一样进行转发。如果携带 ICMP 报文的 IP 数据报在传输过程中出现故障,转发该 IP 数据报的路由器将不再产生任何新的差错报文。

ICMP 报文有以下 8 种:

1) 目的不可到达:如果路由器判断出不能把 IP 数据报送达目标主机,则向源主机返回这种报文。

(2) 超时:路由器发现 IP 数据报的生存周期已超时,则向源端返回这种报文。

(3) 源抑制:如果路由器或目标主机缓冲资源耗尽而必须丢弃数据报,则每丢弃一个数据报就向源主机发回一个源抑制报文,这时源主机必须减小发送速率。

(4) 参数问题:如果路由器或主机判断出 IP 头中的字段或语义出错,则返回这种报文,报文头中包含一个指向出错字段的指针。

(5) 路由重定向:路由器向直接相连的主机发出这种报文,告诉主机一个更短的路径。

(6) 回应:用于测试两个节点之间的通信线路是否畅通。

(7) 时间戳:用于测试两个节点之间的通信延迟时间。请求方发出本地的发送时间,响应方返回自己的接收时间和发送时间。

(8) 地址掩码:主机可以利用这种报文获得它所在的网络的子网掩码。目前,已经利用 ICMP 报文开发了许多网络诊断工具软件。例如Ping软件,借助于 ICMP回应请求/应答报文测试目的主机的可达性。

3. ARP 协议和 RARP 协议:

1. ARP 协议

1) 地址解析协议 ARP

在使用 TCP/IP 协议的局域网或广域网上,把 IP 报文从一个节点发送到另一节点,必然要借助于链路层的数据帧,也就必须知道彼此的物理地址(MAC 地址)。这时就需要把 IP 地址解析为物理地址。而地址解析协议 ARP 就是实现从 IP 地址到物理地址的映射的协议。

(2ARP Cache

ARP 的任务是把 IP 地址转化成物理地址,这样就消除了应用程序需要知道物理地址的必要性。ARP 就是把 IP 地址转换成相应物理地址的一个对应转换表,这个表称为 ARP表。ARP 在存储器中维护一个 Cache,这个 Cache 称为 ARP Cache

(3ARP 的工作过程。

① 当 ARP 解析一个 IP 地址时,它会搜索 ARP Cache ARP 表进行匹配。如果找到了,ARP 就把物理地址返回给提供 IP 地址的应用,形成链路层的数据帧。

② 假如 ARP 没找到一个匹配的 IP 地址,它就会向网络上发送一个 ARP 广播帧,该帧包含自己的 MAC 地址、IP 地址和目标节点的 IP 地址,如图 3-14 所示。

image.png

③ 网上所有节点都将收到该 ARP 请求,并且都将在自己的 ARP Cache 中增加源节点的 ARP 表项。

④ 由于 ARP 请求包括目标节点的 IP 地址,目标节点在接收到 ARP 请求后,认出此IP 地址属于自己,便发送一个 ARP 响应,把包含自己 MAC 地址的应答报文返回给产生ARP 请求的机器。

ARP 请求机器便得到目标节点的 MAC 地址,把此地址放置到 ARP 表和 ARP Cache中以备将来使用。

2. RARP 协议

RARP 协议是实现从物理地址到网际地址的映射的协议,该协议用于获取网络节点的IP 地址。

例如,无盘工作站无法确定自己的 IP 地址,它可以使用 RARP 协议向主服务器发送一个包含自己 MAC 地址的 RARP 请求的广播报文,以便得到自己的 IP 地址。RARP 服务器则发出应答,给该无盘工作站提供一个 IP 地址。虽然发送方发出的是广播信息,但 RARP规定只有 RARP 服务器才能产生应答。

有时,在工作站上运行的某些应用也需要使用 RARP 协议来获得该工作站的 IP 地址。

4 TCP 协议和 UDP 协议:

TCP 提供 IP 环境下的数据可靠传输,TCP 是传输层中重要的协议。TCP 提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。

● TCP 提供的是一种可靠的数据流服务。当传送由于差错干扰的数据或基础网络故障,或网络负荷太重而使网际基本传输系统(无连接报文递交系统)不能正常工作时,就需要通过其他协议来保证通信的可靠。TCP 就是这样的协议,它对应于OSI 模型的传输层,它在 IP 协议的基础上,提供端到端的面向连接的可靠传输。

● TCP 采用“带重传的肯定确认”技术来实现传输的可靠性。简单的“带重传的肯定确认”是指与发送方通信的接收者,每接收一次数据,就送回一个确认信息,发送者对每个发出去的数据包都留一份记录,等到收到确认之后再发出下一个数据包。发送者发出一个数据包时,启动一个计时器,若计时器计数完毕,确认还未到达,则发送者重新发送该数据包。

● 简单的确认重传严重浪费带宽,TCP 还采用一种称之为“滑动窗口”的流量控制机制来提高网络的吞吐量,窗口的范围决定了发送方发送的但未被接收方确认的数据包的数量。每当接收方正确收到一个数据包时,窗口便向前滑动,这种机制使网络中未被确认的数据包数量增加,提高了网络的吞吐量。

● TCP 通信建立在面向连接的基础上,实现了一种“虚电路”的概念。双方在通信之前,先建立一条连接,然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。TCP 连接的建立采用三次握手的过程,整个过程由发送方请求连接、接收方回复确认数据包、发送方再次确认三个过程组成。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
111 4
|
缓存 网络协议 Linux
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
|
XML 存储 JSON
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
16天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
44 13
|
16天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
121 3
|
1月前
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
26 3
|
2月前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
427 2
|
6月前
|
网络协议 安全 网络安全
网络 (TCP/IP 四层协议中常见网络协议)
网络 (TCP/IP 四层协议中常见网络协议)
89 7