zoukankan      html  css  js  c++  java
  • OSI七层模型简单概念及相关面试题

    OSI七层模型简单概念及相关面试题

    1.1 概念

    应用层

    • 为用户提供服务,给用户一个操作界面

    表示层

    • 数据提供表示:计算机只能识别0101这种二进制数据,把我们输入、点击的之类的指令翻译成二进制,又把执行后的结果返回。
    • 加密
    • 压缩

    会话层

    • 确定数据是否需要进行网络传输
      • 如果需要,交给下一层:传输层
      • 如果不需要,比如只是保存到文档等

    传输层

    • 对报文进行分组(发送时)、组装(接收时)
    • 提供传输协议的选择
      • TCP(传输控制协议):可靠的,面向连接的传输协议——(可靠、准确的)(慢)
      • UDP(用户数据报协议):不可靠的,面向无连接的传输协议——(不可靠)(快)
    • 端口封装
      • 源端口
      • 目标端口
    • 差错校验

    网络层

    典型设备:路由器

    • IP地址编址
      • 源IP
      • 目标IP
    • 路由选择
      • 静态路由
        • 提前写好的规则,会比较麻烦
      • 动态路由
        • 自动选择,可能会选择最短路径,但是带宽可能不是最好的

    数据链路层

    典型设备:交换机(switch)

    • MAC地址编址
    • MAC地址寻址
      • MAC地址和IP找到是哪台电脑
      • 通过PORT查找到对应的服务(一台电脑会有多个服务)
    • 差错校验
      • 差错校验一般都是采用传输层的差错校验

    物理层

    典型设备:网线

    • 数据实际传输
    • 电气特性定义
      • 网线有八根线,哪根线传输数据等。。。

    1.2 相关面试题

    1.2.1 TCP/IP四层模型与作用?

    1.2.2 TCP协议与UDP协议工作在哪一层?作用是什么?

    网络接口层 = 数据链路层 + 物理层

    建议改成五层协议,将数据链路层和物理层分开

    网络层

    • IP协议,用来确认IP地址的。
    • ARP RARP:地址解析协议,反向地址解析协议

    数据链路层

    • PPP:点对点
    • PPPOE:点对点拨号协议

    1.2.3 简述TCP包头的内容?

    1.2.4 简述TCP三次握手的过程?

    考察点

    • TCP协议的原理
    • TCP协议的作用

    传输层协议

    • TCP(传输控制协议):可靠的,面向连接的传输协议
    • UDP(用户数据报协议):不可靠的,面向无连接的传输协议

    31表示从0到31个进制位,共32位。

    源端口和目标端口是2^16次方个,也就是65535个

    文字叙述
    • 第一次握手:Client将标志位SYN置为1,随机产生一个值(序列号)seq=j,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
    • 第二次握手:Server收到数据包后,由标志位SYN=1知道Client请求建立连接,Server将标志位SYNACK都置为1,ack序号j+1,随机产生一个值(序列号)seq=k,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
    • 第三次握手:Client收到确认后,检查ack序号是否为j+1,标志位ACK是否为1,如果正确则将标志位ACK置为1,(序号)ack=k+1,并将该数据包发送给Server;Server检查ack序号是否为k+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

    1.2.5 简述TCP四次挥手的过程?

    FIN_WAIT_1——>CLOSE_WAIT——>FIN_WAIT_2:客户端请求结束连接

    LAST_ACK——>TIME_WAIT——>CLOSE:服务端通知客户端我也要结束连接

    文字叙述
    • 第一次挥手:Client发送一个标志位为FIN包,(随机序号)Seq=m,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1
    • 第二次挥手:Server收到标志位FIN包后,发送一个标志位ACK给Client,(确认序号)ACK=m+1,Server进入CLOSE_WAIT状态。
    • 第三次挥手:Server发送一个标志位FIN=1,ACK=1,(序号)Seq=n,(确认号)ACK=m+1,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
    • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK标志给Server,(确认序号)ACK=n+1,Server进入CLOSED状态,完成四次挥手。
  • 相关阅读:
    java编码过滤器
    DAO设计模式
    常用的SQL语句
    IO流总结
    IO流的登录与注册
    设计模式之模板方法模式(Template Method)详解及代码示例
    设计模式之享元模式(Flyweight)详解及代码示例
    设计模式之桥接模式(Bridge)详解及代码示例
    设计模式之组合模式(Composite)详解及代码示例
    设计模式之外观模式(Facade)详解及代码示例
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/13657382.html
Copyright © 2011-2022 走看看