计算机网络·感觉Java研发计算机网络只要会者几道就够了其他很少考
- 2020 年 2 月 18 日
- 筆記
如果对您有帮助,麻烦右边点个赞哦~~
如有错误欢迎指出哦
考频由高到低
- 三次握手的过程?为什么3次,不能是2或者4?
- 四次握手过程? 有什么问题?
- 问题:syn flood攻击
- 面向连接和面向非连接的比较;
- 面向连接通信前会先建立连接,受监控,安全, 可靠;面向非连接反之,发送想发信息就可以发,速度更快
- TCP和UDP的比较
- TCP面向连接,UDP面向非连接
- TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
- TCP对应的协议:
- HTTP 80 HTTPS 8080
- FTP 21 SSH 22 telnet 23
- mysql 3306
- SMTP 25 邮件传送协议 POPS 110 邮件接收协议
- HTTP 80 HTTPS 8080
- UDP对应的协议:
- DNS 53
三次握手
【运维方向优先】a. 请描述TCP协议3次握手建立连接的过程。b. 为什么协议设计是3次握手连接建立而不是2次或4次,如果2次有什么问题,如果4次有什么问题?
非常重要,一定要背熟
a .
b. 握手达到3次使得两边都确认了通道的两个方向都是连通的,因为自己发出的包都得到了对方的回应,并且交换了初始信息(各自的包序号,窗口大小等),从而认为连接建立是合适的。
2次握手的话不足以保证通道双向正常,导致双方认知不一致,服务端会消耗不必要的资源(服务端认为连接建立,创建并维持连接状态数据,但因为单方向不通,确认包未被客户端收到,客户端认为连接不成功),同时还会存在安全问题被利用做攻击(不断发SYNC让服务端不断增加连接资源)。
4次握手的话,不比3次能提供更多的信息,多一次round-trip增大了连接建立的时间开销。
3、掌握TCP/IP协议族的结构,理解其工作原理。
- TCP/IP(协议簇)五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
- 物理层:比特Bit
- 数据链路层:将比特组装成帧,提供相邻两个端点之间的(相邻的点到点,点不只是是主机,还包括其他设备)
- 网络层:将数据帧组装成IP数据包Packet,将包设法从信源经过若干个中间节点传送到目的设备(信宿)上,点到点通信。
- 传输层:提供的就是应用程序间的通信。提供端到端(端指的是端口)的可靠报文传递和错误恢复(段Segment)
- 会话层:建立、管理和终止会话(
- 表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
- 应用层:提供一组常用的应用程序。
- 以上可能有错。
- 封装复用思想。 下层向上层提供服务,上层封装下层的数据结构
- 在浏览器中输入www.baidu.com后执行的全部过程
- 键盘硬件终端;OS处理中断,转换为特定消息放入浏览器程序的事件队列;浏览器循环处理该消息,请求网址;
- 7层网络协议
- 应用层
- 提供应用程序。
- 应用程序解析URL
- 解析出http协议,如果是Https,会检查网站是否在安全列表中
- 非ASCII转Unicode编码
- 在传输信息中加入浏览器、地区、cookie等信息
- 域名解析的应用层环节
- 表示层
- 对数据进行Encode、Decode、加密、解密、压缩等数据处理。
- 会话层
- 建立管理和终止会话。
- 进行HTTP会话 计算机网络·基础知识·面经·HTTP中的请求报文格式
- 传输层
- HTTP基于TCP连接
- HTTP数据包会嵌入在TCP报文段中
- 域名解析中的DNS进行地址解析环节
- 应用层
- 网络层
- TCP报文段再嵌入IP数据包中
- 通过查找路由表决定到达服务器的路径。
- ARP协议进行地质解析
- 链路层
- IP数据packet嵌入到Frame,传输Frame
- 客户的包通过链路层发送到路由器,ARP(地址解析协议)根据给定的服务器IP地址获取对应的物理地址
- 物理层
- 传输bit
- 传输层
- 网络层
- 会话层
- HTTP会话
- 计算机网络·基础知识·面经·HTTP中的响应报文格式
- 表示层
- 将数据decode和解压缩为HTML,CSS,JS,图片等资源
- 应用层
- 应用程序进行HTML解析、CSS解析、页面渲染等。
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
(拔高)输入URL后操作系统和计算机网络都发生了什么?
【运维方向优先】你用浏览器打开一个电商网站,准备浏览购物。从你输入完网站的网址敲下Enter键,到网站首页迅速呈现出来的这段时间,你的电脑系统里发生了哪些事情?请根据你所学的计算机知识,尽可能详细的解释。(提示:从软硬件的尽量多的层次考虑和描述。)
参考要点:回答是否从硬件(键盘网卡)、OS、TCP协议栈、运行库、浏览器、HTTP、HTML/JS等多层面描述。
参考回答:键盘硬件中断;OS处理中断,转换为特定消息放入浏览器程序的事件队列;浏览器的消息循环处理该消息,请求网址;OS请求本地域名缓存或域名服务器解析网址中的域名,得到IP;浏览器向该IP建立TCP连接(默认80端口);浏览器发送GET请求,包含网站的路径,TCP协议栈组装为TCP包,通过网卡发送;浏览器等待网站回复,进程被OS切换为等待状态;网站返回的数据到来,网卡产生中断;OS处理中断,TCP协议栈将数据读入buffer;浏览器获得数据,处理HTTP头,显示HTML网页
更多:OS发ARP包获得网关MAC地址,所有DNS请求、网站TCP等数据包均发向该网关;浏览器IO等待期间OS切换运行系统中其他进程;浏览器将HTTP头中解析出的cookie保存到文件系统;根据网页内容发起更多的HTTP请求获取图片、运行内嵌的javascript脚本等;将网页按照HTTP 头的指示缓存;将网址加入浏览历史保存到文件系统;浏览器整个处理过程中,运行库和OS对内存做相应分配释放,磁盘做相应的IO操作;。。。
*【测试方向优先】你用浏览器打开一个网站,却没有按预期看到应有的网页内容。请分析各种可能的原因,如果这些原因表现出来的现象不同,也请描述
参考要点:
人的原因:弄错网址;拼写错误;未打开网络;。。。
本机原因:浏览器版本低不兼容网页;本机防火墙阻止访问;中病毒导致浏览器工作不正常;。。。
服务端原因:服务器宕机;服务器出错;服务器高负载无法及时回应;服务器超负载主动拒绝回应;本机被服务端加入了黑名单;
网络原因:网络不通;网络拥塞;DNS解析失败;DNS解析到错误的IP;。。。
其他环境原因:域名被劫持;访问被黑客攻击;。。。
- 端口及对应的服务?
还没背会的
-
- DNS
- 默认端口号 53
- DNS域名解析过程
- 会以此查询以下缓存和服务器,直到找到网址对应的IP
- 浏览器缓存 –> 本地Hosts文件 –> 路由器缓存 –> ISP(互联网服务提供商)DNS缓存 –> 根域名服务器 –> 顶级域名服务器 –> 主域名服务器
- 在任何环节找到,会把缓存
- 浏览器检查域名是否在浏览器缓存当中。
- 如果缓存中没有,就调用库函数进行查询。库函数在进行DNS解析之前,检查域名是否在本地 Hosts 里。
- 如果域名在缓存和Hosts中都没有,库函数会向 DNS 服务器发送一条 DNS 查询请求。
- 查询本地的DNS服务器。
- 首先查询地址解析协议(ARP)的缓存,如果缓存命中,则返回结果:目标 IP = MAC地址。如果缓存没有命中,就看看目标 IP 地址是不是在本地路由表中的某个子网内,并使用相关接口。然后查询选择的网络接口的MAC地址。
- 发送ARP请求,路由器或其他硬件会返回结果(结果中包含默认网关的IP地址)。
- 通过TCP/UDP协议向DNS服务器发送相应请求。如果本地DNS服务器没有找到结果,将会逐层查询,直到结果(目标服务器的IP地址)返回。
- 会以此查询以下缓存和服务器,直到找到网址对应的IP