美文网首页
8、计算机网络协议

8、计算机网络协议

作者: 猪儿打滚 | 来源:发表于2020-04-20 18:16 被阅读0次

    一、概述

    计算机网络协议是有关计算机网络通信的一整套规则,或者说是为完成计算机网络通信而制定的规则、约定和标准。

    二、组成

    • 语法
      通信数据和控制信息的结构和格式
    • 语义
      对具体事件发出什么控制消息,完成什么动作以及做出什么样的应答
    • 时序
      对事件实现顺序的详细说明

    三、TCP/IP各层以及常用协议介绍

    应用层

    1、http协议
    超文本传输协议,定义了万维网客户端程序(应用程序)怎么向万维网请求万维网文档,以及服务器如何把万维网文档传输给应用程序

    • http协议是明文传输,不安全
    • 默认端口是80
    • 特点
      1.支持客户端/服务器模式(应答模式)
      2.无连接
      每次连接只处理一次请求,服务器在处理完客户端发送的请求并收到服务端的应答之后,就断开连接。采用这种方式可以节省传输资源
      3.无状态
      http协议对于事务处理没有记忆能力
      4.简单快速
      用户在向服务器请求服务时,只需要传送请求方法和路径。由于http协议简单,使得http服务器的程序规模小,因而通信速度快
    • 工作过程
      1.分析请求链接中的url
      2.首先在本机进行DNS解析:查看本地的host文件,查看是否有该域名和对应的IP地址,如果找到,则到步骤4
      3.如果步骤2没有找到,则继续向最近的DNS域名解析服务器请求解析该域名的IP地址,如果没有,则再发送请求到上一级的DNS域名解析服务器进行解析(本地DNS=>权威DNS=>顶级DNS=>13组根DNS)
      4.步骤2、步骤3解析得到请求连接中的域名对应的IP地址
      5.用户地址向这个IP地址的服务器发出请求、建立连接、得到响应回来的资源、释放连接【TCP的三次握手四次挥手】
      总结:发送请求 => DNS域名解析,把域名解析成IP地址 => TCP协议三次握手建立连接拿到资源,四次挥手释放连接
    • 幂等性
      HTTP 幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。不管你调用一次,还是调用一百次,一千次,结果都是相同的。
    • 常用请求方式
      1.get
      传送的参数在消息头中,跟在url后面,可以在浏览器地址栏看得到,不安全,一般用于资源请求;
      由于参数跟在url后面,并且不同浏览器对url的长度有限制,所以get所带的参数的长度是有限制的,具体限制视浏览器而定(IE是2083个字节,可能版本更新会支持更长);
      是幂等性方法,用于获取资源,不管调用多少次接口,结果都不会改变
      2.post
      传送的参数在消息体,在浏览器地址栏看不到,需要抓包才能看到,比较安全;一般用于表单提交;
      传送的参数大小无限制,速度比url慢;
      是非幂等方法,所以用来表示新增操作,但是有时候如果url够长,也会用post方法来进行
      post请求有时候会触发先发送options方法,比如说跨域时,options请求会先进行CORS预检请求。具体可通过请求header看出是否会触发options请求,具体可百度。
      3.options
      它是一种探测性的请求,通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。
    来源:http://www.mamicode.com/info-detail-1196517.html)

    2、https协议
    安全超文本传输协议,由http+ssl/tls组成。ssl协议是安全套接字层,在http协议的基础上通过SSL/TLS提供加密处理数据、验证对方身份以及数据完整性保护。
    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
    其工作效率是http的十分之一,所以看情况来使用

    • 默认端口是443

    3、ftp协议
    文本传输协议

    • 默认端口是20、21

    4、smtp协议
    简单邮件传输协议,一般发邮件都是这个协议

    • 默认端口是25

    5、dns协议
    域名解析协议,在传输层提供支持的是UDP协议。

    • 默认端口是53

    • 例如,你要访问“www.apple.com”,就要进行下面的三次查询:

      • 访问根域名服务器,它会告诉你“com”顶级域名服务器的地址;
      • 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址;
      • 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址。

    6、ssh协议
    ssh是建立在应用层和传输层基础上的安全协议;
    可靠的,专为远程登录会话和其它网络服务提供安全性的协议。利用它可以有效防止远程管理过程中的信息泄漏问题

    • 默认端口是22

    7、DHCP协议
    动态主机配置协议,用于分配IP地址

    • IP地址和MAC地址区别
      网卡在出厂时拥有唯一的MAC地址
      IP地址是动态分配的,因为之前使用IPV4,IP地址有限,现在启用了IPV6

    2、传输层

    1、tcp协议
    2、udp协议
    相关内容较多,下一章写

    3、网络层

    1、ip协议
    ip协议是为了计算机网络互相连接进行通信而设计的协议,是TCP/IP协议簇中最为核心的协议。所有类型的数据都以IP数据报格式进行传输的

    • ip协议提供不可靠、无连接的数据报传输
    • ip地址是动态的:当计算机进行联网的时候,首先会发送请求给最近的IP授权服务器,查找上一次该台计算机所使用的IP地址是否被占用了,如果被占用了,则重新分配一个新的空闲IP地址(现在IPV6开始使用了)
    • 协议号是4

    2、icmp协议
    网络控制报文协议,一种特殊的网络层协议。可以在应用层直接使用,跳过传输层(windows系统可以在小黑板使用对应命令)

    • ping命令
      格式:ping 域名/IP,更多参数百度
      作用:给指定目标发送4个icmp包,确定该目标的存在和连通性;通常用于检测当前计算机的网络或目标计算机的网络是否正常
    • tracert命令
      格式:tracert域名/IP,更多参数百度
      作用:用来查看从当前计算机到达目标IP的计算机,需要经过多少个节点(路由器)

    3、 igmp协议
    英特网组管理协议,其它没了解

    4、链路层

    1、ARP协议
    地址解析协议

    • 作用
      把IP地址解析成MAC地址(以太网中,需要知道目标机器的MAC地址才能建立通信)
    • 原理
      1.主机A => 查找自己的ARP缓存是否有目标IP的ARP =>找到就直接和主机B建立连接;
      2.主机A =>查找自己的ARP缓存是否有目标IP的ARP =>找不到,就发送ARP请求=>主机B接收到=>把主机A的IP和ARP记录(ARP项)下来,并响应ARP答复给主机A=>主机A收到响应=>记录主机B的ARP项。
    • 命令arp -a
      查看本机的ARP缓存中的IP地址和MAC地址的列表

    2、RARP协议
    反向地址转换协议,和arp协议相反,可以将mac地址转换成ip地址

    四、端口

    1、概念

    网络技术中,端口有两种意思

    • 物理意义上的端口,比如:交换机、路由器等用于连接其它网络设备的接口
    • 逻辑意义上的端口,一般指的是TCP/IP协议中的端口,端口号从0-655355,一共2^16个

    2、端口分类

    • 公认端口
      从0-1023;紧密绑定于一些服务。通常这些端口的通讯明确表名了某种服务的协议
    • 注册端口
      1024-49151;松散地绑定于一些服务。也就是说有许多服务绑定于这些端口
    • 动态和私有端口
      49152-65525,机器通常从1024开始分配动态端口

    3、常用端口

    • 80
      服务:http协议
      分配给web服务器,用于网页浏览

    • 443
      协议:https协议
      提供加密和安全传输的另一种http,用于网页浏览

    • 8080
      访问某个开启了8080端口的网站时,需要在域名/ip后面加上:8080,用于网页浏览
    • 20、21
      服务:ftp协议
      用于文件上传和下载

    • 22
      服务:SSH协议
      SSH协议是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议

    • 23
      服务:Telnet协议
      Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式
      对应的命令是telnet,也可用于查看目标IP端口是否开启:telnet IP地址 端口

    • 25
      服务:SMTP协议
      邮件传输协议

    五、一些概念

    1、访问网站的本质

    本质上来说,访问任何一个网站,都是通过目标服务器的IP和端口号的组合来实现访问的;比如:http://www.xxx.com:xx

    • 步骤
      1、用户在浏览器输入:www.baidu.com
      2、程序处理:http://www.baidu.com/
      3、经过DNS解析,域名解析成IP,实际访问:http://180.97.33.108:80
      DNS解析过程:浏览器缓存->操作系统缓存->hosts文件->dns

    2、长连接和短连接

    • 短连接
      199X年时所使用的技术,发送一次请求,获取整个请求目标(网页)的一部分资源,发送多次请求后,获取到全部资源。
      比如说:第一次请求,获取到html资源,然后该网页还有CSS,JS等资源,所以继续发送请求来获取这些,直到全部获取完毕。【每一次发送的请求都是短连接,运用的是TCP协议;后来的网站过于复杂,所以弃用,因为TCP协议的连接和释放要经过三次握手和四次挥手,不适合这样频繁地发送请求】
    • 长连接
      现在使用的技术(Keep-Live信息段);客户端发送请求后,先把html文件获取到,但如果还有CSS,JS等资源,则不断开连接,继续获取,直到获取完毕后,才断开连接【TCP协议】
      比如说websocket协议也是长连接协议;

    3、域名的好处

    IP地址比较难记,域名便于记忆

    相关文章

      网友评论

          本文标题:8、计算机网络协议

          本文链接:https://www.haomeiwen.com/subject/heudihtx.html