计算机网络 快速了解网络层次、常用协议、常见物理设备。 掌握程序员必备网络基础知识!!!

文章目录

  • 0 引言
  • 1 基础知识的定义
    • 1.1 计算机网络层次
    • 1.2 网络供应商 ISP
    • 1.3 猫、路由器、交换机
    • 1.4 IP协议
    • 1.5 TCP、UDP协议
    • 1.6 HTTP、HTTPS、FTP协议
    • 1.7 Web、Web浏览器、Web服务器
    • 1.8 以太网和WLAN
    • 1.9 Socket (网络套接字)
  • 2 总结

0 引言

  • 在学习的过程中总是会对IP、TCP、UDP、HTTP、HTTPS、FTP这些常见的协议不熟悉,以及对猫,交换机、路由器的含义也不太清楚。
  • 对于只是想了解一二的人,让他去学一遍计算机网络课程确实有点耗费时间精力
  • 所以我就针对平时常见的名词进行解释,然后再用一张层次图来表明他们各自所处的网络层次全面介绍;

1 基础知识的定义

1.1 计算机网络层次

计算机网络通常被分为多个层次,常用的是OSI模型TCP/IP模型,它们分别有不同的层次配置。但在实际应用中,TCP/IP协议栈更为广泛使用。

注意:网络的底层均是为上一层提供服务,然后上一层再为上上层提供服务。

  1. OSI模型:
  • 物理层:处理物理连接和电信号传输。(猫)
  • 数据链路层:负责数据帧的传输和错误检测。(交换机)
  • 网络层:进行路由和包转发,实现不同网络之间的通信。(路由器、IP)
  • 传输层:提供端到端的可靠数据传输和流控制。(TCP、UDP)
  • 会话层:管理通信会话的建立和维护。
  • 表示层:进行数据格式转换、加密和压缩等操作。
  • 应用层:提供用户与网络应用程序的接口。(HTTP、HTTPS、FTP)
  1. TCP/IP模型:
  • 网络接口层(链路层):负责处理与物理介质的通信,如以太网、Wi-Fi等。它定义了数据在物理媒介中的传输方式和格式,以及物理地址的解析和传输。
  • 网络层:负责数据包的路由和转发,将数据从源地址传输到目标地址。它使用IP协议来标识和定位网络上的设备,并通过路由选择算法确定最佳路径。
  • 传输层:提供端到端的可靠数据传输。其中最常用的协议是传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供可靠的、面向连接的数据传输,而UDP提供不可靠的、面向无连接的数据传输。
  • 应用层:提供用户与网络之间的接口,支持特定应用程序的网络通信。常见的应用层协议包括超文本传输协议(HTTP)、文件传输协议(FTP)、域名系统(DNS)等。

这些层次的划分有助于组织和管理计算机网络的各个功能模块,使得网络的设计、实现和维护更加灵活和可扩展。

1.2 网络供应商 ISP

  • 网络供应商(Internet Service Provider,ISP)是指提供互联网接入服务的公司或组织。它们在全球范围内提供互联网连接和相关服务,使用户能够通过电信基础设施与全球互联网进行通信。
  • 中国的网络供应商有:中国电信、中国移动、中国联通、中国铁通;

1.3 猫、路由器、交换机

猫(Modem)、交换机(Switch)和路由器(Router)是计算机网络中常见的网络设备,它们在网络通信中扮演着不同的角色。

猫(Modem):
猫是“调制解调器”的简称,它主要负责将数字信号转化为模拟信号用于传输,以及将模拟信号转化为数字信号用于接收。猫一般用于连接本地网络设备(如计算机、路由器)与互联网服务提供商(ISP)的接入点。它可以通过各种物理介质(如电缆、DSL)将数据信号通过传输线路发送和接收。猫通过拨号、以太网等方式将连接从外部提供者传输到内部网络。

