网络原理-TCP/IP(7)

本文涉及的产品
.cn 域名,1个 12个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 网络原理-TCP/IP(7)

网络层

路由选择

这里就需要解决一个数据包,如何从网络中的一个地址,传输到另一个地址.

路由的过程,就是一跳一跳"问路的过程".(摸着石头过河).

所谓"一跳"就是数据链路层中的一个区间.具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间.

IP数据报传输的过程也和问路一样.

数据报中包含目的IP的字段(问路的目标),每个路由器对于网络环境(和它相邻的设备有所了解),此时就根据它的了解,告诉我们下一步应该往哪走.

当IP数据包,到达路由器时,路由器会先查看目的IP;

路由器决定这个数据包是能直接发送给目标主机,还是需要发送给下一个路由器;

依次反复,一直达到目标IP地址;

那么如何判定当前这个数据包该发送到哪里呢?这就依靠每个结点内部维护一个路由表;

路由表可以使用route命令查看

如果目的IP命中了路由表,直接转发即可;

路由表中的最后一行,主要由下一跳地址(通常是上层路由器)和发送接口(从路由器哪个口出)两部分组成,当目的地址与路由表中其他行都不匹配时,就按缺省路由条目规定的接口 发送到下一跳地址.

假设某主机上的网络接口和路由表如下:

这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络接口连到192.168.56.0/24网络;

路由表的Destination是网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是是发送接口,Flags中U标志标识此条目有效(可以禁用某些条目),G标志标识此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经由路由器转发

数据链路层

认识以太网

"以太网"不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容.例如:规定网络拓扑结构,访问控制方式,传输速率等;

例如以太网的网线必须使用双绞线;传输速率有10M,100M,1000M等;

以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

以太网帧格式

如下所示:

源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;(MAC地址表示的范围比IPv4大很多).

帧协议类型字段有三种值,分别丢应IP,ARP,RARP;

帧末尾有CRC校验码

认识MAC地址

MAC地址用来识别数据链路层中相连的结点;

一般开发中很少使用MAC地址,而IP地址用的很多;

长度为48位,及6个字节,一般用16进制数字加上冒号或"-"的形式来表示,eg.08-00-27-03-fb-19

在网卡出厂时就确定了,不能修改.mac地址通常是唯一的(虚拟机中mac地址不是真实的mac地址,可能会冲突; 也有些网卡支持用户配置的mac地址).

有些程序使用mac地址作为机器的身份标识,比如外挂.

对比理解MAC地址和IP地址

IP地址描述的是路径总体的起点和终点(终极目标),也就是全局转发(从起点到终点,转发过程:查询路由表,通过IP地址).

MAC地址描述的是路途上每一个区间的起点和终点(阶段目标),也就是局部转发(两个相邻设备转发,一个电脑连接一个路由器->相邻).  经过一次转发,路由器/交换机就会把上述数据包进行分用和重新封装.  帧头存放:源mac,目的mac,每次经过一个路由器/交换机就会发生改变.

认识MTU

MTU相当于发快递时对包裹尺寸的限制.这个限制是不同的数据链路层对应的物理层,所产生的限制.

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;(因为ARP是46字节,而1500字节是硬件限制)

最大值1500称为以太网的最大传输单元(MTU),不同网络类型有不同的MTU;

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片;

不同的数据链路层标准的MTU是不同的;

之前讲到的IP数据包分包问题正是因为数据链路层MTU的限制,而不是因为自身达到了64kb的限制.

ARP协议

ARP和RARP可以认为是两个横跨了网络层和数据链路层的协议.

ARP效果就是能够让路由器/交换机建立一个内部的结构.通过IP地址映射出MAC地址(利用转发表->描述了一个设备和哪些设备之间是连接着的).(常用)

RARP效果是让路由器和交换机也建立一个内部的结构,通过MAC地址映射出IP地址. (不常用)

ARP协议的作用

ARP协议建立了主机IP地址和MAC地址的映射关系.

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;

数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;

因此在通讯前必须获得目的主机的硬件地址.

ARP协议工作流程

重要应用层协议DNS(Domain Name System)

DNS是一整套从域名映射到IP的系统(域名解析系统),(eg.www.google.com这种的就是域名).

DNS背景

TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序.但是IP地址不方便记忆.

于是人们发明了一个叫做主机名(域名)的东西,是一个字符串,并且使用hosts文件描述主机名和IP地址的关系.

随着互联网的发展,域名和服务器都越来越多了, 此时要维护hosts文件就非常麻烦了.

就有大佬干脆搭建了一组服务器,来提供域名解析服务(hosts内容放到服务器里了),你某个主机想访问某个域名,就先查询一下域名解析服务器(DNS服务器),查到的结果,就是域名对应的IP,拿着IP进行访问即可.

DNS是应用层协议

DNS底层使用UDP进行解析

浏览器会缓存DNS结果

NAT技术

之前提到过,IPv4协议中,IP地址数量不充足的问题.

NAT技术是当前解决IP地址不够用的主要手段,也是路由器的一个重要功能;

NAT能够将私有IP对外通信时转为全局IP.也就是一种将私有IP和全局IP相互转化的技术方法;

很多学校,家庭,公司内部采用每个终端设置私有IP,而路由器或有必要的服务器上设置全局IP;

全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的.

NAT IP转换过程

NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;

NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;

在NAT路由器内部,有一张自动生成的,用于地址转换的表;

当10.0.0.10第一次向163.221.120.9发送数据时就会生成表中的映射关系;

NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了.使用IP+port来建立这个关联关系

这种关联关系也是由NAT路由器自动维护的.例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接时,就会删除这个表项;

NAT技术的优缺点

由于NAT依赖这个转换表,所以有诸多限制:

无法从NAT外部向内部服务器建立连接;

转换表的生成和销毁都需要额外开销;

但是NAT有个最大的优点:不需要更新硬件设备,只更新软件,就可以解决IP地址不够用的问题.

相关文章
|
2月前
|
网络协议 安全 5G
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
71 3
|
22天前
|
网络协议
网络通信的基石:TCP/IP协议栈的层次结构解析
在现代网络通信中,TCP/IP协议栈是构建互联网的基础。它定义了数据如何在网络中传输,以及如何确保数据的完整性和可靠性。本文将深入探讨TCP/IP协议栈的层次结构,揭示每一层的功能和重要性。
53 5
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
79 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
50 13
|
1月前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
66 3
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
216 1
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!