TCP/IP学习笔记
TCP\IP从实际应用的五层结构开始,自顶而下的去分析每一层。
TCP/IP五层架构概述
学术上面是TCP/IP四层架构,OSI/ISO是七层架构,实际中使用的是TCP/IP五层架构。数据链路层
ICMP数据包分析
Wireshark抓包分析ICMP协议_wireshark抓ping包分析数据报格式-CSDN博客
ping百度的ip地址。
请求报文
DDOS攻击
DDoS(分布式拒绝服务)攻击是一种恶意网络攻击,**旨在通过向目标服务器、服务或网络发起大量的流量请求,导致其无法正常工作**,从而使其无法为合法用户提供服务。与传统的DoS(拒绝服务)攻击不同,DDoS攻击是由多个受控设备(通常是被恶意软件感染的设备,形成一个“僵尸网络”)同时发起攻击,从而分散了攻击来源,使其更难被防范和追踪。Ping Flood 攻击:这是最简单的 DDoS 攻击之一。攻击者使用大量设备向目标服务器发送大量 ICMP 回显请求(类似于 ping
命令),目的是占用目标的网络带宽和 CPU 资源。
网络层
IP协议
IP习题
首部长度为20字节
前八位中后四位0100,表示4是ip首部的长度,这个最小值为5.所以需要丢弃这个分组。
4个二进制表示一个十六进制。生存时间必须是32+32个位也就是16个十六个十六进制。 生存时间8位两个十六进制。01表示这个分组的跳数是1。下一个两个十六进制就是协议类型。02表示的是IGMP协议。
片位移式100 *8=字节,前面长度位799。下一个从800开始。 首部20,总长度100. 这个分片有80字节。
第一个字节编号 800 最后一个879
wireshark抓取ip数据包进行分析。
4 表示ipv4
5 首部长度位5*4=20字节
00 是区分服务
0030 总长度 长度48
7a4f 表示标识字段
4000 标志和片位移 0100 0000 1标识不分片
7c 生存时间 124
06 上层TCP协议
635d 首部校验和
3b517295 源地址 59.81.114.149
3b 51 37 e4 目的地址 59.81.55.228
分析ip数据包,应该是必考的.
Wireshark分析IP数据报_用wireshark分析ip报文结构-CSDN博客
前面的MAC地址,MAC地址长度是48位。四位是一个十六禁止,所以六位是一个MAC地址。
第一个4 标识ipv4的协议。
6是首部的长度,首部长度位30字节。
00 标识区分服务。
校验和确认
IP地址
OSPF和RIP协议
求当前最短路径的算法。
https://blog.csdn.net/yunfengfengfeng/article/details/105555008?ops_request_misc=&request_id=&biz_id=102&utm_term=dijkstra%E7%AE%97%E6%B3%95%E8%AE%A1%E7%AE%97%E8%B7%AF%E7%94%B1%E8%A1%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-105555008.142v100pc_search_result_base2&spm=1018.2226.3001.4187
ARP报文分析
https://blog.csdn.net/weixin_46027505/article/details/106440848
ARP(Address Resolution Protocal,地址解析协议)是将IP地址解析为以太网的MAC地址(或者称为物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址还是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因为发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。ARP就是实现这个功能的协议。
arp的理解(考研考过)
arp 请求的时候是广播报文,响应式单播报文。
查看本地arp 缓存
arp -a
arp -d * 删除本地的缓存表 需要管理员的权限
ARP请求
arp响应报文
HardWare type 1表示当前的硬件类型式以太网
protoco type 表示上层协议类型 ipv4
hardware size MAC地址长度
Protocol size ip协议地址长度
opcode reply 操作类型 1 表示arp请求报文 2表示 arp应答报文
源MAC和源IP
目的MAC和目的IP地址
传输层
TCP协议
报文格式
三次握手
第一次握手 SYN=1 请求建立连接 seq=x 表示当前的序号是x第二次握手 SYN=1 ACK=1 ack=x+1 表示收到了前x个,下一个从x+1开始,seq表示当前是从y第三次握手 ACK=1表示有效 ack=y+1 seq=x+1
是否可以进行两次握手。
防止已经失效的连接请求,一个报文在网络中逗留了很长的时候,在到达服务器端,这个时候服务器端打开状态,而客户端已经关闭了状态,浪费了资源。
选择C ACK=上一次的seq+1.
四次挥手
第一次挥手 FIN=1 ACK=1 seq=u ack=v请求关闭连接
第二次挥手 服务器发送 ACK 包 ACK=1 seq=v ack=u+1
第三次挥手 服务器发送FIN=1 请求关闭连接
第四次挥手 发送ACK报文
四次挥手详细过程如下:
- 客户端发送关闭连接的报文段,FIN 标志位1,请求关闭连接,并停止发送数据。序号字段 seq = x (等于之前发送的所有数据的最后一个字节的序号加一),然后客户端会进入 FIN-WAIT-1 状态,等待来自服务器的确认报文。
- 服务器收到 FIN 报文后,发回确认报文,ACK = 1, ack = x + 1,并带上自己的序号 seq = y,然后服务器就进入 CLOSE-WAIT 状态。服务器还会通知上层的应用程序对方已经释放连接,此时 TCP 处于半关闭状态,也就是说客户端已经没有数据要发送了,但是服务器还可以发送数据,客户端也还能够接收。
- 客户端收到服务器的 ACK 报文段后随即进入 FIN-WAIT-2 状态,此时还能收到来自服务器的数据,直到收到 FIN 报文段。
- 服务器发送完所有数据后,会向客户端发送 FIN 报文段,各字段值如图所示,随后服务器进入 LAST-ACK 状态,等待来自客户端的确认报文段。
- 客户端收到来自服务器的 FIN 报文段后,向服务器发送 ACK 报文,随后进入 TIME-WAIT 状态,等待 2MSL(2 * Maximum Segment Lifetime,两倍的报文段最大存活时间) ,这是任何报文段在被丢弃前能在网络中存在的最长时间,常用值有30秒、1分钟和2分钟。如无特殊情况,客户端会进入 CLOSED 状态。
- 服务器在接收到客户端的 ACK 报文后会随即进入 CLOSED 状态,由于没有等待时间,一般而言,服务器比客户端更早进入 CLOSED 状态。
两倍的MSI时间,保证TCP服务器端能收到第四次挥手的内容,如果第四次发送的内容咋在网络中丢失了,那么服务器端一直会发送重新响应报文。
16进制一个数字用四个二进制来表示。0532源端口 0017目的端口 都是16位。00000001 是序号 seq00000000 确认号 ack5 首部长度 5*4等于20字节报文类型 0000 0000 0010 SYN等于1。 07FF 窗口的大小0000 校验和0000紧急指针
wireshark分析TCP\IP三次握手和四次挥手的过程。
大脑里面需要有那一张的图
先 ping www.baidu.com
然后再 curl www.baidu.com 解释curl命令
https://blog.csdn.net/ngczx/article/details/143669372?spm=1001.2014.3001.5501
第一次握手
seq和ack都是0.
第二次握手
seq=0,ack=上一次的+1=1
第三次握手
seq等于1,客户端第二次和服务器进行交互了。 ACK等客户端序号+1=1
第一次挥手
seq=79 ack=2782 FIN=1 请求关闭连接。
第三次挥手
第四次挥手
https://blog.csdn.net/dfBeautifulLive/article/details/121889271
TCP的高级特性包括**重传机制、滑动窗口、流量控制、拥塞控制。**
重传机制
往返时间RTT测量是比较复杂度的。
计算RTO的值。
滑动窗口
滑动窗口是一种流量控制机制,用于管理发送方和接收方之间的数据传输。**它通过定义一个窗口大小,限制在任何时间点内发送方可以发送但未被确认的数据量,从而防止接收方被过多的数据淹没。 **流量控制
窗口的大小 **rwnd**。拥塞控制
完整的拥塞控制过程
考研题目
UDP协议
TCP和UDP协议的区别
特性 | TCP | UDP |
---|---|---|
全称 | 传输控制协议 | 用户数据包协议 |
面向连接 | 无连接 | |
传输具有可靠性 | 不可靠 | |
速度较慢,需要建立连接 | 速度较快 | |
使用场景 | 文件传输、网页浏览器 | 实时视频会议、DNS查询 |
wireshark抓取UDP报文分析
应用层的协议
Http协议
报文类型
请求报文请求方法 URL HTTP版本请求头请求体(post请求才有请求体)
响应报文
HTTP的版本 状态码 状态信息
HTTP/1.1 200 OK响应头
key:value响应体
wireshark分析HTTP报文
[wireshark抓包分析HTTP协议,HTTP协议执行流程,_浏览网页wireshark进行报文捕获-CSDN博客](https://blog.csdn.net/wangyuxiang946/article/details/132634902)报文符合三次握手和四次挥手的过程。
DNS协议
**域名: **** www.baidu.com。**就像 IP 地址必须转换成 MAC 地址才能访问主机一样,域名也必须要转换成 IP 地址,这个过程就是“域名解析”。
采用任播的技术,每次请求的时候都是找到最近的根域名服务器。
查询一般使用递归或者迭代查询
DNS本身是传输使用的是UDP,如果是DNS服务器之间传输数据可能会用TCP,所以DNS不一定是UDP。
NAT协议
```javascript 私有的IP地址。 10.0.0.0 ——— 10.255.255.255172.16.0.0——— 172.16.255.255
192.168.0.0———192.168.255.255
为了解决ip地址非常稀少的问题,提出了NAT协议,将私网的ip地址映射到公网上面去。实现了一个公司使用一个公网的ip地址。NAPT 加上了ip地址和端口号![](https://img-blog.csdnimg.cn/img_convert/f0029da6d7fb5ea38b47f3a27b06c296.png)NAT对于外网屏蔽了内网主机地址,能够为内网主机提供一定的安全保护。<h3 id="OMfj9">DHCP协议</h3>
需要掌握**DHCP 客户使用的端口是68,DHCP服务器使用的端口是67。**DHCP在没有获取到ip地址的时候默认是**0.0.0.0**。只有通过四次交互之后才会真正分配ip地址。![](https://img-blog.csdnimg.cn/img_convert/f796add3ada4aa22e1cec8867d4eff8b.png)![](https://img-blog.csdnimg.cn/img_convert/4b7e091386981ab0efa8837bc1359608.png)
相关文章:
TCP/IP学习笔记
TCP\IP从实际应用的五层结构开始,自顶而下的去分析每一层。 TCP/IP五层架构概述 学术上面是TCP/IP四层架构,OSI/ISO是七层架构,实际中使用的是TCP/IP五层架构。 数据链路层 ICMP数据包分析 Wireshark抓包分析ICMP协议_wireshark抓ping包分析…...
0000_vim自定义快捷键_alias
vim自定义快捷键_alias 如下: 1.直接打开vi ~/.bashrc 然后到最底部,添加alias快捷键 2.添加alias快捷键mgplat 以后只要发送mgplat就等于出发了那么长一条指令 3.保存退出即可 【注意】 操作完后,可能你用mgplat无法使用,可…...
Spring Boot项目中,实体类是否需要实现Serializable接口
在Spring Boot项目中,实体类是否需要实现Serializable接口并不是一个硬性规定,而是取决于具体的应用场景和需求。以下是对这一问题的更详细分析: 1. 序列化的基本概念 序列化是将对象的状态信息转换为可以存储或传输的形式的过程。反序列化则…...
打通工业通信壁垒实现Ethernetip转profinet网络互通
西门子S7-1500 PLC(profinet)与AB PLC 1769-L32E以太网通讯(EtherNet/IP)。今天与大家分享一篇Profinet转EtherNet/IP的通讯配置方案。本文主要介绍开疆智能的Profinet转EtherNet/IP网关KJ-PNG-208,连接西门子S7-1500 …...
数据结构_图的应用
最小生成树 Prim算法 int AMGraph::sum(string v) {int start, totalW, cnt, minW, u, vv, i, j;start LocateVex(v); // 获取起始顶点编号memset(visited, false, sizeof(visited)); // 初始化访问状态visited[start] true;totalW 0; // 最小生成树的总权重cnt 1; // 当前…...
C#中面试的常见问题002
1.wpf和Winfrom的区别 1. 技术基础 WPF:基于.NET Framework,使用XAML(可扩展应用程序标记语言)作为界面描述语言,支持矢量图形和高级布局。WinForms:基于.NET Framework,使用纯代码或拖放设计…...
快速理解微服务中Ribbon的概念
一.基本概念 1.在微服务架构中,Ribbon 是一个客户端负载均衡器,用于控制服务间的通信方式。 2.Ribbon 是一个开源的库,最早由 Netflix 开发,用于实现客户端负载均衡。 3.Ribbon 主要解决的是在微服务架构中,多个服务…...
K8S简介、使用教程
以下是关于 Kubernetes(通常缩写为 K8S)的简介和使用教程: 一、Kubernetes 简介 定义与作用 Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌开发,后捐赠给云原生计算基…...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【四】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
麦肯锡报告 | 科技落地的真谛:超越技术本身的价值创造
科技创新正在以惊人的速度改变企业运作和客户体验,但实现其潜力的关键在于正确的策略、流程、文化和人才。麦肯锡强调了一个理念:Never just tech(不仅仅是技术)。这表明,成功的数字化转型不仅依赖于技术,还…...
彻底解决 macOS 下Matplotlib 中文显示乱码问题
彻底解决 macOS 下Matplotlib 中文显示乱码问题 在使用 Python 的 Matplotlib 库进行数据可视化时,中文字符的显示常常会出现乱码问题,尤其在 macOS 系统上。在网上找了一大堆方法,花了很久,发现不是要安装各种字体就是要改配置&…...
STM32-- keil 的option for target使用
keil版本号 1.device界面 如:stm32f103c8t6的工程,可以直接在device这里修改成stm32f103vct6,虽然引脚不一样,但是很多一样的地方,可以直接使用,有些不修改也可以下载程序。 2.target xtal的设置不起作用了…...
【MCU】微控制器的编程技术:ISP 与 IAP
在嵌入式领域中,将程序下载到内置 Flash 有两种技术 ISP (In-system programming) ISP 即在系统编程,是指一些可编程逻辑器件、微控制器、芯片组和其他嵌入式设备在安装到完整嵌入式系统后能够进行编程,而不需要在将芯片安装到系统中之前对…...
C#基础题总结
16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。 17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身&…...
Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
大家好,我是锋哥。今天分享关于【Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?】面试题。希望对大家有帮助; Elasticsearch中的节…...
《参与中型项目,领略 Spring 魅力》
一、Spring 在中型项目中的魅力展现 Spring 框架以其强大的功能和灵活性,在中型项目中发挥着重要作用。它不仅简化了开发过程,还提高了代码的可维护性和可扩展性。 Spring 在中型项目中魅力十足,其优势主要体现在以下几个方面。 首先&#…...
计算机网络-GRE(通用路由封装协议)简介
昨天我们学习了VPN的基本概念,虚拟专用网络在当前企业总部与分支间广泛使用。常用的划分方法为基于协议层次有GRE VPN、IPSec VPN、L2TP VPN、PPTP VPN、SSL VPN等。其实我有考虑该怎么讲,因为在IP阶段好像虚拟专用网络讲得不深,在IE的阶段会…...
开源电话机器人产品的优点是什么?
开源电话机器人产品的优点是什么? 作者:开源呼叫中心系统 FreeIPCC,Github地址:https://github.com/lihaiya/freeipcc 开源电话机器人产品作为人工智能技术的一种应用,近年来在电销、客户服务等多个领域展现出了显著的…...
Spring Boot 集成 Knife4j 的 Swagger 文档
在开发微服务应用时,API 文档的生成和维护是非常重要的一环。Swagger 是一个非常流行的 API 文档工具,可以帮助我们自动生成 RESTful API 的文档,并提供了一个友好的界面供开发者测试 API。本文将介绍如何在 Spring Boot 项目中集成 Knife4j …...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【一】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
C# 在Word文档模板中,按照占位符插入文字或图片
1,引入包:DocX 2,代码如下 public class CC{public static void Ma22in(){// 示例:加载现有模板并替换占位符string templatePath "报告模板.docx"; // 模板文件路径string outputPath "Output.docx"; // 输出文…...
在使用PCA算法进行数据压缩降维时,如何确定最佳维度是一个关键问题?
一、PCA算法的基本原理 PCA算法的核心思想是通过正交变换,将一组可能相关的变量转换成一组线性不相关的变量,称为主成分。这组主成分能够以最小的信息损失来尽可能多地保留原始数据集的变异性。具体来说,PCA算法包括以下几个步骤:…...
深度学习3
五、自动微分 1、基础概念 模块 autograd 负责自动计算张量操作的梯度,具有自动求导功能;autograd 创建一个动态计算图来跟踪张量的操作,每个张量是计算图中的一个节点,节点之间的操作构成图的边。 属性 requires_grad 决定…...
Qt5.14.2的安装与环境变量及一些依赖库的配置
目录 1.Qt5.14.2安装 2.Qt环境变量及一些依赖库的配置 1.Qt5.14.2安装 QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 - 博客园 2.Qt环境变量及一些依赖库的配置 假设QT安装目录为: D:\Qt\Qt5.14.2 将目录: D:\Qt\Qt5.14.…...
PYNQ 框架 - 时钟系统 + pl_clk 时钟输出不准确问题
目录 1. 简介 2. PS 时钟计算 2.1 计算框架 2.2 KV260 的参考时钟 2.3 PL_CLK 设置 3. 测试 3.1 Block design 3.2 引脚绑定 3.3 使用 AD2 测量 3.4 调整分频 4. PYNQ 时钟驱动 4.1 源码解析 4.2 查看 PL_CLK 4.3 配置 PL_CLK 5. 总结 1. 简介 ZYNQ MPSoC 具有…...
CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标
注:本文为 “CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标” 几篇相关文章合辑。 文章中部分超链接、图片异常受引用之前的原文所限。 相机自动对焦原理 TriumphRay 于 2020-01-16 18:59:41 发布 凸透镜成像原理 这一部分大家中学应该就学过…...
类和对象--中--初始化列表(重要)、隐式类型转化(理解)、最后两个默认成员函数
1.初始化列表 1.1作用: 通过特定的值,来初始化对象。 1.2定义: 初始化列表,就相当于定义对象(开空间)。不管写不写初始化列表,每个成员变量都会走一遍初始化列表(开出对应的空间…...
uni-app运行 安卓模拟器 MuMu模拟器
最近公司开发移动端系统,使用真机时每次调试的时候换来换去的麻烦,所以使用模拟器来调试方便。记录一下安装和连接的过程 一、安装MuMu模拟器 百度搜索MuMu模拟器并打开官网或者点这里MuMu模拟器官网 点击下载模拟器 安装模拟器,如果系统…...
java 打印对象所有属性的值 循环
在Java中,如果你想要打印一个对象的所有属性值,可以使用反射(Reflection)来获取对象的所有字段,并循环遍历这些字段以打印它们的值。以下是一个示例代码,展示了如何实现这一点: 示例类 假设我…...
k8s认证、授权
在 Kubernetes 中,kubectl auth can-i 命令用于检查当前用户或指定的 ServiceAccount 是否有权限执行特定的操作: kubectl auth can-i create deployment --as system:serviceaccount:default:dev-sa这个命令的作用是检查名为 dev-sa 的 ServiceAccount…...
dw创建网站相册/怎么恶意点击对手竞价
QML (Qt Modeling Language) is a user interface markup language. It is a declarative language for designing user interface–centric applications....
郑州品牌网站建设/竞价系统
有媒体报道:截至2010年12月底,中国移动3G用户总数2070.2万户。而在新增用户方面,中移动2010年12月份新增3G用户186.7万户,较2010年11月有大幅下降。2010年11月,中国移动新增3G用户298万。看到这则消息我笑了࿰…...
360网站推广怎么做/互联网推广公司排名
本文为《汇编语言程序设计》0904小节例程。点击链接…进课程主页。 jcxz指令 assume cs:codesg codesg segment start: mov ax,2000Hmov ds, axmov bx,0s: mov cx, [bx]jcxz okinc bxinc bx jmp short sok: mov dx, bxmov ax, 4c00Hint 21H codesg ends end start loop指令 …...
京东网站建设步骤/广东云浮疫情最新情况
全球最厉害的14位程序员都有哪些人?接下来让我们一起来看一下让业界膜拜的这十几位顶级编程大神。 注意,排名不分先后。 01 Jon Skeet 个人名望:程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。 …...
如何作wordpress 主题/网站排名怎么搜索靠前
在不同环境部署项目时,由于不同的配置,部署时难免会改变部署的方式,而且基本使用版本管理工具,比如git或svn进行下拉代码部署项目时,尽可能的不变动代码(如果变动代码,下次下拉代码前必须要使用…...
网站注册都需要什么/链接式友谊
使Slate 支持Odin绘制,使得Slate更方便编辑 直接修改Inspector 的继承对象 例如 ActionClipInspector 或者在CreateEditor 加typeof (不建议,藏的多,不好找) 支持绘制后,LabelText标签测试:...