【网络编程】网络基础

news2025/1/20 4:47:29


目录

一、协议分层

1、为什么要分层

2、OSI七层模型

3、TCP/IP四层协议(五层协议)

二、网络传输流程

1、同一个网段内的两台主机进行文件传输

2、跨网段的主机的文件传输

三、IP地址和MAC地址

1、IP地址

2、MAC地址


网络通信的本质就是跨主机的进程间通信,用于通信的共享资源是网络。

一、协议分层

1、为什么要分层

网络相关的模块很多,分层是借鉴了软件设计的优势,降低模块间的耦合性。分层的依据是将耦合度较高的模块放在同一层,实现高内聚,每一层都将解决不同的问题。

2、OSI七层模型

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

它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

层数

分层名称

功能

每层功能

7

应用层

针对特定应用的协议。

6

表示层

设备固有数据格式和网络标准数据格式的转换。

5

会话层

通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。

4

传输层

管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。

3

网络层

地址管理与路由选择。

2

数据链路层

互连设备之间传送和识别数据帧。

1

物理层

以“0”“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格.

3、TCP/IP四层协议(五层协议)

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(本质上TCP/IP协议也是OSI七层模型,只不过它把会话层、表示层、应用层合为应用层罢了)

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

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

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

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

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

二、网络传输流程

封装:有效载荷+各层报头

解包:将报头和有效载荷分离的过程

分用:将有效载荷交给指定协议解包的过程

1、同一个网段内的两台主机进行文件传输

每一层的协议有很多种,右侧的那台计算机是如何将报文交给指定协议进行解包分用的呢?1、将报头和有效载荷分离2、将有效载荷正确的交给上层协议进行处理。

2、跨网段的主机的文件传输

数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

如果两边数据链路层协议不一样怎么办?如图,左侧计算机将报文封装好后交给路由器,路由器将该报文先进行解包,这将去除以太网协议的报头,路由器再将该报文添加令牌环报头,这样就解决了底层协议的差异性,实现了不同数据链路层协议的数据传输。

当然,这可能经过多个路由器,通过MAC地址实现指定路由器的跳转。

三、IP地址和MAC地址

1、IP地址

IP地址通常在广域网使用,图上的是内网IP的地址,IPV4一共4个字节,每个字节范围0-255;IPV6是16个字节。

IP地址可以理解为起点到终点。

2、MAC地址

MAC地址通常在局域网使用,占6个字节。

MAC地址可以理解为起点到终点的一个个站点。

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

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

相关文章

Python 输出日志 print 函数的应用(python专栏001)

在Python中,print()函数是一个用于输出内容到标准输出设备的函数,通常用于调试程序和显示程序运行结果 直接使用如下: print(5) print("早起的年轻人")print()函数可以接受多个参数,将它们用空格隔开,并输…

Docker CE介绍和CentOS7.5.1804离线安装Docker CE

文章目录 Docker CE介绍离线安装问题离线安装步骤Docker CE 的优点 Docker CE介绍 Docker CE(CE,Community Edition是社区版本的意思)是一个免费、开源的应用容器化平台,可帮助开发人员将应用程序打包成容器,并在任何…

【小白入门Linux】—目录结构介绍(一)

