第一章 概述
- 因特网
从具体构成角度:节点,边(通信链路),协议(TCP/IP)。
从服务的角度:通信的分布式应用,为应用提供的服务(TCP,UDP)【通过API】。 - 网络边缘:端系统(主机),分为客户机和服务器;应用程序。
- 网络核心:数据传输的方式包括:电路交换【预留资源:频分,时分,波分】(电话)和分组交换【按需使用,每个分组包含目标主机的完整地址】(互联网)。
- 因特网的结构:网络中的网络
- 分组延时
1.节点处理延时
2.排队延时(收费站口排队)
流量强度=L(分组长度)a(分组到达队列的平均速率)/R(链路带宽)
流量强度大于1时(即当a超过了队列输出的速率),平均排队延时趋于无穷大。
3.传输延时(过收费站)
4.传播延时 (路上跑) - 分组丢失(丢包):分组到达一个满的队列时,该分组将会被怕抛弃。
- 吞吐量:源端到目标端传输的速率
- 因特网协议栈:应用层(FTP,HTTP,DNS,SMTP等),传输层(TCP,UDP),网络层(IP),链路层,物理层
第二章 应用层
- 网络应用的体系架构:客户机-服务器,对等模式,混合体。
- 进程间借助传输层提供的服务通过socket API进行通讯。
- 不同应用对于传输层的传输性能的要求不同(数据丢失率,吞吐,时间敏感性),传输层提供的服务包括TCP和UDP。
1.TCP:可靠传输,面向连接,流量控制和拥塞控制。
2.UDP:不可靠数据服务,不需要提前建立连接。
HTTP(port:80)
- 往返时间RTT:一个小分组从客户端到服务器再回到客户端的时间。
- HTTP:非持久HTTP,持久HTTP(服务器再发送响应后仍保持TCP连接)
1.持久HTTP:非流水式,流水式(客户端遇到一个引用对象就立即响应请求)
2.提交表单输入:POST,GET(输入通过请求行的URL上载) - cookies:由用户端的浏览器保存,web站点后端有数据库。为每个访问的用户设置ID。
- web缓存(代理服务器):提高速度,减少链路上的流量。
FTP(port:21)
- 控制连接(贯穿始终)+数据连接
EMail:SMTP(port:25)
- 组成:用户代理,邮件服务器,SMTP
- 使用持久连接
- 邮件访问协议:POP,IMAP,HTTP。
DNS(port:)
- 域名到IP的转换
- 分层的,基于域的命名机制(域的划分是逻辑的不是物理的)
- 本地DNS服务器:起着代理的作用,将查询转发到层次结构中
- 查询方法:迭代查询(根或各及域名不返回查询结果而是下一各DNS的地址)
P2P应用
- 没有或极少一直运行的服务器;任意端系统都可直接通信
- bitTorrent:文件被分为一个个块256KB,peers之间发送接收文件互相服务
- P2P文件共享
- 集中:单点故障,性能瓶颈,版权
- 分散
- 半分散
CDN
- 视频:使用图像内和图像间的冗余来降低编码的比特数、
- DASH:服务器分割视频,编码不同的码率。客户端根据带宽自适应地下载不同码率地块
- CDN全网部署缓存节点,存储服务内容,接近服务用户。
第三章 传输层
传输层与网络层:传输层是进程间地的逻辑通信,而网络层属于主机间的逻辑通信
多路复用与解复用
发送方对IP和端口号进行封装在接收方解封装并发给正确的套接字(和对应的应用进程)。
- 同一个端口支持来自多个IP或同一主机多端口的报文。
UDP
UDP发送端和接收端没有握手(应用:DNS,SNMP,流媒体)
- 不建立连接,简单,报文段头部很小,无拥塞流量控制
源端口号 | 目标端口号 |
---|---|
长度 | 校验和 |
报文 |
- 校验和 :报文段的加法和(1的补运算)如果溢出则回卷至最低位上。接受方对比计算出的和校验和字段是否相等
可靠数据传输(rdt)的原理
rdt1.0:在可靠信道上的可靠数据传输
rdt2.0:具有比特差错的信号(校验和,接受确认,重传)
rdt2.1:避免“确认”回复的丢失。(引入序号,停等协议)
rdt2.2:只使用ACK,当收到重复ACK时也重传
rdt3.0:具有比特差错和数据丢失的信道(超时重传;性能较差)
- 流水线协议:回退N步,选择重传
- 滑动窗口
TCP
点对点,无报文边界,管道化,全双工,面向连接
报文
确认号:期望从另一方收到的下一个字节的序号
-
可靠数据传输
累计确认,单个重传定时器
重传:超时,重复的确认 -
流量控制
在报文头部的rwnd字段中"通告"空余缓冲区的大小
拥塞控制原理
拥塞的表现:分组丢失,分组经历比较长的延迟
拥塞控制的方法
-
端到端的拥塞控制:端系统根据延迟和丢失时间推断是否有拥塞
-
网络辅助的拥塞控制:路由器提供给端系统以反馈信息
TCP拥塞控制
端到端
拥塞的检测:丢包,某个段3个重复的ACK
位置一个拥塞窗口的值:CongWin。粗略地控制发送方向网络中注入的速率$rate {\thickapprox}\frac{CongWin}{RTT}byte/sec$
当CongWin < Threshold 时,发送端处于慢启动(ss)阶段,窗口指数性增长。
当CongWin > Threshold 时,发送端处于拥塞避免(ca)阶段,窗口线性增长。
3个重复ACK,CongWin减半。超时时CongWin降维1MSS,进入ss阶段倍增至CongWin/2,之后进入ca阶段。
TCP公平性