计算机网络

本文深入探讨了传输层的作用,包括多路复用、分用、可靠数据传送和带宽保证。讲解了TCP协议的超时重传、停止等待协议和连续ARQ协议等概念,以及网络层与传输层的区别。同时对比了TCP与UDP协议的特点,指出TCP提供可靠的连接服务,而UDP则为无连接、不可靠的传输。最后,简要介绍了HTTP协议的工作流程和HTTPS的安全性优势及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.传输层的作用

提供了应用进程间的端到端的连接,网络包从客户端到服务器后通过传输层的作用来识别自己属于哪个进程,另外传输层协议能提供应用的多路复用、分用功能、可靠数据传送、带宽保证,因为网络层提供的是尽力而为的服务,它不保证数据的有序性和非重复性,是不可靠的无连接服务。所以需要传输层来进行数据包的丢失、损坏、乱序等检测。

多路复用:指多个应用进程都可以使用同一个传输层协议传送数据.

分用:接收端将传输层报文段交付到正确的套接字的工作

可靠数据传送:从握手和松手连接来保证连接的建立和释放的可靠,然后在连接当中通过超时重传和确认机制来具体保证数据的可靠性,通过拥塞控制和流量控制来保证数据传输过程的稳定性

(1)超时重传:客户端在一定时间内没有收到来自服务端的确认报文就认为刚才发送的数据分组丢失了,因此要重传,所以要注意客户端在发送完分组后,必须暂时保留已发送分组的副本,在收到确认后才能清楚。  分组和确认分组必须编号来明确哪个发出去的分组收到了确认. 超时计时器的设置应当比数据在分组传输的往返时间更长一些,如果重传s时间设置的很长就会降低通信效率,很短的话会产生不必要的重传.

公式 : 新的RTT = (1 - a) * 旧的RTT + a * 新的RTT   ( RTT : 往返时间)

 

(2)停止等待协议:停止等待就是每发送完一个分组后就停止发送,等待对方确认,在收到确认后再发送下一个分组.信道利用率极低.

(3)连续ARQ协议:将位于发送窗口内的分组连续发送出去,而不需要每次发送都等待对方的确认。在收到分组确认后发送窗口前移一个分组位置。实际上接收方一般都是采取累计确认的方式,不必对分组进行逐个确认,在收到数个分组后,只对按序到达的最后一个分组发送确认。表明到这个分组为止的所有分组都已经收到了。 会产生Go-back-N情况,就是如果发送了5个分组,如果中间第3个分组丢失了,那么接收方只能确认前两个分组。

(首先,什么是信道利用率呢?也就是信道的效率,假设在一个发送周期为1s,但实际传输数据的时间只用了0.5s,那么效率就是50%。)

2.传输层和网络层的区别:

网络层负责ip数据报的产生以及ip数据报在逻辑网络上的路由转发,而传输层提供端到端的进程通信服务,提供可靠和非可靠的连接

网络层主要任务是通过路由选择算法为报文或分组通过通信子网选择最适当的路径。

路由选择算法

(1).距离矢量路由算法:每个路由器维护一个距离矢量表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新,

每个距离矢量表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间或距离,还有下一跳路由器的地址,通信子网中的其它每个路由器在表中占据一个表项,并作为该表项的索引。每隔一段时间,路由器会向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来,这样各路由器只需要查看这个距离矢量表就可以为不同来源分组找到一条最佳的路由。

特点:注意 是只和相邻路由器交换信息,交换的是路由表的所有信息,且按 固定时间交换。 

RIP实现简单、开销小,但是限制了网络规模,最大距离为15跳,且路由器之间交换的是完整路由表的信息,导致坏消息传的慢,对于规模大的网络应该使用OSPF协议

(2).开放最短路径优先OSPF协议:最主要的特征是使用分布式的链路状态协议,  它会向所有路由器发送信息,使用洪泛法,

发送的信息是与本路由器相邻的所有路由器的链路状态(链路状态就是说明本路由器与哪些路由器相邻、以及该链路的度量) 度量表示费用、距离、时延、带宽等等。只有链路状态发生变化时路由器才用洪范法发送信息。

3.TCP协议和UDP协议的特点、区别

TCP

(1)TCP是面向连接的运输层协议;

