计算机网络·感觉Java研发计算机网络只要会者几道就够了其他很少考

如果对您有帮助,麻烦右边点个赞哦~~

 

如有错误欢迎指出哦

 

考频由高到低

 

  • 三次握手的过程?为什么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 邮件接收协议

    • UDP对应的协议:

      •  

        DNS 53

         

         

三次握手

 

【运维方向优先】a. 请描述TCP协议3次握手建立连接的过程。b. 为什么协议设计是3次握手连接建立而不是2次或4次,如果2次有什么问题,如果4次有什么问题?

非常重要,一定要背熟

a .  

  • 面试用·计算机网络·白话三次握手和四次挥手.note

 

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基于TCP连接
        • HTTP数据包会嵌入在TCP报文段中
        • 域名解析中的DNS进行地址解析环节
  • 网络层 
    • TCP报文段再嵌入IP数据包中 
    • 通过查找路由表决定到达服务器的路径。
    •  ARP协议进行地质解析
  • 链路层   
    • IP数据packet嵌入到Frame,传输Frame
    • 客户的包通过链路层发送到路由器,ARP(地址解析协议)根据给定的服务器IP地址获取对应的物理地址
  • 物理层
    • 传输bit
  • 传输层
  • 网络层
  • 会话层
  • 表示层
    • 将数据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地址)返回。

    •  

 

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值