网络协议相关

网络协议

  1. OSI七层结构

    • 应用层
    • 表示层
    • 会话层:半双工、单工和全双工的方式建立会话。
    • 传输层:该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。该层常见的协议:TCP协议、UDP协议。
    • 网络层:寻址
    • 数据链路层:流量控制,将物理层的数据
    • 物理层:计算机之间基础的比特流

    OSI七层模型详解

  2. OSI七层模型分别对应着五层模型的哪一部分;
    OSI模型 TCP/IP分层
    应用层(HTTP)
    表示层(HTML)
    会话层 ----------> 应用层
    传输层 ----------> 传输层(TCP、UDP)
    网络层 ----------> 互联网络层(IP)
    数据链路层(ARP)-> 网卡层
    物理层 ----------> 硬件层

  3. 网络模型的分层、IP和Mac地址在那个层、TCP和HTTP分别在那个层;

    • ip和mac地址在网络层
    • tcp在数据传输层
    • http在应用层

HTTP/HTTPS

  1. Https和Http有什么区别;
    一、HTTPS协议需要到证书颁发机构CA申请证书,HTTP不用申请证书;

    二、HTTP是超文本传输协议,属于应用层信息传输,HTTPS 则是具有SSL加密传安全性传输协议,对数据的传输进行加密,相当于HTTP的升级版;

    三、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    四、HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

    参考:https和http有哪些区别

  2. https的加密怎么实现的
    CA证书+SSL加密

  3. Http为什么是无状态的;

    1. 原先http协议只是用来访问静态页面,无需状态。
    2. 后来http协议得到广泛使用,某些场景需要记录状态,针对这种场景可以用session或者cookies来记录状态,无需对http自身进行改造。
  4. http1.0、http 1.1和http2.0的区别;


    http演化历史
    • http/1.0:如需要发送多个请求必须创建多个 TCP 连接,并且浏览器对于单域名请求有数量限制(一般6个),其连接无法被复用

    • http/1.1:引入流水线(Pipelining)技术,但先天 FIFO(先进先出)机制导致当前请求的执行依赖于上一个请求执行的完成,容易引起报头阻塞,并没有从根本上解决问题

    • http/2:重新定义底层 http 语义映射,允许同一个连接上使用请求和响应双向数据流。同一域名只需占用一个 TCP 连接,通过数据流(Stream)以帧为基本协议单位,从根本上解决了问题,避免了因频繁创建连接产生的延迟,减少了内存消耗,提升了使用性能

RPC(在dubbo篇重点看)

什么是RPC、如何实现RPC、RPC 的实现原理

网络IO

1. 什么是阻塞、非阻塞、同步、异步

2. 使用事件驱动模型实现高效稳定的网络服务器程序

参考多路复用,在netty篇重点看

连接

  1. 什么是长连接和短连接

    所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。
    短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。
    比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。
    其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。

  2. 长连接与短连接的操作过程

    通常的短连接操作步骤是:
    连接→数据传输→关闭连接;

    而长连接通常就是:
    连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接;
    这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态,短连接在没有数据传输时直接关闭就行了

  3. 什么时候用长连接,短连接?

    长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

    而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

    总之,长连接和短连接的选择要视情况而定。

TCP、IP/UDP协议(传输层)

tcp可以参照这两个文档,讲的比较清楚

深入理解TCP协议(上):理论基础

深入理解TCP协议(下):RTT、滑动窗口、拥塞处理

tcp重点关注的知识点

  1. 三次握手、四次挥手和状态流转
  2. 建立socket依靠多路复用
  3. 失败重传
  4. 重复数据处理
  5. 可靠传输、包乱序问题
  6. 流量控制(滑动窗口)
  7. 拥堵处理(粘包、拆包)

