专栏首页陈黎栋的专栏啦计算机网络·感觉Java研发计算机网络只要会者几道就够了其他很少考

计算机网络·感觉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 .

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地址)返回。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [总目录]JanusGraph重要笔记

    JanusGraph数据库配置(官网中文翻译).https://blog.csdn.net/wzwdcld/article/details/82082760

    陈黎栋
  • 基于栈和队列实现括号匹配算法

    视频 http://study.163.com/course/courseLearn.htm?courseId=555010#/learn/video?l...

    陈黎栋
  • 计算机网络·基础知识·面经·HTTP

    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 需要一些实战

    陈黎栋
  • 地址栏中输入网址后发生了什么?

    网址的学名叫做统一资源定位符(Uniform Resource Locator, 常缩写为URL), 我们知道现在的互联网其实就是由众多资源所构成的一张巨大的网...

    Java3y
  • 旧闻系列-简单理解TCP/IP

    周末无意中发现了之前写的一些笔记,不管是技术还是感悟,现在看起来一些笔记还是比较有意思的,不知道当时是看到了一段文字记下来还是看了某个文章写了读后感,可以再做整...

    春哥大魔王
  • 网络基础意淫篇

    最重要的一点就是如果您觉得对您有帮助,希望可以点个在看,或者点一点文章中最下面的广告,给小编我加个鸡腿,毕竟小编写文章也是很辛苦的,非常感谢

    公众号---志学Python
  • 计算机网络基础知识总结

     为了使不同计算机厂家生产的计算机能相互通信,在更大范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/R...

    mathor
  • TCP/IP协议模型

    OSI参考模型虽然是ISO给出的,但是ISO在推进OSI协议标准化的进程上是比较缓慢的。而TCP/IP协议的标准化进程是相当快速的,因此现阶段的实际标准是TCP...

    zy010101
  • HTTP笔记_02_HTTP的网络分层模型

    1. 链接层(link layer),负责在以太网、WIFI这样的底层网络上发送原始数据包,工作在网卡这个层次上,使用MAC地址标记网络上的设备,所以有时候也叫...

    码农帮派
  • TCP/IP参考模型

      TCP/IP模型是网络通信模型的一种。网络通信模型还包括OSI,旨在使各种计算机在世界范围内互连为网络。其中有OSI为七层模型、TCP/IP为四层模型,现在...

    那一叶随风

扫码关注云+社区

领取腾讯云代金券