交换机(Switch):
交换机是在局域网(LAN)中用于连接多个网络设备的网络设备。交换机具有多个以太网端口,可以通过它们之间的交换转发数据包。交换机在接收到数据包时,会检查数据包的目的地址,并将其只发送到目标设备连接的端口上,从而实现网络设备之间的直接通信。交换机通过提供高速、可靠的数据交换,增强了局域网的性能和安全性。

路由器(Router):
路由器是用于连接多个网络的设备,用于在不同的网络之间传输数据包。路由器根据目标IP地址和转发表,决定将数据包转发到哪个网络。路由器负责在不同网络之间路由数据,并确保数据按照正确的路径到达目标网络。路由器在一个网络到另一个网络之间起到桥梁的作用,可以实现不同网络之间的通信和互联。

他们三者的联系和区别:

  • 猫、交换机和路由器都是网络设备,用于实现数据的传输和通信。
  • 猫主要负责将数字信号转化为模拟信号用于传输接入互联网服务提供商;交换机用于连接多个内部网络设备以实现设备之间的通信;路由器则用于连接不同的网络,并在网络之间实现数据包的转发和路由。
  • 猫和交换机通常用于局域网内部,而路由器用于连接不同的网络。
  • 交换机和路由器都具有多个端口,可以连接多个设备,而猫通常只有一个或少数几个端口。
  • 综上所述,猫、交换机和路由器在计算机网络中具有各自的功能和作用,它们一起构成了一个完整的网络系统,实现了设备之间的连接和数据的传输。

1.4 IP协议

IP(Internet Protocol,互联网协议)是一种在互联网上进行数据包传输的网络层协议。它为网络设备(如计算机、路由器等)提供了一种 寻址路由 的功能,以确保数据能够准确传递到目标设备。

IP协议的主要特点功能如下:

  • 寻址和唯一标识:IP协议通过IP地址来标识网络设备,每个设备都有一个唯一的IP地址,它由网络号和主机号组成。IP地址用于定位设备的位置,以便网络数据能够正确地路由到目标设备。
  • 路由选择:IP协议负责根据目标IP地址选择合适的路由路径,以实现数据包的传输。路由器根据设备的IP地址和路由表信息,决定将数据包发送到哪个网段或下一跳的路由器。
  • 分组和重组:IP协议将大块的数据分割成较小的数据包(称为IP数据报),并在网络上传输。接收端的IP协议负责根据数据包的序号和标识信息,将分散的数据包重新组装成完整的数据。
  • 不可靠的传输:IP协议本身是一种无连接、不可靠的传输协议。它不提供数据包的确认、重传和序列控制等机制。当数据包在传输过程中发生丢失、错误或延迟,IP协议不会进行处理,而是交给上层的传输协议(如TCP和UDP)来处理

总体来说,IP协议提供了一种灵活、可扩展的机制,使得数据能够在不同的网络之间进行传输。它是互联网通信的基础,为其他上层协议(如TCP、UDP、HTTP等)提供了可靠的传输基础。同时,IP协议也面临着很多挑战,如IPv4地址枯竭和网络安全等问题,因此,IPv6协议作为新一代IP协议正在逐渐推广和应用。

1.5 TCP、UDP协议

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议。它们在互联网通信中起着不同的作用和提供不同的特点。

TCP协议:

  • 面向连接:在数据传输之前,TCP会先建立一个连接,确保通信双方建立可靠的传输通道。
  • 可靠性:TCP提供可靠的数据传输机制。它采用序列号、确认机制和重传机制来保证数据的可靠性,确保数据包按序到达目的地,并处理丢失、重复、错误等问题。
  • 流量控制:TCP通过滑动窗口机制控制数据发送的速率,避免发送过多数据导致接收方无法及时处理。
  • 拥塞控制:TCP能够感知网络拥塞,并根据网络状况调整数据的发送速率,以避免拥塞情况的进一步恶化。
  • 适用场景:TCP适用于对数据传输可靠性要求较高的应用,如文件传输、电子邮件、Web浏览器等应用。

