这里说一下为什么路由器接收和发送不使用同一个链路。因为虽然路由器有同一个网络层,但它涉及到n个链路和物理层协议的任意组合,路由器接收基于一对协议的链路1再把它投递到基于另一对协议的链路2。而交换机虽然含两层,但两层在同一个协议集中。
关于各层次的功能特点会在之后的内容中详细介绍。
应用层 从一个例子说起眼看情人节到了,夏尔少爷成功熬过12点,准点发送了情人节快乐的消息。消息经应用处理为报文通过下面几层网络成功传递到慕恩那里。慕恩开心地看着手机发呆。。。
你说的太简单了,我需要更多的力量(知识) 进程通信两个终端间的通信本质上是终端操作系统中进程之间的通信。
两个不同系统中的进程,通过计算机网络交换报文而相互通信。
操作系统中的进程是CPU资源分配的最小单位,一个进程可以被认为是运行终端系统中的一个程序。
上图是一个终端间进程通信的简单示意图。我们可以把进程比作一个房子,socket就像房子的大门,报文通过大门经传输层-网络层-数据链路层-物理层传输到目的地。再自下而上地去掉各层首部。
报文在图8所示的流程中,应用层所关心的只有一个,那就是报文。应用层协议定义了运行在不同端系统上的应用进程如何相互传递报文。应用层协议定义了:
报文的类型(响应报文/请求报文)。
报文类型的语法(如HTTP协议中请求报文首行是请求方法,请求地址,协议;而响应报文首行是协议,状态码,描述)。
字段的语义(字段对应的信息含义)。
一个进程何时以及如何发送报文,对报文进行响应的规则。
你所应当了解的应用层协议 如何让报文携带协议信息呢很容易想到可以让报文携带协议的标记字段,然后到达目的地后再检查该字段。那么具体如何实现呢?其实只需要将协议标识的首部字段加在报文的首部,然后随报文发送而发送。检测的话,取下首部字段,按协议要求将数据报文发送给首部字段对应的socket即可。
http协议 定义:超文本传输协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。简单来说http协议起到了一个让你点击网站后能得到页面反馈的作用。
http1.0在http早期,每个http请求都要求打开一个tcp socket连接,并且使用一次之后就断开这个tcp连接。
http1.1http1.1可以使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率。但是keep-alive timeout时间也不是越长越好,长时间的tcp连接容易导致系统资源无效占用,因此设置合理的keep-alive timeout时间很重要
http2.0
多路复用。建立一个tcp连接,一个连接上有任意多个流,报文消息分割为一个帧或多个帧在字节流里面并发传输,值得注意的是同一报文的若干帧必须在同一字节流上进行传播。等待报文帧传输完成后再进行消息重组。
二进制分帧。将传输的报文划分为首部和消息负载两个帧,并采用二进制编码。
首部压缩:客户端与服务端维护一份相同的静态字典,里面保存了常用请求头的名称和值,对于字典中只有名称没有值的首部,在传输时需要先索引其值在用哈夫曼编码减少体积,客户端和服务端还会维护一个动态字典用于存放请求用到的头部,后续传播就可以只传索引,
服务器推送:服务端可以主动向客户端推送资源。
http和https的区别http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
https协议需要ca证书,费用较高。
使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为443
证书验证