首页 > 其他 > 详细

计算机网络

时间:2019-08-15 13:36:09      阅读:83      评论:0      收藏:0      [点我收藏+]

计算机网络

五层架构

中和Osi和TCP/IP的优点,采用一种只有五层协议体系结构,自上而下分别是:

  1. 应用层:提供应用接口,为用户直接提供各种网络服务。

    ? 常见协议有:域名系统DNS,支持万维网的http协议,支持电子邮件的SMTP协议

    http协议

    底层协议为tcp

    TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

    TCP是底层通讯协议,定义的是数据传输和连接方式的规范
    HTTP是应用层协议,定义的是传输数据的内容的规范

    http协议与tcp协议相互关系

    ? http是应用层,而tcp是传输层,http是基于tcp连接基础之上的。简而言之,tcp是单纯建立连接,不涉及请求的数据以及简单传输,而http是用来收发数据的。

    1.客户端发送http请求给服务端,请求包括请求头,请求内容

    ? 请求头包含:1.请求方法get/post,请求url,http版本

                 2.请求的数据

    ? 3.是否有cookies以及缓存

    ? 请求体:即请求的内容

    2.服务端收到http请求,返回http响应

    ? 响应头包含:cookies或sessions,状态码,内容大小等

    3.客户端收到以后,由浏览器完成对数据的渲染,包括执行js脚本

    ?

  2. 传输层:定义传输数据的协议端口号,以及流控和差错校验。四层交换机
    协议有 :TCP UDP,数据包一旦离开网卡即进入网络传输层

    ?

  3. 网络层:为数据包选择路由,进行逻辑地址寻址,路由器

    协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP

    ?

  4. 数据链路层:传输有地址的帧以及错误检测功能,交换机,网卡

    协议有:SLIP,CSLIP,PPP,ARP,RARP,MTU

    ?

  5. 物理层:以二进制数据形式在物理媒体上传输数据,中继器

    ?

    TCP三次握手与四次挥手

    三次握手目的是双方确认各自数据发送与接收正常,建立可靠的通讯

    第一次握手,服务端能够确认C发送正常,自己接受正常

    第二次握手,客户端确认自己发送,接收正常,S发送,接受正常;服务端能够确认C发送正常,自己接受正常

    第三次握手,双方各自确认自己发送,接受正常,缺一不可

    四次挥手

    客户端:向服务端发送断开连接信息

    服务端:收到客户端发出的断开连接信息,并响应,此时处于半关闭状态

    服务端:向客户端发送断开连接信息

    客户端:对服务端断开连接信息进行响应

    ?

    TCP与UDP区别

    ? TCP是面向连接的,通过校验和,序号标识,重发控制等进行可靠的传输,保证数据的完整性,而UDP不需要建立连接,不能够保证可靠交付。但是UDP具有实时性,工作过效率高,占用系统资源少,适应于对高速传输以及实时性有较高要求的广播通信。

    ? 此外TCP连接是点到点的,而UDP支持一对多,多对多。

打开网页过程

  1. 首先进行DNS解析

    输入www.baidu.com,首先找本地hosts文件,查找是否有百度对应的ip地址,有即返回ip,然后通过80端口访问百度的服务器,若没有,则通过DNS服务器找对应的域名与ip的对应关系,即DNS解析过程

  2. 然后建立TCP连接

  3. 发送http请求

  4. 服务器处理请求并返回http报文

  5. 浏览器解析渲染页面

  6. 连接结束

各种协议与http协议的关系

? 理解概述:

? 首先发给DNS服务器,进行域名解析,得到IP地址后生成针对目标Web服务器的HTTP请求报文,然后报文由TCP协议负责传输,为了方便通信,HTTP请求报文被分为报文段,然后每个报文段可靠的传输给对方,然后报文段由IP层负责一边中转一遍传送,服务器收到报文段后重组报文段,然后由应用层的HTTP协议处理请求的内容,请求的结果以 同样的方式进行回传。

http长连接,短连接

  1. http/1.0:默认使用短连接

    客户端与服务器每进行一次http操作,就建立一次连接,任务结束就中断连接

  2. http/1.1起:默认使用长连接,保持连接特性

    当打开网页之后,客户端与服务端建立的tcp连接不会中断,当再次向服务器发送请求,会继续使用这条连接,当然也不会无限保持连接,有一个保持时间,可以设定在服务器软件中。

    ?

http为无状态协议,如何保存用户状态

? session机制可以保存用户状态,比如向购物车加入商品,系统并不知道是哪个用户操作的,因为http是无状态的,服务端给特定的用户创建特定的session就可以标识这个用户并跟踪这个用户。(如何实现跟踪,在cookie中附加一个session ID)

? Cookie被禁用怎么办?利用URL重写把session ID直接附加在url后面。

cookie与session

? cookie保存用户信息,将数据保存在客户端,单个cookie不大于4k,cookie数量有限制,会话cookie与持久cookie,如果使用 Cookie 的一些敏感信息不要写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。

? session记录用户状态,数据保存在服务器端,安全性更高,与服务器内存有关,session过多会增加服务器压力。

URI与URL的区别

uri:统一资源标识符,可以唯一标识一个资源,身份证

url:统一资源定位符,可以提供该资源的路径,家庭住址

http与https区别

  1. 默认端口号不同,http为80端口,https为443端口

  2. http基于tcp,传输内容为明文,不安全

  3. https是建立在ssl之上的http协议,所传输的内容都经过加密,但比http耗费更多的服务器资源,HTTPS连接缓存不如HTTP高效。同时ssl证书比较烧钱。握手阶段比较耗时,如非必要,没有理由牺牲用户体验。

    https工作原理:

    1. 客户端通过https的url向服务端发起请求
    2. 服务端收到请求后将网站证书信息(包含公钥)返回给客户端
    3. 客户端与服务端协商ssl连接的安全等级
    4. 在此基础上,客户端建立会话密钥,利用网站公钥将会话密钥加密,并传给网站
    5. 服务器利用自己的私钥对会话密钥进行解密
    6. 服务器利用会话密钥加密与客户端之间的通信

get与post区别

  1. 使用get请求时,参数在url中显示,而post不会

  2. post数据传输量较大,可达到2M,而get由于url长度限制,只能传递1024字节

  3. get方式请求的数据会被浏览器存入缓存,某种情况下会带来安全问题,而post相对会避免这种问题

    ?

计算机网络

原文:https://www.cnblogs.com/mll-yf/p/11357360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!