运输层:为运行在不同主机上的应用进程提供直接的通信服务

计算机网络中进行通信的真正实体是位于通信两端主机中的进程

在逻辑上应用进程间在运输层上直接通信

运输层端口号

运行在计算机上的进程使用进程标识符PID来标志,不同的操作系统使用不同的继承标识符。

使用统一的方法对TCP/IP体系的应用进程进行标识。

端口号使用16比特表示,取值范围为0~65535

熟知端口号:0~1023,TCP/IP协议中最重要的一些应用协议,如:FTP使用21/20,HTTP使用80,DNS使用53

登记端口号:1024~49151,为没有熟知端口号的应用程序使用。使用这类端口号必须在IANA按照规定的手续登记,以防止重复,如:微软远程桌面使用的端口是3389

短暂端口号:49152~65535,留给客户进程训责暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用

端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中,不同计算机中的相同端口号时没有联系的

面向连接的TCP(传输控制协议)(适用于面向连接的可靠传输服务,如文件传输)

仅支持单播

TCP面向字节流,对将应用报文看作无意义的字节流进行处理

向上层提供面向连接的可靠传输服务

首部最小20字节,最大60字节

流量控制(让发送方的发送速率不要太快,使得接收方来得及接收)

利用滑动窗口机制可以实现TCP连接上的流量控制

TCP接收方利用自己的接收窗口大小限制发送方发送窗口的大小

TCP发送方收到接收方的零窗口通知后,应启动持续计时器。持续计时器超时后,向接收方发送零窗口探测报文

拥塞控制

拥塞:对网络中某以资源的需求超过了该资源所能提供的可用部分,网络性能就回变差

发送方维护状态变量拥塞窗口(cwnd),其值取决于动态变化的网络拥塞程度。

cwnd的维护原则是:网络没有出现拥塞,则拥塞窗口增大,网络出现拥塞,则拥塞窗口减小

判断网络拥塞的依据是发生超时重传

慢开始:

拥塞避免:

快重传:

快恢复:

超时重传时间(RTO)的选择:应设置为略大于报文往返时间RTT

可靠传输的实现

TCP运输链接管理

TCP的连接建立(三次握手):

解决问题:1、使双方能够确知对方存在

2、使双方能够协商一些参数

3、使双方能够对运输实体资源进行分配

过程:1、TCP客户发送TCP连接请求(SYN=1 seq=x)

2、TCP服务器发送针对TCP连接请求的确认(SYN=1 ACK=1 seq=y ack=x+1)

3、发送针对TCP连接请求确认的确认(ACK=1 seq=x+1 ack=y+1)

TCP的连接释放(四次挥手)

1、客户发送连接释放(FIN=1 ACK=1 seq=u ack=y),进入终止等待状态

2、服务器发送普通确认(ACK=1 seq=v ack=u+1),服务器进入关闭等待状态,客户进入终止等待2状态

3、服务器发送剩余数据后,服务器发送连接释放(FIN=1 ACK=1 seq=w ack=u+1),等待最后确认

4、客户发送普通确认(ACK=1 seq=u+1 ack=w+1),服务器收到后关闭进程,客户在经过2倍最长报文寿命MSL的时间后关闭进程

TCP报文段的首部格式

固定首部(20字节):源端口16比特,目的端口16比特,序号32比特,确认号32比特,数据偏移4比特,保留6比特,URG、ACK、PSH、RST、SYN、FIN分别占一个比特,窗口16比特,校验和16比特,紧急指针16比特

扩展首部:选项(最大报文长度MSS、窗口扩大选项、时间戳选项)、填充

无连接的UDP(用户数据报协议)(适用于实时应用,如视频会议、IP电话等)

UDP支持单播、多播以及广播

UDP面向应用报文,应用报文添加一个UDP首部后直接发送

向上提供无连接不可靠传输服务,对产生误码和丢失的数据仅丢弃

首部仅8字节