TCP/IP basic
创始人
2025-05-28 05:22:51
0

OSI 7 Layer Model
TCP/IP Layer Model

DHCP和自动配置
firewall and NAT
链路层可靠性保证




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


OSI 7 Layer Model

在这里插入图片描述

车载以太网7层

在这里插入图片描述

第一层物理层physical:
通常有一个PHY 芯片(PHY chip)来实现

以100BASE-T为例,PHY结构:
在这里插入图片描述
PHY内部功能结构图:
在这里插入图片描述
• PCS: 信号编码是将时钟信息和数据信息编码为一个可以在介质系统中传递的自同步信号流的方法。
• 信号编码主要用于解决同步性的问题(发送数据持续没有信号跃迁就会失去同步)
• PMA: 将信号转换为适于长距离发送的信号

在这里插入图片描述
在这里插入图片描述
汽车上用到了哪几种以太网
• 车内连接目前用到了100BASE-T1, OBD使用了100BASE-TX
不远的将来
• 100BASE-T1可能被1000BASE-T1替代
• 100BASE-TX可能被1000BASE-T
可能的未来
• 10BASE-T1S
• 2.5G/5G/10G 车载以太
在这里插入图片描述
在这里插入图片描述

物理层芯片结构拓扑
在这里插入图片描述

PHY的两种应用:

  • 端接点
  • 网关switch
  1. 端接点拓扑
    在这里插入图片描述
    • 目前常用形式
    • 比如TX297和I.MX6都集成MAC功能
    • 常用于端节点

  2. 网关拓扑
    在这里插入图片描述




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


TCP/IP Layer Model

在这里插入图片描述

数据包在不同层术语
在这里插入图片描述
在这里插入图片描述
数据传输网络拓扑图
在这里插入图片描述

switch、router
在这里插入图片描述

可靠性传输(tcp)、不可靠传输(udp)
在这里插入图片描述

Reliable Data Transfer

  1. No data corruption (bit-flip)
  2. No packet loss
  3. Deliver in correct sequence

tcp三握四挥流程

1. 三握

TCP’s way of Connection Establishment

  • Syn Flag – Request to establish an connection
  • Ack Flag – Agree to establish the connection
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    TCP way of doing corruption detection:
    ✓ Specify a Checksum field in the TCP header
    ✓ Performs 16-bit wrap around add of the full
    TCP segment and pseudo-header
    ✓ Sender fills in the checksum, and receiver
    verifies it
    在这里插入图片描述

2. 数据传输
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 四挥




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


DHCP和自动配置

一个系统能够在Internet上运行并提供常见服务(如web和e-mail)的基本要素有:

  • IP地址
  • 子网掩码
  • DNS服务器
  • 路由器的IP地址

若使用移动IP,系统还需知道如何找到一个家乡代理HA。
在Internet中对于以上基本要素的获得:

  • 客户端中用于建立基本要素的程序和协议:DHCP【Dynamic Host Config Protocol】动态主机配置协议以及IPv4和IPv6中的无状态地址自动配置。
  • ISP如何使用PPP结合以太网来配置客户端系统。
  • 服务器和路由器通常手工配置,通常将相关配置信息输入一个文件或图形用户界面。

以上区别的原因:
1.客户端主机通常比服务器和路由器更容易移动,故需为其提供灵活的重新分配其配置信息的机制。
2.服务器主机和路由器一般都希望“永远可用”和相对自治。因此,他们的配置信息不依赖于其他网络服务,能为他们提供更好的可靠性。
3.与服务器或路由器相比,客户机更常见于某个组织中,通过一种集中服务来动态分配客户端主机的配置信息,更简单且不易出错。


DHCP【Dynamic Host Config Protocol】::动态主机配置协议,[RFC2131]。

  • 是一种流行的客户机/服务器协议,用于为主机(有时也用于路由器)指定基本的配置信息:IPv4地址、子网掩码、路由器地址、DNS服务器地址等。
  • DHCP在企业和家庭网络中广泛使用,甚至最基础的家庭路由器设备都支持嵌入式DHCP服务器,几乎所有常用的客户端操作系统和大量的嵌入式设备(如网络打印机和VoIP电话)都支持DHCP客户机。
  • DHCP的设计基于一种早期协议—Internet引导程序协议(BOOTP),它目前已经过时。BOOTP不支持改变已提供的信息。DHCP使用租用(lease)的概念来扩展BOOTP模型,并且可提供主机操作所需的所有信息。BOOTP和DHCP是向后兼容的,纯BOOTP客户端可以使用DHCP服务器,DHCP客户端也可以使用纯BOOTP服务器。BOOTP和DHCP同样使用UDP/IP,客户机使用端口68,服务器使用端口67.

