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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 2021-11-13 -> 正文阅读

[系统运维]2021-11-13

TCP协议收发数据的操作可分为四个阶段
1、创建套接字
创建套接字时,首先分配一个套接字所需的内存空间,然后向其中写入初始状态。
实质是由:IP地址,端口号,通信操作的进行状态共同组成。

2、连接服务器

将本地的套接字与服务器的套接器进行连接。(彼此交换控制信息)
通信操作中使用的控制信息分为两类。
1、头部中记录信息
2、套接字(协议栈中的内存空间)中记录的信息。
这个最主要的操作是找到发送方和接收方的端口号。
我们可以这样理解,有一根管子把两个套接字连接起来了。
3、收发数据

应用程序调用write将要发送的数据交给协议栈,协议栈收到数据后执行发送操作。
协议栈不关心应用程序传来的数据是什么内容,它关心的是网络包能容纳的数据长度和时间。
MTU:一个网络包的最大长度,以太网一般为1500字节
MSS:除去头部之后,一个网络包所能容纳的TCP数据的最大长度

如果一个网络包过大,会进行拆分

为了确保发送成功,一般都会返回一个ACK号。
比如说,客户端向服务端发送一个网络包,但是网络包比较大,这时就需要拆分,并将每一个包赋予相应的序号值,当某一个包到达了服务端,服务端相应的会计算出一个ack号进行返回,表示自己成功收到。这样就能有效的收取到客户端的信息,对其中的某个包丢失了,都能做到心知肚明。

在每次发送期间,我们都需要等待,这简直就是浪费,为了充分利用资源,
我们加入了滑动窗口,再发送的一个包之后,不等待ack号返回,而是直接发送后续的一系列包。

当接收方从缓冲区取出数据传递给应用程序的时候,进行窗口大小的更新。

4、从服务器断开连接并删除套接字

服务端生成并发送包含断开信息的TCP头部,具体就是将控制位中的fin比特设为1,然后客服端返回一个表示确认收到的ack号。双方还会交换一组方向相反的fin为1的TCP包。最后,在等待一段时间后,套接字被删除。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:09:38  更:2021-11-14 22:10:50 
 
开发: 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/15 23:56:30-

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