今天请仔细阅读这篇文章,以便对网络知识的基本原理有一个初步的了解。本期,我们一起来学习一下网络技术。
我们从以下12个目录中了解当今网络技术的基本原理:
1. 网络层次划分2. OSI七层网络模型3. IP地址4. 子网掩码及网络划分5. ARP/RARP协议6. 路由选择协议7. TCP/IP协议8. UDP协议 9. DNS协议10. NAT协议11. DHCP协议12. HTTP协议13. 一个举例计算机网络学习的核心内容是网络协议的学习。网络协议是为计算机网络中的数据交换而建立的一组规则、标准或惯例。由于不同用户的数据终端可能采用不同的字符集,因此需要相互通信,这必须按照一定的标准进行。生动的比喻是我们的语言。我们是一个幅员辽阔的国家,人口众多,地方语言丰富,方言之间差距巨大。A区的方言可能是B区的人无法接受的,所以我们要为全国的人名交流建立一个语言标准,这是我们普通话的作用。同样,放眼世界,我们与外国朋友交流的标准语言是英语,所以我们必须努力学习英语。
计算机网络协议和我们的语言一样多样。ARPA公司从1977年到1979年推出了一个叫ARPANET的网络协议,广受欢迎,主要原因是推出了众所周知的TCP/IP标准网络协议。目前,TCP/IP协议已经成为互联网中的“通用语言”。下图是不同计算机组之间使用TCP/IP进行通信的示意图。
7)甲、乙、丙类专用地址
私有地址也叫私有地址,不会全局使用,只有局部意义。
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位二进制地址。每一位对应一位,表示该位是网络位,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,表示主机地址将占用8位以上;
二进制是十位数,n = 10
(3)使用255.255.255.255将此类IP地址的所有主机地址位设置为1,然后从后向前将所有N位设置为0,这就是子网掩码值。
将该B类地址的子网掩码255.255.0.0的所有主机地址设置为1,得到255.255.255.255,然后将最后10位从后往前设置为0,即1111111111100.00000,即255。这是B类IP地址168.195.0.0的子网掩码,该地址将分为700台主机。
3)还有一个问题类型,要求您根据每个网络中的主机数量来规划子网地址和计算子网掩码。这个也可以按照上面的原理来计算。
例如,如果一个子网有10台主机,则该子网所需的IP地址为:
10+1+1+1=13
注意:添加的第一个是指该网络连接所需的网关地址,接下来的两个分别是指网络地址和广播地址。
因为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)IP根据主机a上路由表的内容,确定访问主机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协议相反,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协议:底层为Berman Ford算法,路由选择的度量为跳数,最大跳数为15跳,大于15跳则丢弃数据包。
OSPF协议:开放最短路径优先,开放最短路径优先,底层是链路状态路由协议Dijkstra算法,选择路由的指标是带宽和延迟。
回到顶端
Tcp/IP协议
TCP/IP协议是互联网最基本的协议,是互联网的基础,由网络层的IP协议和传输层的TCP协议组成。一般来说,TCP负责发现传输问题,出现问题时发出信号,请求重传,直到所有数据安全正确地传输到目的地。IP为互联网上的每个联网设备指定一个地址。
IP层接收下层(以太网设备驱动等网络接口层)发送的数据包,并将数据包发送到更高层——TCP或UDP层;相反,IP层也将从TCP或UDP层接收的数据包传输到下层。IP包不可靠,因为IP不做任何事情来确认包是按顺序发送的还是损坏的。IP数据包包含发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP是一种面向连接的通信协议,它通过三次握手建立连接,并在通信完成时删除连接。TCP只能用于端到端通信,因为它是面向连接的。TCP提供可靠的数据流服务,采用“肯定应答带重传”技术实现传输的可靠性。TCP还使用一种称为“滑动窗口”的方式进行流量控制。所谓的窗口,其实代表了接收方限制发送方发送速度的能力。
注:seq:“sequence”序号;Ack:“确认”确认号;SYN:“同步”请求同步标志;;确认:“确认”确认标志;FIN:“终于”结束标志。
TCP连接建立过程:首先,客户端发送连接请求消息,服务器端接受连接后回复确认消息,并为此连接分配资源。在接收到确认消息后,客户端也向服务器部分发送确认消息并分配资源,从而建立TCP连接。
TCP连接断开过程:假设客户端发起连接断开请求,即发送FIN消息。当服务器收到FIN消息时,表示“我在客户端没有数据可以发送给你”,但如果你还有数据可以发送,就不用急着关闭Socket,可以继续发送数据。所以你先发送一个确认,“告诉客户我已经收到你的请求,但是我还没有准备好,请继续等待我的消息”。此时,客户端进入FIN_WAIT状态,并继续等待来自服务器的FIN消息。当服务器端确定数据已经发送后,向客户端发送FIN消息,“告诉客户端,嗯,我准备在发送数据后关闭连接”。客户端收到FIN消息后“知道可以关闭连接,但他还是不相信网络,怕服务器端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果服务器端没有收到ACK,可以重传。”当服务器收到确认时,“它将知道连接可以断开”。如果客户端在等待2MSL后没有收到回复,则证明服务器已经正常关闭。我的客户也可以关闭连接。好了,TCP连接就这样关闭了!
为什么要波三次?
在只有两次握手的情况下,假设客户端想要与服务器建立连接,但是由于连接请求的数据报丢失,客户端不得不再次发送;此时,服务器只接收一个连接请求,因此连接可以正常建立。然而,有时客户端重新发送请求不是因为数据报丢失,而是因为由于大量的网络并发性,数据传输过程在某个节点被阻塞。在这种情况下,服务器端将一个接一个地接收两个请求,并继续等待两个客户端请求向他发送数据...问题是,客户端实际上只有一个请求,而服务器端有两个响应。在极端情况下,客户端可能会多次重新发送请求的数据,导致服务器端最终建立n个以上的等待响应,从而造成巨大的资源浪费!所以,“三次握手”是必须的!
为什么要波四次?
想象一下,如果您现在是一个客户机,并且想要断开与服务器的所有连接。第一步是停止向服务器发送数据,等待服务器的回复。但是事情还没有结束。虽然你自己没有给服务器发送数据,但是因为你之前已经建立了平等的连接,此时他也主动给你发送数据;因此,服务器必须停止主动向您发送数据,并等待您的确认。其实说白了就是保证双方一个合同的完整执行!
使用TCP协议:FTP(文件传输协议)、Telnet(远程登录协议)、SMTP(简单邮件传输协议)、POP3(与SMTP相对,用于接收邮件)、HTTP协议等。
回到顶端
Udp协议。
UDP用户数据报协议是一种无连接通信协议。UDP数据包括目的端口号和源端口号信息。因为通信不需要连接,所以可以实现广播传输。UDP通信不需要接收方确认,这是一种不可靠的传输,可能会造成丢包。在实际应用中,要求程序员进行编程和验证。
UDP和TCP在同一层,但它不关心包的顺序、错误或重传。因此,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是DomainNameSystem的缩写,用来命名域层次结构中组织的计算机和网络服务,可以简单理解为将URL转换为IP地址。域名由一串用点分隔的单词或缩写组成。每个域名对应一个唯一的IP地址。互联网上的域名和IP地址是一一对应的。DNS是域名解析的服务器。DNS命名用于TCP/IP网络,如互联网,通过用户友好的名称来查找计算机和服务。
回到顶端
10.网络地址转换协议
NAT(网络地址转换)属于接入广域网(WAN)的技术,是将私有(保留)地址转换为合法IP地址的转换技术。它广泛应用于各种类型的互联网接入方式和各种类型的网络。原因很简单。NAT不仅完美地解决了lP地址不足的问题,还有效地避免了来自网络外部的攻击,隐藏和保护了网络内部的计算机。
回到顶端
11.DHCP协议
DHCP动态主机配置协议(DHCP Dynamic Host Configuration Protocol)是一种局域网协议,它使用UDP协议,主要有两个目的:自动为内部网络或网络服务提供商分配IP地址,并提供给用户或内部网络管理员作为集中管理所有计算机的手段。
回到顶端
12.HTTP协议
超文本传输协议是互联网上使用最广泛的网络协议之一。所有的WWW文档都必须符合这个标准。
HTTP协议包括哪些请求?
获取:请求读取由网址标记的信息。
开机自检:向服务器添加信息(如注释)。
将文档存储在给定的网址下。
删除:删除由给定网址标记的资源。
HTTP中POST和GET的区别
1)Get是从服务器获取数据,Post是向服务器传输数据。
2)Get是将参数数据队列添加到提交表单的Action属性所指向的URL中,该值与表单中的每个字段一一对应,在URL中可以看到。
3)Get传输的数据量小,不能大于2kb;Post传输的数据量比较大,默认一般是无限制的。
4)按照HTTP规范,GET用于信息获取,应该是安全的,幂等的。
一、安全是指操作是用来获取信息而不是修改信息。换句话说,GET请求一般不应该有副作用。也就是说,它只获取资源信息,就像数据库查询一样,不会修改或增加数据,也不会影响资源的状态。
二.幂等意味着对同一个URL的多个请求应该返回相同的结果。
回到顶端
13.一个例子
在浏览器中输入www.baidu.com后执行的所有过程
现在,假设我们在客户端浏览器中输入http://www.baidu.com,Baidu.com是要访问的服务器,下面将详细分析客户端为访问服务器而执行的一系列协议操作:
1)客户端浏览器通过DNS解析www.baidu.com 220.181.27.48的IP地址,并通过该IP地址找到从客户端到服务器的路径。客户端浏览器向220.161.27.48发起一个HTTP会话,然后通过TCP封装数据包并将其输入网络层。
2)在客户端的传输层,将HTTP会话请求划分成消息段,添加源端口和目的端口。比如服务器使用80端口监听客户端的请求,客户端会随机选择一个5000之类的端口与服务器交换,服务器会将相应的请求返回给客户端的5000端口。然后使用IP层的IP地址找到目的地。
3)客户端的网络层与应用层或传输层没有任何关系,主要是通过查找路由表来决定如何到达服务器,可能会经过多个路由器。所有这些任务都是由路由器完成的,没有过多的描述,只是通过查找路由表来决定到达服务器的路径。
4)在客户端的链路层,数据包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址。如果得到响应,可以使用ARP请求来应答交换的IP数据包,然后将IP数据包发送到服务器的地址。
1.《计算机网络技术 计算机网络技术入门知识,基础知识最重要》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《计算机网络技术 计算机网络技术入门知识,基础知识最重要》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1421642.html