《TCP/IP路由技术(第一卷)(第二版)》一1.6 主机到主机层

本节书摘来自异步社区《TCP/IP路由技术(第一卷)(第二版)》一书中的第1章,第1.6节,作者【美】Jeff Doyle,CCIE #1919,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 主机到主机层

TCP/IP协议的主机到主机层的命名恰如其分。尽管网络层负责网络之间的逻辑路径,但主机到主机层是负责两个在完全不同网络[18]上的主机之间的全程逻辑路径。从另一个角度看,主机到主机层向应用提供了一个到协议簇下一层的接口,使应用不必关心它们的数据实际上是如何被传送的。

可以把这种服务比喻为公司的信件收发室。一个包裹被送到收发室,并附有邮寄要求(平信或隔日送到)。提出邮寄要求的人不需要知道或可能不关心实际是怎样邮寄此包裹的。收发室的工作人员将会安排合适的邮寄方式来满足其要求(送邮局邮寄、FedEx、交给骑自行车横穿城镇送快件的人)。

主机到主机层提供两个主要的服务:TCP和UDP。

1.6.1 TCP

传输控制协议(TCP),向应用提供了可靠的、面向连接的服务,详见RFC793。换句话说,TCP提供了一个类似于点到点的连接。

点到点连接有两个特点:

仅存在一条到达目的地的路径。进入连接的数据包不会丢失,因为数据包惟一可去的地方就是连接的另一端。
数据包到达的顺序与发送顺序相同。
TCP提供了一条看似点到点的连接,虽然实际上这条连接并不存在。TCP利用的Internet层可以提供无连接的、尽力而为转发的服务。这类似于邮政服务。一叠信一旦交给邮递员后,谁也不能保证信件将按照原先叠放的顺序依次送达,也不能保证信件都将在同一天送到,甚至不能保证全部送到。邮政服务仅仅能承诺尽最大努力邮寄这些信件。

同样的,Internet层不保证所有的数据包使用相同的路径,因而也不保证数据包到达时仍旧保持发送时的顺序和间隔或者全部到达。

另一方面,电话呼叫是一个面向连接的服务。数据必须顺序、可靠地到达,否则数据就会作废。像电话呼叫一样,TCP首先必须建立连接,然后是传送数据,当数据传送完成后要拆除连接。

在无连接服务之上,TCP使用了3种基础的机制实现面向连接的服务:

  • 使用序列号对数据包进行标记,以便TCP接收服务在向目的应用传递数据之前修正错序的数据包排序。
  • TCP使用确认、校验和定时器系统提供可靠性。当接收者按照顺序识别出数据包未能到达或发生错误时,接收者将通知发送者,或者接收者在特定时间内没有发送确认信息,那么发送者就认为在发送结束后数据包没有到达接收方。在这两种情况下,发送者都会考虑重传数据包。
  • TCP使用窗口机制调整数据包的流量;窗口机制可以减少因接收方缓冲区满而造成丢失数据包的可能性。

TCP在应用层数据上附加了一个报头,报头包括序列号字段和这些机制的其他一些必要信息,如叫做端口号的地址字段,该字段可以标识数据的源和目标应用程序。为了传送数据,应用数据及附加的TCP报头被封装在IP数据包内。图1-17显示了TCP数据报头字段,示例1-14显示了协议分析器获取的TCP报头信息。


2ca667341700a1a8b8461cd0d51ce027f12728bc

示例1-14 协议分析器显示出的TCP报头


b8247f9e3d53349d6cc7248ff64ebd8aa89190ac
  • 源端口(Source Port )和目的端口(Destination Port )——字段长度各为16位,它们为封装的数据指定了源和目的应用程序。像TCP/IP使用其他编号一样,RFC1700描述了所有常用和不常用的端口号。应用程序的端口号加上应用程序所在主机的IP地址统称为套接字(socket)。在网络上套接字惟一地标识了每一个应用程序。
  • 序列号(Sequence Number)字段长度为32位,序列号确定了发送方发送的数据流中被封装的数据所在位置。例如,如果本段数据的序列号为1343,且数据段长512个八位组,那么下一数据段的序列号应该为1343+512+1=1856。
  • 确认号(Acknowledgment Number)字段长度为32位,确认号确定了源点下一次希望从目标接收的序列号。如果主机收到的确认号与它下一次打算发送(或已发送)的序列号不符,那么主机将获悉丢失的数据包。
  • 报头长度(Header Length) 又叫数据偏移量,长度为4位,报头长度指定了以32位字为单位的报头长度。由于可选项字段的长度可变,所以这一字段标识出数据的起点是很有必要的。
  • 保留(Reserved)字段长度为6位,通常设置为0。
  • 标记(Flag)包括8个1位的标记,用于流和连接控制。它们从左到右分别是:拥塞窗口减少(Congestion Window Reduced,CWR)、ECN-Echo(ECE)、紧急(URG)、确认(ACK)、弹出(PSH)、复位(RST)、同步(SYN)和结束(FIN)。
  • 窗口大小(Window Size)字段长度为16位,主要用于流控制。窗口大小指明了自确认号指定的八位组开始,接收方在必须停止传输并等待确认之前发送方可以接收的数据段的八位组长度。
  • 校验和(Checksum)字段长度为16位,它包括报头和被封装的数据,校验和允许错误检测。
  • 紧急指针(Urgent Pointer)字段仅当URG标记置位时才被使用。这个16位数被添加到序列号上用于指明紧急数据的结束。
  • 可选项(Options)字段用于指明TCP的发送进程要求的选项。最常用的可选项是最大段长度,最大段长度通知接收者发送者愿意接收的最大段长度。为了保证报头的长度是32个八位组的倍数,所以使用0填充该字段的剩余部分。

