网络传输

TCP/IP协议分层详解

有些话、适合烂在心里 提交于 2019-11-29 19:08:54
TCP/IP协议分层详解 目录 TCP/IP 和 ISO/OSI TCP/IP分层模型 数据的封装与分用 其他相关概念 TCP/IP 通信传输流 负责传输的 IP 协议 正文 回到顶部 TCP/IP 和 ISO/OSI      ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。   TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。 回到顶部 TCP/IP分层模型    应用层   应用层决定了向用户提供应用服务时通信的活动。|| 应用层负责处理特定的应用程序细节。   TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域 名系统

TCP/IP

﹥>﹥吖頭↗ 提交于 2019-11-29 12:31:50
1、TCP/IP模型 TCP/IP协议通信的过程其实就是数据入栈出栈的过程。入栈就是数据发送方每层不断的封装首部和尾部,添加一些传输的信息,保证能传输到目的地、出站就是数据接收方每层不断的拆除首部和尾部,得到最终的传输数据。 下图是以http协议来说明: 二、数据链路层 物理层负责的是0、1比特流与物理设备电压高低、光的闪灭之间的互换。 数据链路层负责的就是将这些0、1序列划分为数据帧,然后从一个节点(主机)传输到另一个节点(主机)。这些节点是通过MAC来唯一标识的(MAC,物理地址,一个主机有一个MAC地址)。 封装成帧:把网络层数据报加头和尾,封装成帧,帧头包括了源MAC地址和目的MAC地址; 透明传输:0比特填充、转义字符; 可靠传输:在出错率很低的链路上很少用(因为一根线连着彼此,当然不会出错),在 无线链路WLAN 会保证可靠传输; 差错检测(CRC):接受者检测错误,如果发现错误,就丢弃该帧; 三、网络层 1、IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据 都以IP数据格式 传输。 要注意的是, IP不是可靠的协议 ,这是说,IP协议 没有提供一种数据未传达以后的处理机制 ,这被认为 是上层协议:TCP或UDP要做的事情 。 1.1 IP地址 数据链路层中通过MAC地址来识别两个不同的节点,在IP层(网络层)通过IP地址来识别

modbus通讯协议详解

荒凉一梦 提交于 2019-11-29 11:35:53
一、Modbus 协议简介     Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以选择以太网口。其通信遵循以下的过程:   ● 主设备向从设备发送请求   ● 从设备分析并处理主设备的请求,然后向主设备发送结果   ● 如果出现任何差错,从设备将返回一个异常功能码   此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。   当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构

物理层(计算机网络)

自作多情 提交于 2019-11-29 10:18:06
物理层概述 物理层解决如何在连接在一起的各种不同计算机的传输数据媒介上传输二进制(如: 010101)比特流,就是以何种方式、哪种形态进行传输。 传输媒介的接口的一些特性:机械特性、电气特性、功能特性、过程特性 机械特性: 接口形状、大小、引线数量等,通俗讲也就是网线的水晶头的设计等一些规定 电气特性: 规定电压范围(-5V~+5V)等 在网线中传输时所用的电压范围 功能特性: 指明某条线上出现的某一电平的电压的意义 过程特性: 也称规程特性,规定建立连接时各个相关部件的工作步骤 物理通讯基础知识 数据通信模型 下图为源点、发送器、接受器、终点、源系统、传输系统、目的系统的对应关系 PC机将要发的数据转换为010101,数字比特流就代表着010101传给调制解调器,调制解调器将数字比特流转换为模拟信号,通过公用电话网传到很远的目的地去。然后逆过来解析成原数据就行了 提到的数字比特流、模拟信号之后会讲解到,大概了解了数据通信的模型,知道数据是转换成哪种形势传到目标中。 常用术语 1)通信的目的:传送信息 2)数据:运送信息的实体 3)信号:数据的电气或电磁的表现,通俗讲就是通过电气或者电磁的一些表现形式来代表我们的数据,这就是我们说的信号,电气、电磁(比如一些电磁波等)。 数字信号:代表消息的参数的取值是离散的,下面就是数字信号,通过一高一低,不连续的波。 模拟信号

网络时延的几个概念

删除回忆录丶 提交于 2019-11-29 09:07:59
时延是指一个报文或分组从网络的一端传送到另一端所耗费的时间,时延由节点处理时延、排队时延、发送时延、传播时延组成。下面为大家一一介绍一下: 节点处理时延: 主机或路由器在收到分组后要花费一定的时间进行处理,比如分析首部,提取数据,差错检验,路由选择等。一般高速路由器的处理时延通常是微秒或更低的数量级。 排队时延: 排队时延很好理解,就是路由器或者交换机处理数据包排队所消耗的时间。一个特定分组的排队时延取决于先期到达的、正在排队等待向链路传输分组的数量。如果该队列是空的,并且当前没有其他分组在传输,则该分组的排队时延为0;另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很大。实际的排队时延通常在毫秒到微秒级。 传输时延: 传输时延又被称为“发送时延”,是发送数据所需要的时间,也就是从网卡或者路由器队列递交网络链路所需要的时间。用L比特表示分组的长度,用R bps表示从路由器A到路由器B的链路传输速率,传输时延则是L/R。实际的发送时延通常在毫秒到微秒级。 传播时延: 传播时延是指在链路上传播数据所需要的时间。传播时延等于两台路由器之间的距离除以传播速率,即传播时延是D/S,其中D是两台路由器之间的距离,S是该链路的传播速率。实际传播时延在毫秒级。 举个例子分析一下数据包Y从A路由器到B路由器的总时延: 当A接收到数据包时,会先检测数据包

