计算机网络复习

Part I

问题一:http和https的区别是什么?

  • http协议是不安全的,其消息包是以明文的形式暴露在外面的;而https是安全的,其实是ssl协议+http协议,会对传输的消息报进行加密;
  • http协议的监听端口是80,而https是443

问题二:什么是Http协议无状态协议?怎么解决Http协议无状态协议?

  • 无状态协议对于事务处理没有记忆能力。
  • 使用cookie可以解决无状态带来的问题,当用户初次访问服务器或其之前获取的cookie超时失效的时候,服务器端会为其分配一个cookie用于身份的标示和信息的记录,当在服务端发现了客户端携带的cookie,那么就能够认识这次访问的用户了。

问题三:一次完整的HTTP请求所经历的步骤

  • 建立tcp连接(三次握手说一遍)
  • 浏览器发送请求报文,包括请求头和请求体,中间由一个空行隔开
  • 服务器发送响应报文,包括响应头和响应体,中间由一个空行隔开
  • 如果响应报文的参数有keep-alive的话,表示是长链接,将不会断开tcp连接。否则的话就断开tcp。这节省了tcp建立的时间开销和带宽的开销

问题四:常见的HTTP相应状态码

  • 2开头的表示正常接受到报文,200是正常。
  • 3开头的是重定向相关
  • 4开头的是浏览器发送的请求有问题,例如404找不到资源
  • 5开头的是服务器那边出问题了,例如500是内部错误,503是服务器正忙。

问题五:HTTP1.1版本新特性

  • 默认长链接
  • 管线化:
    • 客户端可以同时发送多个HTTP请求,而不用一个个等待响应
  • 支持断点续传
    • HTTP1.1协议中定义了断点续传相关的属性,如Accept-Range, Range和Content-Range:
      • Accept-Range记录是否支持断点续传
      • Range表示请求的数据范围 例如 Range : 开始字节位置-结束字节位置
      • Content-Range:是响应体里表示的,真正返回的字节范围;

问题六:输入url后发生了什么?

问题七:OSI七层模型每一层的意思?

  • 物理层:

物理层解决的问题就是比特流的传输。就是将01比特用电信号的强弱来替代,接收方用同样的方式进行解码得到传输的比特, 也就是模数转换和数模转换. 网卡就是工作在这一层上的。最小传输单位为比特.

  • 数据链路层:
    • 封装成帧。将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。交换机就处在这一层,最小的传输单位——帧。MAC 地址是链路层地址。
    • 透明传输。透明表示一个实际存在的事物看起来好像不存在一样。帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
    • 差错检测。数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
  • 网络层:
    • 随着通信设备的增加,点对点通信会经过多个结点,如何找到传输的最优路径,选择最优结点成了首要需求,此时便有了网络层。 网络层的最主要的作用:完成ip地址到mac地址的转换,并决定发送数据以怎样的路径路由到接收方;路由器就工作在这一层, 路由的数据单位为数据包;
  • 传输层:

    网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信。传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。传输层实现的两个重要协议就是tcp/ip. 然后说一下他们的特点和区别。

  • 会话层:

    因为对于tcp协议而言,如果每一次建立传输都需要重新三次握手建立连接,那么显然是很低效的。 而会话层的作用就是建立通信链接,保持会话过程通信连接的畅通。 他的三大功能主要包括:建立会话,保持会话,断开会话。

建立会话:A、B两台网络设备之间要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节;

保持会话:通信会话建立后,通信双方开始传递数据,当数据传递完成后,OSI会话层不一定会立刻将两者这条通信会话断开,它会根据应用程序和应用层的设置对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;

断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话。或者A、B重启、关机、手动执行断开连接的操作时,OSI会话层也会将A、B之间的会话断开。

  • 表示层:

电脑从网卡收到一串数据时,这些数据在电脑中都是都是二进制的格式,我们人类是看不懂二进制的,就需要表示层帮忙将这些二进制转换成我们能够识别的数据。只有在表示层将数据处理完成后,才能将转格式编译后的数据呈现在应用程序中,让用户能够看懂。

从物理层依次解封装至表示层之后,表示层会检查电脑中是否有能识别该gif图片的解码工具,如果有,则将gif图片展现在相应的应用程序中;如果没有,则提示打不开,或显示出一堆乱码。

  • 应用层:
    应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。比如,IE浏览器,使用的是应用层的HTTP协议;QQ使用的应用层协议是OICQ;Outlook使用收发邮件的SMTP、POP3协议。这里要注意一点,我们所使用的软件是应用程序,这些软件只是软件开发者编程开发出来的,这些应用软件只是一个壳子,而这些软件里嵌套的协议才是应用层的内容,使用网络的程序需要集成协议才可以正常使用。
    参考

Part II

TCP

TCP报文头

在这里插入图片描述

  • 源端口:
    • 源端口和IP地址的作用是标识报文的返回地址
  • 目的端口:
    • 端口指明接收方计算机上的应用程序接口。

TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接

  • 序号 (Seq) 和确认号 (ACK) :
    • 序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。例如:一个报文段的序号为300(Seq=300),此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性
    • 确认号,即ACK,指下一个期待收到的字节序号表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
  • 数据偏移/首部长度:4bits。
    • 由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
  • 保留:
    • 为将来定义新的用途保留,现在一般置0
  • 控制位:URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。
    • URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。

    • ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

    • PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

    • RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

    • SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。

    • FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值