网络传输

linux 网络延时、丢包与传输带宽关系测试

霸气de小男生 提交于 2019-11-30 15:35:44
1.目的 在互联网中,我们会向网络运营商申请指定额度的带宽。实际传输时,由于网络QoS达不到要求,实际的传输带宽可能达不到标称值。本次测试在局域网环境中使用模拟工具模拟不同QoS下的网络条件,得出不同QoS网络下传输带宽 2.网络QoS指标 网络的QoS通常用以下指标衡量: 丢包率:由于网络拥塞,传输错误等造成的数据包丢失概率 延时:数据包发送到对端再返回到发送端的时长 延时抖动:衡量延时变化的程度 本次测试值模拟丢包率和延时与传输带宽的关系。 注:本文中的丢包率指的是在传输速率小于最大传输带宽时的丢包率。 3.测试方案 本次测试分两个阶段进行: 在丢包率为0的情况下,测试不同延时下的传输速率; 调整丢包率与延时,测试不同延时与丢包率组合下的传输速率。 4.测试环境 测试使用两位服务器: Server A:10.10.168.151 Server B:10.10.168.153 两台Server之间通过千兆以太网连接(带宽为1000Mbps); 两台服务器上部署iperf,用于向网络加流量,并统计传输速率;其中Server A上运行iperf server端(iperf -s),Server B上运行iperf client端(iperf -c 10.10.168.151 -t 100000 -i2)。数据流量方向是:server B → server A。iperf

面试中必备的网络相关知识

北慕城南 提交于 2019-11-30 12:28:43
废话不说,直接上干货。 1.协议的概念和作用 为了能让计算机之间能够通信,计算机需要定义通信规则,这些规则就是协议。规则有多种,协议也有多种。协议就是数据封装格式+传输。 2.OSI七层模型 应用层:提供网络服务和最终用户软件之间的接口服务。 表示层:数据的表示、安全、压缩。 会话层:建立、管理、中止会话。 传输层:定义传输数据的协议端口号,以及流控和差错校验。 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。 数据链路层:建立逻辑连接、进行硬件地址寻址、差错检验等功能。 物理层:网线、同轴电缆等。 3.TCP/IP参考模型 常用的协议: TCP/IP协议被称为传输控制协议/互联网协议,又称网络通讯协议,是由网络层的IP协议和传输层的TCP协议组成的,是一个很大的协议集合。 物理层和数据链路层没有定义任何特定协议,支持所有的标准和专用的协议。 网络层定义了网络互连,也就是IP协议: (1) 网际协议(IP):负责主机和网络之间寻址和路由数据包。 (2) 地址解析协议(ARP):获得同一物理网络中的硬件主机MAC地址。 (3) 网际控制消息协议(ICMP):发送消息,并报告有关数据包的传送错误。 (4) 互联网管理协议(IGMP):IP主机向本地多路广播路由器报告主机组成员。 传输层定义了TCP(传输控制协议)和UDP(用户数据报协议)。 应用层定义了HTTP(超文本传输协议)

Java网络传输数据加密算法