DHCP由两个主要部分组成:

  • 地址管理
    地址管理用于IP地址的动态分配,并未客户机提供租用地址。
  • 配置数据交付
    配置数据交付包括DHCP协议的消息格式和状态机。

DHCP服务器可配置为提供3种地址分配:

  • 自动分配
    客户机从服务器配置的地址池中获得一个不可撤销的IP地址。
  • 动态分配
    最常用,客户机从服务器配置的地址池中获得一个可撤销的IP地址。
  • 手动分配
    DHCP协议用于传输地址,但地址对于请求的客户机是不变的(即它不是由服务器维护的可分配池的一部分),在该种情况下,DHCP的作用如同于BOOTP。

地址池和租用【lease】:针对最常用的动态地址分配情况。
在动态分配中,DHCP客户机请求分配一个IP地址,服务器从地址池中选择一个地址作为响应,通常情况下,该地址池是专门为DHCP用途而分配的一个连续IP地址范围。
分配给客户机的地址只在一段特定时间内有效,改段时间称为租用期【lease】。
当发送DHCP请求时,客户机需提供:客户机名称、请求的租用期大小、已使用或最后使用过的地址副本和其它参数。当服务器向客户机提供租用期时,服务器将租用信息保存在持久性存储器中,通常是非易失性内存或磁盘中,以确保DHCP服务器重启后,租约信息仍然存在。

DHCP消息类型:

  • DHCPDISCOVER:DHCP discove,发现(使用零源IP地址0.0.0.0和受限广播地址255.255.255.255,原因:客户机不知道请求的地址是否分配成功,也不知道它所连接的网络使用的网络前缀)
  • DHCPOFFER: DHCP offer,提供
  • DHCPDECLINE:DHCP decline,拒绝(decline:减少;拒绝)
  • DHCPACK:DHCP acknowledge,DHCP应答
  • DHCPNAK:DHCP Negative Acknowledge,否定应答
  • DHCPRELEASE:DHCP release
  • DHCPINFORM:inform
  • DHCPFORCERENEW:force renew
  • DHCPLEASEQUERY:lease query
  • DHCPKEASEUNASSIGNED:lease unassigned
  • DHCPLEASEUNKNOWN:lease unknown
  • DHCPLEASEACTIVE:lease active

操作使用DHCP所获得的数据:
windows:
ipconfig /release //释放使用DHCP获得的数据
ipconfig /renew //获得数据
在这里插入图片描述
通过DHCP获得并分配给本地系统的信息类型,可通过如下ipconfig命令的选项来查看:
ipconfig /all
linux:
dhclient -r //释放一个DHCP租约
dhclient //更新一个DHCP租约


DHCPv6:IPv6使用,[RFC3315],但IPv6还支持自己的自动程序来确定配置信息。
在一种混合配置模式中,IPv6自动配置和DHCPv6可以结合使用。

  • 有状态模式:工作原理类似于DHCPv4.
  • 无状态模式并结合无状态地址自动配置:
    在无状态模式下,IPv6客户机认为自己能配置IPv6地址,但需要通过DHCPv6获取额外的信息(例如它的下一跳路由器地址、DNS服务器地址等),或者可以使用ICMPv6路由通告消息获得一台DNS服务器的位置。

IPv6地址生命周期
IPv6主机的每个接口通常拥有多个地址,并且每个地址都有一组定时器,以指出相应地址可使用多长时间以及用于何种目的。
在IPv6中,地址分配包含一个首选生命周期和一个有效生命周期。这些生命周期用于判断超时将地址在自己的状态机中从一种装填转移到另一种状态。

DAD【Duplicate Address Detect】:重复地址检测。
IPv6地址选择:【临时的】:DAD成功—【首选的】:首选定时器超时—【废弃的】:有效定时器超时—【无效的】

DHCPv6消息格式DHCPv6封为UDP/IPv6数据报,使用客户机端口546服务器端口547
消息发送到中继代理或服务器,它使用一台主机链路范围的源地址。
IA【Identity Association】:身份关联,用在DHCP客户机和服务器之间的一个标识符,用于指向一个地址集。
DUID【DHCP Unique Identity】:DHCP唯一标识符,全球唯一性,用于标识一台DHCPv6客户机或服务器,并被设计为可持续一段时间。服务器用它标识所选地址对应的客户机和配置信息,客户机用它标识感兴趣的服务器。

