史上最详细网络基础知识

网络技术的基本原理:
1. 网络层次划分
2. OSI七层网络模型
3. IP地址
4. 子网掩码及网络划分
5. ARP/RARP协议
6. 路由选择协议
7. TCP/IP协议
8. UDP协议
9. DNS协议
10. NAT协议
11. DHCP协议
12. HTTP协议
13. 一个举例
1四、实用基本概念

计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而创建的规则、标准或者说是约定的集合。由于不一样用户的数据终端可能采起的字符集是不一样的,二者须要进行通讯,必需要在必定的标准上进行。程序员

计算机网络协议同咱们的语言同样,多种多样。而ARPA公司与1977年到1979年推出了一种名为ARPANET的网络协议受到了普遍的热捧,其中最主要的缘由就是它推出了人尽皆知的TCP/IP标准网络协议。目前TCP/IP协议已经成为Internet中的"通用语言",下图为不一样计算机群之间利用TCP/IP进行通讯的示意图。
史上最详细网络基础知识面试

1. 网络层次划分

为了使不一样计算机厂家生产的计算机可以相互通讯,以便在更大的范围内创建计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model)。算法

它将计算机网络体系结构的通讯协议划分为七层,自下而上依次为:数据库

  • 物理层(Physics Layer)编程

  • 数据链路层(Data Link Layer)浏览器

  • 网络层(Network Layer)缓存

  • 传输层(Transport Layer)安全

  • 会话层(Session Layer)服务器

  • 表示层(Presentation Layer)网络

  • 应用层(Application Layer)

其中第四层完成数据传送服务,上面三层面向用户。

除了标准的OSI七层模型之外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系以下图所示:
史上最详细网络基础知识
史上最详细网络基础知识
对应的设备:
史上最详细网络基础知识

2. OSI七层网络模型

TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操做都离不开TCP/IP协议。无论是OSI七层模型仍是TCP/IP的四层、五层模型,每一层中都要本身的专属协议,完成本身相应的工做以及与上下层级之间进行沟通。因为OSI七层模型为网络的标准层次划分,因此咱们以OSI七层模型为例从下向上进行一一介绍。
史上最详细网络基础知识
1)物理层(Physical Layer)

激活、维持、关闭通讯端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各类物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。

2)数据链路层(Data Link Layer)

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具有一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的创建、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的做用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

有关数据链路层的重要知识点:
1. 数据链路层为网络层提供可靠的数据传输;
2. 基本数据单位为帧;
3. 主要的协议:以太网协议;
4. 两个重要设备名称:网桥和交换机。

3)网络层(Network Layer)

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、链接的创建、保持和终止等。它提供的服务使传输层不须要了解网络中的数据传输和交换技术。若是您想用尽可能少的词来记住网络层,那就是"路径选择、路由及逻辑寻址"。

网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议很是简单,仅仅提供不可靠、无链接的传送服务。IP协议的主要功能有:无链接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议咱们会在接下来的部分进行总结。

有关网络层的重点为:
1. 网络层负责对子网间的数据包进行路由选择。此外,网络层还能够实现拥塞控制、网际互连等功能;
2. 基本数据单位为IP数据报;
3. 包含的主要协议:
IP协议(Internet Protocol,因特网互联协议);
ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
ARP协议(Address Resolution Protocol,地址解析协议);
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
4. 重要的设备:路由器。

4)传输层(Transport Layer)

第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。

传输层的任务是根据通讯子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供创建、维护和取消传输链接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。

网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。

有关网络层的重点:
1. 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
2. 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
3. 重要设备:网关。

5)会话层

会话层管理主机之间的会话进程,即负责创建、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。

6)表示层

表示层对上层数据或信息进行变换以保证一个主机应用层信息能够被另外一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

7)应用层

为操做系统或网络应用程序提供访问网络服务的接口。

