计网之基础篇

news2024/12/23 10:50:14

因特网协议概述

在这里插入图片描述

常用协议
应用层HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)、SNMP(简单网络管理协议)
运输层TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)、DCCP(数据报式传输协议)
网络层IP(Internet Protocol) 、ICMP(Internet Control Message Protocol)、ARP(地址解析协议)、RAR(逆地址解析协议)、OSPF(开放最短路径优先)、BGP(边界网关协议)
链路层PPP(点对点协议)、HDLC(高级数据链路控制)、Ethernet(以太网)、Wi-Fi(无线局域网)、ATM(异步传输模式)、FDDI(光纤分布式数据接口)
物理层IEEE 802.3(以太网)、IEEE 802.11(Wi-Fi)、SONET(同步光纤网络)、DSL(数字用户线路)、USB(通用串行总线)、HDMI(高清晰度多媒体接口)

键入网址到网页

在这里插入图片描述

解析url

url实际是请求服务器的文件资源

在这里插入图片描述

生成HTTP请求信息

参见《计网之应用层》的HTTP请求报文、响应报文

DNS查询IP地址

参见《计网之应用层》的DNS域名系统

OS的协议栈

  • ICMP用于告知网络包传送过程中产生的错误以及各种控制信息
  • ARP用于根据IP地址查询相应的以太网MAC地址

在这里插入图片描述

TCP精简版

TCP报文头部

在这里插入图片描述

  • 序号:解决包的乱序
  • 确认序列:解决丢包
  • 窗口大小:流量控制、拥塞控制的缓存大小

状态位

  • SYN:发起连接
  • ACK:回复
  • RST:重新连接
  • FIN:结束连接
  • URG:指示紧急数据的存在,通常与紧急指针字段一起使用
  • PSH:指示数据的即时传输和处理

数据部分为HTTP报文

三次握手

保证双方都发送和接收的能力

在这里插入图片描述

查看TCP的连接状态

在这里插入图片描述

若HTTP请求信息超过MSS长度,TCP将其拆解为块

  • MTU(Maximum Transmission Unit)(最大传输单元):一个网络包的最大长度
  • MSS(Maximum Segment Size)(最大分段大小):除去IP和TCP头部后,一个网络包容纳TCP数据的最大长度

在这里插入图片描述

IP精简版

在这里插入图片描述

路由表规则:判断哪个网卡作为源地址IP

在这里插入图片描述

  • 第一条目的目标地址和子网掩码都是0.0.0.0,表示默认网关,若其他条目都无法匹配,则自动匹配这一条目,并且Gateway是路由器的IP地址
  • 假设Web服务器的目标地址是192.168.242.10,按序与每一条目的子网掩码进行与运算,并与目的地址匹配,第三条目匹配成功,所有使用ens33网卡的IP地址作为IP包头的源地址

MAC

在这里插入图片描述
发送方的MAC地址:网卡生产时写入ROM
接收方的MAC地址:ARP协议在以太网中广播IP地址,获取MAC地址

查看ARP缓存内容

在这里插入图片描述

网卡

数字信号转化为电信号
本身具有MAC地址,核对包的接收方是不是自己

在这里插入图片描述
FCS(Frame Check Sequence)帧校验序列:检查包是否损坏

交换机(链路层)

电信号转化为数字信号
本身不具有MAC地址,不核对,直接接收
内部有映射表,将MAC地址映射为网线端口

路由器(网络层)

路由器的端口具有MAC地址,只接收地址匹配的包
接收包后,去掉包的MAC头部,使用路由表根据IP头部转发,发送时添加新的MAC地址

服务器和客户端

除去MAC头部、IP头部、TCP头部,得到HTTP数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

erlang安装问题(State machine user_ dru terminating)

输入erl 出现错误 State machine user_ dru terminating 主要原因是安装的erlang版本太高导致,建议选择对应rabbitmq并且是中版本的。新版本会有各种各样适配问题。如果现在26 建议选用25中间 对应rabbitmq低一个版本,稳定性更好

螺旋矩阵(顺时针遍历矩阵)

leetcode 54.螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 和剑指office29题相似; 思路:既然是顺时针遍历一圈,那么我们就分别从上边,右边,下…

SQL-游标-更新删除-多列指向

--切换数据库 use MyDatabase--创建游标(scroll:滚动游标) declare mycur cursor scroll for select EmpNo from Employee --打开游标 open mycur --关闭游标 close mycur --删除游标 deallocate mycur--提取第一行 --利用游标进行数据的修改 fetch absolute 2 from…

【django中处理静态的数据 css js img】

django中处理静态的数据 css js img 1.创建django项目2.打开项目3.配置settingpy中找到STATIC_URL3.1静态资源 4.创建静态资源文件夹5.开启服务6. 网页请求7.使用模板 进行编写 并请求8.在模板中进行 图片的请求9.模板中使用动态url {% static %}10 static的 动态url加载 1.创建…

C++读取易语言字节集图片opencv识别滑块

易语言字节集在C中其实是字节数组的形式,这边做的是一个本地滑块识别的,识别已经实现,主要解决读入字节集的问题,因为图片的大小问题,直接传字节集恐怕不行,所以在易语言处理图片,然后在内容中C…

软考高级系统架构设计师(九) 作文模板-微服务架构(待继续完善)

目录 举一反三-论微服务架构及其应用 ps: 更多微服务信息 ps: 微服务与SOA区别 微服务架构举例 微服务的落地技术 微服务的技术可大致分为五类 举一反三-论微服务架构及其应用 论微服务架构及其应用 微服务提倡将单一应用程序划分成一组小的服务,服务之间互相…

vue 将登录后信息放入cookie中,后端请求接口携带

第一步 import Cookies from "js-cookie";//将需要的信息放入cookie Cookies.set("deptId", res.user.dept.deptId, { expires: 30 });引入cookies import Cookies from "js-cookie";// 查询参数queryParams: {deptName: undefined,status: un…

Rust语言从入门到入坑——(9)Rust 生命周期

文章目录 0、引入1、生命周期注释2、结构体中使用字符串切片引用3、静态生命周期4、泛型、特性与生命周期协同作战5、总结 0、引入 Rust 生命周期机制是与所有权机制同等重要的资源管理机制,之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。 引用是对…

【云原生丶Docker】DockerFile完全指南

DockerFile构建过程 DockerFile 是Docker的一个配置文件,本质上来说它只是一个文本文件,它是用来构建Docker镜像的。DockerFile配置文件中包含了一系列的指令和配置信息,用于描述如何构建镜像以及如何运行容器。通过编写 Dockerfile&#xf…

【c++11】新的类功能和可变参数包

c11 新增默认成员函数类成员变量初始化关键字defaultdelete 委托构造 可变参数包递归展开参数包逗号表达式展开参数包 结语 新增默认成员函数 原来c类中,有6个默认成员函数: 构造函数析构函数拷贝构造函数拷贝赋值重载取地址函数const 取地址重载 默认…

将mp4视频推流rtsp,并转为http直播流,在前端显示

最近有个需求,在vue页面的video组件播放直播流,本来想用flv.js,但是必须要flv格式才行,所以还是用原生video播放http直播流。 1. 将本地mp4推流rtsp 下载并解压EasyDarwin,双击EasyDarwin.exe运行,在控制…

【python】web应用开发DRF框架

DRF 【python】web应用开发DRF框架 Django rest_framework, 简称 drf, 可以更方便的使用django写出符合 RESTful 规范的接口, (缩减编写api接口的代码) Django REST framework是一个建立在Django基础之上的Web应用开发框架(Django的一个app),可以快速的开发REST A…

【IMX6ULL驱动开发学习】12.Linux驱动之设备树

承接上一篇博客 【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想(学习设备树过渡部分) 代码获取:https://gitee.com/chenshao777/imx6-ull_-drivers 我后面将三个层合并了(实际上只有前两层),合并…

【Java入门】注释、关键字、常量、变量、数据类型

注释: 作用 : 可以记录代码所实现的功能,方便程序员或代码编写者阅读代码以及方便他人更好理解代码 注释分类: 单行注释 格式: //注释信息多行注释 格式: /注释信息/文档煮熟 格式:/** 注释信息*/ /***…

TCP的socket API

1、核心类 ServerSocket :服务器使用的socket Socket : 服务器和客户端都会使用的socket accept进行的工作是拉客 对应操作系统来说,建立TCP连接是内核的工作 accept要干的就是等连接建立好了,把这个连接给拿到应用程序中。 如果当前连接…

chatgpt赋能python:Python获取文件后缀名

Python获取文件后缀名 在Python编程中,经常需要获取文件的后缀名,例如在处理文件上传、下载、压缩等操作时,需要对文件后缀名进行判断和处理。本文将介绍Python获取文件后缀名的两种常用方法。 方法一:使用split()函数 Python的…

【C语言初阶(2)】循环语句:while 循环

文章目录 1. while 语句介绍1.1 语法结构1.2 while 语句执行的流程 2. while 语句中的 break 和 continue2.1 break 介绍2.2 continue 介绍 我们已经掌握了 if 语句,当条件满足的情况下,if 语句的后的语句执行,反之不执行; 但是 i…

ChatGPT最新版多功能批量写作工具激发创作的无限可能

随着科技的不断发展,人工智能逐渐渗透到各个领域,其中包括写作领域。近年来,OpenAI推出的ChatGPT最新版多功能批量写作工具,为写作者们带来了全新的创作体验。这一工具不仅能够帮助写作者提高工作效率,还能够激发创作的…

chatgpt赋能python:Python获取定位的SEO指南

Python获取定位的SEO指南 什么是SEO SEO,即搜索引擎优化,是通过对网站进行优化,提高排名,从而增加搜索引擎来的流量,并达到提高转化率的目的。在这个数字时代,对于大多数网站来说,SEO已经成为…

idea maven 中模块显示灰色,依赖不加载

idea maven 中模块显示灰色,依赖刷新了几次都无法加载引入 后面发现是被MAVEN设置忽略了 去掉忽略文件然后reimport ,就正常了