TCP/IP路由

文章介绍了TCP/IP协议的基本构成,包括TCP和IP协议的作用,以及TCP/IP四层模型。讨论了网络层的IP协议和IP地址的重要性,同时解释了路由和网关的概念,以及域名系统(DNS)如何将域名映射到IP地址。此外,提到了交换机在网络中的位置和作用。
摘要由CSDN通过智能技术生成

前提了解

因为我们大部分学习的编程算是面向网络的编程,我们是要适当了解一些TCP/IP协议这方面的东西,毕竟天天打交道。
本文从TCP/IP协议、路由、域名这几个方面来简单概述。有时候这些东起并不重要,了解总归是不亏的。

TCP/IP协议介绍

它由两个协议组成:传输控制协议(TCP)和互联网协议(IP)。

TCP协议负责在网络上建立可靠的连接,并确保数据的完整性和可靠性。它将数据分成小的数据包,并在发送和接收之间进行确认,以确保数据的正确传输。

IP协议则负责将数据包从源地址传输到目标地址。它将数据包分成更小的数据包,并将它们路由到目标地址。IP协议还负责处理网络上的错误和故障,并确保数据包能够正确地到达目标地址。

TCP/IP 协议族按照层次由上到下分成 4 层,分别是应用层(Application Layer)、传输层(Transport Layer)网络层(Internet Layer,或称网际层) 数据链路层(Network Interface Layer,或称网络接口层)。TCP/IP 定义了计算机操作系统如何连入互联网,以及数据传输的标准。

在这里插入图片描述

TCP/IP协议是在七层和五层模型两个基础上简化的得来的,因为有些层级的工作内容界限比较模糊,有一些层级就合并到了一个层级。
TCP/IP 是为了解决不同系统的计算机之间的传输通信而提出的一个标准,不同系统的计算机采用了同一种协议后,就能相互通信,从而能够建立网络连接,实现资源共享和网络通信。就像两个不同国家的人,用同一种语言就能相互交流了。

这里就不得不提经典的七层网络模型和五层网络模型,可以说我们今天互联网能有今天,这些模型和协议功不可没。这么做的好处是我们可以明确分工,比如我们现在做的就是应用层上的应用。我们不必考虑传输层到底是怎么建立连接,怎么发数据的,也不用担心我们数据的接收方式,我们只关心我们这一层该做的事情。
我们的ping是发生在网络层的ICMP协议,所以ping协议并不需要端口号
这个是不是有点像我们的编写框架,我们不必考虑底层代码,框架帮我们屏蔽了很多繁琐的操作。

在具体传输一个数据包的实现中会各个层级的协议会不断对数据进行包裹加层,加数据标记。
比如我们的应用程序是一个chrome浏览器。这是能说明我们的应用软件是chrome,而实现数据传输的是http协议,让后我们会讲数据对应http的数据发送给下一层传输层。但是传输层不关注你应用层是个什么东西,也不会关心应用层的具体内容。
传输层也只会对数据进行打包,加上报头,然后继续发给下一层,这个过程类似商家发快递,解包过程类似自己收快递。

在这里插入图片描述
具体的打包过程如上图所示,没到一层加一个报头,而这个报头只是会在解包的对应层才能进行拆解。

  • 具体的报头内容就不展开了,因为就这几个报头有一本书专门讲解。

路由器在那一层?交换机又在那一层?我们的电脑存都有那一层?

互联网协议(IP)

IP

IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做IP地址。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。

IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。

IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人计算机”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

像什么是公有地址和私有地址你们感兴趣自己查一下就行了。

网关

弄懂路由之前,我们可以 Win+R打开窗口输入CMD打开命令行输入ipconfig这条命令,如果不出意外的话,我们至少会得到一张的网卡信息,以我的为例
抛开其他的,我们就关注最重要的两条信息,IPv4地址、默认网关。

在这里插入图片描述

