Skip to content

网络协议分层 #28

Description

@chengfengliu

internet是表述将多个计算机网络互联成大型网络系统的技术术语。
Internet专指目前广泛应用、覆盖了全世界的大型网络系统。
Intranet不连接或不直接连接到Internet的内部专用网络系统。

img_5026
在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议”。
应用层:HTTP,作用是显示传输的内容
表示层:将主机格式转换为网络标准传输格式,UTF-8
会话层:选择使用哪个连接以及数据传送的顺序
传输层以下才具有实际传输数据的功能:
传输层:TCP,建立连接或断开连接,在两个主机之间创建逻辑上的通信连接,保证数据传输的可靠性
网络层:IP,找到目标地址并传输数据,数据的单位称为数据段(segment)
数据链路层:通过传输介质互连的设备之间进行数据处理,数据的单位称为数据包(packet)??帧
物理层:将数据的0、1转换为电压和脉冲光,数据的单位称为帧(frame)??
header

网络设备

网卡、网络适配器、LAN卡、网络接口卡NIC

网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。

中继器

中继器(RP repeater)是工作在物理层上的连接设备。物理层面上延长网络的设备。由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆

网线、电缆、光纤

物理层

集线器(hub)

物理层
集线器作为以太网中的中心连接设备时,所有节点通过非屏蔽双绞线与集线器连接。这种以太网在物理结构上是星状结构,但在逻辑上仍然是总线型结构,在MAC层仍然采用CSMA/CD介质访问控制方法。
当集线器接收到某个节点发送的帧时,它立即将数据帧广播方式转发到其他端口,任何一个时刻两个或以上节点同时发送就会出现冲突。

链路层交换机、2层交换机

接收入链路层帧并将它们转发到出链路,不会有碰撞。可以说是升级版集线器,但是如果两个节点同时发送给交换机,链路层交换机会缓存帧并分开转发。

网桥、桥接器

网桥(Bridge)是在数据链路层面上连接两个网络的设备。网桥像一个聪明的中继器。网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。

路由器、3层交换机

路由器是在网络层面上连接两个网络、并对分组报文进行转发的设备。网桥根据物理地址(MAC地址)处理,而路由器根据IP地址处理。

网关(Gateway)、网间连接器、协议转换器

网关在网络层以上实现网络互连,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

默认网关、默认路由器

多数主机先连入一个局域网,局域网通过一台路由器再介入Internet。这台路由器就是局域网主机的默认路由器,或称为默认网关。

代理

位于客户端和服务器之间的HTTP中间实体。代理接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。

数据链路

1.成帧;
2.链路接入;
3.可靠支付;
4.差错检测和纠正。

MAC

(Media Access Control或者Medium Access Control)地址,在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机(适配器)会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。
MAC地址是网卡决定的,是固定的和唯一的。由IEEE管理MAC地址空间。
IP地址与一个人的邮政地址相似,它是有层次的,无论何时当人搬家时,该地址都必须改变。而MAC地址就像一个人的身份证号码,到哪里都不会改变。

就好比你在北京要给上海某处寄信(IP),你只需要知道你最近的邮局怎么走(MAC),而从北京某邮局到上海某邮局可能经过北京邮件处理中心和上海邮件处理中心,北京邮件处理中心只需知道把上海市的邮件发给上海邮件处理中心就好(MAC),不用关心哪个区哪个邮局。最终收信人住址(MAC)怎么走只有上海当地邮局的邮递员才感兴趣。

每两个传输节点之间,根据网络类型、介质类型设计一套针对性的协商-传输机制,也就是数据链路层。 因为有了链路层的设计需求,所以才有了MAC地址这种东西。有了MAC地址,相邻两个节点才可以传输数据。

路由器维护一个路由表,里面储存了目的IP地址到下一跳IP地址的映射。有IP地址传输不了,需要MAC地址才行,这时ARP就可以将IP地址转为MAC地址。

为什么有了IP地址还需要MAC地址?
信息传递时候,需要知道的其实是两个地址:终点地址、下一跳的地址。IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。
以上说法不太全面,其实经过路由器下一跳也是根据IP地址(下一个路由器的接口)进行,只有链路层交换机才需要MAC地址记录下一跳的信息,这里处理多路访问的功能已经属于链路层了。
root

link

其实IP地址可以取代MAC地址,但是会使得网络层过于臃肿。进而增加一个链路层,链路层具有节点间的流量控制,检测,广播信息限制在两个节点之间等网络层不具有的功能。这就是网络系统的分层思想。为了实现这些功能,链路层使用了MAC地址,用于两个相邻节点的数据传输。

所以答案是分层思想,每一层需要自己独特的标识符。
交换机处理mac,路由器处理ip

三层的关键在于,有了路由器,路由器用于将不同的网段连接在一起,并对两个网段间的通信进行存储转发。比如A网络10.0.0.0/24,B网络10.0.1.0/24,中间有一路由器隔着,两边的网关都是.1。10.0.0.2要发信给10.0.1.2,那么先看子网掩码,发现不在自己网络内,然后交给10.0.0.1,路由器看到在网络B内,从10.0.1.1发出,然后到达10.0.1.2。

假如这俩网络没有路由器,直接走二层,那么多电脑连在一起,广播包就会占掉大量的网络带宽。

半双工通信相当于对讲机,只发送或只接收的通信方式。而全双工通信相当于手机,同一时间既可以发送数据也可以接收

VLAN

Virtual Local Area Network,虚拟局域网是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。

vlan
以太网
以太网是一种局域网,只能连接附近的设备,因特网是广域网,我们可以通过因特网连接到美国去得到消息。以太网只是组成互联网的一个子集。
default

网络层