DHCPv6相关命令
win:
ipconfig /release6 //释放使用DHCPv6获得的数据
ipconfig /renew6 //获取DHCPv6配置数据
ipconfig /all //显示通过DHCP获取的配置信息
linux:
dhclient -6 -r //释放一个DHCP租约
dhclient -6 //更新一个DHCP租约

DHCPv6前缀委托
上述均为使用DHCPv6配置主机,但DHCPv6也可用于配置路由器,这是通过一台路由器向另一台路由器委托一个地址空间范围来实现。这个地址范围可描述为一个IPv6地址前缀,这个前缀在[RFC3633]定义的DHCP前缀选项中。这用于路由委托的情况。它现在可以向一个DHCPv6服务器那样工作,而不需要前缀网络拓扑的详细信息,这种情况可能发生在ISP给出了一个可由潜在客户重新分配的地址范围,在这种情况下,ISP可能使用DHCPv6-PD向客户设备委托一个前缀。
前缀委托定义了一种新格式的IA,称为IA_PD。
每个IA_PD由一个IAID和相关配置信息构成,它在地址上类似于IA。
DHCPv6-PD不止针对固定路由器的前缀委托有用,它也可以用于移动路由器。

DHCP中继代理
简单网络中,一个DHCP服务器可供同一局域网中的客户机使用,但在更复杂的网络中,需要通过一个或多个DHCP中继代理来中继DHCP流量,DHCP中继代理将DHCP操作扩展到跨越多个网段。
注意:在一般情况下,中继代理不会参与客户机和服务器之间的所有DHCP流量交换,它仅中继组播、广播消息,这些消息通常在客户机首次获得自己的地址时交换。
当一台客户机获得一个IP地址,并且服务器的IP地址使用服务器标识选项时,它可与服务器进行单播通信而不经过中继。
中继代理在传统上为第三层设备,并且通常结合了路由功能。

移动和切换信息(MoS和ANDSF)
随着使用移动计算机和智能手机通过蜂窝技术访问Internet越来越普遍,定义了有关蜂窝配置和不同无线网络之间切换的框架和相关DHCP选项。
目前存在两套有关该信息的DHCP选项:

  • IEEE 802.21 MoS移动服务发现
  • ANDSF:接入网发现和选择功能,已被3GPP(第三代合作伙伴计划)标准化,3GPP是负责建立蜂窝数据通信标准的组织之一。

无状态地址自动配置
大多数路由器通常手动配置地址,主机也可手动配置,但更常见于使用DHCP动态分配地址来自动配置地址。
这里存在两种形式的地址,取决于需要生成什么类型的地址:对于只用于一条链路的地址(链路本地地址),一条主机只需找到在该链路上未被使用的地址即可;对于要用于全球性连接的地址,这类地址的某些部分通常必须被管理。
IPv4和IPv6都有用于链路本地地址自动配置的机制,一台主机不需要协助就可以决定自己的地址,即无状态地址自动配置(SLAAC)
1.IPv4链路本地地址的动态分配
一台主机没有手工配置地址,且所在网络没有DHCP服务器的情况下:
主机可使用链路本地地址的动态配置,也称为自动专用IP寻址(APIPA)机制[RFC3927],自动从链路本地范围169.254.1.1至169.254.254.254使用16位子网掩码255.2555.0.0生成自己的IPv4地址。
从本质上来说,就是一台主机 从一个地址范围中随机选择一个地址,并检查该地址是否被子网中的其它系统所使用。
2.链路本地地址的IPv6 SLAAC
IPv6 SLAAC的目标是允许节点自动和自主分配链路本地IPv6地址。
3.地址自动配置用途
用途有限,原因:由于路由器可能需要为同意网络中的客户机配置特定范围的IP地址,而这台客户机自动配置的地址与该范围不一致。它在IPv4(APIPA)中是好用的,因为专用链路本地前缀169.253/16不能用于路由器找那个。
自己分配IP地址的结果是本地子网访问可能正常,但Internet路由和名称服务DNS很可能不正常。
4.禁用APIPA,防止系统自己分配一个IP地址:
win:
通过创建以下注册表项(注册表项是一行)来完成:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPAutoconfigurationEnabled
REG_DWORD值可设置为0,对所有网络接口禁用APIPA。
lin:
文件/etc/sysconfig/network修改为包括以下指令:
NOZEROCONF=yes,这将禁止所有网络接口使用APIPA。
通过修改每个接口的配置文件,如第一个以太网设备的etc/syscofig/network-scripts/ifcfg-eth0,可禁止特定接口使用APIPA。
对IPv6全局地址禁用SLAAL有两种方法:

  • 在本地路由器提供的路由器通告消息的前缀选项中关闭“自动”标志(配置为不提供前缀选项)。
  • 通过本地配置来避免客户机进行全局地址的自动配置