计算机网络_第2章 物理层

人走茶凉 提交于 2019-11-29 05:00:00
计算机网络 第2章 物理层 2.1 物理层的基本概念 2.2 数据通信的基础知识 2.2.1 数据通信系统的模型 一个数据通信系统可以划分为三大部分,即源系统(或发送端,发送端),传输系统(或传输网络)和目的系统(或接收端,接收方) 源系统一般包括以下两个部分 源点 发送器 接收器 终点 信号可以分为两大类: 模拟型号(连续信号) 数字信号(离散信号) 2.2.2 有关信道的几个基本概念 从通信双方信息交互的方式来看,可以有以下三种基本方式 单向通信 又称为单工通信 双向交替通信 又称为半双工通信 双向同时通信 又称为全双工通信 来此信源的信号称为基带信号。往往要对基带信号进行调制。 调制可以分为两大类: 基带调制 把数字信号转换为另一种形式的数字信号,也成为编码 载波 1.常用编码方式 不归零制 归零制 曼彻斯特编码 差分曼彻斯特编码 2.基本的带通调制方法 调幅AM 调频FM 调相PM 2.2.3 信道的极限容量 1.信道能够通过的频率范围 2.信噪比 2.3 物理层下面的传输媒体 2.3.1 导引型传输媒体 1.双绞线 为了提高双绞线抗电磁干扰能力,使用屏蔽双绞线(STP)。 绞合线类型 带宽 线缆特点 典型应用 3 16MHz 模拟电话,传统以太网(10Mbit/s) 4 20MHz 曾用于令牌局域网 5 100MHz 传输速率不超过100Mbit/s的应用 5E

实现高性能的异步网络传输

江枫思渺然 提交于 2019-11-29 04:46:41
一、前言 应用程序最常使用的 IO 资源,主要包括 磁盘 IO 和网络 IO 。由于现在的 SSD 的速度越来越快,对于本地磁盘的读写,异步的意义越来越小。所以,使用异步设计的方法来提升 IO 性能,我们更加需要关注的问题是,如何来实现 高性能的异步网络传输 。 二、理想的异步网络框架 大部分语言提供的 网络通信基础类库都是同步的 。一个 TCP 连接建立后,用户代码会获得一个用于收发数据的通道。每个通道会 在内存中开辟两片区域用于收发数据的缓存 。 发送数据的过程比较简单,我们直接往这个通道里面来写入数据就可以了。用户代码在发送时写入的数据会暂存在缓存中,然后操作系统会通过网卡,把发送缓存中的数据传输到对端的服务器上。只要这个缓存不满,或者说,我们发送数据的速度没有超过网卡传输速度的上限,那这个发送数据的操作耗时,只不过是 一次内存写入的时间 ,这个时间是非常快的。所以, 发送数据的时候同步发送就可以了,没有必要异步 。 比较麻烦的是接收数据。对于数据的接收方来说,它并不知道什么时候会收到数据。那我们能直接想到的方法就是,用一个线程阻塞在那儿等着数据,当有数据到来的时候,操作系统会先把数据写入接收缓存,然后给接收数据的线程发一个通知,线程收到通知后结束等待,开始读取数据。处理完这一批数据后,继续阻塞等待下一批数据到来,这样周而复始地处理收到的数据。 这就是同步网络 IO 的模型

面试问题之计算机网络:TCP如何保证数据可靠传输

微笑、不失礼 提交于 2019-11-29 04:35:47
转载于:https://blog.csdn.net/liuchenxia8/article/details/80428157 TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。 TCP保证数据可靠传输的方式主要有以下六点:校验和、确认应答与序列号、超时重传、连接管理、流量控制、拥塞控制。 1、校验和 在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。发送方在发送数据之前计算校验和,并进行校验和的填充。接收方收到数据后,对数据以同样的方式进行计算,求出校验和,与发送方的进行比对。 注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致, 数据不一定传输成功。 2、确认应答与序列号 序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。 确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。 序列号的作用不仅仅是应答的作用,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。 3、超时重传 简单理解就是发送方在发送完数据后等待一个时间

TCP怎么保证证包有序传输的,TCP的慢启动,拥塞避免,快速重传,快速恢复

不羁岁月 提交于 2019-11-29 04:10:24
TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦。如造成数据包的重传、顺序的颠倒甚至造成数据包的丢失。 那么,TCP具体是通过怎样的方式来保证数据的顺序化传输呢? 主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。接收主机利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等,接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。 具体步骤如下: (1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区; (2)并为每个已发送的数据包启动一个超时定时器; (3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区; (4)否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止。 (5)接收方收到数据包后,先进行CRC循环冗余校验(Cyclic Redundancy Check, CRC)校验,如果正确则把数据交给上层协议,然后给发送方发送一个累计应答包,表明该数据已收到

网络编程(2)

时光总嘲笑我的痴心妄想 提交于 2019-11-29 00:50:22
【网络编程】 主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 教学目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类名称 能够编写TCP协议下字符串数据传输程序 能够理解TCP协议下文件上传案例 能够理解TCP协议下案例2 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 [外链图片转存失败(img-rEm948HH-1567169440745)(img/1_cs.jpg)] B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 [外链图片转存失败(img-dLOAlD3M-1567169440746)(img/2_bs.jpg)] 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。 网络编程 ,就是在一定的协议下,实现两台计算机的通信的程序。 1.2 网络通信协议 **网络通信协议:**通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定