功能
1.转发:是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。
2,路由选择:是指网络范围的过程,以决定分组从源到目的地所采取的端到端路径。

IP协议

数据链路提供直连两个设备之间的通信功能。与之相比,作为网络层的IP则负责在没有直连的两个网络之间进行通信传输。

IP地址

IP地址(IPv4地址)由32位正整数来表示。8位一组转换为十进制数(4组)。由网络地址和主机标识组成。网络标识在数据链路的每个段配置不同的值,主机标识则不允许在同一个网段内重复出现。
路由器利用网络标识进行路由。

专用IP地址

A 10.
B 172.16-172.31
C 192.168.0-192.168.255
专用地址用于不接入Internet的内部地址。如果一个组织出于安全等原因,希望组建一个专用的内部网络,不准备连接到Internet,或者在转发分组到Internet时希望使用NAT技术,那么该组织就可以使用专用IP地址。
tracert
第一个192.168.1.1是C地址,允许分配主机号少
第二个10.0.1.49是A地址,允许分配主机号多

子网掩码

将A、B和C类等分类中的主机地址部分用作子网地址。

子网掩码是为了区分网络位和主机位。把IP地址比作一个人的名字,那么子网掩码可以让你知道什么是名,什么是姓。 假设给你个名字,莱昂纳多迪卡普里奥。你并不知道这九个字名和姓是从何处分开的。那么现在给你一串数字111100000,告诉你这九个二进制数字分别对应名字的九个字,1和0的分界处就是名和姓的分界。 再举个栗子。有一个网段是192.168.1.0 ,咱们把它比作一个村子,叫做司马村。此网段的有一个主机地址是192.168.1.5,咱们叫他司马光。另又有网段是192.168.0.0,叫做司村,村里面同样有个人叫做司马光,主机位同样是192.168.1.5。 这个时候给你司马光(192.168.1.5IP地址)这个名字你如何区分他是哪个村子的?就需要子网掩码了,司马村的子网掩码是255.255.255.0 ,而司村的子网掩码就是255.255.0.0,这个时候你就能知道司马光是哪个村子里的。 192.168.1.5对应的二进制数是 11000000.10101000.00000001.00000101 而255.255.255.0对应的二进制数是 11111111.11111111.11111111.00000000 255.255.0.0的二进制数是 11111111.11111111.00000000.00000000 因为子网掩码为1时对应的就是主网网段,也就是姓。为0对应的是主机位,也就是名。 把255.255.255.0对应的网段取出来就是192.168.1.0 255.255.0.0对应的网段取出来就是192.168.0.0给你198.168.1.5是,只要凭子网掩码就可以知道他是哪个网段的。即就知道司马光到底是姓司马还是姓司,同时也知道他住在那个村子了

标准的A类、B类与C类IP地址是包括网络号netID与主机号hostID两级的层次结构。
而划分子网后的地址结构是netID-subnet-ID-hostID,从主机号划分为子网号和主机号。

CIDR无类别域间路由
不采用传统的标准IP地址分类方法,无法从地址本身来判定网络号的长度,因此CIDR地址采用“斜线记法”,即<网络前缀>/<主机号>。即相当于网络号长度可变。

路由控制

路由控制表形成方式:1、管理员手动设置,2、路由器与其他路由器相互交换信息时自动刷新。
数据链路不同,MTU(能传输的字节)则不同。——IP报文的分片与重组(在各个路由器分片)——路径MTU发现(在主机分片)

APR(Address Resolution Protocol)

以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址。

ICMP

确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。

DHCP(Dynamic Host Configuration Protocol)

实现自动设置IP地址、统一管理IP地址分配。实现即插即用。宽带路由器充当DHCP角色。

NAT(Network Address Translator)

本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。

IP隧道

IPv6转IPv4

传输层

以包裹为例,邮递员(IP)根据收件人地址(目标IP地址)向目的地(计算机)投递包裹(IP数据报)。包裹到达目的地以后由对方(传输层协议TCP或UDP)根据包裹信息(端口)判断最终的接收人。

UDP(User Datagram Protocol)

UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。(网络视频会议系统,微信视频聊天是UDP,信息是TCP)

TCP(Transmission Control Protocol 传输控制协议)

是一种面向连接的、可靠的、基于字节流的传输层通信协议。
源IP地址、目标IP地址、协议号、源端口号和目标端口号这5个数字识别一个通信。

流量控制

发送方维护一个接收窗口(rwnd),接收窗口用于给发送方一个指示——该接收方还有多少可用的缓存空间。消除发送方使接收方缓存溢出的可能性。

拥塞控制

拥塞控制重点是放在进入网络报文总量的全局控制上。慢开始、拥塞避免、快重传和快恢复。

路由协议

自治系统(路由选择域,像局域网、ISP)内部动态路由采用的协议是域内路由协议,即IGP(Interior Gateway Protocol)。而自治系统系统之间的路由控制采用的是域间路由协议,即EGP(Exterior Gateway Protocol)。EGP-IP地址网络部分,IGP-主机部分。
IGP包含RIP和OSPF,EGP包含BGP。

应用层

DNS

DNS是一堆服务器组成的服务,也是一种分布式、层次数据库。没有一台DNS服务器拥有因特网上所有主机的映射。
根DNS服务器,客户端先与根服务器联系,返回com的顶级域DNS服务器的IP地址;
com顶级域DNS服务器,返回github.com的权威服务器的IP地址;
github.com权威DNS服务器,返回www.github.com主机的IP地址。

A类型记录提供标准的主机名到IP地址的映射。

套接字

套接字是同一台主机应用层与运输层之间的接口。客户端与服务器都有很多不同进程的套接字。
当生成一个套接字时,就为它分配一个称为端口号的标识符

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions