计算机网络-网络结构

2023-05-16

计算机网络

三种网络结构

  1. OSI:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

  2. TCP/IP:网络接口层、网际层、传输层、应用层

  3. 五层:物理层、数据链路层、网络层、传输层、应用层

应用层

  它的任务是通过应用进程间的交互来完成特定网络应用,应用层协议定义的时应用进程间的通信和交互规则,对于不同的网络应用需要不同的应用层协议,应用层交互的数据单元称为报文。

应用层协议应当定义:

  • 应用进程交换的报文类型,如请求报文、响应报文
  • 各种报文类型的语法,如各个字段及其详细描述
  • 字段的语义,即包含在字段中的信息的含义
  • 进程何时、如何发送报文,以及对报文进行响应的规则

常见协议:

  • 域名系统DNS(Domain Name System):从域名解析出IP地址,作为一个可以将域名和IP地址相互映射的一个分布式数据库,使访问者不需要记住IP串。区域传输时用的时TCP,其他时候用的时UDP,辅域名服务器定时向主域名服务器查询了解数据变动,有变动则进行区域传输域名解析用的是UDP
  • 超文本传输协议HTTP(HyperText Transfer Protocol):所有万维网文件都要遵守这个标准,定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎样把文档传给浏览器,层次上看 它是面向事务的。HTTP本身是无连接的,也就是说在交换HTTP报文之前不需要先建立HTTP连接,运输层使用TCP,端口是80HTTP是无状态的,每次访问,服务器的响应是一样的,不会记得这个客户。
  • 文件传输协议FTP(File Transfer Protocol)和简单文件传输协议TFTP:**FTP是基于TCP的,端口号是21,TFTP是基于UDP的,端口号69。**若要存取一个文件,必须获得本地的文件副本,修改只能对副本进行修改,然后将修改后的副本传回原节点。**FTP的客户和服务器建立控制连接(端口21)和数据连接(端口20)两个并行的TCP连接。**不满512字节是TFTP的结束标志。
  • 邮件传输协议SMTP和邮件读取协议POP3、IMAP以及邮件扩充协议MIME:SMTP发送邮件,基于TCP连接,只能传送可打印的7位ASCII码邮件,MIME可以传送多种数据类型,如声音、文本、图像视频等。
传输层

  它主要负责向两台主机进程之间的通信提供通用的数据传输服务,应用层利用该服务传送应用层报文,并不针对某一特定的网络应用。由于同一台主机可以同时运行多个进程,运输层有复用和分用的功能。复用就是多个应用层进程同时使用下面运输层的服务,分用就是把收到的信息分别交付给上面应用层中的相应进程。

主要协议:

  • 传输控制协议(Transmission Control Protocol):
    • 面向连接
    • 可靠
    • 传输字节流
    • 传输效率慢
    • 需要的资源多
    • 首部字节20-60
    • 不支持多播广播,连接被通信的两个端点
    • 一般用于要求通信数据可靠,如文件传输、邮件传输等
  • 用户数据协议(User Datagram Protocol):
    • 无连接
    • 不可靠
    • 传输数据报文段
    • 传输效率快
    • 需要资源少
    • 支持一对一、一对多和多对多的交互通信
    • 用于要求通信速度高,如域名转换、语音、直播等
网络层

  在计算机网络中进行通信的计算机之间可能经过很多个数据链路,也可能经过很多个通信子网。网络层的任务就是选择何时的网间路由和交换结点,确保数据及时传送。发送数据时,网络层把传输层产生的报文段和用户数据报封装成成分组和包进行传送。不要把传输层的用户数据报和网络层的IP数据报弄混。网络层向上只提供简单灵活、无连接的、尽最大努力交付的数据报服务。在发送分组时,不需要先建立连接,每个分组都是独立发送的,与其前后的分组无关,每个分组都有完整的终点地址,到达终点是无序的,差错处理由用户主机的传输层控制。互联网通过大量的异构网络通过路由器相互连接起来的,使用的时无连接的网际协议IP和许多路由选择协议。

数据链路层

  两台主机之间的数据传输,总是在一段段的链路上传送,两个相连节点传送数据时,链路层将网络层交下来的IP数据报组装成帧,在两个相邻的节点间的链路上传送帧,每一帧包括数据和必要的控制信息。在接收数据时,控制信息使接收端能够知道⼀个帧从哪个比特开始和到哪个比特结束,数据链路层在收到一帧后,从中提取数据部分上交网络层。