会话层、表示层和应用层重点:
1. 数据传输基本单位为报文;
2. 包含的主要协议:FTP(文件传送协议)、Telnet(远程登陆协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

七层模型之间传输的顺序:
史上最详细网络基础知识

3. IP地址

史上最详细网络基础知识

电脑网络知识:史上最详细网络基础知识,学完就能够过网络工程师
1)网络地址

IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址表明着整个网络。

2)广播地址

广播地址一般称为直接广播地址,是为了区分受限广播地址。

广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的全部主机都能收到该广播消息。

3)组播地址

D类地址就是组播地址。

先回忆下A,B,C,D类地址吧:

A类地址以0开头,第一个字节做为网络号,地址范围为:0.0.0.0~127.255.255.255;(modified @2016.05.31)

B类地址以10开头,前两个字节做为网络号,地址范围是:128.0.0.0~191.255.255.255;

C类地址以110开头,前三个字节做为网络号,地址范围是:192.0.0.0~223.255.255.255。

D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址做为组播地址(一对多的通讯);

E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供之后使用。

注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

4)255.255.255.255

该IP地址指的是受限的广播地址。受限广播地址与通常广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;通常广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

注:通常的广播地址(直接广播地址)可以经过某些路由器(固然不是全部的路由器),而受限的广播地址不能经过路由器。

5)0.0.0.0

经常使用于寻找本身的IP地址,例如在咱们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道本身的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

6)回环地址

127.0.0.0/8被用做回环地址,回环地址表示本机的地址,经常使用于对本机的测试,用的最多的是127.0.0.1。

7)A、B、C类私有地址

私有地址(private address)也叫专用地址,它们不会在全球使用,只具备本地意义。

A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
史上最详细网络基础知识

4. 子网掩码及网络划分

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,因此其能提供的主机地址也愈来愈稀缺,目前除了使用NAT在企业内部利用保留地址自行分配之外,一般都对一个高类别的IP地址进行再划分,以造成多个子网,提供给不一样规模的用户群使用。

这里主要是为了在网络分段状况下有效地利用IP地址,经过对主机号的高位部分取做为子网号,从一般的网络位界限中扩展或压缩子网掩码,用来建立某类地址的更多子网。但建立更多的子网时,在每一个子网上的可用主机地址数目会比原先减小。

什么是子网掩码?

子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每个为1表明该位是网络位,为0表明主机位。它和IP地址同样也是使用点式十进制来表示的。若是两个IP地址在子网掩码的按位与的计算下所得结果相同,即代表它们共属于同一子网中。

在计算子网掩码时,咱们要注意IP地址中的保留地址,即" 0"地址和广播地址,它们是指主机地址或网络地址全为" 0"或" 1"时的IP地址,它们表明着本网络地址和广播地址,通常是不能被计算在内的。

子网掩码的计算:

对于无须再划分红子网的IP地址来讲,其子网掩码很是简单,即按照其定义便可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。若是它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,再也不详述。下面咱们关键要介绍的是一个IP地址,还须要将其高位主机位再做为划分出的子网网络号,剩下的是每一个子网的主机号,这时该如何进行每一个子网的掩码计算。

下面总结一下有关子网掩码和网络划分常见的面试考题:

1)利用子网数来计算

在求子网掩码以前必须先搞清楚要划分的子网数目,以及每一个子网内的所需主机数目。

(1) 将子网数目转化为二进制来表示;

如欲将B类IP地址168.195.0.0划分红27个子网:27=11011;

(2) 取得该二进制的位数,为N;

该二进制为五位数,N = 5

(3) 取得该IP地址的类子网掩码,将其主机地址部分的的前N位置1即得出该IP地址划分子网的子网掩码。

将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,获得 255.255.248.0

2)利用主机数来计算

如欲将B类IP地址168.195.0.0划分红若干子网,每一个子网内有主机700台:

(1) 将主机数目转化为二进制来表示;

700=1010111100;

