计算机网络基础
五层网络协议:
应用层:决定了向用户提供应用服务时的通信活动(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:
访问网页的整个流程
- DNS解析:客户端发送请求后,向DNS请求解析域名的IP地址
- 浏览器与服务器建立TCP连接
- 生成HTTP请求报文
- TCP将HTTP请求报文分割成报文段
- 搜索对方地址,并选择传输路径进行传送
- 服务器端接收到报文段,重组HTTP请求报文
- 服务器处理请求并返回响应报文(协议版本,状态码,原因短语,实体主体)
- TCP连接释放
- 浏览器解析渲染页面
持久连接:
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:服务端用来保存用户的信息,用于记录用户的状态。

浙公网安备 33010602011771号