(2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;

(3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;

(4)TCP提供全双工通信。允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;

(5)面向字节流。虽然应用程序与TCP交互是一次一个大小不等的数据块,但TCP把这些数据看成一连串无结构的字节流,它不保证接收方收到的数据块和发送方发送的数据块具有对应大小关系,例如,发送方应用程序交给发送方的TCP10个数据块,但就受访的TCP可能只用了4个数据块久保收到的字节流交付给上层的应用程序(粘包拆包问题)但字节流完全一样。

UDP

(1)UDP是无连接的传输层协议;

(2)UDP使用尽最大努力交付,不保证可靠交付;

(3)UDP是面向报文的,对应用层交下来的报文,不合并,不拆分,保留原报文的边界;

(4)UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;

(5)UDP支持一对一 一对多 多对多的交互通信;

(6)UDP的首部开销小,只有8字节.

(小贴:我们的一条带宽同时只能发送一个以太网帧。如果同时发送多个,那么对端就无法重组成一个以太网帧了, 对MTU最大传输单元的理解,  MTU大了会导致一次帧的发送延迟太高, 太小的话由于一些固定报文结构的原因会导致发送效率太低,)

补充: 
TCP字节流和UDP数据报区别 
两者的区别在于TCP接收的是一堆数据,而每次取多少由主机决定;而UDP发的是数据报,客户发送多少就接收多少。

拥有这些区别的原因是由于TCP和UDP的特性不同而决定的。TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。 而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。这时候,如果一次能读取超过一个报文的数据,则会乱套。比如,主机A向发送了报文P1,主机B发送了报文P2,如果能够读取超过一个报文的数据,那么就会将P1和P2的数据合并在了一起,这样的数据是没有意义的。

HTTP

HTTP 是一种无状态协议 . 无状态是指客户端和服务端之间不需要建立持久的连接 , 客户端发起一个请求 , 服务器端返回响应 , 这个连接就会被关闭 , 在服务器端不会保留该请求的有关信息 .

HTTP工作流程:

1.地址解析

Http协议通过标准的URL来请求指定的服务器中的指定服务的

http://www.baidu.com:80/index.html?name=tom&age=18

http 代表协议类型,指明发送的是什么协议

www.baidu.com代表主机名(域名),通过主机名来定位到是哪台服务器

80:端口号.

index.html:请求的文件名.

2.封装HTTP请求

把URL以及本机信息封装成一个HTTP请求数据包

3.封装TCP包

封装TCP包,建立TCP连接。

4.客户端发送请求命令

连接建立之后,客户端发送HTTP请求到服务端与请求相关的信息都会包含在请求头和请求体重发送给服务器端。

5.服务端响应

对客户端做出的请求进行响应。返回响应信息

6.关闭连接

服务器端在发送完响应之后 , 就会关闭连接 , 如果过客户端的请求的头部信息中有 Connection-alive , 那么客户端在响应完这个请求之后不会关闭连接 , 知道客户端的所有请求都响应完毕 , 才会关闭连接 , 这样大大节省了带宽和 IO 资源。

HTTP的请求由3部分组成(请求头、请求行、请求正文)

https://blog.youkuaiyun.com/heyue_99/article/details/74689057 参考

HTTP8种请求:

GET: 请求指定的页面信息,并返回实体主体

HEAD: 类似于Get请求,但是返回的响应当中没有具体的内容,用于获取报文头部。

POST:向指定资源提交数据进行处理请求(提交表单、上传文件).

PUT:从客户端向服务器传送的数据指代指定的文档的内容   (PUT是幂等的, POST是非幂等性的).

DELETE:请求服务器删除指定的页面信息

CONNECT:就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。这样用户就可以访问到一些只有服务器上才能访问到的网站了,这就是HTTP代理。

OPTIONS:获取服务器支持的HTTP请求方法;也是黑客经常使用的方法(在响应报文中包含一个Allow首部字段,该字段的值表明了服务器支持的所有HTTP方法)。允许客户端查看服务器的性能(AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全)。

TRACE:回显服务器收到的请求,主要用于测试或诊断.

 

 

 

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

一、HTTP和HTTPS的基本概念

  HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。(SSL:是为网络通信提供安全及数据完整性的一种安全协议,一个有效、可信的 SSL 数字证书包括一个公共密钥和一个私用密钥。公共密钥用于加密信息,私用密钥用于解译加密的信息。)

  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

二、HTTP与HTTPS有什么区别?

  HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

  HTTPS和HTTP的区别主要如下:

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

  (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

  (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

  (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

  (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

  (5)Web服务器利用自己的私钥解密出会话密钥。

  (6)Web服务器利用会话密钥加密与客户端之间的通信。

四、HTTPS的优点

  尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:

  (1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

  (2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

  (3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

  (4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

五、HTTPS的缺点

  虽然说HTTPS有很大的优势,但其相对来说,还是存在不足之处的:

  (1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;

  (2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

  (3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

    (4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

  (5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值