三运输层(一)运输层概述

一 运输层概述:

(1)概念:

运输层向它上面的应用层提供服务,属于面向通信部分的最高层,同时也是用户功能中的最底层。

网络层是为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信。

两个对等运输实体在通信时传输的数据单元叫做运输协议数据单元(TPDU,Transmission Protocol Data Unit)。

在TCP/IP协议中,根据采用不同的协议TCP或UDP,分别称之为TCP报文段UDP用户数据报


二 运输协议:

1.根据应用程序的不同需求,运输层需要两种不同的运输协议:

*面向连接的TCP(传输控制协议,Transmission Control Protocol)

*无连接的UDP(用户数据报协议,User Datagram Protocol)

当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道向相当于是一条全双工的可靠信道

当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一种不可靠信道


下图为一些应用和应用层协议使用的运输层协议:



三 端口号:

1.TCP/IP的运输层用一个16位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程和运输层交互的层次接口。16位的端口号可允许有65535个不同的端口号。


2.两个计算机中的应用进程需要通信,不仅需要知道对方的IP地址(找到对方的计算机),还要知道对方的端口号(找到对方计算机中的应用进程)。


3.运输层的端口号主要分为两大类:

(1)*服务器使用的端口号(这里又分为两类):

*熟知端口号或系统端口号:数值在0~1023之间,这些端口号由IANA来管理,Unix系统上只有超级用户的进程才允许给自己分配一个系统端口号。

*登记端口号:数值在1024~49151.这类端口号是为没有系统端口号的应用程序使用的,使用这些端口号需要在IANA登记,以防止重复。

(2)客户端使用的端口号(临时端口号):数值在49152~65535。这类端口号是留给客户进程选择暂时使用的。当服务器进程收到客户端进程的报文时,就知道了客户进程所使用的端口号。通信结束后,刚才使用的客户端端口就不复存在,这个端口可以供其他客户进程使用。

4.


四 TCP的特点:


1*TCP提供面向连接的服务。在传输数据之前必须先建立连接,数据传输结束要释放连接。


2*TCP不支持广播和多播。每一条TCP连接只能有两个端点,即每一条TCP连接只能是点对点的。

TCP连接的端点叫做套接字(socket)。根据RFC 793定义,端口号拼接(contatenated with)到IP地址即构成了套接字。

套接字 socket=(IP地址:端口号)

每一条TCP连接唯一的被通信两端的两个端点(即两个套接字)所确定:

TCP连接::={socket1,socket2}={(IP1,port1),(IP2,port2)}


3*TCP提供可靠的、面向连接的运输层服务,即通过TCP传输的数据,无差错、不丢失、不重复,并且按序到达。

因此不可避免的增加了许多开销,如确认、流量控制、连接管理等,这不仅使协议数据单元的首部增大很多(UDP首部只有8个字节,TCP首部固定20字节,后面根据需要增加),而且还占有很多处理机资源。


4*TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发生数据。TCP连接的两端都设有发送缓存和接受缓存,用来临时存放双向通信的数据。


5*面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。

面向字节流:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流,TCP不知道所传送的字节流的含义。TCP并不保证接收方应用程序收到的数据块和发送方应用程序所发出的数据块具有对于大小关系,但接收方应用程序接受到的字节流必须和发送方应用程序发出的字节流完全一样。接收方应用程序要有能力识别收到的字节流,并把它还原成有意义的应用层数据。

如下图:



五 UDP特点:


1*UDP是无连接的。减少了开销和发送数据的延迟。

2*UDP使用尽最大努力交付,即不保证可靠交付。

3*UDP没有拥塞控制:因此网络出现拥塞不会使源主机的发送速率降低。这对某些实时应用很重要。很多实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络阻塞的情况下丢失一些数据,但是不允许数据有太大的时延。UDP正好适合这种情况。


4*UDP支持一对一、一对对、多对一和多对多的交互通信。

5*UDP的首部开销小,只有8个字节,比TCP的固定20个字节要短。


6*UDP是面向报文的

*发送方的UDP对应用程序交下来你的报文,在添加首部后就向下交付给IP层。UDP对应用层交下来的报文,既不合并也不拆分,而是保留这些报文的边界。

*接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动的交付给上传的应用进程。

*即UDP一次交付一个完整的报文。因此,应用程序必须选择合适大小的报文。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率;若报文太短,UDP把它交给IP层时,会使IP层的首部的相对长度太大,这也降低了IP层的效率。

如下图:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值