第六章 传输层
主要内容
传输服务
传输协议的要素
一个简单的传输协议
Internet传输协议-UDP
Internet传输协议-TCP
6.1 传输服务
一、向上层提供的服务
传输层的最终目标是向它的用户提供高效的、可靠的和性价比合理的服务。
传输实体:完成传输层功能的硬软件,可能位于操作系统的内核,或者在一个独立的用户进程中,或者以一个连接库的形式被绑定到网络应用中。
一、向上层提供的服务
传输层向上层提供两种服务
面向连接的传输服务:连接建立,数据传输,连接释放
无连接的传输服务
引入传输层的原因
消除网络层的不可靠性;网络层是网络承运商控制的,传输层是用户控制的。
提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。即应用开发人员可以根据一组标准的传输层的服务原语编写代码,可以运行在各种不同的网络上,不用处理不同的子网接口。
二、传输服务原语(Transport Service Primitives)
传输用户(应用程序)通过传输服务原语访问传输服务。
一个简单传输服务的原语
二、传输服务原语(2)
传输层协议数据单元TPDU
二、传输服务原语(3)
不需要连接的时候,传输层的实体必须将它释放,释放连接的方式有两种
不对称方式:任何一方都可以关闭双向连接;
对称方式:每个方向的连接单独关闭,双方都执行DISCONNECT才能关闭整条连接。
三、Berkeley Sockets(伯克利套接字)
在UNIX中使用的TCP socket原语。被广泛应用于Internet程序设计中。
伯克利套接字应用举例 (1)
一个服务程序和几个远程客户程序利用面向连接的传输层服务完成通信。
建立连接
服务器程序
调用socket创建一个新的套接字,并在传输层实体中分配表空间,此调用的参数规定了以后将会用到的地址格式、期望的服务类型,以及所用的协议。返回一个文件描述符用于以后调用中使用该套接字;
调用bind将一个地址赋予该套接字,使得远程客户程序能访问该服务程序;
伯克利套接字应用举例 (1)
调用listen分配数据空间,以便存储多个用户的连接建立请求;
调用accept将服务程序阻塞起来,等待接收客户程序发来的连接请求。当传输层实体接收到建立连接的TPDU时,新创建一个和原来的套接字相同属性的套接字并返回其文件描述符。服务程序创建一个子进程处理此次连接,然后继续等待发往原来套接字的连接请求。
伯克利套接字应用举例 (2)
客户端程序
调用socket创建一个新的套接字,并在传输层实体中分配表空间,返回一个文件描述符用于在以后的调用中使用该套接字;
不必调用bind,因为服务器不关心客户程序的地址
调用connect阻塞客户程序,传输层实体开始建立连接,当连接建立完成时,取消阻塞;
数据传输
双方使用send和receive完成数据的全双工发送。
释放连接
每一方使用close原语单独释放连接。
计算机网络原理:第六章 传输层 来自淘豆网www.taodocs.com转载请标明出处.