赞
踩
分组交换则采用存储转发(整个包必须到达路由器,然后才能在下一个链路上传输)技术。
在发送端,先把较长的报文划分成较短的、固定长度的数据段。
在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存、链路传输速率)




客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户-服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
服务请求方和服务提供方都要使用网络核心部分所提供的服务。
没有永远在线的服务器
任意终端系统直接通信
对等方向其他对等方请求服务,向其他对等方提供服务
对等体间歇连接并更改IP地址

进程间通信利用套接字(Socket)发送和接受消息来实现
统一资源定位器
<协议>://<主机>:<端口>/<路径>
超文本传输协议
基于web的应用层协议
C/S结构
非持续连接
持续连接
RTT(往返时延):从客户机发送一个很
小的包到服务器并返回所经历的时间
HTTP响应时间:



请求方法:



Cache-Control:通过指定指令来实现缓存机制。
Host:指明了请求将要发送到的服务器主机名和端口号(可选)
User-Agent:指明用户代理,即浏览器的类型
Accept:列举用户代理希望接收的媒体资源的MIME类型
Accept-Language:用来提示用户期望获得的文档自然语言的优先顺序
Accept-Encoding:明确说明了(接收端)可以接受的内容编码形式(所支持的压缩算法)
Accept-Charset:用于告知服务器该客户代理可以理解何种形式的字符编码(如今UTF-8编码已经得到了广泛的支持,成为首选的字符编码类型。为了通过减少基于配置信息的信息熵来更好地保护隐私信息,大多数浏览器会将Accept-Charset首部移除:Internet Explorer8、Safari5、0pera11以及Firefox10都已经不再发送该首部。)
Server:包含了处理请求的源头服务器所用到的软件相关信息
Last-Modified:包含源头服务器认定的资源做出修改的日期及时间
ETag:资源的特定版本的标识符。这可以让缓存更高效,并节省带宽,因为如果内
容没有改变,Wb服务器不需要发送完整的响应。如果给定URL中的资源更改,则一
定要生成新的Etag值
Accept–Ranges:标识自身支持范围请求,字段的具体值用于定义范围请求的单位
Expires:响应头包含日期/时间,即在此时候之后,响应过期。如果在Cache
Controll响应头设置了"max-age”或者"s-max-age”指令,那么Expires头会被
忽略。
Content-Type:用于指示资源的MIME类型(媒体类型)
Content-Length:用来指明发送给接收方的消息主体的大小,十进制数字表示的八位字节的数目
Content-Language:用来说明访问者希望采用的语言或语言组合,这个首部还可以用来描述不同媒体类型的文件,而不单单局限于文本型文档。
Content-Encoding:用于对特定媒体类型的数据进行压缩。当这个首部出现的时候,它的值表示消息主体进行了何种方式的内容编码转换。这个消息首部用来告知客户端应该怎样解码才能获取在Content-Type中标示
的媒体类型内容。
1xx表示通知信息的,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,表示要完成请求还必须采取进一步的行动。
301永久移动,域名重定向
302临时性重定向,资源被分配到新的URI,希望用户本次可以使用新的URI访问
303请求对应的资源存在另一个URI,应使用GET方法重定向获取资源。
304找到资源了,但是不符合条件,一般用于缓存,代表缓存资源不符合需求
307临时性重定向,与302有着相同的含义,不会从P0ST方法换成GET方法
客户端响应:
4xx表示客户的差错,如请求中有错误的语法或不能完成
400 Bad Request
404 Not Found
服务器端响应:
5xx表示服务器的差错,如服务器失效无法完成请求
505 HTTP Version Not Supported

条件GET

HTTP1.1发送一个Web页面的所有对象存在队首阻塞。HTTP2把每个报文分成小帧交错传输,解决阻塞。

基于TCP在客户和服务器之间传递email,端口号为:25
直接传输:发送服务器到接收服务器
传输的三个阶段

基于UDP

被查询服务器返回域名解析服务器的名字

将域名解析的任务交给所联系的服务器

有一个集中式目录服务器,用户X询问Napster谁有资源m,服务器回应a,b,c。X再随机选一个请求。
洪泛法在用户之间查询
CDN的基本原理是依靠放置在各地的缓存服务器,通过全局调度,内容分发等功能模块,将用户需要的那部分内容部署到贴近用户的地点,将原本低效、不可靠的IP网络转变成高效、可靠的智能网络,满足用户对内容访问质量的更高要求,改善互联网网络拥塞问题,提高用户访问网站的响应速度。
提供应用进程之间的通信机制
报文头8字节

发送方UDP对报文段所有16比特字的和求反,放在检验和字段。求和时如果最高位有进位就进到末位。
参考https://blog.csdn.net/qq_53144843/article/details/120896557
rdt_send():被上层应用调用,将数据交给rdt以发送给接收方
udt_send():被rdt调用,在不可靠的信道上发送数据给接收方
deliver_data():被rdt调用,向上层应用交付数据
rdt_rcv():数据包到达接收方时被调用
假设以下理想条件:

接收方:一个状态,等待下层调用,当传入一个分组,rdt_rcv接收,extract提取,交付给上层deliver_data
底层信道可能传输错误比特
自动重传请求协议ARQ:使用ACK和NAK通知发送方接收状态。