在一台linux客户机中禁用SLAAC:
sysyctl -w net.ipv6.conf.all.autoconf=0
在Mac OS或FreeBSD系统中禁用SLAAC:
sysctl -w net.inet6.ip6.auto_linklocal=0
windows中禁用SLAAC:
C:>netsh
netsh>interface ipv6
netsh interface ipv6>set ineterface {ifname} managedaddress=disabled

DHCP和DNS交互
当一台DHCP客户机获得一个IP地址时,它接收的配置信息的重要部分是一台DNS服务器的IP地址,它允许客户机将DNS名称转换为IPv4和/或IPv6地址,该地址是进行传输层tcp、udp连接时所需要的。
如果没有DNS服务器或其他方式将域名映射为IP地址,则无法访问互联网。
因此将指定DHCP地址与相应地址的DNS映射更新方法结合更方便,这可通过 组合DHCP/DNS服务器动态DNS 来实现。
组合DHCP/DNS服务器(如linux dnsmasq包)是一个服务器程序,它可配置为提供IP地址租约及其他信息,也可读取一个DHCPREQUEST中的客户机标识符或域名,并在使用DHCPACK进行响应之前,通过名称到地址的绑定更新DNS数据库。这样,有DHCP客户机或与相同DNS服务器交互的其它系统发起的任何后续DNS请求,能够在客户机和新分配的IP地址之间相互转换。

以太网上的PPP
对于大多数局域网和一些广域网连接,DHCP提供了最常用的客户机系统配置方法。
对于广域网连接(如==DSL【Digital Subscriber Line】==用户数字链路),常用另一种基于PPP的方法代替他。这种方法涉及在以太网中携带PPP,称为以太网上的PPP(PPPoE【Point to Point Protocol Of Ethernet】)。
PPPoE用于广域网连接设备(例如DSL调制调节器)作为一个交换机或网桥而不是使用路由器的情况。
PPP是某些ISP【Internet Service Provider】建立连接的首选原因是,它可以提供比其他配置选项(例如DHCP)更细致的配置控制和审计日志。
DSL提供一条点到点的数字链路,它可以与一条传统的模拟电话线(称为普通老式电话业务或POTS)同时工作。对物理电话线的同时使用是通过频分复用技术实现。在DSL调制调解器与ISP成功建立一层底层链路后,PC可以开始进行PPPoE交换[RFC2516]。

PPPoE协议通过以太网携带PPP消息以与ISP建立Internet连接,特别是那些使用DSL提供服务的ISP。
当使用PPPoE时,用户通常有一台带以太网端口的DSL调制调节器,这个端口就像是一个网桥或交换机。
PPPoE首先交换一组发现消息,以确定一个访问控制器的身份,并建立一次PPP会话。
在发现阶段完成后,PPP流量可封装在以太网帧中,并携带不同协议(如IP),这可能持续到PPPoE会话终止。
当使用PPPoE时,PPP协议配置功能,如IPCP最终负责为用户分配IP地址。




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


firewall and NAT

防火墙Firewalls:
防火墙用于控制互联网中网络流量的流向,它是一种能够限制所转发的流量类型的路由器。
保证终端系统的软件是最新的和不存在任何错误需要承担巨大管理压力,因此确保终端系统免受攻击的焦点转为如何利用防火墙来过滤部分流量以限制流量流向终端系统。
最常用的两种防火墙:

  • 代理防火墙(proxy firewall)
  • 包过滤防火墙(packet-filter firewall)

他们之间的主要区别是所操作的协议栈层次以及由此决定的IP地址和端口号的使用*。
包过滤防火墙是一个互联网路由器,能够丢弃符合(或不符合)特定条件的数据包。
从因特网客户端的角度来看,代理防火墙是一个多宿主机的服务器主机,它是TCP和UDP传输关联的终点,通常不会在IP协议层中路由IP数据报。

NAT【Network Address Transform】:网络地址转换。
NAT是一种机制,是得大量的终端主机可以共享一个或多个全局路由的IP地址。
NAT本质上一种允许在互联网的不同地方重复使用相同IP地址集的机制。
建立NAT的主要动机是:正在急剧减少的IP地址空间,使用NAT最常见的情况是:唯一与Internet连接的站点仅被分配了很少的几个IP地址(甚至只有一个IP地址),但内部却有多台主机需要同时上网。
NAT工作原理:重写通过路由器的数据包的识别信息,通常发生在数据传输的两个过程上。NAT需要重写往一个方向传输的数据包的源IP地址,重写往另一个方向传输的数据包的目的IP地址。这使得传出的数据包的源IP地址变为NAT路由器面向Internet的网络接口地址,而不是内部私有的原始主机的接口地址。因此没在互联网上的主机来看,数据包是来自于具备全局路由IP的NAT路由器,而不是NAT内部的私有地址的主机。

