网络运输层简介以及它与网络层关系

3.1 Introduction and Transport-Layer Service

传输层协议在运行于不同计算机上的应用进程之间提供logical communication,逻辑通信的意义是指,从应用的角度,好像运行于各种计算机上的进程是直接连接的,事实上,在计算机的角度却大相径庭,它们得通过很多路由和各种线路连接,应用进程利用传输层所提供的logical communication服务来发送messages,而不用担心这些message在物理层基础设施的传输细节

上图我们看到,传输层协议在终端系统实施而不是在网络路由,在发送方,传输层把它从应用进程那里收到的应用程message转化成传输层packet,称为segments,这种转化是将message分成许多小的块并在每块的前边加上传输层header成为传输层segment,然后传输层会把这个segment传输给发送方的网络层,在那里segment被封装入网络层packet(datagram)并发送给目标,重点指出网络路由器只在网络层datagram传输中涉及,也就是说它们不涉及segment被封装为datagram的阶段,在接收方,网络层从datagram中提取出segment然后向上传输给传输层,传输层处理收到的segment,让接收方应用获得segment中的数据

3.1.1 Relationship Between Transport and Network Layers

在协议栈中传输层就是网络层的上一层,传输层协议是在不同主机的进程间提供逻辑通信,网络层协议是在主机间提供逻辑通信
有个很好的例子来说明网络层和传输层的关系,东西海岸各有一个房子,每个房子里各有12个小朋友,他们每周都要给彼此写一封信(总共144篇),然后在这两边的12个孩子(cousins)中都分别有个孩子(Ann and Bill)负责收集信件交给邮差和从邮差那里收到信件并分发给其他孩子,
这个例子中,邮递服务提供了两个房子间的逻辑通信——从一个房子到另一个房子,不是从一个人到另一个人,另一方面,那两个负责收集分发的孩子提供了孩子间的逻辑通信,从孩子们的角度,那两个孩子就是mail service,即使这两个孩子仅仅是这个端对端传输进程中的一部分,这个例子中:
application messages = letters in envelopes
processes = consins
housts = houses
transport layer protocol = Ann and Bill
network-layer protocol = postal service
沿着这个例子继续,我们知道Ann和Bill只是在各自的家里工作,一样的,传输层协议在终端中,把message从应用进程送到network edge(就是网络层),反过来也如此,但是它并不涉及message是怎么在网络核心传送的,如上图中,中间的路由器不会受到传输层加在message上的信息的影响
假设现在Ann和Biill去度假,Susan和Harvey来替代他们,然而不幸的是他们两个不再固定的日期进行收发,不频繁而且经常丢信件, 因此这两个人和Ann和Bill提供的服务是不一样的,做个类比,计算机也会有不同的传输层协议,每个协议大概会提供给应用不同的服务
像Ann和Bill的服务会受到邮差的影响一样,传输层的服务也会受到网路层的影响, 如果网络层不能在主机间提供带宽和延迟保证,那么传输层也就无法在进程间提供这种保证,但是网络层协议不提供的服务有时传输层也可以提供,例如,即使下层的网络层不能提供可靠地数据传输,上层的传输层也可以提供这种服务,也就是说即使网络层协议丢失,篡改或者复制了packet,另一个例子,传输层协议可以通过加密保证应用消息不被入侵者读到,即使网络层不能给传输层segment提供这种保障

3.1.2 Overview of the Transport Layer in the Internet

回想下互联网,或者更通常的说TCP/IP网络,为应用层提供两个截然不同的传输层协议,UDP和TCP,当开发网络应用的时候,开发者必须得在其中选择,在2.7节我们看到,当创建sockets的时候开发者需要在其中选择
在TCP和UDP的简介之前,来说一点网络层的东西是很有用的,互联网的网络层协议叫做IP(Internet Protocol),IP提供计算机间的逻辑通信,IP服务模型是一个best-effort delivery service,就是说IP会尽最大努力来在计算机之间传输segments,不会保证segments的有序传递,也不能保证segment中数据的完整性,所以是被称为unreliable service,每个host至少有一个网络层地址,所谓的IP,
简要的说完IP之后我们来说UDP和TCP,它们最基本的职责就是把IP提供的终端系统之间的通信扩展到运行于终端系统上的进程之间的通信,把host-to-host传输扩展为process-to-process传输被称为传输层复用和分用,UDP和TCP还通过在segment header包含error detection fields来提供完整性检查,这两个最小的服务——process-to-process数据传输和错误检查是UDP唯二提供的服务, IP和UDP都是unreliable service
TCP为应用提供些其他的服务,首先是reliable data transfer,用flow control,sequence number,acknowledgements,timers等技术,TCP保证在进程间的传输是有序的,TCP因此把IP的不可靠的终端系统间的服务变成可靠的进程间的服务,TCP还提供congestion control,这个服务通常是提供给Internet多一些而不是给应用,笼统的讲,TCP congestion control让所有的TCP连接都不会因为过大的流量淹没正在交流的计算机间的链接的路由,TCP努力让每个连接能平等的享有带宽,通过控制发送端能发送到网络中的速率来控制,而UDP就是无调节的,使用UDP协议的应用可以用它开心的速率发送它开心的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值