网络协议基础和常用网络工具

网络协议基础知识
1、计算机网络是什么?

利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。

2、主要网络有哪些?

(1)局域网(2)城域网(3)广域网

3、计算机网络体系结构

各层的关系:每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。

OSI模型:应 表 会 传 网 链 物 (因为 绿茶婊 会 传情 网 恋 无)

在这里插入图片描述

4、TCP/IP协议(传输控制协议/英特网互联协议)

在这里插入图片描述

在这里插入图片描述

5、网络传输中的数据
  • 包是全能性术语

  • 帧用于表示数据链路层中包的单位

  • 片是IP中数据的单位

  • 段则表示TCP数据流中的信息

  • 消息是指应用协议中数据的单位

在这里插入图片描述

6、网络通信中的地址和端口号

MAC地址和IP地址

在这里插入图片描述

IP地址:区分不同的主机,可以改,网络层,主要用于不同的子网之间数据的传递

MAC地址:写在网卡里面的,一般都不能改,数据链路层,主要用于局域网内

长度不对,寻址协议不同

端口号:(程序地址)用来识别同一台计算机中进行通信的不同应用程序

知名端口号一般在0~1023之间,一般写应用程序不用这些端口号,不写端口号,操作系统会随机给你分配一个端口号。(一般服务器要指定端口号,客户端可以不指定端口号)。
FTP服务器端口号:21
SSH服务器端口号:22
SMTP服务器端口号:25
HTTP服务器端口号:80
FTP端口号:2000
HTTP客户端端口号:2001

在这里插入图片描述

7、TCP的基本特性
  • 面向连接(两台服务器之间建立连接,通讯完成拆除连接)
  • 可靠性(可靠的数据流服务,基于超时重传和应答确认机制来组成的)
  • RTT和RTO(操作系统会采样来动态调整超时时长RTT root trip time,再通过这个时长再通过各种算法,最终来确定RTO retransmission timeout【重传超时时长】值)
  • 数据排序(数据在网络上传输过程中不保证对端收到的顺序就是你发送的顺序,所以在TCP中要带上数据排序)
  • 流量控制(两台服务器处理速度不一样,滑动窗口进行流程控制)
  • 全双工(在两台机器上建立了连接以后数据可以同一时刻由A发往B,也可以由B发往A)、
8、TCP连接中的三次握手

建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

第一次握手:客户端请求建立连接

第二次握手:服务端应答客户端,并请求建立连接

第三次握手:客户端针对服务端请求确认应答

在这里插入图片描述

9、为什么需要3次握手

TCP是面对连接的,所以需要双方都确认连接的建立。

10、TCP的3次握手的漏洞-SYN洪泛攻击

定义:通过网络服务所在的端口发送大量伪造原地址的攻击报文,发送到服务器,造成服务端上的半开连接队列被占满,从而阻止其他用户进行访问。

原理:攻击者客户端利用伪造的IP地址向服务端发出请求(第一次),而服务端的响应(第二次握手)的报文将永远发送不到真实的客户端,服务端在等待客户端的第三次握手(永远都不会有的),服务端在等待这种半开的连接过程中消耗了资源,如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的目的。

解决方案:

  • 无效连接监控释放
  • 延缓TCB分配方法
  • 防火墙(最常用的方法)
11、TCP中的四次挥手

定义:断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

过程:第一次挥手:客户端发送关闭请求

​ 第二次挥手:服务端响应客户端关闭请求

​ 第三次挥手:服务端发送关闭请求

​ 第四次挥手:客户端发送关闭确认请求

在这里插入图片描述

客户端和服务端都有可能发起主动关闭

12、为什么需要四次挥手

TCP是双全工(即客户端和服务器端可以相互发送和接收请求),所以需要双方都确认关闭连接。

13、为什么需要TIME-WAIT状态

可靠的中止连接 保证迟来的top报文 可以被丢弃

常用的网络工具
1、Wireshark的使用

下载地址:https://www.wireshark.org/

安装后要重启

在这里插入图片描述

捕获过滤器:BPF语法

显示过滤器

在这里插入图片描述

在这里插入图片描述

分析TCP的第一次握手

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

分析TCP的第二次握手
在这里插入图片描述

分析第三次握手

在这里插入图片描述

2、tcpdump

tcpdump命令是基于liunx系统的命令行的数据报嗅探工具,可以抓取流动在网卡上的数据包

只能运行在超级管理员下。root用户登录

用ifconfig命令查看网络接口

tcpdump -i eth0 tcp port 3306 -w ./mysql.cap

3、HTTP协议(超文本传输协议)

是用于从万维网服务器传输超文本到本地浏览器的传送协议.
HTTP 使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。 URL 是一种特殊类型的 URI,包含了用于查找某个资源的足够的信息。 URL,全称是 UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一 处资源的地址。

URI和URL的区别:
URI是绩粹的句法结构,用于指定标识Web资源的字符串的各个不同部分。URL是URI的一个特例,它包含了定位web资源的足够信息。其他URI,比如:mailto:cay@horstman.com,则不属于定位符,因为根据该标识符无法定位任何资源。
URI(统一资源标识符)每个URL都是URI,但不一定每个URI都是URL。这是因为URI还包括一个子类,即统一资源名称(RUN),它命名资源但不指定如何定位资源。上面的mailto就是一个URN的示例。
URL(统一资源定位器)它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

一个完整的URL
http://www.enjoyedu.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1.协议部分:该 URL 的协议部分为“http:”,这代表网页使用的是 HTTP 协议。在 Internet 中可以使用多种协议,如 HTTP,FTP 等等本例中使用的是 HTTP 协议。在"HTTP"后面的“//” 为分隔符
2.域名部分:该 URL 的域名部分为“www.enjoyedu.com”。一个 URL 中,也可以使用 IP 地址作为域名使用
3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是 一个 URL 必须的部分,如果省略端口部分,将采用默认端口
4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。 虚拟目录也不是一个 URL 必须的部分。本例中的虚拟目录是“/news/”
5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没 有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和 “#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是 “index.asp”。文件名部分也不是一个 URL 必须的部分,如果省略该部分,则使用默认的文 件名
6.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询 部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数, 参数与参数之间用“&”作为分隔符。
7.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也 不是一个 URL 必须的部分

4、一次完整HTTP请求的过程
  1. 首先进行DNS域名的解析(本地浏览器缓存、操作系统缓存或者DNS服务器)
  2. 三次握手建立TCP连接
  3. 客户端发起HTTP请求
  4. 服务器响应HTTP请求
  5. 客户端解析html代码,并请求html代码中的资源
  6. 客户端渲染展示内容
  7. 关闭TCP连接
5、请求报文结构

在这里插入图片描述

6、响应报文结构

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值