传输层
传输服务与网络层的服务如此相似,为何还要设立两个独立的层?
用户对网络层没有真正的控制权,因为他们不拥有路由器,所以不能用更好的路由器或者在数据链路层上用更好的错误处理机制来解决服务太差的问题。唯一的可能是在网络层之上加一层,由该层来提高网络的服务质量。
如果在一个无连接的网络中,数据包被丢失或者发生错位,则传输实体可以检测到问题所在,并通过重传来弥补这种错误。
如果在一个面向链接网络中,传输体在执行一个漫长的传输任务期间,突然接到通知说它的网络层被意外终止了,而且不知道当前正在传输的那些数据到底怎么样,那么,该传输体可以与远程的传输实体建立一条新的网络层链接。利用新建立的连接,它可以相对等实体询问哪些数据已经到达,哪些数据还没有到达,然后从断开的地方重新开始向对方发送数据。
本质上,传输层的存在,使得传输服务有可能比网络服务更加可靠。而且,传输原语可以通过调用库程序来实现,从而使得这些原语独立于网络服务原语。
传输层目标:在不可靠的网络之上提供可靠的服务。传输层也可以提供不可靠的服务(数据报)。
网络服务和传输服务之间的第二个不同是,网络服务仅仅被传输实体使用,用户通常不会编写自己的传输实体,相反,许多程序可以看到传输原语。
传输原语如: LISTEN
, CONNET
, SEND
, RECEIVE
, DISCONNECT
。
数据段
传输实体之间发送的消息称为段(segment)。段(传输层之间交换的单元
)被包裹在数据包(网络层之间交换的单元)
中,而数据包责备包含在帧(数据链路层之间交换的单元)
中。