IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络的学习 -> 正文阅读

[网络协议]计算机网络的学习

概述

ISP互联网服务提供商,由上到下分不同层级,同级主干ISP间有IXP使转发更高效;

P2P(peer-to-peer)对等连接,在两端分别具有对等连接的功能,则此时两者被视为一个相互的通信体,与C/S模式相对应;

数据链路层

1. 封装成帧:接收到的IP分组为帧的数据部分,存在MTU(最大传输单元)限制分组单位大小以及帧界定符(SOH、EOT);

2. 透明传输:对数据内的与首位重名的进行转义;

3. 差错检测:循环冗余检测(CRC):

适配器:与主机内部,由I/O总线传输数据,装有ROM(硬件地址)和RAM等存储器,作为CPU与局域网的中间器件,进行拆帧装帧

存在以一对一(PPP协议:用户与ISP间的点对点链路建立以及帧格式规定)与一对多(CSMA/CD:载波监听(不停地检测其他信道是否也在发送)与碰撞检测(通过适配器电压变化判断是否多站正在同时发送,然后停止一小段时间))两种传输方式;



网络层(主机间逻辑通信,向上只提供无连接的、尽最大努力交付的数据报服务)

IP地址为逻辑地址,仅供网络层以上使用;

1. 地址解析协议(ARP),在同一局域网间主机互相分帧时,存在于每个主机中动态更新的映射硬件地址和IP地址的cache,对每次装帧传输加以记录,对待不同局域网间主机,会进一步广播得到路由器的回馈;

2.IP数据报的格式:版本/首部长/区分服务/总长度<=MTU/ + 标识/标志,分片用的/片位移,标定分片位置/ + 生存时间,跳数限制/协议,表明带的是什么协议/首部检验和,与首部相加去反码接收端再反求证此段是不是全0,只检验首部有无差错/ + 源地址32位/ 目的地址32位。共20字节;

3. 特定路由:专门为一个主机指定路由路线;默认路由:嫌麻烦,直接目的网络为一个路由器的标为“其他”若其余都不匹配就走这个默认路由。

4. 子网:分割主机位前面几位做子网划分,成为了三级IP,对于路由器,用子网与网络号全为1的掩码与目标IP相“与”得出子网号;

5. CIDR:路由聚合(构造超网)32位IP地址前缀x位被定为一个区域,这样从ISP下达一级一级到大学或者企业等内部独立划分管理被分到的主机号,对于路由器该如何选择与路由表中多个匹配掩码的结果,应该以最长前缀的结果为参考,因为这样就可以略过上级的再路由而直接转发到最具体的目标主机所在域;

6. ICMP网际控制报文协议:主要应用于PING,应用层直接调用IP层,得出两主机的往返时间;

7. 路由选择协议:在一个自治系统间路由器如何选择路由线路;

????????①RIP,使用UDP作为传送协议,以跳数为单位,有跳数限制,仅在相邻路由器间按固定时间????????间隔交换路由表(到所有网络的距离和下一跳路由器),实现简单开销小;

????????②OSPF开放最短路径优先,实现了Dijkstra的最短路径算法,利用泛洪法向区域内所有相邻????????路由器发送信息(到这个路由器的代价),只有在变化时才发送,而且只有IP数据报分????????送,形成全网的拓扑结构的数据库,再由算法得到路由表;

????????③BGP自治系统间路由,存在“发言人”边界路由器负责与其他区域通信,使用TCP连接通信;



运输层(进程间逻辑通信)

UDP

  • 无连接:减少开销和时延;
  • 面向报文:每次交付一个完整的报文(在其前面加首部);
  • 无拥塞控制,不影响源主机的发送速率;
  • 支持多对多,一对多,多对一等交互通信。

首部格式(8字节,4个字段)

①源端口②目的端口③长度④检验和(首部和数据部分都检验);

TCP

  • 建立连接的全双工通信,且仅能为点对点;
  • 可靠交付:无差错,不丢失重复;
  • 面向字节流,利用套接字(IP:PORT)方式端对端连接;

首部格式(20字节):

①源端口②目的端口③序号(每个字节的编号,mod 2^32运算)④确认号(期待收到的下一个序号)⑤数据偏移⑥六个控制位 URG(优先级设置)、ACK(确保上面的确认号有效)、PSH、RST、SYN(连接请求)、FIN(连接释放)⑦窗口(允许发送量,动态变化)⑧检验和

