计算机网络协议及通信

2020-06-12  本文已影响0人  只会敲代码的键盘手

互联网协议族(IPS Internet Protocol Suite):是一个网络通讯模型模型,以及一整个网络传输协议家族,为互联网的基础通讯架构.通常被称为TCP/IP协议族,简称TCP/IP

1.前言

前面的章节已经了解了java的基础知识,这个章节来学习网络协议,在实际工作中是一个较为重要的知识点.现在是一个数据共享的时代,数据的传输基础的就是这些网络协议

2.目录

目录

3.计算机网络协议及通信

3.1.OSI参考模型

简易模型

OSI(open system interconnect):即开放式系统互联,一般都叫做OSI参考模型

3.2TCP/IP协议族

以太网协议:标识好每一组电信号的信息特征,分组顺序发送,一组电信号就是一个数据包,一个数据包被称为一帧
数据通信:接入网络的设备都需安装网络适配器(网卡),网卡的地址(MAC地址(只与厂商有关,与所处网络无关))就是数据包的发送地址和接收地址,以太网采用广播的形式,把数据包发送给子网内所有主机,每台主机会对比目标MAC地址来进行处理

  • IP协议:无法通过mac区分两台主机区分两台主机是否同属一个网络,引入IP协议,制订一套新地址,区分两台主机是否同属一个网络,这套地址就是网络地址,即IP地址;IP地址包含IPV4和IPV6,IPV4是一个32位的地址,采用4位的十进制数字表示,IP协议将这个32位的地址分为两部分,以192.168.24.1,其中前24位就是网络地址,后8位就是主机地址,若两个IP地址在同一子网内,则网络地址一定相同,IP协议还引入子网掩码,IP地址和子网掩码按位与运算后可得网络地址
  • ARP协议(地址解析协议):根据IP地址获取MAC地址,数据包包含目标主机的IP地址,主机接收到会对比IP地址,如果相同就返回自己的MAC地址,不同则丢弃;ARP会将返回MAC地址与对应IP地址存入本机ARP缓存中并保留一定时间,下次直接查询ARP缓存节约资源
  • 路由协议:首先通过IP协议来判断两台主机是否在同一个子网中,若在,就通过ARP协议查询对应的MAC地址,若不在,以太网会将数据包转发给本子网的网关进行路由,网关是互联网子网与子网之间的桥梁,会进行多次转发,最终将数据包转发到目标IP的子网中,然后再通过ARP获取目标MAC,最终也是通过广播形式将数据包发送给接收方
  • 数据通信:由于数据包到达主机后,无法确定那个应用程序要接受这个包,因此传输层引入UDP协议,定义端口号,给每个应用程序标识身份,每个主机上的应用程序需指定唯一端口号;
  • UDP/TCP协议:UDP协议(用户数据报协议)比较简单,没有确认机制,无法知道对方是否接受,可靠性较差.为了提高网络可靠性,TCP协议就诞生了,TCP协议即传输控制协议,是一种面向连接的,可靠的,基于字节流的通信协议.TCP协议在UDP基础上建立了三次握手四次挥手的确认机制,是一个可靠的连接,消耗连接资源多,传输速度慢,而UDP是面向非连接的协议,容易丢包,效率较高
  • DNS协议:域名解析协议,将域名(www.baidu.com)解析成对应的IP地址,首先本机计算机会将域名发送到解析域名的服务器上,服务器上有很多能解析各种域名的服务器,找到其中的一台,没有找到就会去查找根域名服务器,根服务器让其其去对应的子服务器查找,子服务器找到返回给计算机,并将缓存到第一次查找的服务器,之后访问该域名通过缓存查找
  • http协议:超文本传输协议,是客户端和服务器端请求和应答的标准,客户端叫做用户代理(user agent),存储着资源的应答服务器为源服务器(origin server),在用户代理和源服务器中间可能存在多个中间层.如,代理,网关.事实上http并没有规定使用(或者基于)TCP/IP协议,可以使用任何其它互联网协议.通过URI(统一资源标识符)来标识请求资源 (无连接,无状态,灵活:传输任意类型数据)
计算机网络体系结构分层

3.3.TCP的三次握手和四次挥手

TCP三次握手

三次握手过程:

三次握手的原因:
主要验证的是客户端和服务端的接受和发送能力都是没有问题的

TCP四次挥手

四次挥手过程:

四次挥手的原因:

MSL(MAXimum Segment Lifetime):任何报文在网络上上存在的最长时间,超过这个时间报文将被丢弃

等待2MSL原因:

3.4.浏览器打开网址页面过程

3.5.HTTPS

HTTPS:超文本传输安全协议,HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包.是提供对网站服务器的身份认证,保护交换数据的隐私和完整性

HTTP和HTTPS的区别

HTTPS较HTTP最大的不同就是多了一层SSL(Secure Sockets Layer安全套接层)/TLS(Transport Layer Security安全传输协议).其提供通信双方识别和认证通道,保证数据的机密性和数据的完整性
过程:

传统的http方式在传输数据时都是文明,很容易出现数据被监听和窃取的情况,也可能被监听者篡改,导致访问的内容与服务器不一致,http是一种不安全的传输协议

传输数据被窃听

明文形式的数据在网络上传输是不安全的,必须要对数据进行加密才能安全传输

由于网络数据的传输十分频繁,因此传输时应使用效率较高的对称加密加密数据.但由于浏览器无法得知密钥,需网络传输密钥,但是未得到密钥之前的通讯都是明文的,容易被监听,窃取.不安全

此时,我们要结合非对称加密,来建立安全的传输机制

问题:

为了防止公钥被篡改,引入了CA权威机构:

解密失败,说明网站返回的加密数据有可能被篡改了,或者非CA机构的私钥加密而来


数字证书解密失败

注意:为了防止其他网站管理员申请相同域名的数字证书,致使加密数据被成功解析,而数字证书却是其它网站的信息,包括公钥,则其它网站可窃取网站信息.CA机构会对其它信息包括域名等信息进行辅助校验

https通信

4.总结

这一章节讲解了各层的协议,简单了解通信时的过程.这里主要是一些原理性质知识点讲解,与开发时http API的使用关联不大,但掌握这些底层协议和通信过程是十分重要的,对于网络数据的通信有一个更加清晰的认识


参考:
https://www.jianshu.com/p/c056f9373a10 https://blog.csdn.net/guolin_blog/article/details/104546558
https://www.jianshu.com/p/d1c813dc4225

上一篇 下一篇

猜你喜欢

热点阅读