知识点列表

  1. 全双工、半双工、单工

    • 全双工(Full Duplex)是指在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的网卡一般都支持全双工。
    • 半双工(Half Duplex),所谓半双工就是指一个时间段内只有一个动作发生,举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是基于半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台.
    • 单工通信是指通信线路上的数据按单一方向传送.
  2. 三次握手
    建立连接前的校验动作,确保双方都是可以接收数据的。

  3. 为什么握手不是两次或者四次,是三次?
    TCP 需要 seq 序列号来做可靠重传或接收,而避免连接复用时无法分辨出 seq 是延迟或者是旧链接的 seq,因此需要三次握手来约定确定双方的 ISN(初始 seq 序列号)。

  4. TCP三次握手数据丢失了怎么办?那如果后面又找到了呢?
    数据丢失,快速重发(SACK)
    重复数据过滤,Duplicate SACK,当ack大于后面的SACK时,发送方就知道这个数据已经发送过,丢失的应该是ACK。

  5. TCP的失败重传

    1. 超时重传
    2. 快速重传
    3. SACK方法
    4. Duplicate SACK方法
  6. 四次挥手是什么,为什么不能减少为三次,或者变得更多?

    四次挥手是啥

    为什么最后一次挥手要等待2MSL

  7. SYN攻击
    使用随机的ip,伪造SYN请求,将机器的syn连接的队列耗尽。

    1. tcp_synack_retries 可以用他来减少重试次数;
    2. tcp_max_syn_backlog,可以增大SYN连接数
    3. tcp_abort_on_overflow 处理不过来干脆就直接拒绝连接了。
  8. tcp的状态流转


    tcp状态流转
  9. tcp在time_wait状态到closed状态为什么要等待两个MSL

    1. TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到Ack,就会触发被动端重发Fin,一来一去正好2个MSL
    2. 有足够的时间让这个连接不会跟后面的连接混在一起(你要知道,有些自做主张的路由器会缓存IP数据包,如果连接被重用了,那么这些延迟收到的包就有可能会跟新连接混在一起)
  10. RTT算法
    记录消息从发送到接收回来消耗的时长,存在以下问题?
    重传的时间要不要计算进去?

    1. 经典算法,计算了重传时间
    2. 改良算法,没有计算重传时间,当网络抖动需要重传很多时,会有大问题,所以这里取巧,如果发生重传,超时时间*2
    3. 继续改良,将重传时间加权,用加权因子,整出一个公式,调的一手好参数。
  11. tcp的流控,sliding windows 滑动窗口


    发送方窗口示例
  12. TCP的拥塞控制、流量控制详细说明?

  13. 什么是TCP 粘包/拆包,TCP粘包/拆包的解决办法
    TCP 粘包/拆包的原因及解决方法

  14. UDP协议和TCP协议的比较、TCP为什么可靠;
    TCP/IP协议-为什么说TCP是可靠连接
    快速理解为什么说UDP有时比TCP更有优势

网络层

  1. 两个不同ip地址的计算机之间如何通信;
    计算机之间是如何互相通信的

  2. 地址解析协议ARP;

    计算机网络--ARP地址解析协议详解

    【是什么】
    透过目标设备的ip地址,查询目标设备的mac地址,以保证通信的顺利进行。

    【怎么做】(缓存->广播->匹配->更新缓存)

    1. 每个运行tcp/ip协议的主机上都会有arp高速缓存表,缓存了目标ip地址与mac地址的映射关系。
    2. 先从缓存中找,找不到会在本局域网上发送广播。
    3. 局域网内所有接收到的arp进程,会取报文跟自身比较ip地址,如果匹配,向发送方发送消息。
    4. 发送方接收到之后,更新本地缓存表。
  3. 从浏览器中输入URL到页面加载的发生了什么?

    计算机如何访问internet

数据链路层

  1. 数据链路层是做什么的?

    • 主要的作用:将不稳定的物理层传输,转化为稳定的数据链路传输,将比特流聚合转为帧
    • 因为两端数据处理能力的不同,数据链路层,需要具备流量控制的能力
  2. 数据链路层的流量控制方法?

    流量控制的基本概念

    TCP层与数据链路层流量控制的区别

相关联问题

  1. C10k问题

    高性能网络编程(二):上一个10年,著名的C10K并发连接问题

  2. 长短URL相互转换方案(同笔试题,问我方案可以有多少不同URL,高并发怎么办,怎样建立索引以及怎样分布式)

    参考

    在分布式系列中重点分析

  3. 多路复用

    在netty篇重点看

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350