【小白入门Linux】—目录结构介绍(一) linux的方向: linux运维 linux嵌入式开发 在linux下做各种程序开发 应用领域 个人桌面领域 服务器领域(java c程序部署到linux服务器) 嵌入式(运行稳定&#x…

GRE-MGRE综合实验

拓扑结构: 要求 1、R5为网络运营商(ISP),接口IP地址均为公有地址; 2、R1与R5间使用PPP的PAP认证,R5为主认证方;R2与R5间使用PPP的chap认证,R5为主认证方;R3与R5间使用HD…

操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

进程线程协程区别 定义上 进程:资源分配和拥有的基本单位,是调度的基本单位。运行一个可执行程序会创建一个或者多个进程;进程就是运行起来的程序线程:程序执行基本单位,轻量级进程。每个进程中都有唯一的主线程&…

React之Redux的使用

文章目录 Redux 介绍概述Redux 是什么?为什么要使用 Redux?我什么时候应该使用 Redux?Redux 库和工具React-ReduxRedux ToolkitRedux DevTools 扩展 Redux 术语和概念State 管理不可变性 Immutability术语ActionAction CreatorReducerReducer…

ChatGPT会一直火热下去吗?他会是下一个AR,区块链吗?

目录 前言 VR 热潮 区块链热潮 元宇宙热潮 ChatGPT 热潮 理智看待 ChatGPT 前言 如果在今年年底评选 2023 年的年度科技热词,以 ChatGPT 目前的热度,毫无疑问会是今年排名第一的科技热词。 即使今年才过去四个月,但我很难想象还有什么科…

JUC多并发编程 ThreadLocal

ThreadLocal 提供线程局部变量。这些变量与正常的变量不同, 因为每一个线程在访问 ThreadLocal 实例的时候(通过其 get 或 set 方法) 都有自己的,独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段, 使用它的目的是希望将状态(例如, 用户ID或事务ID)…

【OJ比赛日历】快周末了,不来一场比赛吗? #04.29-05.05 #16场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注! 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考,以比赛官网为准 目录 2023-04-29&…

SQL学习日记

目录 一、数据定义(create,alter,drop) 1.1数据类型 1.2定义基本表(create,alter,drop) 1.3约束 1.3.1主键约束 1.3.2外码约束 ​编辑 补充CASCADE 关键字 1.3.3Check约束 …

自定义类型:结构体

ok,兄弟们,今天来写关于自定义类型的博客,先来看结构体。 结构体 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构体类型的声明 struct tag {member-list; }variable-list; 以上就是结构…

学习 Python 之 Pygame 开发魂斗罗(十六)

学习 Python 之 Pygame 开发魂斗罗(十六) 完成最终的魂斗罗1. 创建Sound类2. 添加背景音乐3. 添加玩家发射子弹音效4. 增加击中boss要害音效5. 击中敌人音效6. 加入进场动画7. 解决玩家掉出地图死亡问题8. 完善玩家游戏失败函数9. 总结 完成最终的魂斗罗…

道达天际首次亮相军博会,“天网融合”引爆全场

4月23日,第十届中国指挥控制大会暨第八届中国(北京)军事智能技术装备博览会(军博会)落下帷幕。北京道达天际科技股份有限公司(简称道达天际)携DAODAJ2天网情报产品体系首次亮相,全面展示天网融合技术、产品、行业解决方案等成果,最新技术应用备受现场观众瞩目,“天网融合”创新…

性能优化对于Android程序员的重要性,看完你就明白

前言 相信我们都使用过Android手机,然后在使用的过程中经常会遇到手机卡顿,应用闪退,画面不流畅等问题;正因为如此,就导致用户体验非常差,最后选择不再使用Android手机。对此,很多公司对Androi…

【软考备战·希赛网每日一练】2023年4月27日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题 三、知识查缺 题目及解析来源:2023年04月27日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: ADSL Modem 上网拨号方式有3种,即 专线方式(静态IP&#…

半导体运动台基于dsp+fpga+ad+endac的高速数据采集FPGA设计(二)

4 系统 FPGA 程序的设计 4.1 设计方法及逻辑设计概述 4.1.1 开发环境与设计流程 Quartus II 是 Altera 公司综合开发工具,它集成了 FPGA/CPLD 开发过程中所设计 的所有工具和第三方软件接口,支持多时钟分析, LogicLock 基于块的…

Linux内核阅读自学精简教程目录(必读)

学习Linux内核需要一定的计算机基础知识,包括操作系统,计算机网络等。 以下是学习Linux内核的步骤: 了解Linux内核的基本概念和架构,学习Linux内核源代码的组成和结构。学习C语言和汇编语言,这是深入理解Linux内核的…

ssh设置别名 ,登录

1. ssh设置别名; 可以使用alias命令来给ssh命令起别名,例如: alias mysshssh这样就可以使用myssh命令来代替ssh命令了。如果想要永久生效,可以将上述命令加入到~/.bashrc文件中。 ,如果没有 ~/.bashrc 此文件&#…

第十八章 迭代器模式

文章目录 前言一、迭代器模式基本介绍二、迭代器模式应用实例完整代码Department 系ComputerCollegeIterator 计算机学院迭代器InfoColleageIterator 信息工程学院迭代器College 学院接口ComputerCollege 计算机学院InfoCollege 信息工程学院OutPutImpl 操作迭代器Clint 测试 三…

一个恶意下载器的逆向分析

Die查壳, 发现没有加壳, 是使用VC编写的64位程序 丢入VT用杀毒引擎和沙箱扫, 爆红基本可以确定其属于恶意软件: 查看其PE节区发现其包含了资源节, 内部可能藏有隐藏模块 查看一下这个程序导入的dll中发现了如下特别的地方 并且其还使用了LoadLibrary和GetProcAddre…