计算机网络复习笔记
概述
计算机网络由若干节点和连接这些节点的链路组成
而不同的网络之间可以通过路由器相连,组成互连网
ARPANET(单个网络)->NSFNET(三级结构互联网,主干网,地区网,校园网)->多层次ISP结构互联网
互联网组成
边缘部分:互联网的所有主机
核心部分:大量网络和连接这些网络的路由器组成。为边缘部分提供服务
通讯方式:C/S和P2P
速率:bit/s=b/s=bps,进制为10的次方。
带宽与吞吐量的单位都是bps。
发送延时=数据帧长度/发送速率
传播延时=信道长度/传播速率
总延时=发送延时+传播延时+处理延时+排队延时
延时带宽积=传播延时×带宽
延时D,网络利用率U(%),网络空闲时延时D0
D=D0/(1-U)
网络层次
物理层:提供物理传输介质
数据链路层:进行物理地址寻址,数据的成帧后在不可靠的物理介质提供可靠传输、流量控制、检错重发
网络层:对子网数据进行路由转发
传输层:提供复用和分用的功能。复用指多个进程可同时使用运输层服务,分用指运输层把数据分发给对于进程
应用层:为应用程序提供访问网络的接口
物理层
单工通信/单向通信:只能一方向其中一方发送信息
半双工通信/双向交替通信:双方都能发送/接收信息,但不能同时发送/接收信息,需交替进行
全双工通信/双向同时通信:双方都可以同时发送/接收信息
网络层
网络层只提供不可靠,无连接、无次序的数据报服务
网际协议ip
地址解析协议ARP
网际控制报文协议ICMP
网际组管协议IGMP
逆地址解析协议RARP(已淘汰)
虚拟互联网络
物理层:转发器(仅将网络扩大)
数据链路层:网桥/桥接器(仅将网络扩大)
网络层:路由器
网络层以上:网关
ip地址分类
类别 | 开始 | 结束 | 私有 |
---|---|---|---|
特殊 | 0.0.0.0 | 本网络 | |
A | 1 | 126 | 10 |
特殊 | 127.0.0.1 | 回环地址 | |
B | 128.1 | 191.255 | 172 |
C | 192.0.1 | 223.255.255 | 192 |
划分子网
ip=网络号+主机号
ip=网络号+子网号+主机号
需划分n个子网,n的二进制有m位,则需向主机号借m位。例如n={4,5,6,7}都是需要借3位都是11100000=224、所以子网掩码借位不超过8位的话。
子网数 | 2进制 | 10进制 | 子网ip数 |
---|---|---|---|
0-1 | 00000000 | 0 | 2^8-2 |
2-3 | 10000000 | 128 | 2^7-2 |
4-7 | 11000000 | 192 | 2^6-2 |
8-15 | 11100000 | 224 | 2^5-2 |
16-31 | 11110000 | 240 | 2^4-2 |
32-63 | 11111000 | 248 | 2^3-2 |
64-127 | 11111100 | 252 | 2^2-2 |
128-255 | 11111110 | 254 | 2^1-2 |
ip数据报
这玩意儿有点复杂,需要背下来吗?
ip层转发分组流程
路由器在路由表找到下一跳路由后,会由数据链路层将下一跳路由器的ip通过ARP转换为MAC并封装在帧里。下一跳路由器拿到帧后拆帧在继续如上操作
ARP
源主机会先查询自己的ARP列表是否有对应关系,如果没有则广播ARP数据表表明自己ip,MAC和要找的ip
收到后会检查找的是不是自己,非目标主机会忽略,目标主机会更新源主机的ARP信息,并响应自己是目标主机
源主机收到响应后刷新ARP,并继续操作
ICMP
用来传递差错报文。ping程序通过发送一份ICMP回送请求报文,等待ICMP回送应答。是应用层直接使用网络层而不经运输层的例子。
运输层
UDP
UDP只提供不可靠、无连接、无次序、无拥塞控制、面向报文的用户数据报服务
UDP只是在ip数据报上加了复用和分用,以及差错检测的功能
UDP数据报=UDP首部+数据。UDP首部=源端口号+目标端口号+数据报长度+校验值(ip不知道在哪了)
UDP主要使用在询问应答服务,例如DNS,DHCP。还有TFTP等
TCP
TCP是面向连接、提供可靠交付、全双工,面向字节流的
等待停止协议
A向B发送数据,然后等待确认
B收到数据,发送确认
确认丢失
A重发数据
B收到重复编号的数据,丢弃并重发确认
确认迟到
A重发数据
B收到重复编号的数据,丢弃并重发确认
A收到确认
连续ARQ协议/滑动窗口协议
A收到B的确认报文,得知窗口20,确认号31,即期望收到31,构建相对应的窗口
A的滑动窗口里的分组都可以一口气发送
B采用累积确认方式发送确认
A接收到B确认收到n个
A的滑动窗口后移n个分组
窗口头边缘:不动(没收到新确认),后移(收到新确认)
窗口尾边缘:不动(B发来窗口缩小与B收到的数据恰好),后移(窗口缩小<收到数据/收到确认),前移(TCP标准强烈不赞成,容易导致发送方错误)
超时重传
懒得写了,大体就是往返时间的前后两次的加权平均加上几倍的往返时间差
流量控制
通过B的窗口大小控制A的发送速度。避免A等非0窗口通知(但丢失了),B等数据,A有个定时器
拥塞控制
慢开始(指数增长):当拥塞窗口cwnd<慢开始门限ssthresh时,每成功一个传输轮次,拥塞窗口cwnd=×2,
拥塞避免(线性增长):否则cwnd=+1。但发送超时时,ssthresh=cwnd/2,cwnd=1,回到慢开始
快重传:B收到任何一个报文都立即返回确认号,让A尽早直到报文丢失,并可以不回去慢开始直接重传
快恢复:快重传虽然不回去慢重传,但是也要ssthresh=cwnd/2,cwnd=ssthresh,回去拥塞避免
TCP的三次握手和四次分手
见别的文章
应用层
mb,不复习了,不写了(offer要紧,offer要紧)
感想:计算机网络真是一本读不薄的书。。。
参考文献: