互联网的工作原理

基本概念

IP

  • IP地址
    • 又译为网际协议地址、互联网协议地址。当设备连接网络,设备将被分配一个IP地址,用作标识。通过IP地址,设备间可以互相通讯,如果没有IP地址,我们将无法知道哪个设备是发送方,无法知道哪个是接收方。IP地址有两个主要功能:标识设备网络寻址,相当于现实中收发快递的地址。
    • 每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码;一个B类IP地址是指前两段为网络号码;一个C类IP地址是指前三段为网络号码;D、E类为特殊地址。
    • IP寻址从逻辑上来讲是两步的。第一步,从IP中找到所属的网络,好比是去找这个人是哪个小区的;第二步,再从IP 中找到主机在这个网络中的位置,好比是在小区里面找到这个人。
  • IP协议
    • IP协议归属于TCP/IP协议四层结构的第三层——网络层,IP协议制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址
  • 子网掩码
    • 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络
    • 子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。引入子网掩码(NetMask)是从逻辑上把一个大网络划分成一些小网络。子网掩码是由一系列的1和0构成,通过将其同IP地址做“与”运算来指出一个IP地址的网络号是什么。对于传统IP地址分类来说,A类地址的子网掩码是255.0.0.0;B类地址的子网掩码是255.255.0.0;C类地址的子网掩码是255.255.255.0。例如,如果要将一个B类网络166.111.0.0划分为多个C类子网来用的话,只要将其子网掩码设置为255.255.255.0即可,这样166.111.1.1和166.111.2.1就分属于不同的网络了。像这样,通过较长的子网掩码将一个网络划分为多个网络的方法就叫做划分子网(Subnetting)。

MAC地址

  • MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。
  • MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的
  • 信息传递时候,需要知道的其实是两个地址:1)终点地址(Final destination address)2)下一级的地址(Next hop address)。IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一级的地址,每跳过一次路由器都会改变。它起到了记录下一跳的信息的作用

DNS

  • 域名解析系统是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。就像电话本,报上名字就可以查到电话号等信息。

防火墙

  • 防火墙技术的核心是在不安全网络环境中去构建相对安全的子网环境,以保证内部网络安全。
  • 可以将其想成为一个阻止输入、允许输出的开关,也就是说防火墙技术可阻止不良信息进入内网,或者防止敏感信息从内网泄漏。防火墙技术允许有访问权限的资源通过,拒绝其他没有权限的通信数据,在调用过滤器时,会被调到内核当中实现执行,而在服务停止时,会从内核中将过滤规则消除,内核当中所有分组过滤功能运行均在堆栈深层中
  • 同时,还有代理服务型防火墙,其特点是将内网与外网之间的直接通信进行彻底隔离,内网对外网的访问转变为代理防火墙对外网的访问,之后再转发给内网。代理服务器在发现被攻击迹象的时候,会保留攻击痕迹,及时向网络管理员进行示警。

通信过程

TCP/IP传输协议

  • TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
  • TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次。
  • TCP/IP传输协议是严格来说是一个由应用层、传输层、网络层和数据链路层组成的四层的体系结构

通信过程

  • 在网络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机。当源主机发出数据时,数据在源主机中从上层向下层传送。源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就成了报文流,向下传给传输层。传输层将收到的数据单元加上本层的控制信息,形成报文段、数据报,再交给网际层。网际层加上本层的控制信息,形成IP数据报,传给网络接口层。网络接口层将网际层交下来的IP数据报组装成帧,并以比特流的形式传给网络硬件(即物理层),数据就离开源主机。

传输协议的四层结构

应用层

  • 应用层主要工作就是定义数据格式并按照对应的格式解读数据
  • 数据从一个主机上的应用程序传输到另一台主机的应用程序时,传过来的数据是字节流,不能很好的被程序识别,操作性差。所以需要先对字节流进行相应的操作,将其转换为方便传输的数据。因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。