爱⌒轻易说出口 提交于 2019-11-30 12:28:05
算法可逆,具有跨平台特性 import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * 功能描述 加密常用类 特性跨平台 */ public class EncryptUtil { // 密钥是16位长度的byte[]进行Base64转换后得到的字符串 // public static String key = "LmMGStGtOpF4xNyvYt54EQ=="; public static String key = "cc839cf9feba4ed7ba68064177a0b505"; /** * <li>方法名称:encrypt</li> * <li>加密方法 * * @param xmlStr * 需要加密的消息字符串 * @return 加密后的字符串 */

计算机网络太难?了解这一篇就够了

混江龙づ霸主 提交于 2019-11-30 11:56:55
计算机网络、计算机操作系统这两个“兄弟”是所有开发岗位都需要“结拜”的,不管你是 Java、C++还是测试。对于后端开发的童鞋来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,比如:抓个包等等。所以对这一块知识点的准备还是要抱着敬畏之心,不要放过任何一个漏网之题。下面分享下我的学习过程: 1.看书:对于计算机比较基础的模块,我都是比较推荐找一本经典的书籍来好好学习下,不可以只看面经就去面试了。我一共看了两本书:汤小丹的《计算机操作系统》和《图解HTTP》。《计算机操作系统》是教科书,所以知识点相对比较基础,覆盖范围也比较广,非科班的学生还是很有必要看一看的。《图解HTTP》这本书用很多插图将一些知识点讲的通俗易懂,看起来也很快,还是比较推荐的。 2.做笔记:计算机网络的知识点还是比较多的,需要看书的时候做好笔记,方便复习。而且做笔记的时候可以就这个知识点去百度下,看看有没有自己遗漏的点,再给补充进来。在这里说下,我为什么一直强调做笔记?好处 1:做笔记是第 1 次你对书中的知识点的回顾,加深记忆;好处 2:而且如果你是发表在公关社区的肯定要保证最大限度的正确性,就需要再去看看这个知识点,核对下自己是否有理解偏差和遗漏等,这样就完成了知识点的深挖;好处3:正在到面试复习的时候,你是不太可能重新看一本书的,那么笔记就显得很重要了,自己做的笔记,复习起来很快

Linux netperf网络性能测试

这一生的挚爱 提交于 2019-11-30 10:14:00
Linux netperf网络性能测试 (2013-10-14 16:07:48) 转载 ▼ 网络性能测量的五项指标 1. 可用性(availability) 测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 ping 命令。通过向远端的机器发送 icmp echo request,并等待接收 icmp echo reply 来判断远端的机器是否连通,网络是否正常工作。 Ping 命令有非常丰富的命令选项,比如 -c 可以指定发送 echo request 的个数,-s 可以指定每次发送的 ping 包大小。 网络设备内部一般有多个缓冲池,不同的缓冲池使用不同的缓冲区大小,分别用来处理不同大小的分组(packet)。例如交换机中通常具 有三种类型的包缓冲:一类针对小的分组,一类针对中等大小的分组,还有一类针对大的分组。为了测试这样的网络设备,测试工具必须要具有发送不同大小分组的 能力。Ping 命令的 -s 就可以使用在这种场合。 2. 响应时间(response time) Ping 命令的 echo request/reply 一次往返所花费时间就是响应时间。有很多因素会影响到响应时间,如网段的负荷,网络主机的负荷,广播风暴,工作不正常的网络设备等等。 在网络工作正常时,记录下正常的响应时间。当用户抱怨网络的反应时间慢时,就可以将现在的响应时间与正常的响应时间对比

RPC原理及RPC实例分析

老子叫甜甜 提交于 2019-11-30 07:51:23
RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud、Facebook 的 Thrift、Twitter 的 Finagle 等。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 ps: Google gRPC 框架是基于 HTTP2 协议实现的,底层使用到了 Netty 框架的支持。 1. RPC 框架 一个典型 RPC 的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中“RPC 协议”就指明了程序如何进行网络传输和序列化。 图 1:完整 RPC 架构图 2. RPC 核心功能 一个 RPC 的核心功能主要有 5 个部分组成,分别是:客户端、客户端 Stub、网络传输模块、服务端 Stub、服务端等。 图 4:RPC 核心功能图 下面分别介绍核心 RPC 框架的重要组成: 客户端(Client):服务调用方。 客户端存根(Client Stub):存放服务端地址信息

TCP/IP协议栈

可紊 提交于 2019-11-30 06:15:52
文章目录 一、参考书籍 二、必须掌握的内容 1.TCP/IP协议体系的认知 2.数据链路层 3.网络层 4.传输层 5.应用层 三、常见面试题目 1.分层的概念 2.数据链路层 3.网络层 (1)IP协议 (2)ICMP协议 四、传输层 1.UDP协议 2.TCP协议 五、应用层 1.DNS 2.http基本格式 六、参考 一、参考书籍 (1)TCP/IP详解 卷1:协议 (2)计算机网络:自顶向下方法 二、必须掌握的内容 1.TCP/IP协议体系的认知 (1)分层。一部分处于用户态,一部分处于内核态。数据链路层,网络层,传输层封装于操作系统内核态。应用层存在于操作系统的用户空间,包括DNS,FTP,HTTPs,HTTP,工作中接触较多的是应用层的部分。但其它层的原理必须理解,面试考察。 (2)层与层之间下层对上层是透明的,传输在每一层是对等的。 2.数据链路层 (1)以太网帧的格式。 (2)MTU(最大传输单元)的概念。 (3)ARP协议和RARP协议(地址协议和逆地址协议,网卡MAC地址和IP地址互查机制)(网络层和链路层的中间层)ARP报文格式,查询原理,缓存机制 3.网络层 (1)掌握IP首部格式:如16位分片标识、DF不分片标志、MF更多分片标志、13位片偏移、8位生存时间TTL、16位的首部检验和等等。 (2)掌握如何IP分片:如总长大于MTU值,画分片情况

计算机网络——物理层

做~自己de王妃 提交于 2019-11-30 02:34:32
本章重点 1、物理层的任务 2、常用的信道复用技术 3、常用的宽带接入技术,主要是ADSL和FTTx 一、物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上 传输数据比特流 ,而不是指具体的传输媒体 物理层的作用是要尽可能地 屏蔽 掉不同传输媒体和通信手段的差异 主要任务:确定与传输媒体的接口的一些特性 二、数据通信的基础知识 2.1数据通信系统的模型 一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方) 常用术语 数据—— 运送消息的实体 信号—— 数据的电气的或电磁的表现 模拟信号—— 代表消息的参数的取值是连续的 数字信号—— 代表消息的参数的取值是离散的 码元—— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形 2.2有关信道的几个基本概念 信道 —— 一般用来表示向某一个方向传送信息的媒体 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收) 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息 基带信号(即基本频带信号)—— 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号 带通信号 —— 经过载波调制后的信号

爆锤TCP/UDP

爷,独闯天下 提交于 2019-11-29 22:17:44
TCP/UDP TCP: 传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 UDP: 用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。 前言: 关于TCP和UDP这两个协议是面试中非常常见的问题,本文讨论以下几个问题: 什么是TCP 什么是UDP TCP和UDP的异同点 TCP和UDP的应用场景 1. TCP和UDP的异同点 1.1 相同点 UDP和TCP同属于传输层的协议 1.2 不同点 TCP面向字节流,而UDP面向数据报。 解释: TCP收发的是一堆数据,是一个数据流,而每次取多少由主机决定; 而UDP发的是数据报,客户发送多少就接收多少 TCP是面向连接的,而UDP不是面向连接的。 解释: TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。 而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。 TCP是可靠的,而UDP是不可靠的。 解释:

zz 花了一个星期,我终于把RPC框架整明白了!

耗尽温柔 提交于 2019-11-29 21:14:01
https://www.jianshu.com/p/193634cca86a RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 下面重点介绍三种: gRPC:是 Google 公布的开源软件,基于最新的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。 Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。 用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的。不过这个对于用户来说需要学习特定领域语言这个特性,还是有一定成本的。 Dubbo