计算机网络读书笔记4–运输层
概述和运输层服务
- 运输层为运行在不同主机上的应用程序之间提供了逻辑通信.(而非物理通信)
- 报文段(segment):运输层将 从 发送应用程序 进程 接收到的 报文 转换成运输层分组,这个分组称为报文段.
- 网络层提供了主机之间的逻辑通信,运输层为运行在不同主机上的应用程序进程提供逻辑通信.
- 运输协议能够提供的服务常常受制于底层网络层协议的服务模型.
- UDP(用户数据报协议)为调用他的应用程序提供了一种不可靠/无连接的服务.TCP(传输控制协议)为调用它的应用程序提供了一种可靠的/面向连接的服务.
- IP协议(网际协议)为主机之间提供了罗技通信.IP的服务模型为尽力而为交付服务(best-effort delivery service),这意味着IP会”尽最大努力”在通信的主机之间交付报文段,但它不做任何确保.特别的不保证报文段的交付/不保证报文段交付的次序/不保证报文段中数据的完整性.因此,IP被称为不可靠服务
- UDP和TCP最基本的责任是:将两个端系统间IP的交付服务拓展为运行在两个端系统上的进程之间的交互服务.
- 将主机间交付拓展到进程间交付被称为运输层的多路复用和多路分解
- 进程到进程的数据交付和差错检查是两种最低限度的运输层服务,也是UDP仅通过的两种服务
- 多路分解(demultiplexing),将运输层的报文段中的数据交付到正确的套接字的工作.
- 多路复用(multiplexiong),在源主机不同套接字中收集数据块,并未每个数据块封装上首部信息(以后用于分解)从而生成报文段,然后将报文段传递到网络中的工作
- web服务器会为每一条连接生成一个新进程.
UDP
- UDP只做了运输协议能够做到最少工作.除了复用/分解功能以及少量的差错检测外,他几乎没有对IP增加别的东西.
- DNS使用的UDP协议.
- UDP的优点:
- 关于发送什么数据以及何时发送 的 应用层控制更为精细.
- 无须连接建立
- 无连接状态
- 分组首部开销小.
- 端到端原则:与在较高级别提供这些功能代价相比,在较低级别上设置的功能可能是冗余的或几乎没有价值的.
可靠数据传输远离
- 自动重传请求协议:控制 报文 使得接收方可以让发送方知道 哪些内容被正确接收,哪些内容接收有误并因此需要重复.基于这样重传机制的可靠数据传输协议成为自动重传请求协议.(ARQ)
- ARQ协议需要差错检测/接收方反馈/重传三种协议功能来处理比特差错情况.
- 停等协议:当发送发处于等待ACK或NCK的状态时,不能从上层获得更多的数据.
- 停等协议是一个形象的网络协议限制底层网络硬件所提供能力的图例.
- 解决流水线的差错的两种基本方法:回退N步和选择重传.
- 可靠数据传输机制总结为:(P151)
- 校验和
- 定时器
- 序号
- 确认
- 否定确认
- 窗口/流水线
TCP
- TCP是面向连接的,TCP提供的连接是端到端的逻辑连接.
- TCP提供全双工服务.
- 最大报文长度(MSS),TCP可以从缓存中取出并放入报文段中的最大数据数量.
- 最大传输单元(MTU),最初确定的 由本地发送主机 发送的 最大链路层帧长度.
- TCP通过使用肯定确认与定时器来提供可靠数据传输.
- TCP通过让发送方维护一个称为接受窗口的变量来提供流量控制.
- 三次握手报文段:
- 第一次:客户:SYN=1,seq=client_isn(随机选择)
- 第二次:服务器:SYN=1,seq=server_isn,ack=clinet_isn+1
- 第三次:客户:SYN=0,seq=client_isn+1,ack=server_isn+1
- 攀岩运动的攀岩者和保护者使用了相类似的三次握手通信机制.
- TCP必须使用端到端拥塞控制而不是使用网络辅助的拥塞控制,因为IP层不想端系统提供显示的网络拥塞反馈.
- TCP所采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其想连接发送的流量速率.
- TCP拥塞控制算法包括:慢启动/拥塞避免/快速恢复.其中慢启动和拥塞避免是TCP的强制部分.快速恢复为推荐部分.
- 云服务通过TCP分岔可以有效的避免时延.
- 其他的运输层协议:数据报拥塞控制协议(QCCP),QUIC(Quick UDP Internet Connections)协议,DCTCP(数据中心TCP)协议,流控制传输协议,TCP友好速率控制协议.