物理层

  物理层上传送的数据单位是比特,作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉传输介质和物理设备的差异。透明传输是指经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路像是看不见的。

数据在各层之间的传输过程

过程:主机1的进程1向主机2的进程2传送数据

  1. 进程1先将数据交给本机应用层,加上必要的控制信息H5,成为下一层的数据单元
  2. 传输层收到数据单元加上本层控制信息H4,成为下一层的数据单元。
  3. 网络层收到数据后,加上控制信息H3,成为下一层的数据单元
  4. 数据链路层将控制信息分为H2和T2两个部分加到首部和尾部
  5. 物理层传送比特流,不需要加控制信息,直接从首部开始传送
  6. 数据离开主机1经过网络的物理媒体传送到路由器时,上层至第三层,每一层根据控制信息进行必要的操作,并将控制信息去掉,将剩下的数据交给上一层。
  7. 在路由器第三层,根据首部中的目的地址查找路由器中的转发表,找出分组的接口,然后下传至第二层加上新的首部和尾部,再到第一层通过物理媒体将比特发送出去
  8. 比特流来到主机2,从第一层依次上升至第五层,最后把进程1发送的数据交给进程2。

当然在实际中,这些过程是对用户屏蔽的,仿佛数据直接从进程1给到进程2的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络-网络结构 的相关文章

  • LNMP详解(十四)——Nginx日志详解

    今天继续给大家介绍Linux运维相关知识 xff0c 本文主要内容是Nginx日志分析 一 Nginx日志分析简介 当Nginx作为web服务器时 xff0c 会提供对外访问功能 xff0c 这时对Nginx日志运行的错误和访问记录会进行记
  • 【Go】Go Gorm Sqlite3 CreateInBatches 报错:too many SQL variable 排查与解决

    Go xff1a 1 17 7 Gorm xff1a gorm io gorm v1 22 3 Gorm Sqlite3 driver gorm io driver sqlite v1 2 4 mattn Sqlite3 github co
  • centos下部署pyspider(精简版)

    centos7部署pyspider 一 安装依赖 yum install gcc gcc c 43 43 python pip python devel python distribute libxml2 libxml2 devel pyt
  • centos7分布式部署pyspider(精简)

    0理论 以下内容摘自框架设计 pyspider 的架构主要分为 scheduler xff08 调度器 xff09 fetcher xff08 抓取器 xff09 processor xff08 脚本执行 xff09 xff1a 各个组件间
  • 菜鸟笔记---startx执行后显示Only console users are allowed to run the X server

    输入startx amp 后报错信息 span class token operator span usr span class token operator span lib span class token operator span
  • 【supervisor】安装和使用,超级详细,开机自启动,以及其它的注意细节

    1 安装supervisor yum pip的方式都可以 yum y install supervisor 已加载插件 xff1a fastestmirror Loading mirror speeds from cached hostfi
  • poj1664-放苹果

    放苹果 把N个同样的苹果放在M个同样的盘子里 xff0c 允许有的盘子空着不放 xff0c 问共有多少种不同的分法 xff1f xff08 用K表示 xff09 5 xff0c 1 xff0c 1和1 xff0c 5 xff0c 1 是同一
  • VS报错——无法打开文件XXX.lib

    添加lib文件 xff1a 配置属性 gt 链接器 gt 输入 gt 附加依赖项加入库名 xff08 lib xff09 xff1b 或者是在cpp源文件中用 pragma comment lib lib 来代替 此时编译会提示 xff1a
  • Kafka与Flink结合使用

    Kafka与Flink结合使用 本地连接kafka 首先可以先以本地模式来对kafka进行操作 当我们在系统 xff08 可以是windows xff0c 尽量linux xff09 上部署好了Zookeeper和kafka集群 xff0c
  • 当前脑电入门

    资料 1 公众号脑机接口社区汇总 2 MNE 3 EEG科普 4 公众号BrainTechnology 5 公众号路同学 6 知乎Alex 7 程序员大本营 xff0c 很多相关 数据集 上海交大SEED数据集 BCI EEG数据集 xff
  • 使用Diskspd测试SQL Server存储子系统

    In this article we will learn how to test our storage subsystems performance using Diskspd The storage subsystem is one
  • Python读取mat文件——matlab的数据

    Python处理mat文件 1 读取2 数据格式 1 读取 很多人使用MATLAB并将数据存储在 mat文件中 这些文件是什么 这些文件包含MATLAB工作空间分配给它们的变量和对象列表 它作为字典导入到Python中 xff0c 其中键是
  • 我的毕设4.24—

    EEG 1 寻找数据2 读入数据3 了解数据3 处理数据 1 寻找数据 要找到关于情感的EEG数据集 by CSDN 2 读入数据 因为获取的数据集是mat文件 xff0c 解决Python读取mat文件 by 文本检索图书馆w pytho
  • 关于提高信息传输率三个方法之一——增加频带宽度

    转载原作 以下解释为什么增加频带宽度可减弱码间串扰 主要由于高频信号分量对波形影响是变得接近数字信号 xff0c 分界垂直 xff0c 减小斜坡 信道极限容量 任何实际的信道都不是理想的 xff0c 在传输信号时会产生各种失真以及带来多种干
  • CSMA/CD计算机网络(第七版)谢希仁 3-25 CSMA/CD

    计算机网络 xff08 第七版 xff09 谢希仁 3 25 假定站点A和B在同一个10Mb s以太网网段上 这两个站点之间的传播时延为225比特时间 站点A和B在t 61 0时同时发送了数据帧 当t 61 225比特时间 xff0c A和
  • L3-019 代码排版 (30 分) 别看 没改完

    太复杂了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 不做了 include lt iostream gt include lt cstdio gt using namespace std string s bo
  • 无人机航线规划

    非最短非最长 xff0c 因为只有10个点 xff0c 直接搜 标题 xff1a 无人机航线规划 某海岛遭遇飓风灾害 xff0c 道路设施受损严重 救援部门为尽快探明主要交通干道的受损情况 xff0c 在地图上划定了主要交通干道的侦察点 x
  • 17蓝桥C语言B组 7.日期问题

    标题 xff1a 日期问题 小明正在整理一批历史文献 这些历史文献中出现了很多日期 小明知道这些日期都在1960年1月1日至2059年12月31日 令小明头疼的是 xff0c 这些日期采用的格式非常不统一 xff0c 有采用年 月 日的 x
  • 安装Scipy。。。。。。。。

    放弃pip转用conda戳 2019 4 21 安装Scipy 以下所有安装过程假设电脑中安装有pip xff0c 如果没有就请装一个 首先 xff0c windows正常通过pip命令安装numpy和scipy的时候 xff1a pip
  • 《Python编程:从入门到实践》文件资料下载

    感谢分享者 下载地址 往下翻 下载压缩包

