网络协议知识整理

一、协议简介

1)协议就是指计算机之间实现网络通信的约定方式;
2)常见网络层次协议模型有OSI七层模型、TCP/IP四层模型、TCP/IP五层模型
在这里插入图片描述

网络层次说明
应用层为应用程序提供服务
表示层数据格式转化、数据加密
会话层建立、管理和维护会话
传输层建立、管理和维护端到端的连接
网络层IP选址和路由选择
数据链路层提供介质访问和链路管理
物理层物理层

二、TCP/IP协议群

2.1、TCP/IP协议群

指通过IP进行通信的协议期的统称,包括应用协议、传输协议、网际协议、路由控制协议等;

2.2、应用协议

不同操作系统中应用程序间的通信协议;
1)telnet协议
是 Internet 远程登录服务的标准协议和主要方式,为用户提供了在本地计算机上完成远程主机工作的能力,Telnet 是常用的远程控制 Web 服务器的方法;
2)ftp协议
文件传输协议(File Transfer Protocol),允许用户以文件操作的方式相互通信;
3)http协议
客户端与服务端的简单请求与响应写,运行在TCP 之上;
4)snmp协议
简单网络管理协议,专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、 交换机及 HUBS 等)的一种标准协议;
5)smtp协议
基于文本的消息传输协议
6)dns协议
域名系统(Domain Name System),万维网上作为域名和 IP 地址相互映射的一个 分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接知读取的 IP 地址。

2.3、传输协议

传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使 应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。
1)TCP 协议
TCP:(Transmission Control Protocol)传输控制协议,TCP 是一种面向连接的、可靠的、基 于字节流的传输层(Transport layer)通信协议。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等功能;
2)UDP 协议
UDP:(User Datagram Protocol)的简称, 是不具有可靠性的数据报文协议。虽然可以确 保发送消息的大小,却不能保证消息一定会到达;
3)TCP 与 UDP 比较
TCP 用于在传输层有必要实现可 靠传输的情况;
;UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信;

2.4、网际协议

网际协议是一个网络层协议,它包含寻址信息和控制信息 ,可使数据包在网络中路由;
1)IP 协议
网际互连协议(Internet Protocol)有两个任务,一是寻找地址, 二是管理分割数据片;
2)ICMP 协议
ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包 被废弃的具体原因,改善网络设置等;
3)ARP 协议
地址解析协议((Address Resolution Protocol),负责将某个 IP 地址解析成对应的 MAC 地址;

2.5、路由控制协议

提供一种共享路由选择信息的机制,允许路由器与其他路由器通信以更新和维护自己的路由表,并确定最佳的路由选择路径,当网络发生变化时,路由表中的信息可以随时更新,以保证网络上的路由选择路径处于可用状态。
1)RIP 协议
路由信息协议(Routing Information Protocol),是一种内部网关协议(IGP),是一种 动态路由选择协议,用于自治系统(AS)内的路由信息的传递;
2)OSPF 协议
开发最短路径优先协议(open shortest path first),用于网际协议(IP)网 络的链路状态路由协议;
3)BGP 协议
边界网关协议((Border Gateway Protocol),运行于 TCP 上的一 种自治系统的路由协议。 目的是为了方便管理规模不断扩大的网络,网络被分成了不同的自治系统。BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理 好不相关路由域间的多路连接的协议;

三、TCP协议传输特点

可靠的传输协议,在创建连接时会经历三次握手,在断开连接时会经历四次挥手;

3.1、三次握手

三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认 连接的建立;
在这里插入图片描述

3.2、四次挥手

四次挥手即终止 TCP 连接,就是指断开一个 TCP 连接时,需要客户端和服务端总共发送4 个包以确认连接的断开;
在这里插入图片描述

四、服务端口

端口号用来识别同一台计算机中进行通信的不同应用程序,也被称为程序地址;

4.1、端口分配

1)可用端口范围
0~65535
2)公认端口(Well Known Ports)
从0到1023,它们紧密绑定(binding)于一些服务。 通常这些端口的通讯明确表明了某种服务的协议。例如:80 端口实际上总是 HTTP 通讯;
3)注册端口(Registered Ports)
从 1024 到 65535。它们松散地绑定于一些服务。也就是 说有许多服务绑定于这些端口,这些端口同样用于许多其它目的;

4.2、常见的应用层协议与端口分配

在这里插入图片描述

五、数据包与处理流程

5.1、数据包

1)通信传输中的数据单位,包括:包、帧、数据包、段、消息;
2)组成部分::一部分是协议所要用到的首部;另一部分是上一层 传过来的数据;
3)首部的结构由协议的具体规范详细定义,明确标明了协议应该如何读取数据;
在这里插入图片描述

5.2、处理流程

在这里插入图片描述

六、HTTP协议

6.1、介绍

超文本传输协议(Hyper Text Transfer Protocol),基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),指定了客户端可能发送 给服务器什么样的消息以及得到什么样的响应,是万维网的数据通信的基础;

6.2、特点

1)支持客户端/服务器模式(B/S模式)
2)简单快速
由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
3)灵活
HTTP 通过Content-Type标识内容类型,允许传输任意类型的数据对象;
4)支持为短连接
请求一次,释放一次连接,节省传输时间,实现简单;
当 HTTP 协议头部中字段 Connection:keep-alive 表示支持长链接;
5)单向性
服务端永远是被动的等待客户端的请求;
6)无状态协议
无状态是指协议对于事务处理没有记忆能力,需要通过 Cookie、 Session保持连接状态;

6.3、版本

1)主流http1.1版本,最小http2.0版本;
2)2.0特点
a、单一长连接:客户端向服务器请求页面的过程中只创建单一的长连接,避免了创建多个 TCP 连接带来的 网络开销,提高了吞吐量;
b、多路复用 (Multiplexing):多路复用,连接共享。不同的 request 可以使用同一个连接传输;
c、首部压缩(Header Compression):1.1 中 header 带有大量的信息,并且得重复传输,2.0 使用 encoder 来减少需要传 输的 hearder 大小;
d、服务端推送(Server Push):push 技术可以提前给客户端推送必要的资源,减少请求延迟时间;
e、更安全:使用了 tls 的拓展 ALPN 做为协议升级,除此之外,HTTP2.0 对 tls 的安全性做了近一 步加强,通过黑名单机制禁用了几百种不再安全的加密算法;

6.4、URI、URL、URN

1)URI:统一资源标识符(Uniform Resource Identifier),是一个用于标识某一互联网资源名称的字符串,如<a href="mailto:xxx@qq.com">发送邮件</a>,URL 和 URN 都是 URI 的子集;
2)URL:统一资源定位符(Uniform Resource Location),唯一定位互联网上的某一个 资源,相当于是互联网资源的身份证号,如http://ip:port/index.html?id=1
3)URN:统一资源名称(Uniform Resource Name),用于在 特定的命名空间资源的标识,以补充网址,如ip:port/index.html?id=1

6.5、请求与响应

GET 和 POST 的区别:
1)GET 在浏览器回退时是无害的,而 POST 会再次提交请求;
2)GET 产生的 URL 地址可以被 Bookmark,而 POST 不可以;
3)GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置;
4)GET 请求只能进行 url 编码,而 POST 支持多种编码方式;
5)GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留;
6)GET 请求在 URL 中传送的参数是有长度限制的,而 POST 则没有。对参数的数据类型 GET 只接受 ASCII 字符,而 POST 即可是字符也可是字节;
7)GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息;
8)GET 参数通过 URL 传递,POST 放在 Request body 中;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值