UDP协议:

  • 无连接:UDP是一种无连接的协议,数据包的传输没有建立连接的过程。数据包独立发送,不保证顺序和可靠性。
  • 无确认和序列号:UDP不提供数据包的确认和重传机制,也不处理丢失、重复、错误等问题。
  • 简单性和低延迟:由于不需要建立连接和进行可靠性保证,UDP的开销较小,传输速度相对较快,适用于实时性要求高的应用。
  • 广播和多播:UDP支持广播和多播功能,可以实现将数据包发送给多个目标设备。
  • 适用场景:UDP适用于对传输延迟要求较高、对传输可靠性要求相对较低的应用,如实时音视频传输、在线游戏等。

两者使用场景区别:选择使用TCP还是UDP取决于应用要求和场景需求。对于需要可靠传输、顺序性和拥塞控制的应用,TCP是更好的选择。而对于实时性要求较高、数据量较小、丢失几个数据包不会造成严重影响的应用,UDP更合适。

1.6 HTTP、HTTPS、FTP协议

HTTP(Hypertext Transfer Protocol),HTTPS(Hypertext Transfer Protocol Secure)和FTP(File Transfer Protocol)都是常用的应用层协议,用于不同的数据传输和通信场景。

HTTP:
HTTP是一种用于在客户端服务器之间传输超文本的协议。它是Web浏览器和Web服务器之间的通信协议,用于请求和传输HTML页面、图像、音频、视频等资源。HTTP是基于TCP协议的(上层协议都是根据下层协议提供的服务实现的),采用了请求-响应模型,客户端向服务器发送请求,服务器返回相应的内容。

HTTPS:
HTTPS是基于HTTP协议的安全版本。它通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来对通信进行加密和验证,以确保数据传输的安全性。HTTPS协议在HTTP的基础上加入了加密和身份认证,常用于涉及敏感信息传输的网站,如电子商务网站、在线银行等。

FTP:
FTP是一种用于文件传输的协议。它允许将文件从一个计算机传输到另一个计算机,可以上传、下载和管理文件。FTP协议可以在一个客户端和一个服务器之间建立一个连接,使用用户名和密码进行身份验证,并在服务器和客户端之间进行文件传输。FTP通常使用TCP作为传输协议

需要注意的是,HTTP和HTTPS主要用于Web访问和资源传输,而FTP协议则专注于文件传输。每种协议都有自己的特点和用途,在不同的场景中选择适合的协议来满足需求。

1.7 Web、Web浏览器、Web服务器

在HTTP协议中介绍了Web相关的知识点,下面再将Web相关定义回顾一遍

Web(World Wide Web)
是一种基于互联网的信息系统由许多互相连接的网页组成。它通过使用标准的HTTP协议进行通信,使得用户能够通过Web浏览器访问和浏览网页上的内容。

Web浏览器
是一种用于查看和访问Web页面的软件应用程序。它提供了用户界面,允许用户输入URL(统一资源定位符)或点击链接来请求特定的Web页面。一旦接收到页面数据,Web浏览器会解析并显示页面上的文本、图像、视频和其他多媒体内容。常见的Web浏览器包括谷歌浏览器、Mozilla Firefox、微软Edge等。

Web服务器
是一种网络服务器软件,主要负责接收并响应Web浏览器发出的HTTP请求。它存储和提供Web页面和其他相关资源,将这些资源发送给请求的浏览器。Web服务器可以根据请求的URL和其他参数,动态生成页面内容,还可以处理表单提交、会话管理等功能。常见的Web服务器软件有Apache HTTP Server、Nginx、Microsoft IIS等。

Web浏览器和Web服务器是Web使用过程中的两个重要角色。浏览器作为客户端发送HTTP请求,服务器作为服务端接收并响应请求,两者之间通过互联网进行通信,以实现用户在Web上浏览和交互的功能。


拓展:Web浏览器和Web服务器之间基本的请求-响应模型

