计算机网络

(转)一个网页打开的全过程

匿名 (未验证) 提交于 2019-12-03 00:40:02
1、概要   从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下面我将依靠自己的经验,总结一下整个过程。如有错漏,欢迎指正。   阅读本文需要读者已有一定的计算机知识,了解TCP、DNS等。 2、分析   众所周知,打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个网页加载过程分成两部分: html(jsp/php/aspx) 页面加载(假设存在简单的Nginx负载均衡) css/js/image等 网页静态资源加载(假设使用CDN)   先上一张图,直观明了地让大家了解下基本流程,然后我们再逐一分析。   2.1.1 DNS解析   什么是DNS解析?当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,我们需要的是一个IP地址。因此我们需要先把域名转换成相应的IP地址,这个过程称作DNS解析。   或许很多人不知道,浏览器自身也带有一层DNS缓存。Chrome 缓存1000条DNS解析结果,缓存时间大概在一分钟左右。   (Chrome浏览器通过输入:chrome://net-internals/#dns 打开DNS缓存页面)   2) 如果浏览器缓存中没有找到需要的记录或记录已经过期

socket编程为什么需要htonl(), ntohl(), ntohs(),htons() 函数-------转载

匿名 (未验证) 提交于 2019-12-03 00:39:02
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。 网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long" ntohl()--"Network to Host Long" htons()--"Host to Network Short" ntohs()--"Network to Host Short"   之所以需要这些函数是因为计算机数据表示存在两种字节顺序:NBO与HBO 网络字节顺序NBO(Network Byte Order): 主机字节顺序(HBO,Host Byte Order):    int main() { printf("%d \n",htons(16)); return 0; }   得到的结果是4096,初一看感觉很怪。 包含的头文件为:"winsock2.h"   原文地址: http://blog.chinaunix.net/uid-21278406-id-444362.html 原文:https://www.cnblogs.com/6-6-8-8/p/9264944.html

分布式计算入门

匿名 (未验证) 提交于 2019-12-03 00:32:02
分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。 分布式计算是一门计算机科学 ,主要研究分布式系统 。一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计算机程序称为分布式计算程序;分布式编程就是编写上述程序的过程。 分布式计算项目的种类非常多,相当一部分项目的参加和使用方式各异,幸运的是从2004年开始,由SETI@home项目组推出的BOINC ƽ̨ 得到了日益广泛的使用,大部分在其后产生的新项目和少部分先其产生的老项目都建立在或迁移到了BOINC平台上,这就大大减轻了志愿者参加多个分布式计算项目的难度。 任务单元,又称为任务包,对应的英文单词为Workunit,可简称WU,是分布式计算项目的 客户端 分配到的最小单元的计算任务。客户端在连接到项目服务器后,可下载一个或多个新任务单元,计算完成后,再将这些任务单元的计算结果上传给项目服务器

机器人中常用的通信方式

匿名 (未验证) 提交于 2019-12-03 00:27:02
题记:机器人中常用的通信方式有3种,tcp通信,udp通信,can通信 1、套接字(socket) 1.1、什么是socket socket是一种通信机制,可以应用于计算机不同进程之间通信,包括同一台计算机和网络中不同计算机之间的进程之间通信。 1.2 socket连接方式 socket的连接是client/server(客户端/服务端)对应的连接方式,否则连接失败。当然一个服务端可以对应多个客户端,但是其相应的连接方式。 文章来源: 机器人中常用的通信方式

【老生常谈的】互联网协议

匿名 (未验证) 提交于 2019-12-03 00:27:02
OSI参考模型 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 一.物理层(Physical Layer) 物理层定义了所有电子及物理设备的规范。其中特别定义了设备与物理媒介之间的关系,这包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器(在SAN中使用的主机适配器)以及其他的设备的设计定义。因为物理层传送的是原始的比特数据流,即设计的目的是为了保证当发送时的信号为二进制“1”时,对方接收到的也是二进制“1”而不是二进制“0”。因而就需要定义哪个设备有几个针脚,其中哪个针脚发送的多少电压代表二进制“1”或二进制“0”,还有例如一个bit需要持续几微秒,传输信号是否在双向上同时进行,最初的连接如何创建和最终如何终止等问题。 为了更好理解物理层与数据链路层之间的区别,可以把物理层认为是主要的

计算机网络――物理层

匿名 (未验证) 提交于 2019-12-03 00:09:02
1、物理层的任务 2、常用的信道复用技术 3、常用的宽带接入技术,主要是ADSL和FTTx 物理层考虑的是怎样才能在连接各种计算机的传输媒体上 传输数据比特流 ,而不是指具体的传输媒体 物理层的作用是要尽可能地 屏蔽 掉不同传输媒体和通信手段的差异 主要任务:确定与传输媒体的接口的一些特性 一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方) 常用术语 数据―― 运送消息的实体 信号―― 数据的电气的或电磁的表现 模拟信号―― 代表消息的参数的取值是连续的 数字信号―― 代表消息的参数的取值是离散的 码元―― 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形 信道 ―― 一般用来表示向某一个方向传送信息的媒体 单向通信(单工通信)――只能有一个方向的通信而没有反方向的交互 双向交替通信(半双工通信)――通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收) 双向同时通信(全双工通信)――通信的双方可以同时发送和接收信息 基带信号(即基本频带信号)―― 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号 调制分为两大类 基带调制:仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。把这种过程称为编码 带通调制:使用载波进行调制