(2) 若是主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里确定 N<8。若是大于254,则 N>8,这就是说主机地址将占据不止8位;

该二进制为十位数,N=10;

(3) 使用255.255.255.255来将该类IP地址的主机地址位数所有置1,而后从后向前的将N位所有置为 0,即为子网掩码值。

将该B类地址的子网掩码255.255.0.0的主机地址所有置1,获得255.255.255.255,而后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分红主机为700台的B类IP地址 168.195.0.0的子网掩码。

3)还有一种题型,要你根据每一个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。

好比一个子网有10台主机,那么对于这个子网须要的IP地址是:

10+1+1+1=13

注意:加的第一个1是指这个网络链接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
由于13小于16(16等于2的4次方),因此主机位为4位。而256-16=240,因此该子网掩码为255.255.255.240。

若是一个子网有14台主机,很多人常犯的错误是:依然分配具备16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,由于14+1+1+1=17,17大于16,因此咱们只能分配具备32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
史上最详细网络基础知识

5. ARP/RARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的全部主机,并接收返回消息,以此肯定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留必定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是创建在网络中各个主机互相信任的基础上的,网络上的主机能够自主发送ARP应答消息,其余主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻 击者就能够向某一主机发送伪ARP应答报文,使其发送的信息没法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

ARP工做流程举例:

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机A要与主机B通讯时,地址解析协议能够将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,如下为工做流程:

(1)根据主机A上的路由表内容,IP肯定用于访问主机B的转发IP地址是192.168.1.2。而后A主机在本身的本地ARP缓存中检查主机B的匹配MAC地址。

(2)若是主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的全部主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求而且检查是否与本身的IP地址匹配。若是主机发现请求的IP地址与本身的IP地址不匹配,它将丢弃ARP请求。

(3)主机B肯定ARP请求中的IP地址与本身的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。

(4)主机B将包含其MAC地址的ARP回复消息直接发送回主机A。

(5)当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦肯定,主机A就能向主机B发送IP通讯了。

逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址,好比局域网中有一台主机只知道物理地址而不知道IP地址,那么能够经过RARP协议发出征求自身IP地址的广播请求,而后由RARP服务器负责回答。

RARP协议工做流程:

(1)给主机发送一个本地的RARP广播,在此广播包中,声明本身的MAC地址而且请求任何收到此请求的RARP服务器分配一个IP地址;

