当前位置: 首页 > news >正文

计算机网络网络层笔记

互联网提供的两种服务

1.虚电路服务

2.数据报服务

需要记住的是现在只用第二种也就是数据报服务

网际协议IP
 

物理层的中断系统:转发器(hub)

链路层的中断系统:交换机

网络层的中断系统:路由器

网络层以上:网关

 

如上图所示,网关是用来访问其他的网段的一个接口,网关的地址一般都是网段地址的第一个地址

ip协议的介绍 

ip协议是TCP/IP协议中的的最最主要的协议之一,当然还有其他的四个协议

ARP:

RARP(现在基本已经弃用)

ICMP:一般是用来报告网络中的故障的

IGMP:
都是下面的IPv4协议栈的



IP地址

层次化IP地址
 

简单来说就是将ip地址划分为网络段主机段,这样当其他的网段向本网段发送地址的时候就不用知道具体的每个主机的IP地址,只需要将数据帧发送到相应的网络段就行了



下面的这张图片是子网掩码的重要部分

下面的是CIDR,就是将IP地址划分为网络段和主机地址段


所以从上面的图片中可以清晰的看到

0-126的是A类地址,这里不用127的原因是127表示的环回地址,用来表示自己127.0.0.1

128-192的是B类地址,196.25.0.28表示当没有人分配地址的时候计算机自己给自己分配地址

192-255的是C类地址
还有一些私网地址

子网掩码是用来对比是否在同一个网段的重要部分,通过子网掩码就可以划分不同的网段

简单的例题

题目是将左边的框框拖到右边来得到相应的网段,关于主机的那两个都很简单,只要做计算就行,

但是主要是看路由器的那两个,注意两个路由器之间是点到点连接的,所以知道/30就行,也就是4个子网(两个不可用,两个给路由用),所以就可以轻易看出169的那个是可行的


超网


这里的例子指的是,如果在一个网段内规定的是C类网络,但是一个网段中有400台主机,那么这个时候就需要给网关设置连个地址,来进行A和B之间的数据传输,但是因为本身就有交换机的存在所以本来就可以通过交换机来交换数据,而不用网关,而超网就解决了这样的一个问题

就是将这个子网掩码向前移动一位

IP地址和MAC地址


首先思考一个问题,就是既然MAC地址是全球都不一样的,那么是不是就可以通过直接用MAC地址来实现数据传播呢
显然不行,因为如果直接用MAC地址传播必须要用广播,这样不仅大大降低了效率,而且不安全,所以要用IP地址
 

下面的这个是A到B传输的过程,IP地址只是标记了最终的目标,而MAC地址决定了下一跳给谁


ARP协议

ARP的主要作用就是将IP地址解析成为MAC地址

就是当我的主机需要发消息的时候,就必须发送一个广播来确定对应IP地址的MAC地址,然后ARP就会将这个地址记下来,方便以后的访问

那么既然有广播就会有网络安全问题,别人可以利用广播的这个漏洞实现抓包


ARP欺骗应用


当主机们想要发送消息到路由的时候,由于ARP协议开始都要广播来确定路由器的MAC地址,所以这个时候骗子主机又可以欺骗这个主机来告诉主机骗子主机的MAC地址就是路由的地址,这样就可以让所有的主机都经过骗子主机,这样不仅仅可以截获信息,还能限制流量

还有一系列的由ARP导致的问题

逆向ARP(RARP)

逆向ARP就是将MAC地址解析成IP地址
 

IP数据报
 

注意IP数据报的首部长度是固定的20字节 

生存时间:TTL,当TTL变成0了就会自动消失

网络畅通的条件

        数据路由  路由器在不同的网段转发数据包

        网络畅通的条件 能去能回

        沿途的路由必须知道目标网络的下一跳给哪个接口,回来的时候也一样,必须都相互知道
 

静态路由

必须管理员手动设置路由器的查询表才能通


动态路由RIP(最早)

周期性广播:每隔30秒告诉邻居自己的信息,并且只留最短的路径信息

