从复试结束之后就忙于奔波,甚是乏累,从沈阳来到北京就忙于找工作,少于看书,昨天终于决定入职,入职之后,做的方向是网络质量检测,APM,应用性能管理,给我的产品说明,只是寥寥几个字,各种术语,百度网络质量的指标,一顿云里雾里,看的一头雾水,于是决定从新学习计算机网络,学习各种协议。
先将昨天的知识贴下来:
网络质量的指标,主要有以下几个:
带宽(throughput):网络的吞吐率,端到端之间可以传输的最大速率。比如服务器之间的千兆网络带宽是1000Mbps,或者用户adsl上网速率是 2Mbps。
延时(latency):数据包从本地传输到对端之间需要的时间,一般是来回的时间。如果延时过大,就会觉得网络慢,特别是一些交互性强的应用。 比如延时超过300ms,通过ssh就会明显感到服务器响应比较慢,跟不上键盘输入的速度。延时一方面和两地之间的传输距离有关,比如中美之间通过海底光缆传输半个地球,来回距离加起来最起码4万公里,光速是30万公里每秒,所以理论延时最起码是130ms,再加上光缆需要转接和绕路,以及其他损耗,所以中美之间网络延时最好的时候也在170ms左右。延时另外一个原因是网络带宽的占用率,如果占用率高,则延时也高,比如天朝的特色,电信和网通之间,互相掐架,互联带宽很小,网络瓶颈,造成互相之间延时很高。很多时候,同一个城市的网通到电信,比到美国去绕一圈还要慢。延时的其他原因,是cpu处理跟不上等。
丢包(loss):由于线路带宽占用过高,数据包从一端到另外一端传输的途中,会产生丢失。丢包率是网络的一个重要指标,一旦产生丢包,说明网络带宽不足,系统会自动重传, 导致继续劣化,所以丢包率超过10%以后,网络质量会迅速劣化。
抖动(jitter):如果延时不稳定,忽快忽慢,网络就存在抖动。 抖动这个指标,在VOIP,视频会议等场合,是一个非常重要的指标,如果产生抖动,往往声音和图像也会抖动,无法听清楚或者看清楚。
今天上学习boost::asio的用法,但是完全看不懂,不知如何是好,于是就开始学习计算网络,现将所学的知识总结如下:
IP = 网络号+主机号 ,是一个32bit的数字
域名系统(DNS):是一个分布式的数据库,他提供将主机名(也就是网址)转换成IP的服务
RFC:RFC就是tcp/ip协议的标准文档
端口号(port):这个号码是用在tcp,udp上的一个逻辑号码,不是一个硬件端口,把某端口封掉,也就是在IP层次把带有这个号码的IP包给过滤掉。
socket(套接字):源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
p2p(Peer-to-peer networking):络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。
URL(Uniform Resource Locator):统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,
它包含的信息指出文件的位置以及浏览器该怎么处理它。
URL has three components:
host name(主机名)
path name(路径名)
access protocol(访问协议)
Form(形式):
access protocol://IP address(host name):port number/pathname/file
EG:
http: // www.someschool.edu:80/somedept/pic.gif
Examples:
ftp:// 202.204.220.13:21
http://www.cnu.edu.cn:80/bx80/kjc.htm
HTTP(HyperText Transfer protocol):超文本传输协议,他是web的核心。
UDP和TCP所提供的服务模型,UDP和TCP最基本的任务是:将两个端系统间IP的交付服务扩展为运行在端系统上的进程之间的交付服务。
将主机间交付扩展到进程间交付,称之为:运输层的多路复用。
多路分解:将运输层报文段中的数据交付到正确的套接字的工作。
多路复用(multiplxing):从源主机的不同套接字中收集数据块,并为每个数据块装上首部信息(这将在多路分解时使用),从而生成报文段,然后将报文段传递到网络层的工作
称之为多路复用。
多路复用的要求:<1>:套接字有唯一的标识符;<2>:每个报文段有特殊字段来指示该报文段所要交付的套接字(特殊字段:源端口号字段和目的端口号字段)。
运输层创建的运输层报文段,包含源端口号的作用:A到B的报文段中,源端口会作为“返回地址”的一部分;即当B需要发回一个报文段给A时,B到A的报文段中的目的端口号便从A到B的报文段的
源端口号中取值。(完整的返回地址是A的IP地址和源端口号)
今天看了一天的书,以至于到现在脑子根本不愿意再多看一个字,脑子嗡嗡直响,今天看了应用层和传输层,了解了一些协议,但是回过头看boost::asio的用法,还是完全看不懂,不知如何是好,这么学对么?该怎么学呢?身边都是很厉害的人,就我一个初出茅庐的学生,在他们看代码的时候我还只能学基础,这种差异,让人很是羞愧,加油,加油,努力赶上!