(2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;

(3)若是存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;

(4)若是不存在,RARP服务器对此不作任何的响应;

(5)源主机收到从RARP服务器的响应信息,就利用获得的IP地址进行通信;若是一直没有收到RARP服务器的响应信息,表示初始化失败。

6. 路由选择协议

常见的路由选择协议有:RIP协议、OSPF协议。

RIP协议:底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,若是大于15跳,它就会丢弃数据包。

OSPF协议:Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。

7. TCP/IP协议TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求从新传输,直到全部数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,由于IP并无作任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

TCP是面向链接的通讯协议,经过三次握手创建链接,通信完成时要拆除链接,因为TCP是面向链接的因此只能用于端到端的通信。TCP提供的是一种可靠的数据流服务,采用"带重传的确定确认"技术来实现传输的可靠性。TCP还采用一种称为"滑动窗口"的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

TCP报文首部格式:
史上最详细网络基础知识
TCP协议的三次握手和四次挥手:
史上最详细网络基础知识

注:seq:"sequance"序列号;ack:"acknowledge"确认号;SYN:"synchronize"请求同步标志;ACK:"acknowledge"确认标志";FIN:"Finally"结束标志。

TCP链接创建过程:首先Client端发送链接请求报文,Server段接受链接后回复ACK报文,并为此次链接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP链接就创建了。

TCP链接断开过程:假设Client端发起中断链接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",可是若是你还有数据没有发送完成,则没必要急着关闭Socket,能够继续发送数据。因此你先发送ACK,"告诉Client端,你的请求我收到了,可是我还没准备好,请继续你等个人消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端肯定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭链接了"。Client端收到FIN报文后,"就知道能够关闭链接了,可是他仍是不相信网络,怕Server端不知道要关闭,因此发送ACK后进入TIME_WAIT状态,若是Server端没有收到ACK则能够重传。",Server端收到ACK后,"就知道能够断开链接了"。Client端等待了2MSL后依然没有收到回复,则证实Server端已正常关闭,那好,我Client端也能够关闭链接了。Ok,TCP链接就这样关闭了!

为何要三次挥手?

在只有两次"握手"的情形下,假设Client想跟Server创建链接,可是却由于中途链接请求的数据报丢失了,故Client端不得不从新发送一遍;这个时候Server端仅收到一个链接请求,所以能够正常的创建链接。可是,有时候Client端从新发送请求不是由于数据报丢失了,而是有可能数据传输过程由于网络并发量很大在某结点被阻塞了,这种情形下Server端将前后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的状况可能因为Client端屡次从新发送请求数据而致使Server端最后创建了N多个响应在等待,于是形成极大的资源浪费!因此,"三次握手"颇有必要!

为何要四次挥手?

试想一下,假如如今你是客户端你想断开跟Server的全部链接该怎么作?第一步,你本身先中止向Server端发送数据,并等待Server的回复。但事情尚未完,虽然你自身不往Server发送数据了,可是由于大家以前已经创建好平等的链接了,因此此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!

使用TCP的协议:FTP(文件传输协议)、Telnet(远程登陆协议)、SMTP(简单邮件传输协议)、POP3(和SMTP相对,用于接收邮件)、HTTP协议等。

8. UDP协议

UDP用户数据报协议,是面向无链接的通信协议,UDP数据包括目的端口号和源端口号信息,因为通信不须要链接,因此能够实现广播发送。UDP通信时不须要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

UDP与TCP位于同一层,但它无论数据包的顺序、错误或重发。所以,UDP不被应用于那些使用虚电路的面向链接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务须要交换的信息量较小。

每一个UDP报文分UDP报头和UDP数据区两部分。报头由四个16位长(2字节)字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验值。UDP报头由4个域组成,其中每一个域各占用2个字节,具体以下:

(1)源端口号;

(2)目标端口号;

(3)数据报长度;

(4)校验值。

使用UDP协议包括:TFTP(简单文件传输协议)、SNMP(简单网络管理协议)、DNS(域名解析协议)、NFS、BOOTP。

TCP与UDP的区别:TCP是面向链接的,可靠的字节流服务;UDP是面向无链接的,不可靠的数据报服务。

9. DNS协议

DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,能够简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每个域名都对应一个唯一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,经过用户友好的名称查找计算机和服务。

10. NAT协议

NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被普遍应用于各类类型Internet接入方式和各类类型的网络中。缘由很简单,NAT不只完美地解决了lP地址不足的问题,并且还可以有效地避免来自网络外部的***,隐藏并保护网络内部的计算机。

11. DHCP协议

DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工做,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员做为对全部计算机做中央管理的手段。

12. HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为普遍的一种网络协议。全部的WWW文件都必须遵照这个标准。

HTTP协议包括哪些请求?

GET:请求读取由URL所标志的信息。

POST:给服务器添加信息(如注释)。

PUT:在给定的URL下存储一个文档。

DELETE:删除给定的URL所标志的资源。

HTTP中,POST与GET的区别

1)Get是从服务器上获取数据,Post是向服务器传送数据。

2)Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中能够看到。

3)Get传送的数据量小,不能大于2KB;Post传送的数据量较大,通常被默认为不受限制。

4)根据HTTP规范,GET用于信息获取,并且应该是安全的和幂等的。

  1. 所谓 安全的意味着该操做用于获取信息而非修改信息。换句话说,GET请求通常不该产生反作用。就是说,它仅仅是获取资源信息,就像数据库查询同样,不会修改,增长数据,不会影响资源的状态。

  2. 幂等的意味着对同一URL的多个请求应该返回一样的结果。