1.6.2 UDP

用户数据报协议(UDP)提供了一种无连接、尽力而为传送的数据包转发服务,详见RFC 768。起初,对应用程序宁愿使用不可靠的转发服务,而不用面向连接的TCP服务,感觉很有疑问。然而UDP的优点是不花时间建立连接,直接发送数据。用UDP代替TCP,可以使发送小数据量的应用取得更好的性能优势。

图1-18中给出了UDP的另一个优点:UDP报头长度远远小于TCP报头长度。UDP报头中的源端口和目的端口字段与TCP完全相同;UDP的长度指明了以八位组为单位的整个段长度。校验和包括整个段,但是不同于TCP,在这里,校验和是可选的;当不使用校验和时,此字段全部设置为0。在示例1-15中显示出协议分析器捕捉到的UDP报头。


f04883104485220f4383afe9c39be39fb34f42b0

示例1-15 协议分析器显示的UDP报头


db4e0f341441634e0f41126ce7232c6a2886d416
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《TCP/IP路由技术 第二版》是一本深入讲解TCP/IP网络路由技术的经典著作。该书通过系统化的方式介绍了TCP/IP网络中的路由原理、路由协议以及路由器的配置和管理等内容。 该书的第二版相对于第一版进行了全面的更新和扩展,更加贴近当前网络技术的发展趋势。本书包含了关于IP协议、路由表、静态路由和动态路由协议等方面的详尽解读,帮助读者深入理解TCP/IP网络路由的工作原理以及不同路由技术的优缺点。 《TCP/IP路由技术 第二版》书中还涵盖了一些实际案例,以帮助读者更好地理解和应用所学的知识。通过实际案例的讲解,读者可以更好地了解路由器的配置和管理,掌握网络故障排除和性能优化的技巧。 该书适合网络工程师、网络管理员以及对TCP/IP网络路由技术感兴趣的读者阅读。无论是初学者还是有一定网络工作经验的人员,都可以从该书中获得宝贵的知识和经验。 总之,《TCP/IP路由技术 第二版》是一本深入剖析TCP/IP网络路由技术的权威著作,通过系统地介绍路由的原理和实践,可以帮助读者更好地理解和应用TCP/IP网络中的路由技术。 ### 回答2: 《TCP/IP路由技术 第二版》是一本经典的网络技术书籍。该书内容详尽全面,主要涵盖了TCP/IP路由的基本概念、原理、协议以及实践应用等方面内容。 首先,该书首先介绍了TCP/IP协议栈的基本原理和组成部分,包括网络和传输。然后,详细讲解了IP路由的基本概念、IP协议的路由算法、路由表以及如何使用路由协议进行路由选择等内容。此外,该书还对常用的路由协议如RIP、OSPF、BGP等进行了深入分析,介绍了它们的工作原理和配置方法。 值得一提的是,该书第二版相较于第一版进行了全面的更新和扩充。它引入了最新的技术和发展趋势,如IPv6、BGP4+、MPLS等,并对各种新的路由技术进行了介绍和解析。此外,该书还包含了丰富的案例分析和实践经验,帮助读者更好地理解和掌握TCP/IP路由技术的实际应用。 总而言之,《TCP/IP路由技术 第二版》是一本权威性高、实用性强的书籍。无论是对于网络工程师、系统管理员还是计算机网络专业学生,都是一本值得阅读和学习的经典之作。通过学习该书,读者可以深入了解TCP/IP网络路由原理和机制,掌握各种路由协议的配置与优化技巧,提高网络的性能和稳定性,从而更好地应对复杂的网络环境和挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值