当前位置: 首页 > article >正文

计算机网络基础

2.2数据链路层

        数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

        在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

        该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

MAC 子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;

LLC 子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

        TCP/IP协议体系结构中,数据链路层的功能描述为实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。这一层要关注的三个基本问题是:封装成帧,透明传输和差错检测。

2.3网络层

        网络层实现数据包的选路和转发。广域网或者说互联网通常使用众多分级的路由器来连接分散的主机或者局域网,因此,通信的两台主机一般不是直接相连的,而是通过多个中间结点(路由器)连接的。网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在运输层和网络应用程序看来,通信的双方是直接相连的。

        网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的米的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就是为它寻找一个合适的路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议逐跳的方式确定通信路径。

 IPV4 头部结构如下:

 2.4传输层

        传输层为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信的方式不
同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
        传输层协议主要有三个: TCP 协议、 UDP 协议和 SCTP 协议
        TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务。 TCP 协议使用超时重传、确认应答等方式来确保数据包被正确的发送至目的端,因此 TCP 服务是
可靠的。使用 TCP 协议通信的双方必须先建立 TCP 连接,并在内核中为该连接维持一些必
要的数据结构,比如连接状态,读写缓冲区等。当通信结束时,双方必须关闭连接以释放这
些内核数据。 TCP 服务是基于流的,基于流的数据没有边界(长度)限制,它源源不断地从
通信地一端流入另一端。发送端可以逐个字节地向数据流中写入数据,接收端可以逐个字节
地将它们读出

TCP协议报头:

         UDP 协议(用户数据报协议)则与 TCP 协议完全相反,它为应用层提供不可靠、无连
接、基于数据报地服务。“不可靠”意味着 UDP 协议无法保证数据从发送端正确地传送到目
的端。如果数据在中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则 UDP
协议只是简单地通知应用程序发送失败。因此,如果要使 UDP 协议可靠,那么应用程序通
常要自己处理数据确认、超时重传等逻辑。 UDP 是无连接的,即通信双发不保持一个长久
的联系,因此应用程序每次发送数据都要明确指定 接收端的地址。基于数据报的服务,是相
对基于流的服务而言的。每次 UDP 数据报都有一个长度,接收端必须以该长度为最小单位
将其所有内容一次性读出,否则数据将被截断。

        SCTP 协议(流控制传输协议)是一种相对较新的传输层协议,它是为了再因特网上传
输电话信号而设计的。
2.5应用层

        应用层负责处理应用程序的逻辑
3.网络应用程序通信流程

        如下图,应用程序 A 要将数据”hello” 传给网络上另外一台主机上的应用程序 B, 数
据“hello”从应用层发送给传输层后,传输层在数据前面加上 tcp 协议或 udp 协议的报头,
将整条报文发给网络层,网络层添加自己的 IP 报头,再将整条数据发送给数据链路层。数
据链路层将数据封装成能在网络中独立传输的数据单元,即数据帧。封装好的数据帧通过网
络传输到另一台主机,然后再从下层依次拆包,将数据部分送往应用层。应用程序 B 就得到
了数据” hello” 。

 


http://www.kler.cn/a/6960.html

相关文章:

  • 51单片机基础01 单片机最小系统
  • python+Django+MySQL+echarts+bootstrap制作的教学质量评价系统,包括学生、老师、管理员三种角色
  • 主机型入侵检测系统(HIDS)——Elkeid在Centos7的保姆级安装部署教程
  • PyTorch使用教程-深度学习框架
  • Vulnhub靶场案例渗透[9]- HackableIII
  • 单片机学习笔记 1. 点亮一个LED灯
  • java servlet 期刊在线投稿系统jsp编程sqlserver数据库mvc模式开发计算机网页设计
  • js 作用域
  • 【JAVA程序设计】(C00125)基于Springboot的人事管理系统
  • 电流互感器校验台TI5300交直流电流传感器检测装置
  • ChatGPT扩展系列之ChatGPT for Google
  • 基于粒子群算法的含风光燃储微网优化调度
  • 使用js实现任意元素均可全屏显示的插件,提供vue自定义指令,开箱即用
  • 2023.4.2 卷积到底是个啥?
  • 脂肪酸脂质Myristic acid PEG NHS,Myristic-acid PEG NHS ester,肉豆蔻酸PEG活性酯,具有优异疏水性
  • 项目 TO 的自我修养
  • Centos8中安装Docker
  • Linux SSH失效的几种情况以及排查方法
  • 在线直播源码系统架构设计
  • 战略应对:如何利用TOOM舆情监控预测市场趋势,抢占商机?
  • CMake入门教程【基础篇】2.aux_source_directory添加源文件
  • 如何将独热标签还原为字符串标签?
  • 要不要限制 AI?我们把与 GPT-4 有关的观点收集全了
  • 为什么Elasticsearch7.x把type给干掉了?
  • Chrome扩展程序实现网页翻译
  • Python求解线性方程组