参考书籍《计算机网络》第六版,作者谢希仁,电子工业出版社
总结在这里方便复习
OSI
- OSI(Open System interconnection)
开放式系统互联
- OSI七层 体系结构
物理层,数据链路层,网络层,运输层,会话层,表示层,应用层
- TCP/IP四层体系结构
网络接口层,网际层,运输层,应用层
- OSI简化的五层结构
物理层,数据链路层,网络层,运输层,应用层
- 进程(线程+内存+文件/网络句柄)
主机中正在运行的程序,进程是线程的容器
- 线程
操作系统能调度的最小单位(栈+PC+TLS)
- TCP(Transmission Control Protocol)
面向连接的数据传输服务,可靠
- UDP(User Datagram Protocol)
无连接的数据传输服务,不保证可靠
运输层 and 数据链路层
- 运输层
主机中的进程之间的通信提供数据传输
- 数据链路层
将IP数据包封装成帧
- CDMA:码分复用
分配的码片正交,规格化内积 S = 1 m × ∑ S i T j S=\frac{1}{m}\times{\sum{S_{i}T_{j}}} S=m1×∑SiTj
- 帧的组成
帧首部(Start Of Head(SOH))+IP数据报+帧尾部(End Of Transmission(EOT))
- 透明传输
无论什么样的数据都能够通过,无阻碍,故叫透明传输
- 差错检测
常用CRC(循环冗余检验):加n位冗余码,公式 C R C = 2 n M + F C S CRC = 2^{n} M + FCS CRC=2nM+FCS,
其中FCS需要做二进制的除法得到,
根据多项式的最高位确定除数,
比如 P ( x ) = X 4 + 1 P(x)=X^{4}+1 P(x)=X4+1对应的二进制的除数为:10001,
再与待检验的数据相除,得到的余数就是FCS,称为帧检验序列
添加到末尾构成CRC码
== 采用CRC之后缺少重传机制,仍然不可靠==
- PPP协议(point to point)
简单,只检测,不纠正,不用序号,不进行流量控制,首部尾部均为7E定界符
- 零比特填充:
连续的5个1之后加0,确保没有连续的6个0与定界符冲突
- 帧和真实数据的相互转换
PPP帧到真正数据:7D5E->7E,7D5D->7D
真正数据到PPP帧:7D5E<-7E,7D5D<-7D
网络层
- 与IP协议配套使用的三个协议
ARP协议(address resolution protocol):地址解析协议,从IP地址到物理地址(MAC地址)
ICMP协议(Internet Control Message Protocol):网际控制报文协议
IGMP协议(Internet Group Management Protocol):网际组管理报文协议
- 硬件地址;物理地址;MAC地址
硬件地址=物理地址=MAC地址
- 真正的网络地址
真正的网络地址 = IP地址 & 子网掩码
- CIDR:无分类编址
直接举例:
带前缀的网络地址:128.14.35.7/20
斜线后面20代表20位为前缀,其余的地址可分配
最小地址为: 10000000 00001110 0010 0000 00000000
最大地址为: 10000000 00001110 0010 1111 11111111
运输层
- TCP和UDP
面向连接的TCP和无连接的UDP
- UDP:无连接尽最大努力交付(不可靠),面向报文,无拥塞控制,1对1,1对多,多对1,多对多
- TCP:面向连接,全双工(可靠),面向字节流,点对点(1对1)
- TCP把连接作为最基本抽象
- TCP连接的端点叫套接字(socket)
- 可靠传输——停等协议(ARQ)(Automatic Repeat Request)
主要采用了超时重传的策略
- 连续ARQ协议
按序抵达的最后一个分组确认,滑动
- TCP组成
TCP = IP首部+数据报文段
- TCP流量控制(点对点的流量控制)
目的:发送不要太快,让接收方来得及接收
做法:可变窗口的滑动窗口
- TCP拥塞控制
目的:防止过多数据注入网络,使得路由器过载
做法: 慢开始(从小到大缓慢增加窗口大小),拥塞避免(从小到大缓慢增加拥塞窗口),快重传,快恢复
- 死锁
网络的吞吐量=0.指的就是死锁
- TCP三次握手
通俗描述:
A:我准备好发数据了
B:好的,发吧
A说:那我开始发
为什么多加一次确认是为了避免因为网络时延导致的A失效的请求又重新发送到B,发生错误
- TCP 四次放手
通俗解释:
A:我完事儿了
B:好的我准备一下,看一下有哪些需要关闭的(处于半关闭状态)
B:我准备好了
A:妥
四次放手相比三次握手,是让A多等待一次,给B足够的时间关闭响应的服务
应用层
- 域名系统 DNS(domain name system)
- 文件传输协议FTP(file transfer protocol)
- 远程终端协议(TELNET)
- 用户点击一个HTTP链接的完整过程:
抽象表达:监听TCP80端口,有请求服务就建立TCP连接,响应完毕释放
具体表达:
1.分析URL,向DNS发送请求,解析IP地址
2.建立TCP连接
3.执行需要的读写文件等操作
4.返回响应页面
5.释放连接
- cookie
识别码,记录用户的操作行为或者数据,保存下来方便重用
- SMTP(simple mail tranfer protocol)
建立连接,邮件发送,释放连接
- POP3
在服务器端即读即删
- IMAP
支持不同地方,不同的电脑还能查看自己的邮件
- 常见的加密方式:
对称秘钥,数字签名