当用户在Web浏览器中输入URL或点击链接时,以下是Web浏览器和Web服务器之间的基本流程:

  1. 解析URL:浏览器解析用户输入的URL,提取出协议(如HTTP、HTTPS)、域名(如www.example.com)和路径(如/page)等信息。
  2. 建立连接:浏览器通过网络建立与Web服务器的TCP连接。使用域名解析域名转换为服务器的IP地址,并通过端口号确定Web服务器的监听端口(默认为80)。
  3. 发送HTTP请求浏览器构建HTTP请求报文,包括请求方法(如GET、POST)、请求(如User-Agent、Cookie)和请求(如果有的话),然后将请求报文发送给Web服务器
  4. 处理请求:Web服务器接收到请求后,根据请求的URL和其他信息,找到对应的资源或处理程序。如果请求的是静态文件(如HTML、图片、CSS文件等),服务器会从磁盘中读取文件,并将文件作为响应内容发送给浏览器。如果请求的是动态资源(如PHP、Python脚本等),服务器会调用相应的处理程序进行处理,并生成动态的响应内容。
  5. 发送HTTP响应:Web服务器将生成的响应内容构建成HTTP响应报文,包括响应状态码(如200表示成功,404表示未找到资源)和响应头(如Content-Type、Content-Length),然后将响应报文发送给浏览器。
  6. 接收和解析响应:浏览器接收到响应报文后,根据响应头中的信息解析响应内容。浏览器会根据响应的数据类型进行相应的处理,如渲染HTML内容、加载CSS样式表、执行JavaScript脚本等。
  7. 渲染页面:浏览器会将接收到的HTML文档解析为DOM树,并根据CSS样式对DOM元素进行渲染。然后,浏览器将渲染好的页面显示给用户。
  8. 关闭连接:当浏览器完成页面的渲染并断开与服务器的连接时,连接会被关闭,释放相关的资源。

1.8 以太网和WLAN

以太网(Ethernet)
是一种局域网(LAN)技术,用于在计算机和其他网络设备之间进行数据通信。以太网是一种基于有线传输介质的网络技术,最常见的传输介质是双绞线。它基于CSMA/CD(载波侦听多路访问/冲突检测)协议,允许多个设备共享同一个局域网,并通过解决冲突来提供高效的数据传输。

WLAN(无线局域网)
是一种无线网络技术,通过无线信号传输数据,实现计算机和其他无线设备之间的数据通信。WLAN使用无线接入点(Access Point)作为中心设备,通过无线信号覆盖一定范围内的区域,使设备可以连接到网络并进行数据交换。常见的无线网络技术包括Wi-Fi(无线保真)。

区别和联系

  • 传输介质:以太网使用有线传输介质(如双绞线),而WLAN使用无线信号进行数据传输。
  • 连接方式:以太网通常通过物理连接(如网线)将设备连接到网络,而WLAN则通过无线信号连接设备。
  • 覆盖范围:以太网的传输范围受限于有线传输介质的长度,而WLAN通过无线信号可以在一定范围内提供网络覆盖。
  • 移动性:以太网连接通常是固定的,设备需要通过有线连接到网络,而WLAN提供了移动性,允许设备在无线网络覆盖范围内自由移动。
  • 速度和带宽:以太网通常提供更高的传输速度和带宽,适合在局域网中传输大量数据。WLAN的速度和带宽通常受到无线信号质量和干扰的影响,可能不如有线网络稳定和高速。
  • 尽管以太网和WLAN使用不同的传输技术和连接方式,它们通常被用于不同的场景和需求。以太网适用于需要高速、高带宽和可靠连接的场景,如办公室、数据中心等;而WLAN适用于需要灵活移动、无线连接和覆盖范围更广的场景,如家庭、咖啡馆、机场等。

1.9 Socket (网络套接字)

