| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 云计算笔记二 -> 正文阅读 |
|
[网络协议]云计算笔记二 |
2021年12月9日 面向连接:设备在正式传输数据之前,先使用预备的协议建立点到点的连接,之后再传输数据。 TCP/IP建立的是一个双向连接。 传输层只需要在头部加东西,不需要在尾部加东西。 TCP协议的头部是一个可变长头部。 数据:应用层产生传送下来的数据。 序号;来确定分段后的顺序。 首部长度:用来标出头部的长度为多少,因为TCP的头部是可变长头部(最短20字节)。 选项:可选项,可能有可能无,所以TCP的头部长度不固定。 保留:不用管,暂时置0。 六个标记位,每一个标记位占1位,每个标记位置1都会使其发挥其对应的功能。 紧急标记位(URG):如果数据中有需要紧急处理的数据就会置1激活,会将所有需要优先处理的数据放到正式数据的前面,随之激活紧急指针。 紧急指针:指出紧急数据与正式数据的分界点(只有存在紧急数据时才会激活)。 确认标记位(ACK):置1代表确认,然后确认序号激活。 推送标记位(PSH):如果置1就不需要在缓存区域排队,直接被推送给进程。 强制断开标记位(RST): 请求标记位(SYN):用来请求建立连接。 结束标记位(FIN):用来断开连接。 TCP协议会有一个缓存区域用来将被分段的数据拼好,再推送给进程。 校验和(伪头部校验):确保数据的完整性,除了会校验TCP的头部以外,还会把TCP携带的数据一块校验,而且还会把下一层(网络层)的协议的部分数据一起校验。 将12个字节的数据一块校验:32位的源IP,32位目标IP,8位保留,8位协议号,16位的总长度(数据+头部的总长度)。 协议类型:用协议号标识上一层所使用的协议。 所以传输层的校验强度相对其他层比较高。 UDP协议; 16位UDP长度:总长度。 UDP的校验和与TCP的校验和时一样的。 传输层的校验都是伪头部校验。 且使用的算法都是反码相加法。 TCP建立点到点的连接过程:
TCP协议保证传输可靠性的机制:
真正的序号是按字节来排序的,如果一个数据包被分为三段,每一段100个字节,然后第一个字节的序号为2,则之后的每一个字节加1,所以第一段最后的字节序号则为101。然后发送数据包时序号为2(发送时的序号为数据包第一个字节的序号。),对方收到这个数据包后,返回的确认序号则为102。 所以数据传输时要把数据部分的字节数考虑进去(三次握手的数据包不含数据,所以只要加1就可,而四次挥手的数据包里是可以包含数据的)。
TCP的流控机制比较 耗时,所以引入了窗口机制。 A给B发送一个数据包,数值为1,然后窗口值为5(实际窗口值可能很大,因为实际窗口值会把数据内的字节也包含进去),就会同时发送5个包过去,然后B会给A发送一个数据包与ACK置1,然后确认序列号为6,并发送一个确认窗口值也为5,目的是为了告诉A,它可以接受5个数据包。然后A就不会再发送五个窗口值,会发送更多,直到B达到最大承受值,然后回应一个最大窗口值,并只接收最大窗口值数量的数据包,然后多余的数据包不接收,然后A再从被拒收的数据包再开始发送,并不断试探B的最大承受值(因为最大承受值是在不断变动的,不是固定值。) 这个机制被称为滑动窗口机制。 而UDP则没有这些机制(做不到) 网络层:靠IP协议封装。 版本:标记IP的版本是IPV4还是IPV6. 选项也是可有可无,也是可变长头部。 首部长度:标识头部长度(最短20字节)。 服务类型:数据在传输类型中,如果需要设备对其进行特殊操作,需要在此标 识。 总长度:头部内容+数据内容的长度。 生存时间(time to live TTL):数据包每经过一次路由器的转发,TTL值将会减一,当一个数据包中的TTL值为0时,路由器将不再转发该数据包,将直接把他丢弃。 协议:指上层(传输层)所使用的协议类型,用协议号。 TCP --- 6 UDP --- 17 ICMP --- 1 ?ICMP的封装位置也在网络层之上,但在TCP/IP体系中这个 ??协议时属于网络层的协议,但封装位置却不是。 首部校验和:只校验首部,作用强度不大。 IP的分片: 二层在进行封装时有个上限MTU。 MTU(最大传输单元):默认1500个字节(可以改) 所以网络层要保证给数据链路层的数据的大小。 传输层在封装时也有个限制MSS MSS(最大段长度):TCP分的每一段中包含的数据的长度,合理值为1460字 ?节。这个值需要再TCP连接的三次握 手中前两次SYN包 ?中进行协商,如果双方携带的MSS值不同,则以小的为 ?准 如果传输层用的 时TCP协议,能够进行分段,网络层就不需要IP进行分片了,如果用的时UDP协议,无法分段,就需要IP进行分片了。 标识,标志,片偏移都与IP的分片有关。 标识:一个数据包被分片得来的每一片都拥有相同的标识。 标志:三位 ?1.保留。 2.是否进行分片。 3. 后边是否还有分片。 片偏移:如果每一片都是100个字节,最先的片为0,之后的为100,再后的为200,以此类推,即用来排序。 GE --- 千兆口 ethernet --- 百兆口 <Huawei> --- 用户视图 --- < > ---- 只能进行查看配置的操作,而不 能进行配置 <Huawei>display ip interface brief --- 查看接口IP配置情况摘要 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 10:31:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |