文章目录
- 一、计算机网络总说
- 二、TCP相关
- 三、ARP与ARQ
- 四、各种协议
- 五、不动脑子的问题
-
-
- 5.简述一下ping的原理
- 5.简述IP地址的分类?
- 5.有哪些私有(保留)地址?
- 5.一些常见的端口号及其用途:
- 5.说一说TCP的三次握手
- 5.为什么TCP要三次握手
- 5.TCP建立连接时为什么要传回SYN
- 5.传了 SYN,为啥还要传 ACK
- 5.SYN 攻击
- 5.TCP为什么要四次挥手
- 5.四次挥手中,为什么客户端最后还要等待2MSL?
- 5.为什么建立连接是三次握手,关闭连接确是四次挥手呢?
- 5.流量控制
- 5.拥塞控制
- 5.拥塞控制与流量控制的区别
- 5.在浏览器中输入url地址到显示主页的过程(重点)
- 6.HTTP协议包括哪些请求?
- 5.HTTP长连接,短连接
- 5.HTTP 1.0和HTTP 1.1的主要区别是什么?
- 5.HTTP 和 HTTPS 的区别?
- 5.交换机与路由器有什么区别?
- 5、网桥的作用?
- 5、说说静态路由和动态路由有什么区别。
- 5. HTTP协议之响应状态码
- 5.转发和重定向的区别
- 5.关于get和post的区别(面试常问!)
- 5.HTTP是不保存状态的协议,如何保存用户状态?
- 5.Cookie的作用是什么?和Session有什么区别?
- 5.如何在服务端使用 Cookie 呢?
- 5.如何使用Session进行身份验证?
- 5.如果没有Cookie的话Session还能用吗?
- 5.为什么Cookie 无法防止CSRF攻击,而token可以?
- 5.什么是 Token?什么是 JWT?如何基于Token进行身份验证?
- 5.什么是OAuth 2.0?
- 5.什么是 SSO?
- 5.SSO与OAuth2.0的区别
- 5.URI和URL的区别是什么?
- 5.认证 和授权 的区别是什么?
- 如何实现跨域?
- 说说HTTP协议与TCP/IP协议的关系
- 如何理解HTTP协议是无状态的?
- 什么是长连接和短连接?
- 长连接和短连接的优缺点?
-
一、计算机网络总说
1.你能说一说OSI七层模型?
1、OSI
OSI (Open System Interconnection 开放式系统互联)
OSI 是国际标准化组织ISO提出的概念模型,把网络通信的工作分为7层
OSI 定义了开放系统的层次结构,和各层应该负责的任务 ,以及各层之间的关系
OSI 没有具体指出怎样制定标准,只是提出制定标准的概念
OSI 并不是一个标准,而是一个在制定标准时,所使用的概念框架
2、七层
巧计:物理数学—网络传输——会话表示应用
物理层
物理层,定义物理设备(电缆、光纤、无线信道等)的传输标准
比如 规定网线的类型,规定光纤的接口类型(SC、ST、FC、等等…)
网卡 属于物理层
数据链路层
物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,数据链路层不仅要检错,而且还要纠错,数据链路层在传输数据的过程中,保证数据的完整性,正确性
交换机 属于数据链路层
协议
网络层
在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组和包进行传送。
路由器 属于网络层
协议
传输层
传输层,主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
比如 TCP/IP协议族 中的 1.TCP协议 2.UDP协议
协议
会话层
会话层,管理应用程序之间的通信连接
协议
表示层
表示层,保证通信语法一致
否则无法解析传递过来的数据
比如 传递加密数据时,如果对方不知道解密规则,则无法解析数据,即为通信语法的不一致
协议
应用层
应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。
应用层协议有:域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。
协议
3、传输流程图
从应用层开始,每层都会对数据头进行处理,最终通过物理层将数据发出
对方接收后,反方向解析头部,将数据分离出来
在“物理数据”中选择了后者,在“会话表示应用”中它选择了最后一个(也就是应用)
1.说一说TCP/IP四层模型
ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。
数据链路层
物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,数据链路层不仅要检错,而且还要纠错,数据链路层在传输数据的过程中,保证数据的完整性,正确性
交换机 属于数据链路层
网络层
在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组和包进行传送。
路由器 属于网络层
传输层
传输层,主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
比如 TCP/IP协议族 中的 1.TCP协议 2.UDP协议
应用层
应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。
应用层协议有:域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。
二、TCP相关
2.请简述TCP/UDP的区别
- TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
- TCP提供可靠的服务(数据传输),UDP无法保证。(这是因为TCP提供超时重发等功能;而UDP无重传机制,会发生丢包)
- TCP面向字节流,UDP面向报文
- TCP数据传输慢,UDP数据传输快
- 在一个TCP连接中,仅有两方进行彼此通信,因此广播和多播不能用于TCP
(TCP确认连接了才能传,所以可靠,但是很慢,慢的另一方面是因为它是字节流传输)
“TCP面向字节流,UDP面向报文”解释如下:
你通过TCP连接给另一端发送数据,你只调用了一次write,发送了100个字节,但是对方可以分10次收完,每次10个字节;你也可以调用10次write,每次10个字节,但是对方可以一次就收完。
UDP和TCP不同,发送端调用了几次write,接收端必须用相同次数的read读完。UPD是基于报文的,在接收的时候,每次最多只能读取一个报文。
TCP是面向连接的,所以收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。
而UDP是无连接的协议,如果一次能读取超过一个报文的数据,则会乱套。比如,主机A向发送了报文P1,主机B发送了报文P2,如果能够读取超过一个报文的数据,那么就会将P1和P2的数据合并在了一起,这样的数据是没有意义的。
2.TCP 协议如何保证可靠传输
2.TCP对应的协议和UDP对应的协议
TCP对应的协议:
- HTTP:超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
- FTP:定义了文件传输协议,使用21端口。
- SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
- POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
- Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
UDP对应的协议:
- DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
- SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
- TFTP(Trival File TransferProtocal),一个用来在客户机和服务器之间进行简单的文件传输的协议,提供不复杂、开销不大的文件传输服务。
三、ARP与ARQ
3.简述ARP地址解析协议工作原理
学习博客:第五章 链路层
首先, 每个主机会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
当源主机要发送数据时,首先检查自己的ARP列表中是否有对应的目的主机的MAC地址,如果有就直接发送数据,如果没有,就向本网段的所有的主机发送ARP数据包, 该数据包括的内容由:源主机IP地址,源主机的MAC地址,目的主机的IP地址
当本网络的所有主机收到ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址中放入到ARP响应包中,告诉源主机自己是它想找的MAC地址。
源主机接收到ARP响