NAT editor:NAT编辑器。
大多数IP流量均使用TCP和UDP传输协议在互联网上进行传输,这些传输协议原生就可以很好的被NAT支持,而不需要增加额外的复杂性。
当应用层协议与他们一起携带传输层或更底层的信息,如IP地址,NAT问题会变得复杂,最常见的例子时FTP。
在正常的操作中,它交换传输及网络层的端点信息(IP地址和port),所以当要传输大量数据是可以增加额外的连接,这需要NAT不仅改写数据报的IP和TCP部分的IP+port,而且也需要修改有些应用本身的有效载荷本身,具有这种能力的NAT被称为NAT编辑器。

NAT traversal:NAT穿越。
鉴于将ALG和NAT editor放置于NAT设备中的复杂性,一种可替代的方法是应用程序自己尝试执行NAT穿越(NAT traversal)。
此时应用程序需要确定其流量通过NAT时使用的外部IP地址和端口号,并对其协议作出相应的修改。
pinhole and hole punching:针孔和打孔。
一个NAT通常包含流量重写过滤功能。当一个NAT映射创建时针对特定应用程序的流量通常允许在NAT的两个方向上传输。这种映射是临时的,通常只用于在执行时间内的单一应用程序,这类映射被称为 针孔pinhole。因为他们被设计为只允许通过一部分的临时流量信息,随着应用程序之间的通信,针孔通常动态的创建和删除。
通过采用针孔试图使位于NAT之后的两个或两个以上的系统直接通信的方法称为 打孔hole punching

iptables命令
Netfilter可以说是Linux的第三代防火墙,在此前,还有ipfwadmipchains两种防火墙。Filter 是Netfilter内最为重要的机制,其任务为执行封包的过滤动作,也就是防火墙的功能。
在filter表中,不指明的话,默认就为filter表
iptables -F // 清除filter表中所有规则链中的规则
iptables -X //清除filter表中用户自定链中的规则
基本的规则匹配(针对本身 INPUT)
iptables -A INPUT -p tcp //匹配指定协议,例如还有udp,icmp
iptables -A INPUT -p !tcp //匹配指定协议之外的所有协议
iptables -A INPUT -s 192.168.0.1 //指定匹配的主机
iptables -A INPUT -s 192.168.0.1/24 //指定匹配的网络
iptables -A INPUT -p tcp --sport www
iptables -A INPUT -p udp –dport 53 //指定单一端口匹配
iptables -A INPUT -p tcp -m multiport –sport 22,53,80,110 //匹配多个源端口
iptables -A INPUT -p tcp -m multiport –dpoort 22,53,80 // 匹配多个目的端口
如果是穿越防火墙的,从外到内的,可对规则链FORWARD 限制




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


链路层可靠性保证

链路层可靠性保证:

  • 以太网链路聚合技术Eth-Trunk
  • LACP协议
  • 将两台交换机switch设备组合为Master/Slave提高可靠性的技术M-LAG
  • 将两台路由器router设备组合为Master/Slave提高可靠性的技术VRRP

😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


IP地址与二进制转换免费网站:(calculator)
http://www.subnetmask.info
http://www.subnetcalculator.com

WHOIS服务:用以确定如何分配地址空间,互联网地址由IANA机构分配。
http://whois.arin.net
WHOIS服务的web查询接口:可搜索任意IP地址的相关信息。
http://www.ripe.net/whois

查看一台计算机正在使用的ip地址和组:

linux:
ifconfig:网络接口配置【interface configuration】,实际存在的接口,如以太网接口配置。
iwconfig:无线网络接口配置【Internet wireless configuration】,如无线保真(Wi-Fi),Wi-Fi是一种常用的无线以太网标准,IEEE 802.11。
ifconfig ppp0
netstat -gn
windows:
ipconfig
ipconfig /all (more detail)

IEEE 802.11(Wi-Fi):无线局域网标准。
=》通过两个主要频段2.4GHz5GHz提供无需许可的网络访问。
=》Wi-Fi安全方法的演变:从较弱的WEP到更强的WAPWAP2框架。

