计算机网络基础

五层网络协议:

  应用层:决定了向用户提供应用服务时的通信活动(http,DNS(域名和ip地址的映射),smtp,FTP,)

  运输层:提供处于网络连接中两台计算机之间的数据传输(tcp,udp)

  网络层:规定通过怎样的路径到达对方计算机,并把数据包传给对方。即在众多的选项内选择一条传输路线。(ip(选择合适的网间路由和交换节点))(arp(地址解析)将ip地址映射为对应的MAC地址)

  数据链路层:相邻结点之间的链路传输。

  物理层:相邻计算机节点之间的比特透明传输

 

tcp:

  三次握手:SYN |SYN、ACK | ACK

    服务器传回SYN是为了告知 接收到的信息确实是你发送的信息

    ACK:确认接收

    最后一个ACk:为了防止已经失效的连接信息突然又传到了服务器,从而产生错误

  四次挥手:FIN | ACK | FIN ,ACK| ACK

    客户端最后需要等待2MSL(最大报文段生命周期):确认最后一个ACK能到达服务端,ACK可能会丢失,服务端没有收到ACK会再次发FIN,ACK,客户端就能在2MSL的时间内收到重发的请求。防止失效的报文出现在新的连接里。

  保活计数器:防止服务器故障,从而在长时间没有响应之后,断掉连接。一般时间设置为2个小时,之后会发出探测报文段,如果失败10次则断掉连接。

  

  保证可靠传输:

    1. 序列

    2、校验和

    3、流量控制:发送端只允许发送接收端能接受的数据(使用滑动窗口)

    4、拥塞控制:当网络拥塞时,减少数据的发送

    5、ARP协议(自动重传请求):如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。分为停止等待ARP和连续ARP

      停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到 ACK 确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组;在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认;

      连续 ARQ 协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

    6、超时重传

    

    

 

HTTP:

   访问网页的整个流程

  1. DNS解析:客户端发送请求后,向DNS请求解析域名的IP地址
  2. 浏览器与服务器建立TCP连接
  3. 生成HTTP请求报文
  4. TCP将HTTP请求报文分割成报文段
  5. 搜索对方地址,并选择传输路径进行传送
  6. 服务器端接收到报文段,重组HTTP请求报文
  7. 服务器处理请求并返回响应报文(协议版本,状态码,原因短语,实体主体)
  8. TCP连接释放
  9. 浏览器解析渲染页面

  持久连接:

      http/1.0 默认不持久连接 :

       持久连接 :Connection:Keep-Alive     Keep-Alive:max=5,timeout=120

    http/1.1 默认是持久连接

      关闭持久连接:Connection: close

 

  状态码:

    1XX:信息状态码 (接收的请求正在处理)

    2XX:成功状态码   200 OK (请求在服务端被正常处理了)  204 No Content (请求处理成功,但没有返回资源,页面不会更新) 206 partial Content (成功处理范围请求)

    3XX:重定向  301 moved permanent (永久性重定向,更新书签) 302 found(临时重新定向,表示请求的资源已经分配了新的URI)303 see other 304 Not Modified (服务器资源未改变,可以使用客户端未过期的缓存)

      重定向原因:

      1)网站调整(如改变网页目录结构);

      2)网页被移到一个新地址;

      3)网页扩展名改变(如应用需要把.php改成.Html或.shtml)。

      当收到301或302时,浏览器会自动跳转到新的URL。 尽量使用301,避免URL劫持。

    4XX:客户端错误 400 Bad Request (请求报文存在语法错误) 401 Unauthorized (发送的请求需要通过HTTP认证,要求身份认证) 403 Forbidden (对请求资源的访问已被拒绝) 404 Not Found (没有所请求的资源)

    5XX:服务器错误  500 Internal Server Error (服务器端在处理请求的时候发生了错误) 503 Service Unavailable(服务器超负荷或正在停机维护)

 

  Last-Modified:根据时间来决定缓存策略

  ETag和If-None-Match:根据内容来决定是否使用缓存  ETag是服务器中资源的唯一表示,资源一但更改,ETag更改。通过看Etag 和If-Node-match是否一致来判断是否重新过得资源。

 

Cookie:客户端用来保存用户信息

Session:服务端用来保存用户的信息,用于记录用户的状态。

 

  

 

posted @ 2020-05-28 16:21  lucy_cui  阅读(105)  评论(0)    收藏  举报