13. 举一个案例

在浏览器中输入www.baidu.com后执行的所有过程

如今假设若是咱们在客户端(客户端)浏览器中输入http://www.baidu.com,而baidu.com为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操做:

1)客户端浏览器经过DNS解析到www.baidu.com的IP地址220.181.27.48,经过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,而后经过TCP进行封装数据包,输入到网络层。

2)在客户端的传输层,把HTTP会话请求分红报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。而后使用IP层的IP地址查找目的端。

3)客户端的网络层不用关系应用层或者传输层的东西,主要作的是经过查找路由表肯定如何到达服务器,期间可能通过多个路由器,这些都是由路由器来完成的工做,不做过多的描述,无非就是经过查找路由表决定经过那个路径到达服务器。

4)客户端的链路层,包经过链路层发送到路由器,经过邻居协议查找给定IP地址的MAC地址,而后发送ARP请求查找目的地址,若是获得回应后就可使用ARP的请求应答交换的IP数据包如今就能够传输了,而后发送IP数据包到达服务器的地址。

1四、实用基本概念

网络的基本概念

客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器)

服务器:为客户端提供服务、数据、资源的机器

请求:客户端向服务器索取数据点击免费下载海量工程资料

响应:服务器对客户端请求做出反应,通常是返回给客户端数据
史上最详细网络基础知识

URL

Uniform Resource Locator(统一资源定位符)

网络中每个资源都对应惟一的地址——URL

网关

网关实质上是一个网络通向其余网络的IP地址。好比有网络A和网络B,网络A的IP地址范围为"192.168.1.1~192.168.1.254",子网掩码为255.255.255.0;网络B的IP地址范围为"192.168.2.1~192.168.2.254",子网掩码为255.255.255.0。在没有路由器的状况下,两个网络之间是不能进行TCP/IP通讯的,即便是两个网络链接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)断定两个网络中的主机处在不一样的网络里。而要实现这两个网络之间的通讯,则必须经过网关。若是网络A中的主机发现数据包的目标主机不在本地网络中,就把数据包转发给它本身的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此 因此说,只有设置好网关的IP地址,TCP/IP协议才能实现不一样网络之间的相互通讯。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具备路由功能的设备的IP地址,具备路由功能的设备有路由器、启用了路由协议的服务器(实质上至关于一台路由器)、代理服务器(也至关于一台路由器)。

路由器(Windows下叫默认网关,网关就是路由,路由就是网关不要蒙)

若是搞清了什么是网关,默认网关也就好理解了。就好像一个房间能够有多扇门同样,一台主机能够有多个网关。默认网关的意思是一台主机若是找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。如今主机使用的网关,通常指的是默认网关。

下方是百度百科给出的解释
史上最详细网络基础知识

如何设置默认网关 一台电脑的默认网关是不能够随随便便指定的,必须正确地指定,不然一台电脑就会将数据包发给不是网关的电脑,从而没法与其余网络的电脑通讯。默认网关的设定有手动设置和自动设置两种方式。

手动设置:手动设置适用于电脑数量比较少、TCP/IP参数基本不变的状况,好比只有几台到十几台电脑。由于这种方法须要在联入网络的每台电脑上设置"默认网关",很是费劲,一旦由于迁移等缘由致使必须修改默认网关的IP地址,就会给网管带来很大的麻烦,因此不推荐使用。须要特别注意的是:默认网关必须是电脑本身所在的网段中的IP地址,而不能填写其余网段中的IP地址。

自动设置:自动设置就是利用DHCP服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关。这样作的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中全部的电脑均得到了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变更的网络。另一种自动得到网关的办法是经过安装代理服务器软件(如MS Proxy)的客户端程序来自动得到,其原理和方法和DHCP有类似之处。因为篇幅所限,就再也不详述了。

