【网络】总览(待更新)

news2024/11/19 8:46:00

网络Ⅰ

  • 零、概述
    • 0. 网络协议
    • 1. 网络协议分层
      • OSI 七层模型
      • TCP/IP 五层模型
    • 2. 协议报头
    • 3. 通信过程
  • 一、应用层
    • 1.1 🔗HTTP 协议
    • 1.2 🔗HTTPS 协议
  • 二、传输层
    • 2.1 端口号
    • 2.2 netstat - - 查询网络状态
    • 2.3 pidof - - 查看服务器的进程 id
    • 2.4 🔗UDP 协议
    • 2.5 🔗TCP 协议
  • 三、网络层


查询计算机 ip 地址命令:iifconfig

inet:IP地址
ether:以太网(16  进制)

零、概述

0. 网络协议

协议是一种“约定”。

现有的这些许多不同厂商之间生产的计算机能够相互顺畅的通信,正是因为他们共同接受并遵守着同一套由权威定制的标准。这就是 网络协议。

1. 网络协议分层

OSI 七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。

应用程序中:

  • 应用层
  • 表示层
  • 会话层

操作系统中:

  • 传输层
  • 网络层

设备驱动程序与网络接口中:

  • 数据链路层
  • 物理层

TCP/IP 五层模型

OSI 七层模型的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。但是, 它既复杂又不实用,所以我们按照 TCP/IP 五层模型来讲解

  • 应用层: 负责 应用程序间沟通
    如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

  • 传输层: 负责 两台主机之间的数据传输
    如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机

  • 网络层: 负责 地址管理和路由选择
    例如在 IP 协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。

  • 数据链路层: 负责 设备之间的 数据帧 的传送和识别
    例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线 LAN 等标准。交换机(Switch)工作在数据链路层。

  • 物理层: 负责 光 / 电信号的传递方式
    比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。

网络协议的五层模型的位置关系
在这里插入图片描述

2. 协议报头

