第8章 传输层 8.1传输层服务 8.2端口寻址 8.3Berkeley Socket 8.4建立连接 8.5传输控制协议TCP 8.6用户数据报协议UDP 8.1传输层服务 传输层是整个协议层次结构的核心,它为高层屏蔽任何与网络有关的操作,传输层是端到端协议,与使用的网络无关 向上层提供的服务 8.2端口寻址 由于传输层为上层提供复用机制,因此,当一个传输层用户希望与另一个用户建立连接时,必须指定对方传输层的接入点TSAP地址 TSAP的获取方法 服务进程固定在特定的TSAP地址上。 只适用于少数关键的服务 每个系统都有一个进程服务器,它连接在众所周知的TSAP上,用户为了与目标服务进程通信,首先必须与进程服务器通信,通过它激活目标服务进程,并获得目标服务进程的TSAP。 采用名字服务器,当新的服务被创建时,必须向名字服务器注册,给出服务名和TSAP。用户在需要相应的服务前先查找名字服务器。 与传输层一样,面向连接的网络层也有网络服务接入点(NSAP),而无连接的网络层不需要提供NSAP。 一个全局唯一的传输服务用户由{主机地址,NSAP,TSAP}标识,称为端点地址。 在TCP/IP中,NSAP可略去,TSAP称为端口号,所以{IP地址, port,协议类型}唯一标识传输服务的用户,{源/目的IP地址,源/目的端口号,协议类型}五元组标识一个数据流。 8.3 Berkeley Socket Socket到Socket的通信 TCP Client-Server交互流程 UDP Client-Server交互流程 8.4建立连接 一般来说,一个连接从连接请求的发出到接收到连接证实消息就可以建立一个连接,但当网络丢失、存储,再重传重复分组时,一个连接也会被建立多次 三次握手 主机1选择一个序号x,并向主机2发送包含该序号的连接请求TPDU 主机2应答接受连接TPDU,TPDU中包含确认号x和序列号y 主机1在其发送的第一个数据中采用序列号为x,并确认主机2的序列号y 三次握手 释放连接 8.5 传输控制协议-TCP TCP Features TCP具有以下特性 : 数据流传输(Stream Data Transfer) 全双工(Full Duplex) 复用(Multiplexing) 逻辑连接(Logical Connections) 可靠(Reliability) 流控(Flow Control) TCP Segment Format TCP Segment Format 源端口/目的端口(Source/ Destination Port ) 16位的端口号 序列号(Sequence Number ) 标识本报文段的第一个字节在数据流中的位置。 确认号(Acknowledgment Number) 标识本报文段的发送方下一个期待接收的字节编号。 段头长度(Header Length) 4bits 指明报文段长度,单位是32位,随选项长度而定 保留(Reserved):6bits,置0 TCP Segment Format - 6 Flags URG 指示紧急指针有效. ACK 指示确认段有效 PSH Push 操作,置1时,即将本段迅速发送 RST 重新连接. SYN 同步序列号,用于建立连接 FIN 发送方已发送完数据,用于释放连接 TCP Segment Format 窗口(Window) 用于流量控制和拥塞控制,窗口指示在对方确认了的字节之后还可发送的字节数。 检验和(Checksum) 用来检验TCP报头和数据的完整性,检验时,要加上伪IP头标 紧急指针(Urgent Pointer) 指向紧急数据的第一个字节,该指针仅在URG置1时有效 选项(Options ) 伪IP头标(Pseudo-IP Header) Figure: TCP Connection - Processes X and Y communicate over a TCP connection carried by IP datagrams TCP采用三次握手的方法建立连接 客户请求连接TCP段:SYN置1,ACK置0,SEQ=x 服务器响应连接TCP段:SYN置1,ACK置1,SEQ=y,ACK=x+1 客户响应连接TCP段: ACK置1,SEQ=x+1,ACK=y+1 TCP采用对称释放法释放连接 TCP的全双工连接可看成一个双单工的连接,每个单工连接都独立地释放。 通信双方必须都向对方发送FIN=1的TCP段并得到对方的应答,连接才能被释放,有四个阶段。 TCP 滑动窗口(Sliding Window) TCP 用滑动窗口进行流量控制 接收方可根据TCP剩余缓冲区的大小,指定窗口大小,当缓冲区满
原创力文档

文档评论(0)