思考:在设计到网络编程时,总会听到Socket词汇,那么Socket到底是什么呢?
答案:Socket 是传输层应用层提供的服务接口。

  • 在网络通信中,不同层次的协议有着不同的责任和功能,传输层负责将数据从一个节点传输到另一个节点,而应用层则负责应用程序之间的通信。
  • Socket 是传输层和应用层之间的接口,通过它应用程序可以向传输层发送数据和接收数据。应用程序可以利用 Socket API 来创建和管理套接字(Socket),通过套接字进行数据的发送和接收。
  • 传输层提供了两种常用的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP 提供可靠的、面向连接的数据传输,而 UDP 则是一种无连接的协议,适用于需要快速传输而对可靠性要求较低的应用。
  • 通过 Socket,应用程序可以选择适合自身需求的传输层协议。例如,对于需要保证数据的可靠性和顺序的应用,可以选择使用 TCP 协议;而对于实时性要求较高、可靠性要求较低的应用,可以选择使用 UDP 协议。

总结来说,Socket 是传输层提供给应用层的接口,它使应用程序能够通过传输层协议进行数据的发送和接收。开发人员可以利用 Socket 来实现各种网络应用和通信功能。

2 总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGLES:绘制一个混色旋转的3D球体

效果展示 本博文会实现一个混色旋转的3D球体 一.球体解析 前几篇博文讲解了如何使用OpenGLES实现不同的3D图形 这一篇讲解怎样绘制3D世界的代表图形:一个混色旋转的3D球体 1.1 极限正多面体 如果看过我前几篇3D图形绘制的博文,就知道要绘制一个3D图…

第三课 哈希表、集合、映射

文章目录 第三课 哈希表、集合、映射lc1.两数之和--简单题目描述代码展示 lc30.串联所有单词的子串--困难题目描述代码展示 lc49.字母异位分组--中等题目描述代码展示 lc874.模拟行走机器人--中等题目描述代码展示 lc146.LRU缓存--中等题目描述相关补充思路讲解代码展示图示理解…

正点原子嵌入式linux驱动开发——U-boot启动流程详解

在上一篇笔记中详细分析了uboot的顶层Makefile,理清了uboot的编译流程。本章来详细的分析一下uboot的启动流程,理清uboot是如何启动的。通过对uboot启动流程的梳理,可以掌握一些外设是在哪里被初始化的,这样当需要修改这些外设驱动…

java的内存模型(概念)

在java中,设计之初就有了:主内存、线程工作内存,所以其实每一个线程执行时,都是将主线程copy一份到工作线程,执行修改后,再同步回去。 所以,就有四组内存操作方式: 1、读主内存&…

postgresql-物化视图

postgresql-物化视图 物化视图创建物化视图刷新物化视图修改物化视图删除物化视图 物化视图 创建物化视图 postgresql使用create materialized view 语句创建视图 create materialized view if not exists name as query [with [NO] data];-- 创建一个包含员工统计信息的物化…

自学SLAM(2)---保姆教程教你如何使用自己的视频运行ORB-SLAM2

前言 如果你是新手入门,仅仅只会Linux的基本操作,并看了高翔老师视觉SLAM视屏的第一讲,那么你需要准备一整天的时间,可能还不一定能运行出来!运行ORB-SLAM2将会安装很多很多东西。那么,我们准备开始&#x…

CRMEB商城源码开源标准版v5.2.0+后端+前端uni-app开源包安装教程

CRMEB打通版是一款全开源支持商用的PHP多语言商城系统,历经年时间匠心之作!系统采用前后端分离技术,基于TP6Uui-app框架开发;客户移动端采用uni-app开发,管理后台前端使用iviewUI开发。系统支持微信公众号端、微信小程序端、H5端、…

C语言之自定义类型_结构体篇(1)

目录 什么是结构? 结构体类型的声明 常规声明 特殊声明-匿名结构体 结构体变量的定义和初始化和访问 定义 初始化 访问 嵌套结构体 结构体的自引用 什么是结构体的自引用 NO1. NO2. 热门考点:结构体内存对齐 产生内存对齐 NO1 NO2 …

二十九、高级IO与多路转接之epollreactor(收官!)