STA:站
AP:接入点
BSS:基本服务集
DS:分布式服务
ESS:扩展服务集
Ad hoc:自组织
IBSS:独立基本服务集
SSID:服务集标识符
ESSID:扩展服务集标识符

RFC(Request For Comments):http://www.rfceditor.org
Internet社会中的每个官方标准都已一个RFC【征求意见】的形式发布,可从如上站点免费获得。
IANA【Internet Assigned Numbers Authority】:互联网地址编码分配机构
ISP【Internet Service Provider】:因特网服务提供商
PI【Provider Independent】:供应商独立
AS:自治系统
IP地址=网络地址+主机地址(v4:8位4组=32位;v6:16位8组=128位)
子网掩码:用以确定网络地址和主机地址各自的位数。
VLSM【Variable Length Subnet Masks】:可变长子网掩码
CIDR【Classless Inter Domain Routing】:无类别域间路由
使用CIDR,为经过预定的人和地址范围可作为一个类的一部分,但需要一个类似于子网掩码的掩码,有时也称为CIDR掩码。CIDR掩码不在局限于一个站点,而对全球路由系统都是可见的。因此,除了网络号之外核心Internet路由器必须能解释和处理掩码。这个数字称为网络前缀,网络前缀用于IPv4和IPv6地址管理。
CIDR技术消除一个IP地址中网络和主机号的预定义分隔,将使更细粒度的IP地址分配成为可能。
CIDR和路由聚合:在网络环境中,可采用分层路由思想以一种特定方式减少路由条目数。这通过一个称为路由聚合的过程来实现。通过将相邻的多个IP前缀合并成一个短前缀(称为一个聚合或汇聚),可以覆盖更多的地址空间。
PDU【Packet Data Unit】:分组数据单元。不同层有不同的PDU,链路层PDU:帧;网络层PDU:分组;传输层PDU:段。
MDU【Max Data Unit】:最大传输单元。链路层帧格式一般支持可变的帧长度,范围从几字节到几千字节,这个范围的上限称为最大传输单元。

特殊用途地址

IPv4:
10/8
172.16/12
192.168/16
IPv6:
fc00::/7
以上地址被保留用于构建专有网络(即内联网)。
以上地址不能用于单播地址分配,不会出现在公共Internet中。
通常与NAT网络地址转换技术结合使用:在ip数据包进入Internet时修改其中ip。
Note:
内联网:专用的互联网络称为内联网,通常使用特殊的设备(防火墙)连接Internet,它可以防止为授权的访问。
外联网:通常由一个机构的多个内联网组成,它能以有限的方式被合作伙伴或分支机构所访问。

port

端口号port是16位的非负整数(0~65535)。
标准的端口号由Internet号码提供机构(IANA)分配。
这些数字被划分为特定范围:

  • 熟知端口号:0~1023
    SSH:22
    FTP:20,21
    telnet远程终端协议:23
    DNS:53
    HTTP:80(TCP)
    HTTPS:443(TLS)
    SMTP电子邮件/简单邮件传输协议:25
    交互邮件访问协议IMAP:143,IMAPS:993
    SNMP简单网络管理协议:161,162
    LDAP轻量级目录访问协议:389
  • 注册端口号:1024~49151
    注册端口号提供给有特殊权限的客户机或服务器,但IANA会维护一个为特定用途二保留的注册表,开发新应用是通常应避免使用这些端口号,除非你已经购买某些IANA分配的端口号。
  • 动态/私有端口号:49152~65535
    动态/私有端口号基本不受监管。

LAN【Local Area Network】
WLAN【Wireless Local Area Network】:常见的无线局域网(WLAN)IEEE标准称为无线保真Wi-Fi无线以太网802.11

802.3:以太网
802.11(g):WLAN、Wi-Fi·.
802.2:逻辑链路控制LLC

bridge,switch:网桥和交换机

  • 交换机本质上为高性能网桥。
    交换机如何通过网桥改善性能:主要通过在多个独立站的集合之间提供直连电路来实现,以及有全双工取代早期的半全双工。
  • 网桥或交换机用于连接多个物理的链路层网络。
  • 多数操作系统支持网络接口之间的桥接功能,这意味着具有多个接口的计算机可以用作网桥。
    【基于PC的网桥】
    例:windows:
    在这里插入图片描述
    右击以太网接口=》点击【桥接】选项:这时该接口正常的网络属性消失,取而代之的是作为一个新的网桥设备。
    在这里插入图片描述
    linux:
    一台基于linux的PC被配置为网桥,它在两个以太网之间实现互联。
    该网络使用一台基于linux、带两个端口的PC作为网桥。
    创建一个网桥设备br0,并为网桥增加接口eth0和eth1:
    brctl addbr br0
    brctl addif br0 eth0
    brctl addif br0 eth1
    ifconfig eth0 up
    ifconfig eth1 up
    ifconfig br0 up
    brctl delif命令用于删除创建的虚拟网桥接口,在建立接口之后,brctl showmacs命令可以用于检查过滤数据库(称为转发数据库,用Linux术语为fdbs):
    brctl show
    brctl showmacs br0
    由于站可能出现移动、网卡更换、MAC地址改变或其它情况,所以就算网桥发现曾经一个MAC地址可以通过某个端口访问,这个信息也不能永远假设正确=>为了解决这一问题:在每次学习一个地址后,网桥启动一个计时器(通常默认为5min)。在linux中,每个学习条目使用一个与网桥相关的固定时间,如果在指定的有效期内,没有再次看到该条目中的地址,则将该条目删除。如下所示:
    brctl setageing br0 1
    brctl showmacs br0
    将计时器设置为1min,即每条学习的有效期为1min:当一个条目因有效期满而被删除时,后续的帧将被发送到接收端口之外的所有端口(称为洪泛flooding),并更新过滤数据库中的这个条目。

flooding:洪泛
STP【Spanning Tree Protocol】:生成树协议
STP用于抑制链路层帧在传播过程中可能出现的多次重复复制=>即抑制链路层帧放大,保证其只有一个副本。
RSTP【Rapid Spanning Tree Protocol】:快速生成树协议
BPDU【Bridge Packet Data Unit】:网桥协议数据单元。

在STP算法中,网桥协议数据单元BPDU帧:用来形成和维护生成树。
在linux中,网桥功能默认禁用STP。
假设在多数情况下网络拓扑相对简单,一台普通计算机可以被用作网桥,可以执行以下明林为当前使用的网桥启用STP:
brctl stp br0 on
执行上述命令的结果如下:
brctl showstp br0
Note:传统STP的问题之一在于拓扑变化之后,只能通过一定时间内未接收到BPDU来检测,如果这个超时很大,收敛时间(沿着生成树重新建立数据流的时间)可能比预期大。
在RSTP中,对STP的主要改进是:监视每个端口的状态,并在故障时立即发送一个拓扑变化通知。

MRP【Multiple Registration Protocol】:802.1ak,多注册协议。MRP提供 了下桥接局域网环境中的站之间注册属性的通用方法。

PPP【Ponit To Point】:点到点协议。[RFC19661] [RFC1662] [RFC2153].
=》PPP表示点到点协议,这是一种在串行链路上传输IP数据报的流行方法,从低速的拨号调制调解器到高速的光纤链路[RFC2615]。
=》它被一些DSL服务供应商广泛部署,也可分配Internet系统的参数(例如最初的IP地址和域名服务器)。
=》PPP是一个协议集合,而不是一个单一的协议:它支持建立链接是基本方法—称为链路控制协议LCP【Link Control Protocol】,以及一系列网络控制协议NCP,在LCP建立了基本链路之后,用于为各种协议(IPv4、IPv6合入非IP协议)建立网络层链路。
=》PPP的LCP用于在点到点链路上建立和维护底层的双方通信路劲,因此,PPP操作只需要关注一条链路的两端,不需 像以太网和Wi-Fi的MAC层协议那样处理共享资源访问的问题。
=》点到点链路和PPP协议:PPP实际上可封装任何类型的分组,可用于TCP/IP和非TCP/IP网络,采用一种类似HDLC的帧格式,并且可用于从低速拨号调制调解器到高速光纤链路。它本身是一整套协议,涉及压缩、加密、认证和链路聚合。它只支持两个参与者之间通信,无法处理对共享介质的访问。

隧道tunnel:两台计算机通过Internet或其他网络建立一条虚拟链路,实现这类服务的最常用方法称为隧道。
=》涉及在更高层(或同等层)分组中携带低层协议。
=》这种技术可形成覆盖网络,在Internet中将隧道作为网络基础设施的其它层中的链路。
=》该技术已十分流行,包括新功能的实验(例如在一个IPv4网络上运行的一个IPv6覆盖网络)和实际使用(例如VPN)。
=》为某层协议的分组或另一层的分组时建立隧道有多种方法,用于建立隧道的3个常见协议包括:

  • 通用路由封装(GRE)[RFC2784],代替了早期的IP-in-IP。
  • Microsoft专用的点对点隧道协议(PPTP)[RFC2637]。
  • 第二层隧道协议(L2TP)[RFC3931],代替了PPTP。
    =》但更关注PPTP,因为他是个人用户的常用协议,即使它并不是一个IETF标准。
    =》L2TP本身不提供安全保障,它常用于IP安全层:IPsec。

环回:客户机使用Internet协议与同一计算机上的服务进行通信 。
=》为了实现这一目标,大多数支持一直工作在网络层的环回(或称回送)能力—通常使用一个虚拟的网络接口来实现。它就像是一个实际接口,单实际上是有一个操作系统提供的专用软件,可通过TCP/IP协议与同一主机的其它部分进行通信。
=》 以127开始的IPv4地址就是为这个目的而保留,IPv6地址::1。为其分配名称为localhost。类UNIX系统(包括linux)为环回接口分配的地址为127.0.0.1,在linux中环回接口被称为lo
=》发送到环回接口的IP数据包不会出现在任何网络中。

MTU和路径MTU
MTU【Max Transport Unit】:最大传输单元。
=》链路层网络中(例如以太网),携带高层协议PDU的真大小是有限制的,以太网有效载荷的字节数通常被限制为1500,PPP通常采用相同大小一保持与以太网兼容。链路层的这种特征被称为最大传输单元MTU。
=》大多数分组网络(如以太网)都有固定上限;大多数的流类型网络(串行链路)提供可设置的上限,它被帧协议(如PPP)所使用。
IP分片:如果IP需要发送一个数据报,且该数据报比链路层MTU大,则IP通过分片将改数据报分解成较小的部分,是每个部分都小于等于MTU。
路径MTU
=》当同一网络中的两台主机之间通信是,本地链路的MTU在会话期间对数据报大小有直接影响。
=》当两台主机之间跨多个网络通信时,每条链路可能有不同大小的MTU。
=》在包含所有链路的整个网络路径上,最小的MTU称为路径MTU。
=》任何两台主机之间的路径MTU不会永远不变,这取决于当时使用的路径。如果网络中的路由器或链路故障,MTU可能改变。
=》路径通常不对称(主机A到B路径可能不是B到A的反向路径),路径MTU不需要在两个方向上相同。
=》RFC1191规定了IPv4路径MTU发现(PMTUD)机制;RFC1981用于IPv6。




😗 😡 😒 😦 😃 😮 😄 😒 😡 😒


相关内容

热门资讯

Linux:使用libeven... 代码: #include #include #include #include ...
html入门学习 HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不...
安全知识小结 1.cookic和session你第一次注册网站时,网站会将你的用户名、加密后的密码、...
ssh介紹以及 linux 下... ssh介紹以及 linux 下ssh的安裝使用SSH协议简介SSH 的工作过程linux(ubunt...
Sentinel:流量控制规则... 一、概述 FlowSlot 会根据预设的规则,结合前面 NodeSelectorSlo...
学习笔记七:docker容器互... docker容器互联容器的网络基础docker0:安装网桥管理工具:do...
面试阿里测开岗失败后,被面试官... 前一阵子有个徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言...
CCNP300-410学习笔记... 151、 Refer to the exhibits An engineer filtered m...
kubernetes核心组件原... 文章目录核心组件原理1、RC[控制器]2、RS[控制器]3、Deployment4、HPA5、Sta...
华为OD机试 - 数组组成的最... 最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真...
java.sql.Time 字... 项目场景: 情况:最近有一个很奇怪的事情,项目已经上线了一...
一文读懂!跨境支付业务详解 随着全球电子商务的增长,面向进出口贸易的跨境支付应运而生。据华创微课统计,...
MySQL的隐式类型转换 引入 在项目中调用别的部门的模糊查询接口,发现还根据模糊字段搜索主键,还...
redis教程3 (特性以及五... redis 特性以及五种数据类型的编码特点适用场景redis特性优势(快)...
理解 zk-SNARKs 和 ... SNARK 和 STARK 是零知识证明技术,允许一方在不透露任何进一步信息的情况下向...
【JavaSE】继承的详解 前言 大家好,我是那个不会打拳的程序猿。今天我给大家带来的是面向对象之封装继承多态中...
Delta并联机械臂实现电磁铁... 1. 功能说明 本文示例将利用Delta并联机械臂实现不同点定点搬运磁铁物料的效果。  2. 结构...
高标准农田信息化监测系统解决方... 一、方案背景 《中共中央国务院关于做好2023年全面推进乡村振兴重点工作的意见》指出,...
从0开始实现java Stre... java8 stream介绍 java8新增了stream流的特性,能够让用户以函数式...
Windows_安装整合Pro... 安装包下载 prometheus windows_exporter pushgateway graf...