传输层

  • 传输层主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性
  • 实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份
  • UDP协议
    • UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。
    • UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。
    • UDP适用于流协议,即用户不在乎数据是否是重发的,只是希望数据流能足够连续且流畅
  • TCP协议
    • TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。
    • 三次握手(为了防止服务器端开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段突然又传送到了服务端产生错误
    1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
    2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
    3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态

在这里插入图片描述
在这里插入图片描述

  • 四次挥手(TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放)
  1. 标记位为FIN,表示“请求释放连接“;序号为Seq=U;随后客户端进入FIN-WAIT-1阶段,即半关闭阶段。并且停止在客户端到服务器端方向上发送数据,但是客户端仍然能接收从服务器端传输过来的数据。(注意:这里不发送的是正常连接时传输的数据(非确认报文),而不是一切数据,所以客户端仍然能发送ACK确认报文)
  2. 服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,随后服务器端结束ESTABLISHED阶段,进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文,其中:标记位为ACK,表示“接收到客户端发送的释放连接的请求”;序号为Seq=V;确认号为Ack=U+1,表示是在收到客户端报文的基础上,将其序号Seq值加1作为本段报文确认号Ack的值。随后服务器端开始准备释放服务器端到客户端方向上的连接。客户端收到从服务器端发出的TCP报文之后,确认了服务器收到了客户端发出的释放连接请求,随后客户端结束FIN-WAIT-1阶段,进入FIN-WAIT-2阶段
  3. 服务器端自从发出ACK确认报文之后,经过CLOSED-WAIT阶段,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文,其中:标记位为FIN,ACK,表示“已经准备好释放连接了”。注意:这里的ACK并不是确认收到服务器端报文的确认报文;序号为Seq=W;确认号为Ack=U+1;表示是在收到客户端报文的基础上,将其序号Seq值加1作为本段报文确认号Ack的值。随后服务器端结束CLOSE-WAIT阶段,进入LAST-ACK阶段。并且停止在服务器端到客户端的方向上发送数据,但是服务器端仍然能够接收从客户端传输过来的数据。
  4. 客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文,其中:标记位为ACK,表示“接收到服务器准备好释放连接的信号”;序号为Seq=U+1;表示是在收到了服务器端报文的基础上,将其确认号Ack值作为本段报文序号的值;确认号为Ack=W+1;表示是在收到了服务器端报文的基础上,将其序号Seq值作为本段报文确认号的值。随后客户端开始在TIME-WAIT阶段等待2MSL。服务器端收到从客户端发出的TCP报文之后结束LAST-ACK阶段,进入CLOSED阶段。由此正式确认关闭服务器端到客户端方向上的连接。客户端等待完2MSL之后,结束TIME-WAIT阶段,进入CLOSED阶段,由此完成“四次挥手”。
    在这里插入图片描述

在这里插入图片描述

  • TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

网路层

  • 网络层的主要工作是定义网络地址区分网段子网内MAC寻址对于不同子网的数据包进行路由
  • IP协议
    • 网络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。
  • ARP协议
    • 即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址
    • ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源
  • 路由协议
    • 首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方
    • 完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。
      通过路由器连接的计算机网络
    • 此外,可以通过调制解调器(modem)将电话等基础设施接入网络。最后将路由器接入互联网服务提供商(ISP),ISP是一家可以管理一些特殊的路由器的公司,这些特殊的路由器连接其他ISP的路由器,你的网络消息可以被ISP捕获并发送到相应的网络。互联网就是由这些所有的网络设施所组成。

网络接口层(=物理层+数据链路层(in OSI))

  • 网络接口层是TCP/IP与各种局域网(LAN,local Area Network)或广域网(WAN)的接口
  • 链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方
  • 以太网协议规定,接入网络的设备都必须安装网络适配器,即网卡,数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址。网络接口层在发送端将上层的IP数据报封装成帧后发送到网络上,数据帧通过网络到达接收端时,该结点的网络接口层对数据帧拆封,并检查帧中包含的MAC地址,有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同则上传到网络层,如果不同,就丢弃这个包

参考资料

https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
路由器是一种用于将数据包从一个网络转发到另一个网络的设备。它是计算机网络中重要的组成部分,可以使多个设备连接到互联网或者局域网中。路由器工作原理可以总结为以下几个步骤: 1. 数据包接收:路由器通过网络端口接收进入的数据包。这些数据包可以是来自电脑、手机、摄像头等设备的信息。 2. 数据包解封:路由器接收到数据包后,会解除数据包的封装。数据包会包含源IP地址和目标IP地址,以及其他网络信息。 3. 数据包查找:路由器根据目标IP地址,在路由表中查找与之对应的最佳路径。路由表存储了不同网络的IP地址范围和对应的出口接口信息。 4. 数据包转发:通过查找到的最佳路径,路由器将数据包发送到下一个网络节点或者目标设备。数据包会经过多个路由器的转发,直到到达目标设备。 5. 数据包封装:在每次路由器传输数据包时,会重新封装数据包,添加新的网络信息。这个过程称为数据包的封装。 6. 数据包发送:路由器将封装好的数据包发送到下一个网络节点或者目标设备。这个过程通过使用不同的路由协议和网络技术来实现。 通过不断重复上述步骤,路由器可以将数据从一个网络转发到另一个网络,使得数据能够在不同的设备和网络之间进行交流和传输。路由器工作原理是实现网络连接和通信的关键,为各种应用和服务的使用提供了基础设施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值