网络

网络
1:网络分层:应用层,运输层,网络层,链路层,物理层;
I:应用层:是网络应用程序以及应用层协议存留的地方。如HTTP,SMTP,FTP
1):多数应用程序是由通信进程对组成,两个进程互相发送报文(进行通信的实际上是进程而不是程序),进程通过一个套接字的网络接口想网络发送报文和熊网络接收报文,套接字可类比一座房子的门,因此,套接字也被称为主机内应用层和运输层之间的接口,由于该套接字是建立在网络应用程序的可编程接口,因此套接字也被称为应用程序和网络之间的应用程序编程接口。
2)HTTP和文件SMTP(因特网电子邮件的核心)区别
I:HTTP是一个拉协议,SMTP是一个推协议
II:格式不同,SMTP是7比特ASCII格式,HTTP不受这种限制
III:处理既包含文本又包含图形的文档处理不同,
3)DNS解析(见->从url 到 后端接口)
II:运输层:他是在应用程序断点之间传送应用层报文,运输层为运行在不同的主机上的进程之间提供了逻辑通信。有两种各运输协议:TCP(有连接和UDP(无连接传输),
讲到这里有必要把说烂了的知识点三次握手和四次挥手说一下
在这里插入图片描述
1)三次握手以建立TCP连接
URG:标识紧急指针是否有效
ACK:标识确认序号是否有效
PSH:用来提示接受端应用程序立即将数据从tcp缓存区读走
RST:复位报文段,要求重新建立连接
SYN:同步报文段,请求建立连接
FIN:结束报文段,本端通知对端即将关闭
在这里插入图片描述
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
在这里插入图片描述
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
在这里插入图片描述
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
在这里插入图片描述
2) 补充:为什需要三次握手?
《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”,书中的例子是这样的,“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”。主要目的防止server端一直等待,浪费资源。
3)认识两个概念:多路分解,多路复用
多路分解:将运输层报文段中的数据交付到正确的套接字的工作叫做多路分解
多路复用:在源主机从不同的套接字中收集数据块,并为每个数据块封装上首部信息,(这将以后用于分解)从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用;
4)四次挥手
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5)HTTP1.0和HTTP1.1的一些区别
HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。 主要区别主要体现在:
缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。
错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。
III:网络层:包括国际著名的网络协议IP,网络层也包括决定路由的选择协议,网络层提供了主机之间的逻辑通信
IV:链路层:通过源和目的地之间的一系列路由器路由数据报。
V:物理层:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值