随机推荐

  • 01、BUCK电路的参数计算

    案例 xff1a 设计一个Buck电路 xff0c 满足如下性能指标要求 xff1a 一 性能指标要求 1 输入电压 2 输出电压 3 输出电压纹波 4 电流纹波 5 开关频率 二 需要计算的参数 三 BUCK电路拓扑 四 BUCK电路工作
  • mysql分页是物理分页_学习MySQL:什么是分页

    mysql分页是物理分页 In this article I am going to explain that in MySQL what is pagination and how we can implement it When we
  • Ubuntu下嵌入式arm板Qt环境搭建

    参考 xff1a https blog csdn net lpp0900320123 article details 24876159 系统环境 xff1a 主机操作系统 xff1a ubuntu14 04 主机编译器 xff1a gcc4
  • FreeRDP在windows上的编译和使用

    FreeRDP 是 Windows下远程桌面协议 xff08 RDP xff09 的一种实现 xff0c 类似于微软自带的mstsc xff0c 可以实现windows上的远程连接 xff0c 特别是对于在ubuntu或者在Mac下 xff
  • Ubuntu-GPU

    查看CUDA的版本 xff1a nvcc V 显示GPU的信息 xff1a nvidia smi 查看GPU的运行 xff1a xff08 每 0 1s 显示一次显存的情况 xff09 watch n 0 1 nvidia smi
  • 面向对象程序设计语言和面向过程程序设计

    面向对象程序设计语言和面向过程程序设计语言的区别由哪些 xff1f 面向对象的特点是 xff1a 封装 xff0c 继承 xff0c 多态 xff0c 其中多态又分为重载和重写 xff0c 面向对象的编程思想更接近现实的事物 面向对象的优点
  • Anaconda安装在D盘后无法在CMD窗口执行python命令

    Anaconda安装在D盘后无法在CMD窗口执行python命令以及库的安装办法 解决办法 xff1a 1 添加环境变量 我的电脑 右键属性 高级系统设置 环境变量 双击变量PATH 将Anaconda和Scripts的路径加入即可 xff
  • Ubuntu18.04配置多用户远程桌面控制display 0问题解决

    Ubuntu18 04配置xrdp多用户远程桌面控制 display 0问题解决 找了网上的所有方法都没有解决 xff0c 重新安装xrdp好了一会儿还会出现display 0情况 xff0c 偶然一次配置了ssh xff0c 然后就好了
  • Windows后台运行并启动Frpc客户端界面

    Windows后台运行并启动Frpc客户端界面 frp搭建内网穿透可以看我另外一篇 1 frps服务端配置 common bind port 61 3000 vhost http port 61 4000 vhost https port
  • 树莓派4安装Debian10

    原因 虽然树莓派自家的Raspberry Pi OS也是Debian10 xff0c 但是作为有些强迫症的程序员 xff0c 我还是选择安装官方发布的Debian10 其实安装很简单 xff0c 直接写入内存卡就行了 xff0c 但是不能s
  • Framework中的连接管理机制--4G和wifi之间的切换流程(转)

    https blog csdn net u010961631 article details 48629601 上一节 Wifi服务框架介绍 介绍了WIFI的大致框架 xff0c 本文主要介绍连接管理中的几个重要角色 xff0c 包括 xf
  • pandas学习笔记:pandas.Dataframe.rename()函数用法

    pandas学习笔记 xff1a pandas Dataframe rename 函数用法 pandas Dataframe rename 函数主要是用来修改Dataframe数据的行名和列名 主要用到的参数有 columns xff1a
  • mac os 查看日历_从命令行查看Mac日历

    mac os 查看日历 As someone that loves using UI tools I do pride myself in learning how to accomplish the same feats from com
  • Sql基础教程

    sql基础教程 第一章 数据库与sql1 1 数据库是什么DBMS的种类 1 2 数据库的结构表的结构 1 3 SQL 概要SQL语句及其种类SQL的基本书写规则 1 4 表的创建数据库的创建表的创建命名规则数据类型约束的设置 1 5 表的
  • Jetson TX2更换软件源(转)

    感谢博客 xff1a 点击打开链接 TX2的软件源为国外服务器 xff0c 网速会很慢 xff0c 需要换国内的ARM源 1 备份 etc lib路径下的source list文件 xff0c 然后在终端 xff08 按ctrl 43 al
  • c语言中求数组长度(*的作用,定义指针变量与取值)

    最近在学习c语言 xff0c 在c语言中少了很多库函数 xff0c 就比如我在求数组长度的时候 xff0c len 不能用了 xff0c 这在python中是自带的函数 即使在c 43 43 中 xff0c 求字符串长度时也能用str le
  • 个人使用ubuntu18相关配置

    root登陆 1 首先获得临时的root权限 xff0c 因为后面的一些操作需要root权限才可以 xff0c 打开终端输入以下命令 sudo s 之后直接输入当前账户的密码 xff0c 就可以获得临时的root权限 2 先创建root账户
  • Manjaro内存不足解决记录

    1 Linux虚拟机 最近在家闲得没事做 xff0c 就使用VMware装了一个linux虚拟机 xff0c 虽然之前装过许多linux发行版的虚拟机 xff0c 也装过win10 43 Deepin双系统 xff0c 但是从来没具体了解过
  • String/StringBuilder/StringBuffer

    String StringBuilder StringBuffer 1 可变性 String 字符串常量 xff0c 字符串是不可变的 源码中 xff1a span class token keyword private span span
  • 计算机网络-网络结构

    计算机网络 三种网络结构 OSI xff1a 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP xff1a 网络接口层 网际层 传输层 应用层 五层 xff1a 物理层 数据链路层 网络层 传输层 应用层 应用层 它