Computer Network

持续更新

主要是计算机网络自顶向下方法第七版部分笔记和一些拓展,这位网友的笔记很棒

https://liuyijian.github.io/vuepressBlog/techNote/basic/network/

计算机网络和因特网概述

什么是因特网(具体构成和描述、服务描述、协议): 端系统通过通信链路(communication link)和分组交换机(packet switch)连接;链路传输速率单位bit/s,端系统间发送信息时发送分组(packet),分组交换机最著名的有路由器(router)和链路层交换机(link-layer switch),从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route/path)。分组交换是存储转发的过程。

统计多路复用是特殊的时分复用,不固定分配某个时间片给某个用户。分组交换又分为数据报文和虚电路;前者每个数据包都含有完整目标地址,直接发送不建立连接,而虚电路会先走一遍到目标,让报文中携带路径虚电路号而非目标地址。

RTT(Round-Trip Time)往返时间表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认,不包含数据传输时间)总共经历的时间。 RTT由三个部分决定:链路的传播时间、末端系统的处理时间、路由器的缓存中的排队和处理时间。

有连接(虚电路,体现在线路上每一个节点),面向连接(TCP 体现在起点和终点),无连接(数据报文)

ISP是由多个分组交换机和多段通信链路组成的网络。

协议(protocol)控制信息的接受和发送,TCP(Transmission Control Protocol,)/IP(Internet Protocol,定义端系统和路由器之间发送和接收的分组格式)协议是最重要的两个。因特网标准(Internet standard)由因特网工程任务组[IETE-Internet Engineering Task Force]研发,IEFC的标准文档称为RFC(Request For Comment)。API(Application Programming Interface,应用程序编程接口)

协议,网络协议(协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和/或接受一条报文或其他事件所采取的动作)

分布式应用程序(distributed application)涉及多台相互交换数据的端系统,基础设施是应用层之下为分布式应用程序提供服务的网络部分。

整个互联网包括网络核心、网络边缘和接入网/物理媒体:

​ 网络核心 core 由大量路由器和网络链路组成,负责数据交换和路由

​ 网络边缘 edge 包括主机和应用程序(client and server)

​ 接入网、物理媒体 access 是把网络边缘接入网络核心的有线或无限通信链路

网络边缘(接入网,物理媒体):物联网-万物互联,端系统又称为主机,可分为client/server,大部分服务器属于data center;access network接入网指将端系统连接到器边缘路由器(edge router)的物理链路,有:

家庭接入(DSL数字用户线电缆最为流行,前者中DSL调制解调器将数字数据转换为高频音通过电话线传输给本地中心局/CO,CO中的数字用户线接入复用器/DSLAM将模拟信号转换回数字形式,分频器分离数据信号和电话信号-频分复用技术;电缆因特网接入,混合光纤同轴/HFC,电缆调制解调器/cable modem,电缆调制解调器端接系统/CMTS;光纤到户/FTTH,有主动光纤网络/AON和被动PONPON包括光纤网络端接器ONT,连接到分配器splitter,集结光纤之后连接到中心局的光纤线路端接器OLT-提供光信号和电信号的转换,其中分组/packet在分配器处复制,在家庭中先通过路由器连接ONT;还有卫星链路和传统电话线拨号接入,速度慢)

公司/企业接入(以太网和WiFi)和广域移动无线(3G、4G、LTE) 物理媒体分为导引型媒体(固体媒体如电缆光缆)和非导引型媒体(空气和外层空间,在无线局域网和数字卫星频道),双绞铜线-无屏蔽双绞线/UTP常用在建筑物内的计算机网络中/LAN、同轴电缆-是两个同心铜导体能被用作导引型共享媒体、光纤-导引光脉冲、陆地无线电信道卫星无线电信道-同步卫星和近地轨道卫星

网络核心(分组交换):分组交换-存储转发传输、排队时延和分组丢失

基础设施提供的网络服务可分为面向连接的服务(TCP服务),无连接服务(UDP服务)