以跳数为单位:计算经过了几个路由器,这种设置的坏处就是没有考虑贷带宽
配置Rip的时候只看是哪一类地址,RIP协议不会管你的什么子网划分,它自动给你分配好了根据你的网络类型

路由例子


其中路由能够知道直接相连的地址,所以

(pc0)>>ping 172.16.0.1

但是

(pc0)>>ping 172.16.0.2

不通
因为路由器2和PC0不是直连的,所以不知道怎么走,这个时候就要手动添加路由表得到走的方向

计算机的网关就是默认路由

就是当计算机不知道你的数据要发送到哪里的时候就会直接发送给网关

计算机上面最好只设置一个网关,不然会因为负载均衡导致一系列的有规律的丢包现象

负载均衡


配置路由表让Router3出去的时候经过Router1到Router2
配置Router2的路由表让到Router3的路由表经过Router4
就可以实现负载均衡

最长前缀匹配

        

ICMP协议

作用:探测网络有没有故障



询问报文:就是数据报发出去的时候用到的

差错报告报文:就是返回信息的时候得到的消息
|
|--------------改变路由(重定向):
如果PC1设置的网关是Router2,那么要发送给Router1的话就只能通过Router2发送,这样就会导致重复发送,那么重定向就会自动选择最优路径

结构


 

OSPF协议

和RIP都是动态路由协议

相比于RIP,OSPF不是仅仅传递给邻居,而是传递给全部配置了OSPF配置的路由

度量值:带宽   而RIP是跳数

支持多区域

试探式计算,用迪杰斯特拉算法

触发式更新,就是没有事情的时候不更细,当路由器坏掉的时候或者更新的时候自己会更新
那如果由的路由故障了怎么办呢,就是通过hello来互相确认建在

三个表

邻居表 hello

链路状态表

计算路由表

    仅仅支持二级结构,不支持三级结构



外部网关BGP协议


是不同区域之间的最段路径的选择


VPN的功能

有一些保留的私网地址有:

10.----

172.6-172.31

192.168(我们学校用的)


VPN的原理就是如图所示
当我们访问RAS(图中)RAS服务器的时候,服务器会分配给我们一个私网地址,10.0.0.8

接着,加入我们要访问私网内部的地址,肯定要表明本身的IP地址和目的的IP地址

但是对于私网地址我们是不可能可以访问到的,所以我们要对数据进行封装,让本身的数据发送到RAS服务器,让服务器转发我们的数据报

当服务器接受到数据的时候,就将外面一层的IP地址数据去除

这就是为什么我们每次使用校园网的时候都要登录,就是要接入到这个服务器,不然所有人都可以直接连接了

我们平时使用的VPN翻墙也是这个原理,就是在外网搭建了一个服务器,然后我们通过这个服务器来向国外发送和接受数据,所以我们就能够访问外网
VPN中的全局设置就是让我们的所有的流量都经过刚刚VPN连接的服务器,这就是为什么我们连接开着VPN还能访问国内的网站的原因

最后还需要记住的是:使用VPN拨号时候相当于将自己的计算机搬到了那个服务器所在的内部地址



上图是隧道技术,可以让两个部门的服务器相通(应该可以这样解释吧),然后这个样就可以在本地直接访问别的部门的电脑

NAT和 PAT技术


访问的方式是:10.21的地址在经过服务器的时候变成111
然后将数据包的源地址改成111,发送给198,198发送回来的时候就直接将目标地址改成111,然后服务器再将111修改成私网的地址10.21,这样就可以有效传输地址了
 

新的问题

服务器是通过端口来返回数据的,现在有一个问题就是如果两台计算机发出去的端口都是一样的话,那么服务器应该发给哪台计算机呢
 

这里服务器的解决方法就是将端口号也进行一个打包,可能用一个哈希之类的,比如两个1234分别封装成4000和4001,这样就可以实现同一端口的访问那么这个配置端口地址转化的技术就叫PAT

端口号所属的层级:

  1. 端口号属于传输层(Transport Layer)
  • 在OSI七层模型中是第4层
  • 在TCP/IP四层模型中也是第4层
  • 主要的传输层协议是TCP和UDP

