- 工作在网络层(属于TCP/IP协议集)
- 提供无连接的数据报传送机制
- 只提供服务 不保证可靠性(不排序,不确认)
- 无连接的数据报传输
- 数据报路由
- 分组 的 分段及重组
A类:
0 1 8 31
0 网络标识符 主机标识符
网络号: 主机号:1~-2
B类:
0 1 2 16 31
1 0 网络标识符 主机标识符
网络号: 主机号:
C类:
0 1 2 3 24 31
1 1 0 网络标识符 主机标识符
网络号: 主机号:
私有地址与保留地址
私有地址:及在互联网不适用仅在局域网使用的地址
通信规则:不在同一个子网中的主机不能相互通信(子网号用子网掩码与上IP地址进行计算)
主机号全”1“为广播地址,全”0“为本网地址
IP分组由分组头与数据区两部分组成。
分组头:存放具体的控制信息
数据区:包含上层协议交给IP协议的传送数据
转发过程中的分段与重组
当分组长度大于MTU时分块
每个分块的长度位8的整数倍,最后一段可以任意小
每个分段含有一个分组头
除分段位移、MF标志位|校验和字段外,其余与原始分组相同
(重组是分段的反过程)->重组时 , 只有当MF=0且offset=0时才位一个完整的分组
完成IP地址到物理地址的转换 (主机有两个地址,一个是物理地址,一个是IP地址)
因为数据链路层通过物理地址来发送
工作于网络层
通过查找ARP表来进行转换
在发送数据前,在ARP表中获得MAC地址(物理地址),若没有则进行广播,与IP地址对应的计算用自己的MAC地址更新ARP表并向请求主机发送响应。无响应则代表不存在。
取消IP地址的分类结构(因为采用分类结构有些浪费空间)
使地址从三级编址变为两级编址
是一种网络差错与状态报告机制,将差错传给主机
工作与网络层,在IP协议之上工作
(封装在IP分组中进行传输)
为防止一次涌入路由器的分组过多,TCP/IP采用 源抑制技术
三个阶段:
- 路由器发现拥塞,发出ICMP 源抑制 报文(周期性测试、监视)
- 源主机收到1.的报文后,以一定速率降低到某目的节点的传输速率
- 拥塞接触后,源主机恢复原先的传输速率
在分组发送的过程中,不断使发送路径达到最优
ICMP重定向保证了主机拥有一个动态的、即小又优的路由表
将目的地址从外部地址转换为内部地址或反过来(是一种双向地址转换)
采用NAT表,其中记录:
- IP地址
- 端口号(路由器端口)
- 出:源地址信息替换;入:目的地址信息替换
为客户机指定IP地址与相关的一组配置参数
(手工分配、自动分配、动态分配)
- 寻找服务器(DHCP discover)
- 提供IP租用地址(服务器选择 DHCP报文 并提供最前端的报文)(DCHP offer)
- 接受IP租约( 客户端 收到 DHCP服务器的提供报文,之后以广播的方式向选中的服务器请求IP地址)(DHCP request)
- 租约确认(服务器接受请求并判断IP地址与自己的是否匹配)(ACK)
- IP地址释放(客户端 向 服务器发送释放请求,服务器进行IP地址的释放)
1.尽力而为模型:使用先入先出队列,无任何保证
2.综合服务模型:
通过监视,防止资源的过多消耗
采用RSVP(资源预留协议)为基础,保障QoS
RSVP:根据应用要求进行 资源预留 与 实时监控
该模型定义了3中业务:
- 有保证业务:保证带宽,限制延迟,无丢包
- 控制负载业务:在较轻的负载中类似于 尽力而为业务
- 尽力而为业务
3.区分服务模型(以DiffServ服务模型为例):
IP网络QoS技术中IntServ服务分类及DiffServ服务类型_weixin_33973600的博客-CSDN博客
其重点放在流集中
制定一个可扩展性相对较强的方法
DiffServ服务模型核心思想: 网络边界将数据量按QoS要求分类,不同类节点实现不同转发特性。
方法:设置DS字段为服务等级,DS值将数据报映射到PHB中,从而在转发过程中进行区别对待
其定义的三种服务类型:
- 尽力而为
- 奖赏服务(PS):是边界到边界的传输协议,用”三低一保证“策略防止局部超速导致排队
- 确保服务(AS):保证用户拥有一定的预约带宽,着眼丢失率,订购带宽内的流量与订购带宽外的流量丢弃概率不同。
IPV4与IPV6的区别(史上最详细)_程序猿来是你的博客-CSDN博客_ipv6和ipv4的区别
ipv4的缺点:地址空间不足、维护路由表数量过大、自动配置与重新编址不易、安全问题
ipv6的有点:128位地址空间充足、层次化网络结构、头部简单灵活、支持自动配置、端到端安全、更利于支持QoS、支持移动性
其中,基本头部由一下字段控制:
IPv6是通过链式结构来进行扩展头部的长度的,有下一首部那一段指向下一段的头部
下面是几种扩展报头:
逐跳选项头(Hop-by-hop Options Header)
传送必须被转发路径中的每一个节点都检验处理的信息。例如,路由器告警和超大包有效载荷选项等。目的选项头(Destination Options Header)
承载特别针对数据包目的地地址的可选信息路由头(Routing Header)
本扩展报头类型值为43,通过列出在到达目的地的路径中数据包所要经过的节点列表来提供源路由选择的功能。分段头(Fragment Header)
本扩展报头类型值为44,用于标识数据报的分段,在IPv4中就有对应的字段。当源节点发送的报文超过传输链路MTU(源节点和目的节点之间传输路径的MTU)时,需要对报文进行分段时使用。认证头(Authentication Header,AH)
本扩展报头类型值为51,该包头由 IPSec 使用用,以提供认证、数据完整性和防重放保护。它还确保基本IPv6 包头中一些字段的保护。该包头在 IPv4 和 IPv6 中是相同的. 通常称之为 IPSec认证包头 (AH)用于IPSec,提供报文验证,完整性检查。封装安全有效载荷头(Encapsulating Security Payload,ESP)本扩展头类型值为50,用于IPSec,提供报文验证、完整性检查差和加密。
每个16位用 16进制表示
简写:若两个:之间都位0则可以用::表示,例如:FF05:0:0:0:0:0:0:B3可以写成FF5::B3
CIDR中使用的网络前缀仍然可以使用(/掩码中1的个数)
基于数据的目的端地址可以将IPv6划分为一下三种类型
- 单播 单播就是传统的点对点通信。
- 组播 是一对多的通信数据报发送到一组计算机中的每一个。
- 泛播 是IPV6新增加的类型。任播的终点是一组计算机但数据报只交付给其中的一个通常是距离最近的一个
IPv6是下一代互联网所使用的地址协议,是在IPv4的基础上发展起来的,有相同点也有异同点。
(除上述地址之外还有:未指明地址、回送地址、IPv4兼容的IPv6地址、IPv4映射的IPv6地址、本地链路单播地址)
因为单播的数量最多,所以IPv6将1/8的地址分给全球单播
1.双栈技术
双栈节点与IPv4节点通信使用IPv4协议栈,IPv6节点通信使用IPv6协议栈
IPv6应用 IPv4应用 Sockrt API TCP/UDP v6 TCP/UDP v4 IPv6 IPv4 数据链路层 物理层 如何知道双栈地呢?——>使用DNS(域名系统)查询,观察其返回类型
2.隧道技术
提供两个IPv4节点之间用IPv6网络实现通信连接,提供两个IPv6节点之间用IPv4网络实现通信连接
采用的是将IPv4封装在IPv6协议中,采用的是将IPv6封装在IPv4协议中。
优点:只需要在 两种 网络的边缘 使用这种协议即可
3.IPv4/IPv6协议转换技术
两种网络(协议)之间的互通技术(协议转换技术)
与前面两种只为了实现节点之间的互通不同,这个实现的是协议上的互通
其有多种类型最常见的两种如下:
- SIIT(无状态 IP/ICMP翻译)
只转换,不记录状态(地址池空间限制IPv6节点的数量)
是两种分组头之间的转换
- NAT-PT(Network Address Translate-Protocol Transaction)
允许 两种不同的 只支持其中一种协议的的几点进行互连
为方便管理,INternet将整个网络划分为相对较小的自治系统(AS(一个行政单位独立管理的的网络)),不同AS通过边界互连。
内部路由器交换路由信息的协议。因为AS内部路由器在统一管理下,所以一般的通信方式为:全部参与、直接交换的方式 。之后的RIP、OSPF协议都是IGP
不同AS之间的路由器之间交换路由信息的协议。因为位于不同的路由器,路由信息的交换只在相邻的边界进行
是距离向量路由算法直接而简单的实现
RIP中使用跳数来衡量达到目的节点的距离。(到其直接相连的路由器的距离为1,并设置最大跳数为16即一条路径只能包含15个路由器)
一种链路状态开放协议。在这个AS中,所有路由器共同维护一个相同的描述这个AS结构的 存放该路由域中相应链路状态信息 的 数据库。并通过该路由器计算出其OSPF路由表。
比RIP的优势:
- 开放性好
- 距离尺度多样
- 支持负载均衡
- 支持分层系统
- 支持隧道技术
其将网络划分为4种类型:
广播式 非广播式 点到点 点到多点
思想:一个AS可以划分成多个区域,其中有一个主干(区域0),所有区域与主干相连,可以将OSPF路由器分为以下几类
OSPF协议的链路状态广播数据包共分成以下5类:
OSPF协议由Hello协议、交换协议、扩散协议组成
OSPF协议的具体工作过程如下:
在不同AS之间路由器进行路由交换的协议。(前身是EGP)
也是一种距离向量路由协议,其会存放一张AS的拓扑图
通过TCP连接传送路由信息;
采用路径向量(path vector)算法,路由信息中记录路径的轨迹
建立了BGP会话连接的路由器被称作对等体(peers or neighbors)
对等体的连接有两种模式:IBGP(Internal BGP)和 EBGP(External BGP)
IBGP :内部BGP邻居
EBGP:外部BGP邻居
IBGP邻居的防环机制:IBGP 水平分割机制(IBGP只传一跳规则,通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居);next-hop、起源者属性、簇ID列表.
EBGP邻居的防环机制:AS-Path AS路径防环,不接收AS-Path中包含自身AS号的路由信息AS内部的BGP路由器必须将相同的路由信息发送给边界的EBGP路由器。
路由信息 在通过IBGP链路时不发生改变 在通过EBGP链路时发生改变
BGP以下四种消息类型 :
1.建立会话 2.交换Open消息 3.交换初始路由信息(包括所有BGP路由,及BGP路由表所有条目) 4.初始化完成后,只有当路由表出现改变或失效时,才会发出增量的、触发性的更新
传输层有两个并列的协议:TCP是面向连接的面向连接的、可靠的、端到端的、基于字节流的传输协议;UDP是无连接的。前者可靠,后者高效
端口分为两部分,一部分为保留端口,另一部分为自由端口
进程与远地进程通信前,要获得自己的带端号,同时要获取远方端口号
获得远方端口号的3种方式:
- 对方是服务进程,使用保留端号
- 通信前约定了端口号
- 在注册服务器中注册了自己的端口号,通过查询注册服务器来获取其端口号
其是封装到IP分组中进行传输的
过程:
伪报头位于UDP报头之前,用于验证UDP数据报是否被送到正确的目的节点。
伪报头的5个字段:
路由节点将IP分组转发到目的主机,目的主机的IP协议处理后交给UDP,UDP再根据目的端口号进行多路分解。
牺牲效率换取高可靠
报文长度限制在64k,长报文需要分段处理后才能进行传输。
面向字节流,无法确定边界
采用全双工的连接方式
数据的传输过程
建立连接阶段采用三次握手协议,连接释放阶段采用对称释放方式
建立连接
过程如下
- 主机A发送一个SYN被置为1的连接请求报文
- 主机B收到报文后,发送SYN与ACK均被置为1的报文
- 最后,A再发送一个ACK为1的报文(通知B双方已建立连接)
(在建立连接的同时还对两方的起始序号进行了确认)
连接释放
两边的连接都要释放
https://blog.csdn.net/qq_56289291/article/details/126120401?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167397952116782429764639%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167397952116782429764639&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-126120401-null-null.142^v71^control,201^v4^add_ask&utm_term=TCP%E7%9A%84%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6&spm=1018.2226.3001.4187
发送机制
TCP 维持一个变量,它等于。 只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去最大报文段长度 MSS
由发送方的应用进程指明要求发送报文段,即 TCP 支持的操作推送(push)
发送方的一个计时器期限到了,这时把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去
TCP管理的4个主要定时器
1.重传定时器:重要的使对一个特定连接往返时间的测量
2.坚持定时器:为防止ACK报文的失效,用坚持定时器周期性地检查接收方
3.保活定时器:用于检查空闲连接地另一端是否崩溃
4.2MSL定时器:测量一个处于TIME_WAIT状态地时间
TCP流量控制
主要用于解决收发双方处理能力不匹配的问题(处理慢,报文到来快)
采用滑动窗口协议实现流量控制 基于确认和可变窗口大小
窗口大小为0时,正常情况下,发送方不能再发TCP段,但有两个例外 紧急数据可以发送
为防止死锁,发送方可以发送1字节的TCP段,以便让接收方重新声明确认号和窗口大小。
设定窗口大小为2kb,在B的回送报文中,如果WIN(窗口大小)的值为0则A停止发送
主要参数
包含以下几个阶段
- 慢启动:基本思想:采用由少到多的发送策略(防止因刚开始不清楚网络状态而引起的拥塞)当到达拥塞窗口大小(cwnd)等于ssthread时改用拥塞避免算法 ,
- 拥塞窗口cwnd初始化为一个MSS
- 收到一个ACK后cwnd增加一个MSS
- 开始时,发送方发送一个报文段,等待ACK收到ACK后拥塞窗口以指数的方式增长直到cwnd<=ssthread
- 拥塞避免:
- 拥塞窗口以一个往返时间单位线性增长(此阶段与ACK的数量无关,即与ACK无关)
- 产生3个相同ACK的确认帧,进行拥塞控制
- 将ssthread设置为窗口值的一半,窗口值取rwnd与cwnd的最小值,进入慢启动阶段
- 快速重传:
- 接收方收到紊乱次序的TCP报文后,立即向发送方发送重复的ACK应答,用来重申接收方期望的序号
- 当接收方收到发送方填补的缺失后,接收方发送一个新的ACK(避免发送方重传定时器超时)
- 快速恢复:
- 收到3个ACK确认帧后将ssthread窗口设置为当前拥塞窗口的一半
- 重传丢失数据,并将cwnd的值设置为ssthread(也有的设置为ssthread+3)
网络的应用层是互联网访问的接口
常用的应用层协议包括:DNS、FTP、SMTP、HTTP
应用层协议 |
网络应用 |
采用的传输层协议 |
SMTP |
电子邮件 |
TCP |
FTP |
远程文件传输 |
TCP |
Telnet |
虚终端 |
TCP |
HTTP |
Web服务 |
TCP |
DNS |
域名解析 |
TCP或UDP |
SNMP |
网络管理 |
UDP |
RTP |
流媒体传输 |
TCP或UDP |
一个应用层协议考虑的设计内容:
是指处理、组织网络上数据的方式(如P2P、客户/服务器、浏览器/服务器)
主要采用2两种方式支持多客户同时访问,重复型服务程序、并发型服务程序
重复型
系统资源要求不高
处理一个请求时,其他请求必须等待
一般用于处理可在预期时间内完成的请求
并发型
实时性与灵活性好
系统资源调用要求较高
一般用于处理不可在预期内完成的请求
一部分事务逻辑在前端实现,但主要是在服务器端实现,客户主机的访问接口是通过www浏览器实现的
与前两种不同的是:任意一个节点都可以作为服务器或者客户端,其优点在于分布式自控能力,降低了对服务器的依赖程度
其机构主要有3种:
集中式结构
主要特点是集中控制,系统种存在着中央服务器
效率高,容错率低
分布式
是一种无中心化的分布式结构
以广播形式散发查询消息
效率,容错率高
混合式
域名系统是一个典型的客户/服务器模式的系统
是一个多层次的、基于域的命名系统,并使用分布式数据库实现这种命名机制。
网络规模比较小时,找到与IP地址有对应关系的文件
网络规模很大时,采用DNS系统
DNS(根域名服务器)
其将域名空间划分为许多无重叠区域
每个区域有本地服务器,对这个空间进行管理
区域边界是人工划分设置的
在每个区域中,有
域名的解析过程:
根域名服务器:
DNS的查询:
DNS所采用的资源记录:RR(分布式数据库)
RR 格式: (name, value, type,ttl)
SMPT协议(简单电子邮件传输协议)
可以跨网络传输邮件
通过“SMTP邮件中继”,既可以实现相同网络上处理机之间的邮件传输,也可以实现跨网络邮件传输
发送者将邮件发送到接收者的邮箱,经历了以下三个步骤
- 发送者用户代理通过SMTP协议将邮件发送到自己的本地邮件服务器
- 在时机成熟后(例如发送缓存队列到达一定的长度,或者等待了一定的时间),发送者的邮件服务器通过SMTP协议将邮件发送到接收者的邮件服务器
- 接收者用户代理通过邮件访问协议(例如POP3,IMAP4等)访问自己邮件服务器上的邮箱
电子邮件格式:
MIME协议(多用途Internet邮件扩展协议)
用于支持SMTP简单性的一个补充协议
邮件报头的各个关键词的含义
- From:表示邮件发送者,包括邮件地址,还可能包括发送方的“真实姓名”
- Received:接收邮件的路径、日期、时间以及邮件传输代理程序的版本号。
- Date:发信时间。
- Message-ID:由传输代理分配给该邮件的唯一标识。
- To:收件人的电子邮件地址。
- Subject:邮件主题,是发件人写的,告诉收件人发送该邮件的目的。
- Content-type:邮件正文的类型,是文本还是MIME格式。
- Content-length:邮件正文的长度。
- Cc:表示抄送,它是“Carbon copy”的缩写,意为“复写副本”,它用来指定那些将收到该邮件副本的人的邮件地址。
- Reply-To:表示对方回信时用的地址。该地址可能和发送方发信时用的地址不一致。
数据编码方法分为base64与QP
SMTP的实现
为确保邮件能够正常发送SMTP再传输层使用面向连接的TCP
在这幅图中
邮件接受收协议
- POP: Post Office Protocol [RFC 1939]
- 认证 (agent <-->server) 和下载(确认身份,认证成功进入操作阶段)
- 用户代理和邮箱不在同一机器上,用户代理使用此协议将邮箱中的信件取回本地
- IMAP: Internet Mail Access Protocol [RFC 1730]
- 更多功能(更为复杂) (在线方式(邮件保留于服务端),离线方式(邮件保留于客户端),分离方式(一半一半))
- 收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中
- 在服务器中操作存储在那里的报文
- webmail方式即使用浏览器,通过HTTP访问
- 这种方式下,用户需要在web站点上,按照要求,输入用户命令口令,最后客户的邮件就可以以HTML的格式传送到客户的浏览器上,用户还可以通过浏览器完成发送邮件,管理邮件的功能
信息由对象组成,统一组成,管理。
采用超文本组织这些web对象,采用超链接将自己与其他对象进行关联
WWW服务报包含3个部分:
www通过一个统一资源定位器(URL)提供一个唯一的定位方法格式为:协议(protocol)://域名(machineaddress)[:端口][/文档路径][/filename(文件名)]
浏览器确定URL,通过DNS解析IP地址,建立TCP连接
向服务器发指定协议的get请求,取回网页
释放连接,显示文本
采用客户/服务器工作模式
HTTP协议由一套从浏览器发往服务器的请求和一套从服务器发往浏览器的响应组成。
非持久和持久连接:
非持久:HTTP1.0工作过程(用户键入一个URL后)
- 客向服发送TCP请求并建立连接
- 服确认连接后,客向服发送一个HTTP请求报文
- 服收到请求报文后返回HTTP响应报文(包含web主页面)
- 释放TCP连接
- 客一边解释文件一边显示
持久:HTTP1.1
在非持久的基础上在某个连接闲置一段时间后再关闭它
持久连接http2.0和1.1的主要区别:二进制分帧、首部压缩、流量控制、多路复用、请求优先级、服务器推送
HTTP报文格式:
请求报文:
GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Accept-language:fr
(额外的 carriage return, line feed)
应答报文:
HTTP/1.0 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
data data data data data ...
HTML
超文本编辑语言
基于标准通用 标记语言(SGML)开发的,通过各种 标记 描述web的外观等
web网页一般可以分为3类:
Cookie:
希望建立起同一用户不同请求之间的关联
过程:
客户端浏览器会将Cookie的值保存起来,下次发送HTTP报文,就包含该Cookie的值,web通过Cookie将请求报文与客户建立起关联
远程文件传输
FTP(文件传输协议):是Internet完成从一台主机到另一台主机的文件传输协议
如果用户希望将文件从本地传输带FTP服务器,成为上传
希望文件从FTP服务器传输到本地称为下载
两种连接:
被动模式和主动模式:(是针对端口选择的方式来说的)
主动模式:在建立连接时,Port命令中包含客户端用哪个端口接收数据,服务器需要通过自己的数据端口连接至客户端指定的端口发送数据。这种情况下FTP服务器和客户端建立一个新的连接用来传送数据
被动:由服务器随机打开一个端口发送给客户端,,FTP直接用这个端口进行数据传输,不需要建立一个新的和客户端之间的连接