接收方:当传入一个分组,rdt_rcv接收并且进行判断,如果没有错误extract提取,交付给上层deliver_data并返回ACK,如果发生错误,则直接返回NAK,并处于等待接收状态
时序图:

如果ACK/NAK损坏,发送方重新传输当前pkt
发送方给每个pkt增加序列号
接收者丢弃重复的pkt
发送方:

接收方:

发送方:等待上层调用,序列号为0,若上层调用,则产生rdt_send,创建packet活动(此处加入序列号)并加入校验盒,调用信道上的udt_send(),发送分组,同时进入等待ACK/NAK状态,若为NAK,则重传分组,继续等待ACK/NAK,一直处于该状态,若传回ACK,则进入等待调用状态,并改变序列号为1
接收方:当传入一个分组,rdt_rcv接收并且进行判断,如果分组没有错误,并且期望收到分组序列号与当前序列号相同,则extract提取,交付给上层deliver_data并返回ACK;如果发生错误,则直接返回NAK,并处于等待接收状态;若接收分组没错,序列号不匹配,则必须发一个ACK,表示正确接收
时序图:

不需要NAK
接收方发送最后一次正确接收到的分组的ACK来代替NAK

信道也可能丢失分组,增加了超时处理
发送方等待ACK合理时间,如果到时未收到ACK,则重新传输;
如果分组或ACK仅仅延迟而没有丢失:

发送方在收到ACK之前可以连续发送多个分组,从而提高利用率。





接收方单独确认所有正确收到的分组



序列号:
累积确认
快速重传:如果sendert收到对同一数据的3个ACK,则假定该数据之后的段已经丢失,在定时器超时之前即进行重传
接收方通过在接收方到发送方的TCP报头中包含rwnd值来“通告”空闲缓冲区空间
发送方限制自己已经发送的但还未收到ACK的数据不超过接收方的空闲RcvWindow尺寸
三次握手

四次挥手

太多的主机发送太多数据或者速度太快,网络无法处理
表现形式:
原理:发送方增加传输速率(窗口大小),探查可用带宽,直到发生丢失
事件:Timeout或3个重复的ACK

丢失事件细节:
连接开始时,以指数2^n方式增加速率(窗口大小cwnd),直到发生第一次丢失事件
超时导致loss:
阈值变量sthresh
loss事件发生时,sthresh被设置为loss事件前的cwnd值的1/2
cwnd上升到sthresh后开始线性增长。
线性增长也叫拥塞避免
Wmax:检测到拥塞丢失的发送速率
瓶颈链路的拥塞状态可能变化不大
在切割速率/窗口减半后,最初更快地斜坡到Wmax,但随后更缓慢地接近Wmax

功能:
转发:将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作
路由选择:确定分组从源到目的地所选用的网络路径

仅根据目的地IP地址的转发
最长前缀匹配: 根据目的地址查找转发表条目时,选择与目标地址匹配的最长地址前缀。

根据任意首部字段值的集合的转发




循环扫描类别队列,依次从每一个类别发送一个完整分组(如果有的话)

在每一轮循环中,每一类i获得加权数量wi的服务


一个大的报文会被拆成多个报文,在目的地进行重组。IP首部字节用于识别排序分片。
最大传送单元MTU:一个链路层帧能承载的最大数据量
IP地址:32bit主机ID/路由器接口
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,它标志该主机(或路由器)。

特殊IP地址:

设备接口,无需通过中间路由器即可物理连接到彼此


允许主机加入网络时从网络服务器中动态获取其IP地址。
DHCP可以提供:

本地网络中的所有设备在“专用”IP地址空间(10/8、172.16/12、192.168/16前缀)中都有32位地址,但只能在本地网络中使用



流表:

使用迪杰斯特拉算法,每一次迭代都选最短的一条的节点。所有路由器掌握网络拓扑和链路费用






域内路由选择:
为了使OSPF能够用于规模很大的网络,OSP将一个自治系统再划分为若干个更小的范围,叫做区域。

区域边界路由器:“汇总”到达区域内内部网络的距离信息,并广播到其他区域边界路由器
主干路由器:仅在主干路由器中运行OSPF
边界路由器:连接到其他的自治域。

在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
主干区域(Area 0)是所有其他OSPF区域(非零区域)的中心枢纽,起到了路由信息分发和汇聚的作用。
区域边界路由器负责在OSPF的主干区域和其他区域之间传递路由信息。
主干路由器

区域边界路由器

eBGP:从邻居自治域获取子网可达信息
iBGP:传播可达信息到所有自治域内部的路由器


选择具有最小域内开销的本地网关(烫手山芋)




主机及路由器使用ICMP以交互网络层面的信息。
IP数据报承载ICMP消息
结点(nodes):主机和路由器
链路(links):一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
数据链路(data-link layer):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
帧(frame):数据链路层数据单位,封装网络层数据报

头尾添加开始符,结束符。中间冲突字符转义。

假定:



发送帧之前,监听信道
载波监听多点接入/碰撞检测


发生碰撞的站在停止发送数据后,要推迟一个随机时间才能再发送数据。


A通过路由器R向B发送数据报:
有线LAN技术


带碰撞避免的CSMA(CSMA/CD是碰撞检测)
交换RTS和CTS帧来实现碰撞避免

会对正确接收到的数据帧ack确认
帧结构:

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。