缺省网关

缺省网关(Default Gateway)是计算机网络中一个如何将数据包转发到其余网络中的节点。在一个典型的TCP / IP网络,节点(如服务器、工做站和网络设备)都有一个定义的默认路由设置(指向默认网关)。能够在没有特定路由的状况下,明确出发送数据包的下一跳IP地址。

下方是百度百科给出的解释:
史上最详细网络基础知识

能够看出缺省网关就是默认网关,那么有人会说既然有同样为何又凭空多出来一个缺省网关,个人理解是这样的,应该说默认网关是缺省网关的一个子集。缺省网关有一个定义的默认路由设置(指向默认网关),缺省网关就至关于一个代理服务器暂时管理发送的数据包,当发送到目标主机时先由目标主机的缺省网关接收再找到对应的默认网关,就至关于缺省网关是父类,默认网关是子类~~

DNS服务器

域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工做称为域名解析,域名解析须要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器 。

DHCP服务器

DHCP指的是由服务器控制一段IP地址范围,客户机登陆服务器时就能够自动得到服务器分配的IP地址和子网掩码。提高地址的使用率。

MAC地址

MAC地址就如同咱们×××上的×××号码,具备全球惟一性。(知道这个就好了,不用往下看了)

MAC(Media Access Control,介质访问控制)地址

前24位叫作组织惟一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不一样厂家分配的代码,区分了不一样的厂家。

后24位是由厂家本身分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不一样的。

网卡的物理地址一般是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,一般能够经过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。点击免费下载海量工程资料

也就是说,在网络底层的物理传输过程当中,是经过物理地址来识别主机的,它必定是全球惟一的。好比,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不一样组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将惟一地址赋予以太网卡。

在一个稳定的网络中,IP地址和MAC地址是成对出现的。若是一台计算机要和网络中另外一外计算机通讯,那么要配置这两台计算机的IP地址,MAC地址是网卡出厂时设定的,这样配置的IP地址就和MAC地址造成了一种对应关系。在数据通讯时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操做;MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操做。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成。

服务器

服务器的分类

按照软件开发阶段来分,服务器能够大体分为2种

(1)远程服务器

别名:外 网 服务器、正式服务器

使用阶段:应用上线后使用的服务器

速度:服务器的性能、用户的网速

(2)本地服务器

别名:内网服务器、测试服务器

使用阶段:应用处于开发、测试阶段使用的服务器

使用人群:仅供公司内部的开发人员、测试人员使用

速度:因为是局域网,因此速度飞快,有助于提升开发测试效率

本地服务器的选择

远程服务器就是本地内网服务器开放外网访问而已

若是处于学习、开发阶段,本身搭建一个本地服务器便可

端口号

端口包括物理端口和逻辑端口。物理端口是用于链接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,经过不一样的逻辑端口来区分不一样的服务。

端口有什么用呢?咱们知道,一台拥有IP地址的主机能够提供许多服务,好比Web服务、FTP服务、SMTP服务等,这些服务彻底能够经过1个IP地址来实现。那么,主机是怎样区分不一样的网络服务呢?显然不能只靠IP地址,由于IP 地址与网络服务的关系是一对多的关系。其实是经过"IP地址+端口号"来区 分不一样的服务的。

公认端口(Well-Known Ports)

这类端口也常称之为"经常使用端口"。这类端口的端口号从0到1023,它们紧密绑定于一些特定的服务。一般这些端口的通讯明确代表了某种服务的协议,这种端口是不可再从新定义它的做用对象。80端口实际上老是HTTP通讯所使用的,而23号端口则是Telnet服务专用的。

注册端口(Registered Ports)

端口号从1025到49151。分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是分配好的公认端口的经常使用程序。

动态和/或私有端口(Dynamic and/or Private Ports)

之因此称为动态端口,由于它通常不固定分配某种服务,而是动态分配。

相关文章
相关标签/搜索