计算机网络
一、历史
第一代:单计算机为中心的联机系统,只能内部交流不能跨机交流。
第二代:计算机与计算机互联网络,主机既做数据处理,又做通信。
第三代:计算机网络进入标准化发展,网络协议的产生。
1、ARPANET标准协议
2、TCP/IP协议
3、OSI/RM规范
第四代:国际化互联网的诞生与发展。
1、ARPANET(维护费用高)划分为民网和军网
2、1990年,民网改为internet
二、OSI/RM模型
ISO(国际标准化组织)推出因特网的协议规范,OSI/RM开放系统互联参考模型,为开放式互联信息系统提供了一种功能结构框架。
1、物理层
只负责传输二进制比特流。
功能:1、为数据链路层提供服务,从数据链路层接收的数据,按照规定的形式传送。
2、向数据链路层提供数据
2、数据链路层
将上层数据封装成帧。(除了封装还要出错)
功能:1、为了提供低出错、高可靠的数据链路
2、为了协调主机和通信设备的数据传输率
3、网络层
负责路由寻址和广播。
路由:路由器从一个接口上接收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。
功能:1、路由的选择和中断
2、控制分组传输系统的操作
3、控制流量以防网络过于拥挤
4、建立和撤销网络连接
5、根据传输层的要求来选择服务
4、传输层
负责建立一个可靠的端到端的连接。(发送端、接收端;建立维护和拆除连接)
5、会话层
功能:1、负责传输层建立维护和拆除会话连接的监督
2、管理会话
3、同步数据
6、表示层
负责表示数据形式,完成对传输数据的转化。(格式化,加密解密,压缩解压缩)
通信原理
1、数据通信原理:发送端自上而下传输,接收端自下而上传输。
2、对等会话原理:发送端和接收端只有在对等层才可以进行通信,不同层次的数据格式不一样。
会话层、表示层、应用层:报文
传输层:报文或报文分段
网络层:分组
数据链路层:帧
物理层:比特流
定义: 报文:一次性要发送的数据块
报文分段:传输过程中会不断的封装成分组、包、帧来传输
分组:网络系统把数据分割成小块,然后逐块进行发送
原理:发送端每经过一层都要在原数据上进行协议封装,即最前面加一个本层所使用的协议头,接收端每经过一层都要对原数据进行协议解封装,去掉前面的协议头。
封装原理图:
三、TCP/IP
应用层:数据段(整体发送)
传输层:数据包(局部划分数据块)
网络互联层:数据帧
网络接口层:比特
1、网络接口层
osi/rm模型对应的物理层和数据链路层。
功能:物理连接的基础之上,实现逻辑链路的连接。
协议:(四个)
1、slip协议(串行线路ip协议):即在串行线路上封装ip数据报,用于拨号连接。
缺点:没有差错校验机制。1、发送之前必须知道对方的ip地址2、采用slip不能使用其他协议。
2、ppp协议(点对点协议):
特点:1、用于串行、并行线路上的拨号连接2、解决slip存在的问题。
3、ARP协议(地址解析协议):根据ip地址获取目标设备的mac地址,保证通信的顺利进行。
mac地址:物理地址、硬件地址,mac地址一样,代表同一台电脑。
4、RARP协议(反向地址解析协议):即mac地址对应ip地址。
2、网络互联层
osi/rm模型对应的网络层。
功能:不同的网络之间进行路由寻址,传递数据报。
协议:(两个)
1、ip协议(路由寻址):1、无连接不可靠的协议(不保证数据的有序到达)2、负责在主机之间寻址3、设定路由
2、icmp协议(因特网控制消息协议):1、报告错误(网络错误、主机故障灯)2、控制消息3、ping程序(用于检查网络通不通,实际上也是icmp协议的工作过程)
icmp提供一致易懂的出错报告信息,发出的错误报文返回到发送原数据的设备,发送设备随后根据icmp报文确定发生错误的类型,并确定如何才能更好的发送失败的数据报。
3、传输层
osi/rm模型对应传输层。
功能:负责建立端到端的连接。
面向连接:会话建立、传输、拆除
无连接:不保证数据的有序到达
1、TCP协议(传输控制协议):面向连接、可靠、速度慢
2、UDP协议(用户数据报协议):无连接、不可靠、速度快
TCP如何可靠?
连接(三次握手)、断连(四次挥手)
相关术语:
SYN:同部位,SYN=1发送一个请求
ACK: 确认位,ACK=1确认有效,ACK=0确认无效
ack:确认号,对方发送的序号+1
seq:每次传输生成的序号
FIN:断开连接
三次握手:
四次挥手:
端口号:
一个端口号代表一个应用程序。
端口有什么作用呢?
一台拥有ip地址的主机可以提供许多服务,这些服务完全可以通过一个ip地址来实现。主机区分不同的网络服务,不能只靠ip地址,因为ip地址与服务的关系是一对多的关系,实际上是通过“ip地址+端口号”来区分不同的网络服务的。netstat -a -n 查看端口号
4、应用层
osi/rm模型对应点额会话层、表示层、应用层
FTP:文件传输协议
HTTP:超文本传输协议
DNS:域名系统 域名解析为ip地址
TELNET:远程终端协议
IMAP:internet邮件访问协议
POP3:邮局协议版本3
dns解析的原理:
1、递归查询:dns客户机发送到dns服务器的查询,即使dns服务器没有请求的信息,它也会联系其他的dns服务器。
2、重复查询:dns客户机允许dns服务器根据自己的高速缓存提供最佳答案。也就是说ip地址会缓存在本地,等到下次查询时,直接本地查询。
dns解析原理图:
四、ip地址计算
ip地址:32位长 分为四组每组八位 每组范围0~255 网络位+主机位构成
网络类 网路号范围 网络位 最高位
A 1~127 8位 0
B 128~191 16位 10
C 192~223 24位 110
127.0.0.1:指本机,本地访问。
子网掩码:帮助做ip地址运算,用来判断任意两台计算机的ip地址是否属于同一子网。
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
如何判断是否在同一个子网中:1、ip地址和子网掩码转二进制2、ip地址和子网掩码二进制与运算3、判断与运算结果是否相同,如果相同则在同一个子网当中。
五、命令
检查配置:ipconfig/all
all:检查网络配置的详细信息
displaydns:显示dns解析缓存的内容
flushdns:成功刷新dns解析缓存
六、常见面试题总结
1、打开一个项目网址中间发生了什么?(输入一个url网页发生了什么?)
1、dns解析:重复查询、递归查询(域名转换成ip地址)2、tcp连接(三次握手)3、发送http请求4、服务器处理请求并返回报文5、浏览器解析并渲染页面6、连接结束
2、http状态码
200-请求成功;
301-网页被永久转移到其他url上,302-临时移动;
404-找不到网页,403-拒绝请求,408-请求超时;
500-内部服务器错误,503-暂时无法处理请求;
3、https\http区别
(1)http协议运行在tcp上,所有的数据以明文的形式传输;https以ssl为安全基础,提供数据加密和身份认证,更安全
(2)https比http耗费更多的资源,响应的速度也更慢
(3)https和http完全不同的连接方式,https端口号443,http端口号80
(4)https通常不是免费的
4、tcp/udp区别
tcp:
1、面向连接、可靠,无差错、不丢失,数据按顺序到达;
2、面向字节流
3、对系统资源要求较多,传输速度慢
4、适用于对可靠性要求较高的场景,比如文件的传输等
udp:
1、无连接、不可靠,不保证数据的有序到达
2、面向报文
3、对系统资源要求较少,速度快
4、适用于实时性要求较高的场景,比如微信视频通话等
5、四次挥手等2msl的原因
服务器端最后一次发送FIN关闭请求之后,客户端向服务端发送确认请求报文需要1msl的时间,如果服务器端没有收到确认请求的话它会再次发送一个FIN请求,也需要1msl的时间,因此如果2msl之后没有收到服务器端发送的关闭请求,即为已经关闭。
6、为什么三次握手?为什么四次挥手?
三次握手:
第一次握手,如果服务端接收到了客户端发送的请求,那就说明客户端发送能力没问题;第二次握手,如果客户端接受到了服务端的确认和请求,那就说明服务端的接收能力没问题以及发送能力没问题但是两次握手它没有保证客户端的接收能力没问题,所以第三次握手,如果服务端接收到了客户端的请求,那才能就说明客户端接收能力没问题。
四次挥手:
客户端发送了关闭请求表名客户端不再发送数据了,但是服务端可能还有数据要发送,发完数据之后再关闭请求。
7、cookie和session的区别
都用于给无连接的http提供身份认证的功能。
1、cookie是存放在客户端,用于记录用户信息的; session存放在服务端,用于记录用户的状态
2、cookie不太安全,可以通过分析本地的cookie进行cookie欺骗,session存放在服务器中,安全性高
3、单个cookie保存数据有限制,session对存储数据量没有限制
8、get和post的区别
1、get传送数据量有限制,只接受acsii字符,只支持url编码,不能改变服务器的数据,post传送数据量无限制,接受字符无限制,支持编码无限制,post能改变服务器的数据;
2、get请求可以被浏览器主动缓存,post不会除非手动设置
3、get请求参数会被完整地保存在浏览器历史记录中,post请求参数不会保留
4、get数据明文存放在http请求行的url之后,post则是将提交的数据方法http请求报文的请求之中。
9、ip地址和mac地址的区别?为啥有了ip还要有mac?
mac地址是网络中每个设备都有的一个唯一网络标识;ip地址只是逻辑上的标识,任何人都能随意修改。
但是只用mac地址无需杂乱没有明显的规则,难以查找;ip地址类似通讯地址,可以根据网络号找到子网再定义主机,逐级查找。
10、说一说电脑网络故障,以及如何排除?
在命令提示符窗口中输入“ping 127.0.0.1”,数据显示在本机分别发送和接收了四个数据包,丢包率为0,可以判断本机网络协议工作正常,如果显示“请求超时”,则表明本机网卡的安装或tcp/ip协议有问题,接下来就是检查网卡和tcp/ip协议,卸载安装后即可。
确认127.0.0.1地址能被ping通的情况下,继续使用ping命令测试本机ip地址能否被ping通,不能说明网卡驱动程序不正确,或者网卡与网线之间连接有故障,也有可能是本地的路由表面收到了破坏,此时应该检查本机的网卡状态是否为已连接,网络参数是否设置正确,如果正确可是ping不通,应该重新安装网卡驱动程序。丢失率为0,可以判断网卡安装配置没有问题,工作正常。
全部评论
(0) 回帖