可靠传输原理及实现

  • 停止等待协议:接收方检查出错误丢弃等待超时重传,要求发送方发完后不能立马删除需要存一会以防再发;同时还存在丢失确认:丢弃超时再发的分组再传一次确认,以及迟到的确认予以丢弃处理;
  • 滑动窗口:窗口内包含允许连续发送的分组序号,在确认收到时候右移,发送端和结束端都有;
  • 流量控制:发慢点,收不过来了;对发送方的发送窗口实行大小限制(通过会送确认报文时候);
  • 拥塞控制:防止过多数据注入网络中,减少路由器的负载,不同于流量控制的端到端的过程,拥塞控制为全局性的过程,通过是否超时判断拥塞与否;

? ? ? ? ①慢开始:由小到大逐渐增加窗口值,每收到一个确认报文就增大一点;

? ? ? ? ②拥塞避免:存在窗口单位的阈值门限,到达后改变增长方式,超时会再次降低门限;

? ? ? ? ③快重传:接收方对于未收到的分组直接三连一波上一个确认分组以防对方误解为拥塞;

  • 主动队列管理AQM:路由器队列在达到一定长度时候主动丢弃尾部分组,使发送方提前意识到拥塞进而进入慢开始状态,一般为全局同步发生,即多条TCP连接同时进入慢开始状态;

三握四挥(C/S)

三握(三个报文段的交换):客户端主动向服务器发起请求(SYN为1),序号为x,服务器收到后向客户端发送SYN和ACK皆为1的确认报文,序号为y且确认号为x的下一个,客户端收到同意后还要再发个序号x+1,ACK为1,确认号为y+1的确认报文;最后一次确认是为了防止已失效的连接请求让服务器进程干等;

四挥:客户端主动发送一个序号为上一个报文段序号加一x,且FIN为1的释放报文,服务器收到后发送一个序号为上一个报文段序号加一y,且确认号为x+1,此时为半关闭状态,客户端还可以接受服务端的数据;若服务器无未发送数据,则发送FIN为1的连接释放请求,序号仍未上个加一,确认号还是x+1,客户端在收到此报文段后须最后再发一个x+1序号,还有确认号的最后确认报文;但是此时连接并没有释放掉,须经过2MSL(最长报文段寿命)后在断开连接,是为了以防最后确认丢失以及等待所有此次连接产生的数据从网络中消失,为下一次连接建立做准备;



应用层

1. DNS

Domain Name System,联机分布式数据库,存在分级的域名服务器,从根服务器到本地服务器,主要有递归查询(一级服务器无法解析,一级就以客户身份向下一级查询...)和迭代查询(一级服务器只告诉客户下一级的服务器地址不会代替),通常用UDP发送查询报文且服务器一般都配置缓存;

2. FTP/NFS

使用TCP,服务器一般由主进程(接受连接)和若干从属进程(处理数据、控制)组成,都是独立的TCP连接;NFS则允许客户进程打开远端文件进行读写,因此传输量少;

3. TELNET(远程操控)

依然是TCP连接,兼容不同OS的具体差异,把不同格式的输入转换成远端的匹配格式;

4. WWW

分布式的信息存储,文档不断流转,你来我往,服务器响应客户所需的文档请求并回送;

  • 网络文档如何标志定位?

URL,统一资源定位符,在主机域名后的‘/’ 路径标志着此域名下各种可访问对象的位置;

  • 链接协议?

HTTP,TCP连接,定义了浏览器如何向服务器请求文档以及服务器回送的方式;HTTP/1.0为非持续性连接,每请求一次就有连接开销,所以HTTP/1.1采用持续性连接,发送回送文档后依然保持一段时间。

代理服务器,可作为服务器在客户端做缓存,也可做代理客户端向远端服务器发送请求报文;

HTTP报文结构:分为请求和响应两种报文,两者只是首部行的不同;

Cookie:文本文件,表示了用户在服务器后端的唯一识别码;

活动文档:HTTP响应报文会传输程序副本在浏览器中形成动态文档;

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:46:39  更:2022-01-04 13:47:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 9:24:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码