缓冲区管理和拥塞控制

多路复用:频分复用、时分复用、波分复用

不同的分层模型:

​ OSI 7层网络模型

​ 互联网五层参考模型

计算速率进制为十进制,也就是说1KB=1000B,便于计算

应用层

HTTP

  • 200(OK)- 如果现有资源已被更改
  • 201(created)- 如果新资源被创建
  • 202(accepted)- 已接受处理请求但尚未完成(异步处理)
  • 301(Moved Permanently)- 资源的URI被更新
  • 303(See Other)- 其他(如,负载均衡)
  • 400(bad request)- 指代坏请求
  • 403()- 禁止访问
  • 404 (not found)- 资源不存在
  • 406 (not acceptable)- 服务端不支持所需表示
  • 409 (conflict)- 通用冲突
  • 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
  • 415 (unsupported media type)- 接受到的表示不受支持
  • 500 (internal server error)- 通用错误响应
  • 503 (Service Unavailable)- 服务当前无法处理请求

HTTP响应状态码

GET /cs453/index.html HTTP/1.1
<cr><lf>
Host: gaia.cs.umass.edu
<cr><lf>
User-Agent: Mozilla/5.0 (Windows ; U; Windows NT5.1;en-US;rv:1.7.2) Geeko/20040804 Netscape/7.2(ax)
<cr><lf>
Accept: ex/xml application/xml, applicaion/xhtml+xml text/html ; q=0.9, text./plain;q=0 . 8 , image/png, */* ; q=0 . 5 
<cr><lf>
Accep-Language en-us, en;q=O.S
<cr><lf>
AcceptEncoding: zip deflate
<cr><lf>
Accept-Charset : ISO-8859-1 , utf-8 ; q=0 . 7,* ;q=0 . 7
<cr><1f>
Keep-Alive:300
<cr><lf>
Connection: keep-alive
<cr><l f><cr><l f>

流水线和长连接

http 1.1

有两个新的模型在 HTTP/1.1 诞生了。首先是长连接模型,它会保持连接去完成多次连续的请求,减少了不断重新打开连接的时间。然后是 HTTP 流水线模型,它还要更先进一些,多个连续的请求甚至都不用等待立即返回就可以被发送,这样就减少了耗费在网络延迟上的时间。

DNS

Domain Name System:注册域名的权威服务器的名字记录为ns类型在COM服务器中,然后再将该权威服务器的ip以A类型记录存在COM服务器中,包括以下部件:

  • 通过DNS服务器组建出的分布式数据库
    • DNS服务器通常是Unix系统上运行Berkley Internet Name Domain(BIND)软件
    • DNS服务器有3种类型
      • 根DNS服务器:有13个不同的根DNS服务器,但有多于1000个副本分布在世界各地,提供顶级域DNS服务器的IP地址
      • 顶级域DNS服务器:负责顶级域名,国家域名的维护(如com, org, net, edu, gov等等),提供权威DNS服务器的IP地址
      • 权威DNS服务器:维护具体网站的DNS记录
  • 允许用户访问分布式数据库的应用层协议
    • DNS协议在UDP上运行,默认端口为53

递归查询或者迭代查询:递归查询的请求和响应对象逐层递进,在local server到root server,root server到TLD server,TLD server到 Authoritative server途中,找到即递归返回;迭代查询则由local server分别向后三者依次询问,每次必定会得到找到或者找不到的返回。

  • DNS服务器存储了资源记录,提供了主机名到IP地址的映射,每个DNS回答报文包含一条或多条资源记录

  • 资源记录是一个四元组(Name,Value,Type,TTL)

    • TTL:记录的生存时间,决定何时从缓存中删除此记录
    • Type:
      • A:Name是主机名,Value是IP地址
      • NS:Name是个域,Value是知道如何获取该域中主机IP地址的权威DNS服务器的主机名
      • CNAME:Name是主机名,Value是别名为Name的规范主机名
      • MX:Name是主机名,Value是别名为Name的邮件服务器的规范主机名
  • DNS报文:查询报文和回答报文具有相同的格式

    • 首部区域(前12字节)
      • Identification:2字节的标识符,会被复制到对查询的回答报文中,以便客户匹配请求和应答
      • Flags:
        • 1比特的报文类型标志位,查询是0,回答是1
        • 1比特的权威标志位:若该服务器是权威DNS服务器,则该位为1
        • 1比特的希望递归标志位:若希望DNS服务器进行递归查询,则该位为1
      • Numbers
        • 指出首部后的4类数据区域出现的数量
    • 问题区域:包含名字字段(正在被查询的主机名字),类型字段(如主机地址是与一个名字关联还是与某个邮件服务器关联)
    • 回答区域:若干条四元组形式的资源记录
    • 权威区域:包含其他权威服务器的记录
    • 附加区域:包含其他有帮助的记录

CDN加速

Content Distribution Network:内容提供商将内容提前上载到CDN服务商的服务器中,用户在访问内容提供商的前端网页时,点击视频链接,会通过域名解析系统(见上文)访问到内容提供商的权威DNS服务器,然后得到其提供的另一个域名-即CDN提供商的权威DNS服务器,该DNS服务器提供 CDN簇选择策略,将早在CDN上载好的 content 的IP地址返回给 local DNS server,然后返回到用户端,用户与其直接建立连接,访问 content 。此时访问到的内容所在的服务器与客户最近,用户还能通过 DASH-动态、自适应流 over HTTP 协议切换视频码率。

TCP/UDP套接字编程

python3

TCP

//server
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)//SOCK_STREAM
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
print('The Server is ready to receive')
while True:
	connectionSocket, addr = serverSocket.accept()
 	sentence = connectionSocket.recv(1024).decode()
  	capitalizedSentence = sentence.upper()
  	connectionSocket.send(capitalizedSentence.encode())
  	connectionSocket.close()

    
    
//client
from socket import *
serverName = 'servername'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)//SOCK_STREAM
clientSocket.connect((serverName, serverPort))
sentence = input('Input lowercase sentence: ')
clientSocket.send(sentence.encode())
modifiedSentencce = clientSocket.recv(1024)
print('From Server: ', modifiedSentence.decode())
clientSocket.close()

UDP

//server
from socket import *
serverPort = 12000

serverSocket = socket(AF_INET, SOCK_DGRAM)//SOCK_DGRAM

serverSocket.bind(('', serverPort))
print('The Server is ready to receive')
while True:
	message, clientAddress = serverSocket.recvfrom(2048)
  	modifiedMessage = message.decode().upper()
  	serverSocket.sendto(modifiedMessage.encode(), clientAddress)
    
    
    
//client
from socket import *
serverName = 'hostname'
serverPort = '12000'

clientSocket = socket(AF_INET, SOCK_DGRAM)//SOCK_DGRAM

message = input('Input lowercase sentence:')
clientSocket.sendto(message.decode(), (serverName, serverPort))
moodifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage.decode())
clientSocket.close()

listen函数

#include<sys/socket.h>
int listen ( int sockfd,  int backlog )
返回: 0──成功,  - 1──失败
sockfd:
backlog:队列等待长度上限

listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。

nmap工具能做端口扫描,针对不同服务返回打开/关闭/不可达的端口列表

传输层

复用、解复用

UDP

校验和:“回卷”规则的引入,使得“先求反再求和”与“先求和再求反”所得结果一致。回卷指溢出位加回低位直至无溢出。

TCP

异步传输模式(英语:Asynchronous Transfer Mode,ATM),又叫信元中继。ATM采用电路交换的方式,它以信元(cell)为单位。每个信元长53字节,其中报头占了5字节。

ATM能够比较理想地实现各种QoS,既能够支持有连接的业务,又能支持无连接的业务。是宽带ISDNB-ISDN)技术的典范。ATM为一种交换技术,在发送资料时,先将数字资料切割成多个固定长度的数据包,之后利用光纤或DS1/DS3发送。到达目的地后,再重新组合。ATM网络可同时将声音、影像及资料集成在一起。针对各种信息类型,提供最佳的传输环境。

TCP加速

单边加速-大多数情况打破互联网公平(例:取消慢启动,直接以窗口速率发送)和双边加速-双边加速器

透明代理+算法,透明代理用TCP加速器,加速器之间用其它协议例如SCTP

网络层

网络层有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协议提供服务。

数据平面

北向接口:提供给其他厂家或运营商进行接入和管理的接口,即向上提供的接口。

如网管提供三种北向接口,分别为CORBA(Common Object Request Broker

Architecture)、SNMP、Syslog北向接口。它们负责向上级网管系统提供基于CORBA、SNMP和Syslog协议的北向接口,支持上级网管系统通过对应的协议接入网管。

南向接口:管理其他厂家网管或设备的接口,即向下提供的接口。

SDN控制器对网络的控制主要是通过南向接口协议实现,包括链路发现、拓扑管理、策略制定、表项下发等,其中链路发现和拓扑管理主要是控制其利用南 向接口的上行通道对底层交换设备上报信息进行统一监控和统计;而策略制定和表项下发则是控制器利用南向接口的下行通道对网络设备进行统一控制。

SDN北向接口是通过控制器向上层业务应用开放的接口,其目标是使得业务应用能够便利地调用底层的网络资源和能力。通过北向接口,网络业务的开发者 能以软件编程的形式调用各种网络资源;同时上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网网络的资源状态,并对资源进行统一调度。因为北 向接口是直接为业务应用服务的,因此其设计需要密切联系业务应用需求,具有多样化的特征。同时,北向接口的设计是否合理、便捷,以便能被业务应用广泛调 用,会直接影响到SDN控制器厂商的市场前景。

(Northbound/Southbound Interface, 网络拓扑图越往下层级越低, 地图约定俗成上北下南)

NAT(内网)穿透

tailscale,zerotier tailscale

控制平面

IGP

Interior Gateway Protocol

内部

  • OSPF 开放最短路优先:https://www.cnblogs.com/cone/p/14933527.html

    WIKI
    **开放式最短路径优先**(英语:Open Shortest Path First,缩写为 OSPF)是广泛使用的一种路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。
    
    OSPF是一种基于[IP协议](https://zh.wikipedia.org/wiki/IP协议)的[路由协议](https://zh.wikipedia.org/wiki/路由协议)。它是大中型网络上使用较为广泛的[IGP](https://zh.wikipedia.org/wiki/内部网关协议)协议。OSPF是对[链路状态路由协议](https://zh.wikipedia.org/w/index.php?title=链路状态路由协议&action=edit&redlink=1)的一种实现,运作于[自治系统](https://zh.wikipedia.org/wiki/自治系统)内部。OSPF分为OSPFv2和OSPFv3两个版本:OSPFv2定义于[RFC 2328](https://tools.ietf.org/html/rfc2328)(1998),支持[IPv4](https://zh.wikipedia.org/wiki/IPv4)网络;而OSPFv3定义于[RFC 5340](https://tools.ietf.org/html/rfc5340)(2008),支持[IPv6](https://zh.wikipedia.org/wiki/IPv6)网络。
    
    它采用[戴克斯特拉算法](https://zh.wikipedia.org/wiki/戴克斯特拉算法)来计算[最短路径树](https://zh.wikipedia.org/wiki/最短路径树)。它使用“代价(Cost)”作为路由度量。链路状态数据库(LSDB)用来保存当前[网络拓扑](https://zh.wikipedia.org/wiki/网络拓扑)结构,[路由器](https://zh.wikipedia.org/wiki/路由器)上属于同一区域的链路状态数据库是相同的(属于多个区域的路由器会为每个区域维护一份链路状态数据库)。
    
    OSPF提出了“区域(Area)”的概念,一个网络可以由单一区域或者多个区域组成。其中,一个特别的区域被称为骨干区域(Backbone Area),该区域是整个OSPF网络的核心区域,并且所有其他的区域都与之直接连接。所有的内部路由都通过骨干区域传递到其他非骨干区域。所有的区域都必须直接连接到骨干区域,如果不能创建直接连接,那么可以通过[虚链路](https://zh.wikipedia.org/w/index.php?title=虚链路&action=edit&redlink=1)(virtual link)和骨干区域创建[虚拟连接](https://zh.wikipedia.org/w/index.php?title=虚拟连接&action=edit&redlink=1)。
    
    同一个[广播域](https://zh.wikipedia.org/wiki/广播域)(Broadcast Domain)的[路由器](https://zh.wikipedia.org/wiki/路由器)或者一个[点对点](https://zh.wikipedia.org/wiki/点对点)(Point To Point)连接的两端的路由器,在发现彼此的时候,创建邻接(Adjacencies)[[注 1\]](https://zh.wikipedia.org/wiki/开放式最短路径优先#cite_note-1)。多路访问网络以及非广播多路访问网络的路由器会选举指定路由器(Designated Router, DR)和备份指定路由器(Backup Designated Router, BDR),DR和BDR作为网络的中心负责路由器之间的信息交换从而降低了网络中的信息流量。OSPF协议同时使用[单播](https://zh.wikipedia.org/wiki/單播)(Unicast)和[组播](https://zh.wikipedia.org/wiki/組播)(Multicast)来发送[Hello包](https://zh.wikipedia.org/w/index.php?title=Hello包&action=edit&redlink=1)和链路状态更新(Link State Updates),使用的组播[地址](https://zh.wikipedia.org/wiki/IP地址)为224.0.0.5和224.0.0.6。与[RIP](https://zh.wikipedia.org/wiki/路由信息协议)和[BGP](https://zh.wikipedia.org/wiki/BGP)不同的是,OSPF协议不使用TCP或者UDP协议而是直接承载在IP协议之上,[IP协议号](https://zh.wikipedia.org/wiki/IP协议号列表)为89。
  • RIP协议,RIP(Routing information Protocol) 是比较古老的动态路由协议,是一种基于距离矢量算法来计算到达目的网络的最佳路径路由协议,RIP报文承载于UDP报文,使用UDP端口520,属于应用层协议。在RIP协议中,路由根据到达目的地的跳数作为路由选择的度量值。img

  • IS-IS:IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。现在CLNP网络已经基本不再别使用,但是IS-IS协议由于其优秀性,被保留了下来。

    为了提供对IP路由的支持,通过对IS-IS进行扩充和修改,使IS-IS能够同时应用在TCP/IP和OSI环境中,形成了集成化IS-IS(Integrated IS-IS或Dual IS-IS)。现在提到的IS-IS协议都是指集成化的IS-IS协议,主要用于城域网和承载网。

    https://blog.csdn.net/qq_46254436/article/details/104844159(已归档至语雀)

BGP

BGP(Border GatewayProtocol)是一种在自治系统之间动态交换路由信息的路由协议。

链路层

错误检测和纠正

三种方法

奇偶校验

二维奇偶校验

检验和

循环冗余检测

多路访问协议

三种

信道划分协议

时分复用,频分复用,码分多址

随机接入协议

Slotted ALOHA

ALOHA

CSMA (carrier sense multiple access)载波侦听多路访问

CSMA/CD(collision detection) 带碰撞检测的CSMA

CSMA/CA(collision avoid) 带碰撞避免的CSMA

轮流协议

polling protocol 轮询协议

token-passing protocol 令牌传递协议

例子:DOCSIS

交换局域网

ARP协议

1.ARP(Address Resolution Protocol,地址解析协议):是将ip 地址解析成以太⽹MAC地的协议

2.ARP 是⼀个独⽴的三层协议,所以ARP 报⽂在向数据链路层传输时不需要经过ip协议的封装,直接⽣成⾃⼰的报⽂。

ARP报⽂

硬件类型:占2字节,表⽰ARP 报⽂可以在哪种类型的⽹络上传输,值为1时表⽰以太⽹地址

上层协议类型: 占2个字节,表⽰硬件地址映射的协议地址类型,映射ip地址时的值为0x0800

MAC地址长度:占1个字节,表⽰MAC地址长度,以字节为单位,此处为6

IP协议地址长度:占1个字节,表⽰ip地址长度,以字节为单位,此处为4

操作类型:占2字节,指定本次ARP报⽂类型,1为ARP请求报⽂,2为ARP应答报⽂

源MAC地址:占6个字节,发送⽅的硬件地址

源IP地址:占4个字节

⽬的MAC“地址:占6个字节,表⽰接收⽅的硬件地址,

⽬的IP地址:占4个字节

3.ARP帧

ARP帧

⽬的MAC地址:占6个字节,如果时ARP 请求帧,要填上⼴播MAC地址 ff-ff-ff-ff ,其⽬标时⽹络上的主机。

源MAC地址:占6个字节

帧类型:占2个字节,表⽰帧封装的上层协议,因为本帧的数据部分是ARP报⽂,直接⽤0x0806(arp协议号)表⽰

4.ARP映射表

(1)动态arp 表项:通过ARP报⽂⾃动⽣成和维护

(2)静态ARP表项:⼿⼯配置(对应设备的ip地址和mac地址绑定)

​ 静态ARP 表项分为:

​ 1.长静态ARP表项:同时绑定IP地址、MAC地址、VLAN和端⼝

​ 2.短静态ARP表项:只配置IP地址和mac

链路虚拟化

a network as a link layer

多协议标签交换

MPLS

MPLS signaling,信令

RSVP-TE:基于流量工程扩展的资源预留协议(RSVP-TE:Resource ReSerVation Protocol-Traffic Engineering)

基于流量工程扩展的资源预留协议(RSVP-TE)作为 RSVP 协议的一个补充协议,用于为 MPLS 网络建立标签交换路径。这个 RSVP 扩展协议主要用于在有或者没有资源预留的情况下支持明确传送 LSP(中文名为分层服务提供程序。 LSP就是TCP/IP等协议的接口.LSP用在正途上可以方便程序员们编写监视系统网络通讯情况的Sniffer,可是现在常见的LSP都被用于浏览器劫持) 的实例。同时它也支持 LSP 的平滑重新路由、优先权及环路监测。

RSVP 协议定义的会话指有明确目的地址及传输层协议的数据流。但当 RSVP 与 MPLS 相结合时,流或者会话的定义具有较大的灵活性和一般性。 LSP 的入口结点使用许多方法来决定给一些数据包分配一个特定的标签。一旦某个标签被分配给一组包,这个标签将会有效地定义通过 LSP 的流。我们将这样的 LSP 看作 LSP 隧道,是因为通过它的流量对沿着标签交换路径的中间结点是不透明的。新的 RSVP 会话、发送方及过滤器说明对象,被称之为 LSP 隧道 IPv4 和 LSP 隧道 IPv6 ,已被用来支持 LSP 隧道特征。从标签交换路径结点的角度来看,这些对象语义上是指基于包独立识别的 LSP 隧道流量,其中这些包是从具有上流发送方结点分配的特定标签值的 PHOP 到会话获取的。事实上,出现在对象名字中的 IPv4 (v6)只表示目的地址是一个 IPv4 (IPv6)地址。一般情况下,当涉及到这些对象时,需要用到限定词“ LSP 隧道”。

在某些应用程序中,连接 LSP 隧道组是很有用的,诸如,在重新路由操作期间或者传播流量在复合路径上时,这样的集合被称为 TE 隧道。为了能够鉴定和连接 LSP 隧道,需要携带两个标识符。隧道 ID 是会话对象的一部分,会话对象唯一地定义了一个流量工程隧道。发送方和过滤器说明对象携带一个 LSP ID,发送方(或者过滤器说明)对象结合会话对象唯一定义一个 LSP 隧道。

摘自通信人https://baike.c114.com.cn/view.asp?word=RSVP-TE

路由器转发规则(做题的时候模糊了)

  1. 源主机在发起通信之前,将Self IP与目的主机的IP进行比较,如果两者位于同一网段(用子网掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在接收到目的主机的ARP应答后获取对方的MAC地址,然后用对方的MAC地址作为目的MAC进行报文发送,位于同一VLAN(网段)的主机互访时属于这种情况,这是互联的交换机做二层交换转发。

  2. 当源主机判断目的主机与自己位于不同网段时,它会通过网关来提交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文目的MAC进行报文发送……也就是路由器的某个端口。注意,报文的源IP是源主机IP,目的IP依然是目的主机IP。

    这里1,2步骤都是先进行IP信息封装处理,再通过ARP进行MAC封装处理(先3层,再2层),解包则相反。

  3. 当网关路由器接收到以太网数据帧时,发现数据帧中的目标MAC地址是自己的某一个端口的物理地址,这时路由器会把以太网数据帧的封装去掉。路由器认为这个IP数据包是要通过自己进行转发,接着它就在匹配路由表(包含目标地址和指向目标地址的指针)。匹配到路由项后,它就将包发往下一条地址。

    路由器转发数据包也是这样,它始终是不会改IP地址的,只会改源/目标MAC。

  4. 万一路由遇到目的MAC是广播地址怎么办?IP的广播有三种:

    255.255.255.255叫本地广播,也叫直播,direct broadcast,不跨路由器。

    172.16.33.255叫子网广播,广播给172.16.33.0这个子网,可以跨路由器。

    172.16.255.255叫全子网广播,广播给172.16.0.0这个主网,可以跨路由器。

    路由器是三层设备,可以隔离广播,但并不是所有广播都隔离。事实上只有本地广播路由器才不转发,对于子网广播和全子网广播,路由器是转发的。为什么呢?我们来看255.255.255.255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。所以路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。

  5. IP数据包经由路由转发的时候 源/目的IP,源/目的MAC是否发生改变,如何改变?

    A—–(B1-B2)—–(C1-C2)——E

    如上拓扑图为例,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据包,那么在主机A形成的数据包的目的IP就是E的IP,源IP就是主机A的IP地址,目标MAC地址就是B1的MAC地址,源MAC地址就是A的MAC地址。

    由A发给路由器B,B经过重封装后,源IP和目标IP是不变的,源MAC地址变成B2的MAC地址,目标MAC地址变成C1的MAC地址,封装完成发送给路由器C,路由器C接收到数据包后和B做的操作是一样的,源IP和目标IP的不变的,源MAC地址变成C2的MAC地址,目标MAC地址变成主机E的MAC地址,然后发送给主机E,这样E就收到了这个数据包,当恢复数据包的时候就是把收到的数据包的源IP地址(主机A的IP地址)和源MAC地址(接口C2的MAC地址)作为他的目标IP和目标MAC地址。


移动网络

重要概念

无线主机,无线链路,基站

跳数(single hop/multiple hops)和是否有基础设施(ad hoc nets)

ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中的错误纠正协议之一。 它通过使用确认和重传这两个机制,在不可靠服务的基础上实现可靠的信息传输。 如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。

无线和移动是两个主题,要加以区别

wireless-无线

Wireless links, characteristics-无线链路和其特性

CDMA code division multiple access码分多址

image-20230215213634060

img

mobility-移动性

网络安全

重要概念

密码学原则

对称加密

非对称加密

宏观原理可以看https://www.51cto.com/article/742131.html(已归档),解释得比较通俗,不过书上的公钥私钥是(n,e)和(n,d),需要甄别

HTTPS

对称加密

非对称加密

SSL

建立在传输层之上的安全协议

IPsec

应用在网络层的安全协议

ESP

AH

SA

security association

多媒体

endtag