用户使用网络互相交互时,从应用层开始,每层向下传输时都会加上本层协议的报头。传到局域网或以太网后,再由底向上进行解析,后将属于本层的报头解开,剩余的数据传给上层。

  • 每一层,都会把上层交付给自己的数据,作为自己的 有效载荷

  • 每一层,都有自己的协议报头

  • 对应的层,报头+有效载荷 = 自己要发送的报文(这就是 封装

  • 在逻辑上,网络协议,都认为自己在和对方同层协议在通信

  • 同层协议都能互相认识对方的报头,即都能做到:

    • a. 将报头进行有效载荷进行分离
    • b. 将有效载荷交付给上层的那一个具体协议

3. 通信过程

两个主机通信的本质,是两个主机的 OS 与网络协议栈在通信。

任何人要通信,需要有唯一的一个标识符。对于机器也是如此,对于计算机,每台计算机都配有网卡,网卡在出厂的时候,就在网卡内部写入了网卡的 sn 号,MAC 地址, 全球唯一。

路由器 是连接两个子网下通信的桥梁,实际上也是一个 主机,或者叫 节点。其有三层结构:

  • 网络层
  • 链路层
  • 物理层(此处不做讨论)

在这里插入图片描述

网络层的报头:为报文定制最终目标,路上根据该地址进行路径选择(IP 地址)

链路层的报头:根据路径选择的结果,来选择下一跳主机(MAC 地址)。

IP 协议及其以上的协议于任何网络方面是没有差异的,即 IP 地址屏蔽了底层子网机制的差异。

IP协议向下,网络可以具有明显的差异。

数据的封装和分用:

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为 封装 (Encapsulation)。首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段“将数据交给对应的上层协议处理,称为 分用


一、应用层

一端发送时构造的数据,在另一端能够正确的进行解析,这种约定,就是 应用层协议

程序员自然可以自行定制协议,但有如下非常好的协议设计是可以直接拿来使用的。

1.1 🔗HTTP 协议

👉HTTP 协议介绍

1.2 🔗HTTPS 协议

👉HTTPS 协议介绍


二、传输层

传输层用作提供传输策略,负责数据能够从发送端传输至接收端。

2.1 端口号

端口号(Port)标识了一个主机上进行通信的不同的应用程序。

通过 源 IP 地址、目标 IP 地址、协议号、源端口号、目标端口号 这五个数字可以识别一个通信。

端口号范围划分:

  • 0 - 1023:知名端口号。
    HTTP、FTP、SSH 等这些广为使用的应用层协议,他们的端口号都是固定的。

    ssh 服务器,使用 22 端口
    ftp 服务器,使用 21 端口
    telnet 服务器,使用 23 端口
    http 服务器,使用 80 端口
    https 服务器,使用 443 端口
    
  • 1024 - 65535:操作系统动态分配的端口号。
    客户端程序的端口号,就是由操作系统从这个范围分配的。

    其中也不乏有数据库或一些特殊的服务在其中,比如:
    mysql,使用 3306 端口
    

2.2 netstat - - 查询网络状态

netstat -naup:

-n:拒绝显示别名,能显示数字的全部转化成数字
-a:(all)显示所有选项
-u:(udp)仅显示 udp 相关选项
-p:显示建立相关链接的程序名

netstat -nltp:

-n:拒绝显示别名,能显示数字的全部转化成数字
-l:仅列出有在 Listen (监听) 的服务状态
-t:(tcp)仅显示tcp相关选项
-p:显示建立相关链接的程序名

2.3 pidof - - 查看服务器的进程 id

pidof [进程名]:通过进程名查看进程 id

2.4 🔗UDP 协议

👉UDP 协议介绍

2.5 🔗TCP 协议

👉TCP 协议介绍

TCP 和 UDP 的对比:
TCP 和 UDP 之间的优点和缺点,不能简单,绝对的进行比较。

  • TCP 用于可靠传输的情况,应用于文件传输,重要状态更新等场景。

  • UDP 用于对高速传输和实时性要求较高的通信领域,

    例如,早期的 QQ,视频传输...等,另外 UDP 可以用于广播。
    

归根结底,TCP 和 UDP 都是程序员的工具,什么时机用,具体怎么用,还是要根据具体的需求场景去判定。


三、网络层

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

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

相关文章

亚马逊云科技正式发布Amazon DataZone,一项新的数据管理服务

Amazon DataZone现已正式发布。作为一项新的数据管理服务,它能够在组织中对数据生产者和消费者之间产生的数据进行编目、发现、分析、共享和管理。 早在2022年的亚马逊云科技re:Invent上,就预告了Amazon DataZone产品的发布,并在2023年3月对其…

常见场景面试题(二)

typora-copy-images-to: imgs theme: cyanosis 敏感词库的设计,要求增删改查敏感词。敏感词文本匹配,敏感词一万个,文本长度在 20 - 1000 答:使用 trie 树来实现敏感词库的设计,可以利用字符串公共前缀来节约存储空间。…

webrtc gcc算法(1)

老的webrtc gcc算法,大概流程: 这两个拥塞控制算法分别是在发送端和接收端实现的, 接收端的拥塞控制算法所计算出的估计带宽, 会通过RTCP的remb反馈到发送端, 发送端综合两个控制算法的结果得到一个最终的发送码率,并以…

记次好玩的XXX模式

看到很多框架里都用了这种方式

深入了解Java位运算符

1.前言 位运算在我们刷题时候,对于效率和空间都是很大的提升,所以位运算符,对于我们的作用也是不可或缺的。 里面就存在一个很重要的思想就是位图,此次我讲解位运算符的作用主要是为他服务的 位图的原理:通过一个整数模拟&#xf…

Dubbo的整体框架和主要模块

1 整体框架 Dubbo的整体框架如下图所示: 上层依赖下层提供的功能,下层的改变对上层不可见。 2 主要模块 (1)主要模块如下所示: (2)各子模块描述如下所示: 3 参考文献 &#xff08…

CN论文编写提示词-示例

建议用GPT-4或者Bing 现在开始你是一位计算机学科的研究员!教授!擅长研究和撰写论文!我需要你协助我一起研究一个课题:《计算机信息技术在智能交通系统中的应用》!你认为这个题目如何!有哪些参考资料!这个题目作为论文题目的话有哪些创新意义和价值! 你扮演计算机信息技…

第六章 应用层 | 计算机网络(谢希仁 第八版)

文章目录 第六章 应用层6.1 域名系统DNS6.1.1 域名系统概述6.1.2 互联网的域名结构6.1.3 域名服务器 6.2 文件传送协议6.2.1 FTP概述6.2.2 FTP的基本工作原理6.2.3 简单文件传送协议TFTP 6.3 远程终端协议TELNET6.4 万维网www6.4.1 万维网概述6.4.2 统一资源定位符URL6.4.3 超文…

VBA技术资料MF70:从单元格文本中取消或删除上标

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

力扣刷题 day46:10-16

1.最大整除子集 给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足: answer[i] % answer[j] 0 ,或 answer[j] % answer[i] 0 如果存在…

2.SpringSecurity - 处理器简单说明

文章目录 SpringSecurity 返回json一、登录成功处理器1.1 统一响应类HttpResult1.2 登录成功处理器1.3 配置登录成功处理器1.4 登录 二、登录失败处理器2.1 登录失败处理器2.2 配置登录失败处理器2.3 登录 三、退出成功处理器3.1 退出成功处理器3.2 配置退出成功处理器3.3 退出…

前端需要了解的浏览器缓存知识

文章目录 前言为什么需要缓存?DNS缓存缓存读写顺序缓存位置memory cache(浏览器本地缓存)disk cache(硬盘缓存)重点!!! 缓存策略 - 强缓存和协商缓存1)强缓存ExpiresCach…

认识测试---什么是测试?

文章目录 测试软件测试的性质测试人员的基本素养什么是需求什么是BUG 开发模型和测试模型软件的生命周期开发模型瀑布模型螺旋模型增加,迭代敏捷开发scrume 测试模型V模型W模型(双V模型) 测试 一个好的开发者,不仅要懂技术也要懂…

【cpu_entry_area mapping】SCTF2023-sycrop

前言 也算学习到了,这样对 DB_stack 的利用与 pt_regs 很相似。都是利用在用户态切换在内核态时,会保存用户态的上下文信息在内核栈中,所以我们就可以控制部分内核栈中的数据,以此为我们栈迁移做好准备。 程序分析 启动脚本啥的…

14-k8s-基本存储之EmptyDir、HostPath、NFS

文章目录 一、相关概念二、EmptyDir存储三、HostPath存储四、NFS存储 一、相关概念 概述 Volumn定义在Pod上,然后被该Pod里面的多个容器挂载到具体的文件目录下。实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。Volume的生命周期不和Pod中的单个容器的…

出海 SaaS 企业增长修炼手册:聊聊 PLG 的关键指标、技术栈和挑战

产品驱动增长 Product-Led Growth (PLG) 近几年可谓火遍海外 SaaS 圈,但想要真正落地 PLG 还是存在不少挑战的。了解 PLG 背后的增长指标,不仅可以帮助企业跟上发展节奏,更能从纷繁复杂的业务细节中获取有价值洞察。那么,如何高效…

【3】c++11新特性(稳定性和兼容性)—>类成员的快速初始化

在进行类成员变量初始化的时候,C11标准对于C98做了补充,允许在定义类的时候在类的内部直接对非静态变量进行初始化,在初始化的时候可以使用等号,也可以使用花括号{},等号可以省略不写;静态成员变量需要在类…

二叉树的三种遍历方式的本质

二叉树的定义就不在这里多说了,下面这个图就是一个简单的二叉树: 二叉树的三种遍历方式: 前序遍历:头左右,也就是先头后左再右:1245367 public static void prePrint(BinaryTreeNode root) {if (root ! n…

pycharm社区版创建Django项目的一种方式

pycharm社区版创建Django项目 pycharm创建New project安装django,如果安装过可略过安装完成后查看安装情况生成Django项目需要的文件这里注意生成语句后面的 . 不可以省略 生成文件后,框架搭建完成,配置启动我这里在配置完后,报了…

徐建鸿:深耕中医康养的“托钵行者”

为什么是“庄人堂”?杭州“庄人堂”医药科技公司董事长徐建鸿很乐意和别人分享这个名称的由来,一方面是庄子首先提出“养生”这个概念,接近上工治未病的上医,取名“庄人堂”代表庄子门生,向古哲先贤致敬!另…