端口号的作用:

  1. 进程识别
  • 用于区分同一台计算机上的不同网络应用程序
  • 实现数据包准确投递到指定的应用程序
  • 允许一台计算机同时运行多个网络应用
  1. 端口号范围
  • 总范围:0-65535(16位数字)
  • 知名端口:0-1023(需要管理员权限)
    • HTTP:80
    • HTTPS:443
    • FTP:21
    • SSH:22
    • DNS:53
  • 注册端口:1024-49151
  • 动态端口:49152-65535

举个生活中的例子: 想象一栋大楼(计算机):

  • 大楼的地址就像IP地址
  • 房间号就像端口号
  • 不同的租户(应用程序)住在不同的房间(端口)
  • 快递员(数据包)需要同时知道大楼地址(IP)和房间号(端口)才能准确送达

数据封装过程中的端口号:

应用层: HTTP数据 传输层: [源端口|目标端口|TCP头部|HTTP数据] 网络层: [IP头部|[源端口|目标端口|TCP头部|HTTP数据]] 数据链路层:[MAC头部|[IP头部|[源端口|目标端口|TCP头部|HTTP数据]]|MAC尾部]

常见应用示例:

  1. 网页浏览
  • 浏览器发起请求时会随机分配一个源端口(如54321)
  • 访问网站使用目标端口80(HTTP)或443(HTTPS)
  1. 在线游戏
  • 游戏客户端使用特定的端口与服务器通信
  • 服务器通过端口号区分不同的玩家连接
  1. 远程控制
  • SSH服务使用22端口
  • 远程桌面协议(RDP)使用3389端口

使用端口的注意事项:

  1. 安全性
  • 防火墙可以基于端口号控制访问
  • 未使用的端口应该关闭以减少攻击面
  • 重要服务建议修改默认端口
  1. 端口冲突
  • 同一个端口同一时间只能被一个程序使用
  • 启动程序时可能遇到端口被占用的错误
  • 需要更改配置或终止占用进程
  1. NAT穿透
  • 在使用NAT时,可能需要进行端口映射
  • 某些P2P应用可能需要特殊的穿透技术

NAT端口映射

 

NAT映射技术是将服务器的端口映射到服务器内的计算机的端口,这样就可以通过访问公网地址,来访问私网地址 

 

http://www.lryc.cn/news/478836.html

相关文章:

  • 长亭那个检测能力超强的 WAF,出免费版啦
  • rabbitMQ RabbitTemplate 发送消息
  • 本系列是《10万字208道Java经典面试题总结(附答案)》的2024修订版。
  • C语言文件基础概念的理解(一)
  • C++ lambda 匿名函数
  • 基于python的简单web服务器示例
  • 02- 模块化编程-006 ADC0808数码显示对比
  • 又发现了Mac妙控鼠标的新使用方法
  • Webserver(4.6)poll和epoll
  • LVGL 与 QT
  • 如何选择最适合的项目管理软件?2024年大厂首选7款工具盘点
  • 【数据结构】选择排序——选择排序 和 堆排序
  • P11229 [CSP-J 2024] 小木棍
  • 【学习笔记】SAP ABAP——OPEN SQL(一)【SELECT语句】
  • SQL注入(1)
  • 在AI时代,如何解决人的工作岗位被AI替代的问题?
  • Linux命令--paste
  • 数据结构模拟题[九]
  • 2024年10月国产数据库大事记-墨天轮
  • Andon 业务流程业务开发陷阱----从真实用户与管理者视角逻辑差异
  • Python闭包|你应该知道的常见用例(上)
  • printf影响单片机中断速度
  • JavaScript 23种经典设计模式简介
  • 位运算相关算法
  • 解决:无法在此设备上激活Windows因为无法连接到你的组织的激活服务器
  • 【Spring】——SpringBoot项目创建
  • 聊一聊:ChatGPT搜索引擎会取代谷歌和百度吗?
  • 分布式中常见的问题及其解决办法
  • HTML 基础标签——多媒体标签<img>、<object> 与 <embed>
  • word mathml 创建粗体字母快捷键