文章目录 一、Poll(一)定义(二)实现原理(三)优点(四)缺点 二、I/O多路转接之epoll(一)从网卡接收数据说起(二)如何知道接收了数据&…

蓝桥杯每日一题2023.9.28

AcWing 4409. 砍竹子 - AcWing 题目描述 题目分析 注:sqrtl的范围为long double,比sqrt更加精确 使用优先队列维护一段区间,如果连续一段相同就合并为一个区间,从大到小去枚举,每次先取出最大的一段,双…

专业综合课程设计 - 优阅书城项目(第一版)

此项目是《专业综合课程设计》带练项目 实现的功能有: 登录、注销、添加图书、删除图书、编辑图书 包含资源: 优阅书城(bookstore)源码 数据库数据 课程笔记 下载链接:https://wwpv.lanzoue.com/i79nx1av4doj 登录功…

windows系统服务管理命令sc

sc可以用于管理系统服务、计划任务、系统日志等方面,是不可或缺的神器。 基本用法 在命令提示符下输入sc命令,然后按回车键。 上图展示的是sc命令的使用方法,支持哪些参数实现哪些功能 要查看系统所有服务列表,包括它们是否正在…

逻辑回归评分卡

文章目录 一、基础知识点(1)逻辑回归表达式(2)sigmoid函数的导数损失函数(Cross-entropy, 交叉熵损失函数)交叉熵求导准确率计算评估指标 二、导入库和数据集导入库读取数据 三、分析与训练四、模型评价ROC曲线KS值再做特征筛选生成报告 五、行为评分卡模型表现总结 一、基础知…

Go-Python-Java-C-LeetCode高分解法-第八周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接:LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏,每日一题,和博主一起进步 LeetCode专栏 我搜集到了50道精选题,适合速成概览大部分常用算法 突…

2023年-华为机试题库B卷(Python)【满分】

1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟 华为机试题库B卷 已于5月10号 更新为2023 B卷 (2023-10-04 更新本文) 华为机试有三道题目,前两道属于简单或中等题,分值为100分,第三道为中等或…

互动营销类游戏开发小程序游戏开发

互动营销类游戏开发是一种创意和有趣的方式,可以用于推广产品、品牌或服务。这些游戏旨在吸引玩家并与他们互动,以促使他们与您的品牌建立更紧密的联系。 当今数字时代的市场竞争激烈,品牌和企业需要采用创新的方法来吸引并保持用户的兴趣。…

MySQL基础-事务

目录 1.事务简介 2.事务的操作 2.1 实验需要用到的数据 2.2 完成转账操作 修改事务执行方式 手动开启事务的方式 3.事务的四大特性 4.并发事务问题 5.事务隔离级别 5.1 事务隔离级别分类 5.2 查看事务隔离级别 5.3 设置事务隔离级别 1.事务简介 事务是一组操作的集合…

实时人脸五观检测:基于libfacedetection(CNN模型)

一、前言 随着人工智能技术的不断发展,人脸检测已成为计算机视觉领域的重要应用之一。人脸检测是一种将输入图像中的人脸位置和轮廓提取出来的技术,广泛应用于人脸识别、智能监控、人机交互等领域。利用libfacedetection开源的人脸检测库,实现人脸检测。 libfacedetection…

第一课数组、链表、栈、队列

第一课数组、链表、栈、队列 acwing136 邻值查找---中等题目描述代码展示 lc20.有效的括号--简单题目描述代码展示 lc25.K 个一组翻转链表--困难题目描述代码展示 lc26.删除有序数组中的重复项--简单题目描述代码展示 lc88.合并两个有序数组--简单题目描述代码展示 lc141.环形链…

mysql-binlog

1. 常用的binlog日志操作命令 1. 查看bin-log是否开启 show variables like log_%;2. 查看所有binlog日志列表 show master logs;3.查看master状态 show master status;4. 重置(清空)所有binlog日志 reset master;2. 查看binlog日志内容 1、使用mysqlb…