再此之前讲一下子网掩码(Subnet Mask),这是一个用于划分一个IP地址的网络地址与主机地址的掩码,它指定一个IP地址中哪些位用于标识网络地址,哪些位用于标识主机地址。子网掩码和IP地址一起使用,可以将一个网络划分成多个子网,并在子网之间实现路由,从而实现更高效、可靠的网络通信。比如我的网络地址为172.16.16.0 主机地址为0.0.0.129。

而我们有时候会看到另一种格式的IP 172.16.16.129/24,这个格式和上面是相同的,其中24代表的是掩码是二进制的24位,也就是是十进制的255.255.255.0,也就是子网是8位,范围也就是0~255

然后我们相同的网段之间是不需要通过网关这个来发送的,也是就是我们可能只是走了交换机。关于交换机,简单两句说不完,暂时可以理解为相同网段之间的主机交换数据。
像我们班有时候会没有外网,我闲的排除的时候第一次是网关ping的通,也就是我们内网是没问题的,我们照样可以通过内网来上课,而后面两次我ping了网关,但是ping不通,可能后面这两次就是网关炸了,原因可能只是简单的没插好。

**当一个设备需要访问外部网络时,它就需要通过网关进行通信。**而具体怎么才能将我们的数据包从我们的浏览器一步一步到我们想要送去的主机地址,这就需要另一个路由的概念。

路由

路由转发数据过程其实很简单,简单的总结就是:

  • 路由接收数据包→查看目的地址→与路由表进行匹配找到转发端口→转发到该端口
  • 比如我想要讲数据发送到百度中,比如我访问到百度CDN地址为110.242.68.66/24,很明显,我们没办法直接到这个网络的。

具体路由器工作过程:

  • 1)因为地址不在同一个网段,PC1会将数据包发送给本网段的网关路由接口,
  • 2)、R1路由器接收到数据包,查看数据包IP头部中目的地址是110.242.68.66/24,再查询自己路由表,发现到达目标网段需要从G0/0(因为我们总有一个接口要连到外网或者是其他路由器)接口出去,于是R1路由器将数据包发送到G0/0接口,并由此接口将数据发出去到达其他路由器。
  • 3)、R2路由器收到一个来自R1的数据包,同样查看IP首部包中的目的地址是110.242.68.66,再查询自己路由表。发现192.168.2.0/24网段在G0/1接口下,R2路由器将数据包再转发到G0/1接口,并由此接口发送到PC2设备上,到此路由工作过程结束。

还有,其实两个路由器之前通信,比如我们班网段是172.16.16.0/24,想要和网段位172.16.17.0/24这两个网路位主机相互通信,理论上只需要讲双方路由表添加对应的路由地址即可。

域名

域名就是IP地址。
域名和IP地址之间是一种映射关系。因为计算机更擅长处理数字,而不太擅长处理人类可以识别的名称,所以在Internet上通常使用IP地址来标识计算机。但是,对于人类用户来说,使用IP地址进行访问是不太方便的。因此,出现了域名系统(DNS)来解决这个问题。

域名是由一系列用点分隔的字符串组成的人类可读名称,例如 www.example.com。而IP地址则是用于标识计算机的数字地址,例如 192.168.1.1。当用户在浏览器中输入一个域名时,浏览器会向本地DNS服务器发送一个查询请求,询问该域名对应的IP地址是什么。如果本地DNS服务器有缓存了该域名的映射关系,则直接将对应的IP地址返回给浏览器;否则,本地DNS服务器会向根DNS服务器或其他上层DNS服务器发起查询,最终找到该域名对应的IP地址,并将其返回给浏览器。浏览器收到IP地址后,就可以将该地址用于建立与Web服务器的连接,获取对应的网页内容。

因为域名是有优先级的嘛,我们可以强行修改自己的hosts文件让一个ip和域名强行绑定。而且我们也没有想过为什么localhost:8080这个能访问到我们的tomcat服务,hosts这个文件在C:\Windows\System32\drivers\etc 这个目录下,打开会发现我们讲localhost指向了127.0.0.1

答案

路由器在网络层,交换机在数据链路层,而我们一般的主机这五层都有的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值