即将参加今年的秋招,校招比较考核学生的底层知识,开始撸操作系统、计算机组成原理、计算机网络以及Java的知识了。希望能在2020年本就不怎么友好的一年收获理想的Offer。
计算机网络根据OSI模型可以分为7层,依次为:
- 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
根据TCP/IP模型分为四层,依次为:
- 网络接口层、网际层、传输层和应用层
一般我们学习的是五层结构,依次为:
- 物理层、数据链路层、网络层、传输层以及应用层。
- 同一层使用相同的协议。
- 下层对上层是透明的(透明意思是不可见)。即上层协议不需要理会下层协议是如果完成的,只需把数据传递到下层,从下层接收数据。
下文以五层模型讲解
又名实体层,就是用有线线路或无线线路建立、维护、断开物理连接,传递0、1数据。
通信方式
单工通信:只能单向传输。
半双工:双向交替传输,即同一时刻只有一方可以传输。
全双工:双向同时传输。
作用就是将网络层交下来的数据封装成帧交给物理层,以及将从物理层接收的帧解析出数据交给网络层。
基本问题
- 目前数据链路层广泛使用循环冗余校验(CRC)来检查比特差错,由硬件完成。
基本服务
数据链路层提供三种服务:
- 无确认的无连接服务:
主机间双方通信前不建立连接,也不对数据帧进行确认,适用于局域网。 - 有确认的无连接服务:
主机间双方通信前不建立连接,但会对每一数据帧中进行确认,并具有超时重传功能。 - 有确认的面向连接服务:
是最复杂的服务,源主机和目的主机在通信前须建立连接以保证数据可靠传输,传输过程分为建立连接、数据传输、断开连接三个阶段。
信道分类
信道分为广播信道和点对点信道
广播信道
进行一对多通信
冲突解决
信道复用技术
-
波分复用
光的频分复用。由于习惯用波长而不是频率来表示光载波。本质上是频分复用。
CSMA/CD协议 (京东)
CSMA/CD(Carrier Sense Multiple Access/collision detection,带有冲突检测的载波侦听多路存取)
-
多路存取
说明这是总线型网络,许多主机以多点的方式连接到总线上。 -
载波侦听
每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。 -
冲突检测
在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
点对点通信
将数据报从一台主机移动到另一台主机,从而提供了主机到主机的通信服务和各种形式的进程到进程的通信。
IP数据报格式
广播地址
主机位全为1
网络地址
主机位全为0
私有地址
所谓私有地址即不能应用在互联网上,而被用在局域网络中的地址。在访问外网时需要进行NAT转换。
A类私有地址:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0~192.168.255.255
子网掩码(腾讯)
将某个IP地址划分成网络地址和主机地址两部分。
由于分ABCDE类地址往往达不到最优的主机数,因此我们可以用子网掩码将地址进行精细分割。
用IP和子网掩码想与得到网络号和主机号
NAT地址转换(欢聚时代)
-
静态NAT
将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。 -
动态NAT
将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。实际上仍然时一对一的关系,只不过可以动态绑定。 -
PNAT 端口网络地址转换
以上两种都没有实现多对一的映射关系。而端口网络地址转换加入了端口的概念,用端口来区分用户,从而实现了多对一的关系。端口地址转换由路由器统一分配。
端口映射
TIME_WAIT=2MSL的原因:
防止已失效的报文段出现在本连接中
为了可以重传ACK,让被动关闭方收到
大量 TIME_WAIT:
原因:主动方请求断开连接,但是最终状态没有改变。
危害:占用系统资源,降低系统的吞吐量。
确认情况:
统计机器中网络连接各个状态个数
排查:根据实际情况
可靠传输
可靠传输主要依赖以下几点:
- 序号:数据被分割成TCP认为最适合发送的大小,并且可以依据序号进行重排序再提交给应用层
- 确认机制:发送报文后等待确认报文
- 重传机制:没有收到确认报文,重发数据
- 流量控制(端到端):利用滑动窗口控制发送速率
- 拥塞控制(全局):当网络拥塞时,减少数据的传输量
- 校验和:确认数据准确性,错误丢弃且不确认。
-
流量控制(欢聚时代)
为了避免发送方速度太快,接收方处理不过来导致丢包现象严重的情况,我们对发送方发送速率的控制,称之为流量控制。
滑动窗口:
滑动窗口类似缓存的概念,是接收方最大缓存的大小,用来告知发送端,接收端最大缓存大小,从而控制发送端的发送速率,达到流量控制的目的 -
拥塞控制
与流量控制不同,流量控制的约束是因为接收端的性能,而拥塞控制的约束是传输时的网络性能。
当达到网络阻塞后,会修改拥塞窗口,控制发送端的发送速率。
-
慢开始
指 TCP 开始发送设置 cwnd=1,指数级,由小到大逐渐增加拥塞窗口的大小。由图0-4轮次可以看到
慢开始门限(ssthresh 状态变量):
当 cnwd<ssthresh,使用慢开始算法
当 cnwd=ssthresh,既可使用慢开始算法,也可以使用拥塞避免算法
当 cnwd>ssthresh,使用拥塞避免算法 -
拥塞避免
当拥塞窗口cnwd达到慢开始门限时,代表即将出现网络阻塞。例如一次性放20台车后就容易造成堵车了。我们就改成21台、22台这样放行,不再指数增长。 -
应用层应用层,即面向应用专用协议,如POP3 SMTP IMAP邮件协议,DNS 域名系统,HTTP 超文本传输协议、FTP 文件传输协议。但是网络应用是计算机网络存在的理由,如果我们不能构想出任何有用的应用,也就没有任何必要去设计支持它们的网络协议了。
DNS
-
断点续传
由于FTP是顺序接收文件的,所以只要计算已接收的数据大小,就可以知道断点在文版件的偏移量,续传时权,客户端将已接收的数据量传递给服务器,服务器使用这个做为偏移量继续读取文件,将剩余的数据发送至客户端,客户端仅需将接收到的数据追加至原文件尾部即可。 -
匿名FTP (欢聚时代)
匿名FTP解决了不用注册、登录、授权,可以访问远程主机文件。
HTTP
超文本传输协议
-
方法
GET、POST、PUT、DELETE、HEAD、CONNEXT、OPTIONS、TRACE、PATCH -
状态码
200 OK
204 服务器处理完成,但无数据返回
301 永久重定向
302 临时重定向
303 其他,如负载均衡
403 没有权限,请求被拒绝
404 页面没有找到
500 服务器执行请求时发生错误
502 网关或代理执行操作时发生上游服务器错误响应
503 服务器停机维护或超负载中,无法响应请求
504 网关或代理没有在时间范围内收到上游服务器响应 -
———————————————————————————————————————
有什么问题可以评论或者私信我,每日在线解(LIAO)疑(SAO)。
-