网络协议

OSI七层网络模型

为啥需要协议?没有协议,各个电脑厂商,比如IBM、苹果啥的,都弄自己的协议,结果就苹果电脑和苹果电脑自己可以通信,和IBM电脑就不可以通信,这不是尴尬么。所以搞一个国际通行的协议,大家都按照这个来,所有电脑都可以通信

OSI七层模型,是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。TCP/IP四层模型,数据链路层、网络层、传输层、应用层。

 

1)物理层(网线,光缆,电脑连接起来并且传输电信号)

 

 

2)数据链路层 (数据格式定义和解析) 定义电信号的格式和含义(这样才能将电信号解析出来)

 

每台电脑要往另外一台电脑发送数据,一堆0/1电路信号,封装成数据包,包含头和数据,头里包含了从哪儿来到哪儿去

3)网络层 ip协议(子网和局域网的网络划分(其中包括网卡,ip,mac地址的关系))

 

 

 

 

域名和ip的解析,一个ip地址对应着一个mac地址

 

ip地址 -> mac地址 -> 交换机 -> 路由器 -> ip地址 -> mac地址 -> 交换机的方式来通过路由器进行通信。

 

 

 

4)传输层 udp , tcp 端口监听 , udp和tcp都是传输层的协议,作用就是在数据包里加入端口号,可以通过端口号进行点对点的通信了

 

 

 

 

网络层,是基于ip协议,进行主机和主机间的寻址和通信的,然后传输层,其实是建立某个主机的某个端口

因为一个主机上游很多程序,程序有指定不同端口

 

5)应用层 http 协议

通过传输层的tcp协议可以传输数据,但是人家收到数据之后,怎么来解释,

数据解析出来 展示在页面上

 

 

4层:数据链路层(以太网协议),网络层(ip协议),传输层(tcp协议),应用层(http协议)

 

 

 

域名访问流程

 

 

 

TCP三次握手

为啥是三次而不是二次或者四次呢

 

双向互通的确认:

0.第一次服务端确认客户端是否能发送请求(客户端给服务端发送ack,表示客户端可以发送消息)

1.第二次握手是客户端确认服务端是否能接收请求和发送请求(服务端接收后,服务端给客户端回应发送ack,表示服务端能接收和发送消息)

2.第三次握手是服务端确认客户端是否能接收请求(客户端接收到服务端后再次发送ack,表示客户端能接收消息)

这样经过三次握手后 服务端和客户端 均表示了 发送和接收消息的能力,就可以正式开始通信  所以这个流程不是两次也不是四次,就正好三次就够了

 

 

 

socket 属于 传输层 tcp  http 属于应用层

 

http 1.0要指定keep-alive来开启持久连接,默认是短连接,就是浏览器每次请求都要重新建立一次tcp连接,完事儿了就释放tcp连接。

 

早期的网页都很low,没啥东西,就一点文字,就用这个没问题。但是现在,一个网页打开之后,还要加载大量的图片、css、js,这就坑爹了,发送多次请求。

 

http 1.1默认支持长连接,就是说,浏览器打开一个网页之后,底层的tcp连接就保持着,不会立马断开,之后加载css、js之类的请求,都会基于这个tcp连接来走。http 1.1还支持host头,也就可以支持虚拟主机;而且对断点续传有支持。

 

http 2.0,支持多路复用,基于一个tcp连接并行发送多个请求以及接收响应,解决了http 1.1对同一时间同一个域名的请求有限制的问题。二进制分帧,将传输数据拆分为更小的帧(数据包),frame(数据包,帧),提高了性能,实现低延迟高吞吐。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值