计算机网络个人小结
-
不同层的数据报的名称
应用层: data
TCP层: segment
IP 层: packet
MAC层: frame -
MTU vs MSS:
MTU:一个网络包的最大长度,以太网中一般为 1500 字节。
https://www.xiaolincoding.com/network/1_base/how_os_deal_network_package.html#linux-%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E6%A0%88
在以太网中,规定了最大传输单元(MTU)是 1500 字节,也就是规定了单次传输的最大 IP 包大小。
当网络包超过 MTU 的大小,就会在网络层分片,以确保分片后的 IP 包不会超过 MTU 大小,如果 MTU 越小,需要的分包就越多,那么网络吞吐能力就越差,相反的,如果 MTU 越大,需要的分包就越少,那么网络吞吐能力就越好。
MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。
-
Linux 常用命令
netstat -napt 查看TCP 的连接状态。
route -n 命令查看当前系统的路由表。
arp -a 命令查看 ARP 缓存的内容 -
ARP and RARP
ARP: IP->MAC 在局域网中广播IP地址,若某设备IP地址match,会回复其MAC地址。注意在ARP缓存中若已有该IP的MAC地址,则无需广播。
RARP: MAC->IP -
gateway, router, switch和hub
参考 https://www.xiaolincoding.com/network/1_base/what_happen_url.html
-
网关gateway 一般是连接两个网络做转换用。
-
路由器router - 工作在网络层
路由器和交换机是有区别的。
因为路由器是基于 IP 设计的,俗称三层网络设备,路由器的各个端口都具有 MAC 地址和 IP 地址;
而交换机是基于以太网设计的,俗称二层网络设备,交换机的端口不具有 MAC 地址。
路由器基本原理
路由器的端口具有 MAC 地址(只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃。),因此它就能够成为以太网的发送方和接收方;同时还具有 IP 地址,从这个意义上来说,它和计算机的网卡是一样的。
当转发包时,首先路由器端口会接收发给自己的以太网包,然后路由表查询转发目标,再由相应的端口作为发送方将以太网包发送出去。
在网络包传输的过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。 -
交换机switch 工作在MAC层。交换机的设计是将网络包原样转发到目的地。
注意:计算机的网卡本身具有 MAC 地址,并通过核对收到的包的接收方 MAC 地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方 MAC 地址,而是直接接收所有的包并存放到缓冲区中。因此,和网卡不同,交换机的端口不具有 MAC 地址。
交换机的 MAC 地址表主要包含两个信息:一个是设备的 MAC 地址,另一个是该设备连接在交换机的哪个端口上。
当 MAC 地址表找不到指定的 MAC 地址会怎么样?这种情况下,交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。这样做不会产生什么问题,因为以太网的设计本来就是将包发送到整个网络的,然后只有相应的接收者才接收包,而其他设备则会忽略这个包。
此外,如果接收方 MAC 地址是一个广播地址,那么交换机会将包发送到除源端口之外的所有端口。
以下两个属于广播地址:
MAC 地址中的 FF:FF:FF:FF:FF:FF
IP 地址中的 255.255.255.255 -
集线器hub 工作在物理层。感觉就像一堆金属线的连接而已。收到包后群发到所有端口。
-
键入网址到网页显示期间发生了什么?
https://www.xiaolincoding.com/network/1_base/what_happen_url.html#%E8%AF%BB%E8%80%85%E9%97%AE%E7%AD%94
①浏览器解析url
②生成一个http请求协议包,把协议包的发送委托给操作系统
③操作系统在发送协议包之前先要获取服务器的IP地址。如果在本地的浏览器缓存、操作系统缓存或者hosts文件中存在对应的IP地址,就不需要再访问本地的DNS服务器了。如果不存在,访问本地的DNS服务器,由本地DNS服务器对进行递归访问,即按照层级向下访问,最后得到IP地址。
④得到ip地址后。进行TCP连接,三次握手。
⑤握手之后,把请求层层封装,通过网卡将数据发送到交换机。交换机会进行校验以及查找交换表转发,到达路由器。路由器把MAC层扒皮,查看目的ip,然后根据路由表选择下一跳,再进行MAC层封装。重复这个过程,最后到达服务器。
⑥到达服务器后,会对数据包进行扒皮并且校验。使用FCS校验码校验二进制序列的正确性。在MAC层看目的MAC是不是自己,在网络层看目的ip是不是自己,同时知道上层协议是TCP还是UDP协议。在TCP中知道这是一个什么保文,请求保文、响应报文还是结束连接的报文。通过端口号知道这是交给那么应用进程的。
⑦应用进程知道你访问的是什么资源,那么就给客户端返回一个Http响应协议包,把资源封装在其中。通过同样的流程把数据返回给客户端。
⑧浏览器拿到数据后,对数据进行渲染,解码,变成了一个页面显示在浏览器上。 -
浏览器输入URL后回车,页面没有出现怎么排查问题?
https://www.xiaolincoding.com/network/1_base/what_happen_url.html#%E8%AF%BB%E8%80%85%E9%97%AE%E7%AD%94
最直接的办法就是抓包,排查的思路大概有:
先确定是服务端的问题,还是客户端的问题。先确认浏览器是否可以访问其他网站,如果不可以,说明客户端网络自身的问题,然后检查客户端网络配置(连接wifi正不正常,有没有插网线);如果可以正常其他网页,说明客户端网络是可以正常上网的。
如果客户端网络没问题,就抓包确认 DNS 是否解析出了 IP 地址,如果没有解析出来,说明域名写错了,如果解析出了 IP 地址,抓包确认有没有和服务端建立三次握手,如果能成功建立三次握手,并且发出了 HTTP 请求,但是就是没有显示页面,可以查看服务端返回的响应码,如果是404错误码,检查输入的url是否正确,如果是500,说明服务器此时有问题,如果是200,F12看看前端代码有问题导致浏览器没有渲染出页面。
如果客户端网络是正常的,但是访问速度很慢,导致很久才显示出来。这时候要看客户端的网口流量是否太大的了,导致tcp发生丢包之类的问题。
总之就是一层一层有没有插网线,网络配置是否正确、DNS有没有解析出 IP地址、TCP有没有三次握手、HTTP返回的响应码是什么。
8.关于TCP 3次握手:
https://www.xiaolincoding.com/network/1_base/what_happen_url.html#%E8%AF%BB%E8%80%85%E9%97%AE%E7%AD%94
输入http地址->dns域名解析拿到目标ip地址->tcp初始化syn包,进入syn_sent状态->ip层拼接ip头->arp协议获取路由器的mac地址->拼接mac头->网卡将网络包(syn包)发给路由器。这个过程就是第一个syn包发出去的过程,经过各个路由器转发后,到达了接收方,接收方就开始扒开mac头、ip头,然后送到tcp层,tcp协议栈检查tcp头是一个syn包,于是就进入syn_recv状态,然后回复syn、ack报文给对方。
注意:客户端发送给服务端的第一个网络包是tcp三次握手中第一个syn报文,也是要经过ip层,数据链路层,交换机,路由器。
-
关于网卡收包和发包的过程
下面这个连接不错
https://www.junmajinlong.com/coding/tcp_socket/ -
关于5种IO模型
https://www.junmajinlong.com/coding/IO_Model/
相关文章:
计算机网络个人小结
不同层的数据报的名称 应用层: data TCP层: segment IP 层: packet MAC层: frame MTU vs MSS: MTU:一个网络包的最大长度,以太网中一般为 1500 字节。 https://www.xiaolincoding.com/network/1_base/how_os_deal_network_package.html#linux-%E7%BD%91…...
酒店网站搭建的作用是什么
线上已经成为各行业商家增长破局的必要手段,传统酒店行业因信息扩展度不够,导致品牌难以传播、无法实现用户对酒店所有信息全面知悉,也无法实现在线预约及其它赋能用户消费的路径。 面对获客转化难题,很多酒店商家通过建立自营商…...
俄罗斯联邦税务局遭乌克兰入侵,数据库和副本被清空,政府数据安全不容忽视
俄罗斯联邦税务局遭乌克兰入侵,数据库和副本被清空,政府数据安全不容忽视 据相关报道,2023年12月12日,乌克兰国防情报局(GUR)称其成功入侵了俄罗斯联邦税务局(FNS)系统,并清除了该机构的数据库和…...
WPF组合控件TreeView+DataGrid之TreeView封装
(关注博主后,在“粉丝专栏”,可免费阅读此文) wpf的功能非常强大,很多控件都是原生的,但是要使用TreeViewDataGrid的组合,就需要我们自己去封装实现。 我们需要的效果如图所示&#x…...
redisson 哨兵模式配置
背景:项目redis由集群改为哨兵模式,漏洞扫描未授权访问漏洞(CNVD-2019-21763),要求对redis哨兵也设置密码,redisson依赖版本为3.11.5 spring-boot版本为2.1.13。 redisson依赖升级 <dependency>&l…...
免费的ChatGPT分享
免费的ChatGPT 以下是一些免费的ChatGPT平台和工具: 零声教学AI助手 零声教育内部使用的ChatGPT,提供智能对话和问题解答功能。 Ora.ai 一个可以自定义的AI聊天机器人,可以根据个人需求进行定制和训练。 ChatGPT 人工智能聊天机器人&a…...
C语言—每日选择题—Day54
指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 存在int类型变量x,y,z,其对应值为x0x59,y0x39,z0x6E,则x * y z的值…...
先进制造身份治理现状洞察:从手动运维迈向自动化身份治理时代
在新一轮科技革命和产业变革的推动下,制造业正面临绿色化、智能化、服务化和定制化发展趋势。为顺应新技术革命及工业发展模式变化趋势,传统工业化理论需要进行修正和创新。其中,对工业化水平的判断标准从以三次产业比重标准为主回归到工业技…...
【密码学引论】密码协议
定义:两个或者两个以上参与者为了完成某一特定任务而采取的一系列执行步骤密码协议:Kerberos、IPSec、SSL、SET算法是低层次上的概念,而协议是高层次上的概念,协议建立在算法的基础上。所有密码协议都容易受中间人攻击,…...
利用快手的用户数据和精准营销提升电商平台用户转化率和销售额
一、快手用户数据的价值 快手作为国内领先的短视频平台,拥有庞大的用户群体和丰富的用户行为数据。这些数据包括用户的观看习惯、互动行为、兴趣偏好等,对于电商平台来说具有极高的商业价值。通过分析这些数据,电商平台可以深入了解用户需求…...
Linux根目录下默认目录作用
在Linux操作系统中,根目录(/)下的默认目录一般用于不同用途的文件存放和系统管理。以下是一些常见的默认目录及其用途: /bin:该目录存放系统的基本命令和可执行文件,如ls、cp、mv等。这些命令可供系统用户…...
国产Type-C接口逻辑协议芯片:Type-C显示器芯片方案
产品介绍 双Type-C盲插选型: LDR6282 PD3.0认证协议芯片,USB-IF TID号:212 支持iic,USB转UART,CC升级方式,多年市场验证,显示器市场出货量,显示器大厂采用兼容性NO.1。采用QFN32 5*…...
uniapp如何原生app-云打包
首先第一步,需要大家在HBuilder X中找到一个项目,然后呢在找到上面的发行选项 发行->原生App-云打包 选择完该选中的直接大包就ok。 大包完毕后呢,会出现一个apk包,这是后将这个包拖动发给随便一个人就行了。 然后接收到的那…...
分布式编译distcc
工程代码编译速度太慢,决定采用分布式编译来提高编译速度. distcc ,请参考https://www.distcc.org/ 安装 我用的distcc的版本是distcc-3.2rc1, 下载源码,安装步骤如下: ./autogen.sh ./configure --disable-Werror --prefix/…...
Elasticsearch常见面试题
文章目录 1.简单介绍下ES?2.简单介绍当前可以下载的ES稳定版本?3.安装ES前需要安装哪种软件?4.请介绍启动ES服务的步骤?5.ES中的倒排索引是什么?6. ES是如何实现master选举的?7. 如何解决ES集群的脑裂问题8…...
solidity 重入漏洞
目录 1. 重入漏洞的原理 2. 重入漏洞的场景 2.1 msg.sender.call 转账 2.2 修饰器中调用地址可控的函数 1. 重入漏洞的原理 重入漏洞产生的条件: 合约之间可以进行相互间的外部调用 恶意合约 B 调用了合约 A 中的 public funcA 函数,在函数 funcA…...
【智能家电】东胜物联离在线语音方案为厨电企业赋能,实现厨房智能化控制
近年来,我国厨电市场蓬勃发展。据行业统计数据显示,至今年6月,市场规模已达356亿元,同比增长8.8%。随着数字科技、物联网和人工智能的兴起,厨电产品正在朝着更智能、多功能化的方向迅速发展。 为此厨电厂商正在积极布…...
3DMAX英文版怎么切换到中文版?
3DMAX英文换到中文版的方法 3dMax是专业三维建模、渲染和动画软件,它使你能够创建广阔的真实世界和各种高级设计。 -使用强大的建模工具为环境和景观注入活力。 -使用直观的纹理和着色工具创建精细的细节设计和道具。 -迭代并制作具有完全艺术控制的专业级渲染图…...
WEB渗透—PHP反序列化(八)
Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…...
LeetCode——2415. 反转二叉树的奇数层
通过万岁!!! 题目:给你一个完全二叉树,然后将其奇数层进行反转。思路:这个题他都说了是奇数层了,那基本就是层序遍历了。但是存在两个问题,一个是如何判断奇数层,另外一…...
【研报442】美国汽车产业战略的需求研究:五大政策方向重塑美国汽车工业
本报告提供限时下载,请查看文后提示以下仅为报告部分内容:摘要:美国汽车产业全球竞争力持续下滑,产量份额、本土巨头市占率、经济贡献度均大幅落后,面对中国电动车强势扩张,亟需出台国家级战略。报告围绕降…...
为什么每个PostgreSQL开发者都需要pgFormatter?10大理由告诉你终极SQL美化方案
为什么每个PostgreSQL开发者都需要pgFormatter?10大理由告诉你终极SQL美化方案 【免费下载链接】pgFormatter A PostgreSQL SQL syntax beautifier that can work as a console program or as a CGI. On-line demo site at http://sqlformat.darold.net/ 项目地址…...
Windows热键冲突检测:快速定位被占用快捷键的终极指南
Windows热键冲突检测:快速定位被占用快捷键的终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...
Cursor破解工具完全指南:永久免费享受AI编程助手高级功能
Cursor破解工具完全指南:永久免费享受AI编程助手高级功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your …...
宇视VM 电视墙轮切配置指导
宇视VM 电视墙轮切配置指导(B3359P30)一、功能介绍在一个电视墙窗格循环播放某个轮切资源中各个相机的实况。二、配置步骤2.1实况界面添加进入平台【实况】-【轮切】界面,新增轮切。将需要轮切的相机选中到右侧,停留时间、流类型按…...
3分钟魔法:把化学分子变成3D艺术品的秘密武器
3分钟魔法:把化学分子变成3D艺术品的秘密武器 【免费下载链接】blender-chemicals Draws chemicals in Blender using common input formats (smiles, molfiles, cif files, etc.) 项目地址: https://gitcode.com/gh_mirrors/bl/blender-chemicals 还在为枯燥…...
光储微网孤岛检测与VSG切换控制【附程序】
✨ 长期致力于光伏-储能系统、微网、孤岛检测、并离网切换、虚拟同步电机研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)经验小波变换与正反馈频率漂…...
ESP32接入ChatGPT API:打造智能语音交互硬件原型
1. 项目概述:当ESP32遇见ChatGPT最近在捣鼓ESP32,想给它加点“脑子”。ESP32本身是个很棒的物联网微控制器,Wi-Fi、蓝牙、低功耗,该有的都有,但它本质上还是个执行预设逻辑的设备。我就琢磨,能不能让它接入…...
TuxGuitar:吉他爱好者的开源乐谱编辑与播放解决方案
TuxGuitar:吉他爱好者的开源乐谱编辑与播放解决方案 【免费下载链接】tuxguitar Open source guitar tablature editor 项目地址: https://gitcode.com/gh_mirrors/tu/tuxguitar 你是否曾经因为找不到合适的吉他谱编辑软件而烦恼?或者想要创作自己…...
MikroTikPatch多架构支持:x86、ARM、MIPS平台完全攻略
MikroTikPatch多架构支持:x86、ARM、MIPS平台完全攻略 【免费下载链接】MikroTikPatch MikroTik RouterOS Patch Public Key and Generate License 项目地址: https://gitcode.com/gh_mirrors/mikr/MikroTikPatch MikroTikPatch是一款针对MikroTik RouterOS的…...