计算机网络面试题

ぐ巨炮叔叔 提交于 2019-12-03 00:06:45
计算机网络 1、谈下你对五层网络协议体系结构的理解? 1. 应用层 应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。 2. 运输层 运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。 由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 3. 网络层 在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP / IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报

SOCKET的简单介绍

匿名 (未验证) 提交于 2019-12-03 00:05:01
客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 OSI七层协议(*******) 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见物理设备 引子: 须知一个完整的计算机系统是由硬件,操作系统,应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己完了(比如玩个扫雷).如果你要跟别人一起玩,那就需要上网了,什么是互联网? 互联网的核心就是一对协议的组成,协议就是标准,比如全世界人通信的标准是英语 如果把计算机比作人的话,互联网协议就是计算机界的英语,所有的计算机都学会了互联网协议,那所有的计算机就可以按照统一的规则标准去收发消息进行通信了,人们按照分工不同把互联网协议从逻辑上划分成了层级。 详见网络通信原理! 为何学习socket一定要先学习互联网协议呢?   首先C/S架构是基于网络通信的   然后网络的核心就是一堆网络协议,也就是协议标准。如果你想开发一款基于网络通信的软件,就必须遵循这些标准。 socket层 socket是什么? socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。在设计模式中

《计算机网络》

匿名 (未验证) 提交于 2019-12-03 00:03:02
一、英特网 ISP是英特网服务提供商,例如国内的电信、联通、移动。 根据提供服务的覆盖面积大小和拥有的IP地址数目不同,分为主干ISP、地区ISP、本地ISP。 为了更快的转发分组(数据)以及利用网络资源,英特网交换点IXP产生了,IXP的作用是允许两个网络可以直接相连交换分组; 如上图,有了IXP后,两台主机的通信就不用经过主干ISP了。但是IXP的数量并没有想象的那么多。 英特网的组成如下图所示: 边缘部分: 众多的主机又可以称为端系统,我们通常所说的计算机通信就是说两台计算机(上的某个进程)之间的通信。 这种通信方式又可分为C/S方式(客户-服务器)和对等方式(P2P方式)。 核心部分: 该部分的路由器是一种实现分组交换的专用计算机,是网络核心最重要的功能,实现网络互联。 二、电路交换 这是电话交换机的交换方式 建立连接(占用通信线路)-->通话(一直占用通信资源)-->释放连接(归还通信资源) 如果用电路交换来传输数据,那么传输效率往往会很低,因为计算机数据是突发性地出现在传输线路上的,这就导致将会又大部分时间传输线路是处于空闲状态的。 三、分组交换 分组交换采用存储转发技术,将一个报文分成一个个更小的数据段(又可称为“包”),每个数据段额外加上了必要的控制信息在内的首部,使得每个分组可以在英特网中独立地选择传输路径,并被正确地交付到传输终点。

面经计算机网络

匿名 (未验证) 提交于 2019-12-02 23:56:01
1.OSI七层模型 物理层 :利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 数据链路层 :负责建立和管理节点间的链路。 网络层 :通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。 传输层 :向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。 会话层 :向两个实体的表示层提供建立和使用连接的方法。 表示层 :处理用户信息的表示问题,如编码、数据格式转换和加密解密等。 应用层 :直接向用户提供服务,完成用户希望在网络上完成的各种工作。 2.TCP/IP五层模型 物理层、数据链路层、网络层、传输层、应用层 3.应用层协议有哪些? HTTP、FTP、SMTP 4.TCP/UDP,IP,HTTP、SOCKET分别在哪一层? TCP/UDP在传输层,IP在网络层,HTTP在应用层、SOCKET在传输层 5.TCP和UDP特点区别?各自的应用场景 TCP是传输控制协议;UDP是用户数据报协议 TCP是面向连接的,通信双方彼此交换数据前,必须先通过三次握手协议建立连接之后才能传输数据,数据传输慢;UDP面向非连接也就是发送数据前不需要建立链接,数据传输快。 TCP提供可靠的服务;UDP无法保证可靠。 TCP面向字节流;UDP面向报文。 应用场景 :TCP适用于对效率要求低,但是对准确率要求高的场合(客户端应用);UDP适用于对效率要求高