DNS/IP/PORT/TCP/UDP/HTTP/HTTPS/三次握手四次挥手

254 阅读5分钟

DNS

  • DNS:Domain Name Server(域名服务器)
  • 作用:通过域名查询到具体的 IP
  • 特征:DNS中保存了一张域名与对应IP地址的表,一个域名只能对应一个IP地址,一个IP地址可以对应多个域名. 解释一个上面加粗的那句话.

一个IP地址可以对应多个域名:就是当你输入不同的网址,可以跳到同一个网站这是没问题的,但是如果一个域名对应多个IP地址则会出现问题,当你输入网址时要跳到哪个ip地址呢?

DNS解析的过程

首先用一张图来展示

image.png

  • 当你输入网址网址时,现在DNS本地服务器进行一个查找
  • 如果没有就向根服务器进行查询,这时候让你去.com这个域服务器进行查找
  • 如果没有就去域名本身的域服务器去查找,图中就是jsplusolus.com域服务器
  • 找到之后就会写入缓存,并访问这个IP地址 就是从右向左解析.

IP

  • IP地址(互联网协议地址) Internet Protocol Address
  • 作用:分配给用户上网使用的互联网协议
  • 分类 IPv4 IPv6

IPv4

形式:192.168.0.1 四个字节,十进制表示的

Ipv6

形式 ABCD:EF11:2345:6789:ABCD:EF11:2345:7894 8组,十六进制表示的 优势:

  • IPv6 空间更大
  • 路由表更小
  • 对自动配置的支持(IPv4也支持,性能不如IPv6)
  • 有更高的安全性

PORT(端口号)

一个IP地址并不是指向某个服务,而是指向某个服务器,服务器中有很多端口号,端口号才是指向不同服务的

通俗话来讲:

  • IP地址:某游乐场的地址
  • 端口号:游乐场中不同的游乐设施 总结:每一个端口对应的是一个服务器的一个业务,访问一个服务器的不同端口相当于访问不同的业务
  • 端口号范围 :0-65535
  • 默认端口号:http(80),https(443),FTP(20,21)

TCP(打电话点对点)

  • TCP传输控制协议
  • 特点:面向连接(收发数据前,必须建立可靠连接)
  • 建立连接的基础:三次握手
  • 应用场景:数据必须准确的收发如:HTTP请求,FTP文件传输,邮件收发
  • 优点:稳定,有重传机制,拥塞控制机制,断开连接
  • 缺点:速度慢,效率低,占用资源,容易被攻击(DOS,DDOS)
  • TCP/IP协议组:提供点对点的连接机制,指定了数据封装,定址,传输,路由,数据收发的标准

UDP

  • 特点:面向无连接(不可靠协议,无状态传输机制)
  • 应用场景:无需保证通讯质量且要求速度快,无需确保信息完整如:语音,直播等
  • 优点:安全,快速,漏洞少
  • 缺点:不可靠,不稳定,容易丢包
  • 总结:只要目的地和发送方的源地址,端口号确定,就能发送信息报文,但不能保证能收到或完整收到数据.

HTTP和HTTPS

HTTP

  • HTTP :超文本传输协议
  • 定义 客户端和服务端请求和应答的标准,用于从WEB服务器传输超文本的传输协议
  • HTTP请求:按照协议向WEB服务器发送的将超文本传输到本地浏览器的请求

HTTPS

  • 定义:HTTP的安全版(安全基础是SSL/TLS)
  • SSL: 安全套接层
  • TLS:传输层安全

HTTP和HTTPS的区别

  1. HTTP是不安全的容易被监听和中间人攻击等手段获取网站账户信息和敏感信息
  2. HTTP协议传输的内容都是明文的,直接在TCP连接上运行,客户端和服务器无法验证对方身份
  3. HTTPS协议内容都被SSL/TLS加密,先运行在SSL/TLS上,再由SSL/TLS运行在TCP连接上,所以数据传输是安全的.

三次握手四次挥手

标志位的认识:

  • 同步 SYN :synchronous。建立连接,将 SYN = 1。
  • 序号 seq: sequence。第一个字节的编号随机产生。
  • 确认位 ACK : acknowledgement 。
  • ack : 表示确认字段的值。(对哪个进行确认)。
  • 结束 FIN : finish。FIN = 1 表示希望断开连接。 状态的认识:
  • LISTEN: 侦听TCP端口的连接请求
  • SYN-SENT : 在发送连接请求后等待匹配的连接请求。
  • SYN-RCVD:在收到和发送一个连接请求后等待回应。

三次握手

image.png

  • 第一次握手:客户端向服务端发送SYN标志位(发送序号seq是j),并进入SYN——SENT状态等待服务器确认状态
  • 第二次握手:服务器收到了来自客户端的SYN j,服务端会确认数据包已经收到了并发送ACK标志位(序号ack是j+1)和SYN标志位(确认序号seq是K)
  • 第三次握手:客户端进入连接建立状态后,向服务端发送ACK标志位(确认序号ack是k+1)确认客户端已收到建立连接确定,服务器接受到ACK之后,服务端进入连接已建立状态

四次挥手

image.png

  • 第一次挥手:客户端向服务端发送FIN标志位(发送序号seq为25368)
  • 第二次挥手:服务端接受到客户端发送的数据后做出回应发送ACK标志位(确认序号ack为25369)
  • 第三次挥手:服务端再向客户端发送FIN标志为(发送序号seq为10568)
  • 第四次挥手:客户端接受到服务端的数据后做出回应发送消息确认包ACK标志位(确认序号ack为10569)

第二步和第三步能不能合并?为什么?

不能合并.因为TCP/IP连接是安全的必须建立在可靠的连接上,断开连接的请求是由客户端发起的,客户端已经准备好断开的动作了不会再给服务端进行发数据了,但是不能确保服务端也做好了准备没有数据发给客户端了,所以只能分两步进行发送.当服务端也做好断开准备之后再给客户端发送FIN标志位.