当前位置: 首页 > wzjs >正文

qq邮箱网页版登录入口石家庄seo外包的公司

qq邮箱网页版登录入口,石家庄seo外包的公司,一元1000粉自助下单平台,如何用天地图做网站目录 1.知识点概述 2.tcp协议 3.三次握手的过程 4.四次挥手的过程 5.滑动窗口的作用 6.滑动窗口的值是如何发送给对方的 7.滑动窗口如何控制发送端阻塞 8.tcp通信关键字解释 9.tcp通信的全部过程分析 1.知识点概述 2.tcp协议 shell # 三次握手在程序中是什么时候进行的…

目录

 

1.知识点概述

2.tcp协议

3.三次握手的过程

4.四次挥手的过程

5.滑动窗口的作用

6.滑动窗口的值是如何发送给对方的

7.滑动窗口如何控制发送端阻塞

8.tcp通信关键字解释

9.tcp通信的全部过程分析


 

1.知识点概述

 

2.tcp协议

```shell
# 三次握手在程序中是什么时候进行的? -> 客户端连接服务器成功, 三次握手就完成了
    1. 服务器端: 启动监听 -> listen();
    2. 客户端: 发起连接  -> conect();
# Tcp协议:
    1. 源端口: 当前进程的端口, 2字节
    2. 目的端口: 对方的端口, 2字节
    3. 序号: 客户端或者服务器端生成的随机数
        - 在三次握手的时候生成的, 生成之后不会再变了
    4. 确认序号: 确定上一次发送给对方的数据对方有没有接收到
        对方接收的字节数(发送给对方的字节数) = 确认序号 - 生成的随机序号
    5. 标志位:
        SYN: 请求和对方建立连接
        ACK: 确认没问题, OK
        FIN: 请求断开连接
    6. 窗口大小: 表示接收数据的一端剩余的缓存容量, 如果为0, 发送端会阻塞
```

 

3.三次握手的过程

```c
// 三次握手的过程:
// 三次握手的发起端: 肯定是客户端, 不肯定是服务器, 服务器只是监听
第一次握手:
    客户端:
        1. 将tcp协议中的SYN标志位设置为1
        2. 生成一个随机序号(整形数)
    服务器端:
        1. 收到了客户端的tcp协议, 解析
            1). SYN=1
            2). 得到了随机序号 J
            
第二次握手:  ===> 客户端和服务器的连接建立了
    服务器:
        1. 回复ACK, 表示同意建立连接
        2. ack=J+1, 告诉客户端, 你发送给我的一个字节的数据已经接收到了
            1). 1字节代表连接请求
        3. 服务器将tcp协议中的SYN设置为1, 向客户端发起连接请求
        4. 服务器生成了一个随机序号: K

 

4.四次挥手的过程

```c
// 断开连接的过程, 四次挥手完成之后, 双向连接被双向断开
// 断开连接的请求可以有客户端发起, 也可以由服务器发起
// 需要使用的标志位: FIN, ACK
```
 

 

5.滑动窗口的作用

```c
// 图中是客户端先断开连接, 其实服务器先断开连接也是可以的
// 在程序中怎么就断开连接了?
    - 调用 close(通信的文件描述符) 函数, 连接对断开了
// 在程序中服务器都和客户端程序中都调用了close()函数, 四次挥手就完成了
        
========================  在图中相当于在客户端调用close() ========================        
第一次挥手:
    主动断开连接的一方:
        1. 将tcp协议中的FIN标志位设置为1
    被动断开连接的一方:
        1. 接收对方的请求, 解析tcp协议
            1). FIN = 1
            
第二次挥手:   ===> 单向断开(在图中客户端和服务器断开了连接, 服务器和客户的连接还保持着)
    被动断开连接的一方:
        1. 同意了对方断开连接的请求, tcp协议中的ACK设置为1
        2. 确认序号: 在对方发送的序号基础上 +1
    主动断开连接的一方:
        1. 接收tcp协议, 解析
            1). 检测ACK是否为1
            2). 检测发送给对方的1字节数是否收到了

 

6.滑动窗口的值是如何发送给对方的

> 滑动窗口是 TCP 中用于实现诸如 ACK 确认、流量控制、拥塞控制的承载结构。
>
> - 滑动窗口表示的接收数据的内存剩余的容量
> - 发送端给接收端发送数据
>   - 接收端需要将接收数据的可用缓存大小给到发送端
>   - 发送端就给接收端发送对应的数据量
>   - 当接收端的缓存被写满, 发送端就阻塞了
>   - 滑动窗口的值是一直在变化的
>     - 当数据被写入缓存, 并且没被处理, 窗口值变小
>     - 数据被处理, 缓存被腾出, 窗口值变大

这个图是一个单向的数据发送:

 

7.滑动窗口如何控制发送端阻塞

```shell
# fast sender -> 客户端
# slow recevicer -> 服务器端
# mss(Maximum Segment Size,单条数据最大长度)
# SYN: 请求建立连接
# ACK: OK
# FIN: 请求断开连接
# win: 滑动窗口大小

###############################  三次握手 ###############################
第1步:
    客户端:
        1. 给服务器发送建立连接的请求 tcp协议中的 SYN 赋值为1
        2. 0(0): 
            1). 第一个0: 客户端生成的随机序号
            2). 第二个0: 客户端给服务器发送数据携带的数据量
        3. win4096: 客户端能够缓存的最大数据量为 4k
        4. mss 1460: 可处理的单条最大字节数1460

 

8.tcp通信关键字解释

第3步:
    客户端:
        1. ACK: 同意了服务器的连接请求
        2. 8001: 确认序号 = 服务器生成的随机序号 + 服务器给客户端发送的字节数
                8000 + 1 = 8001
        3. win 4096: 现在客户端可以缓存的最大数据量是4k

###############################  数据通信 ###############################
第4步:
    客户端给服务器发送数据:
        1. 1(1024)
            1). 上一次的确认序号, 服务器回复给客户端
                 - 1代表次已经成功发送了1个字节, 这次发送的数据量是1024字节
        2. 8001: 确认序号 = 服务器生成的随机序号 + 服务器给客户端发送的字节数
                8000 + 1 = 8001
        3. win 4096: 现在客户端可以缓存的最大数据量是4k

 

9.tcp通信的全部过程分析

 多进程版的服务器并发

  ```shell
  # 进程的特点(有血缘关系的进程):
  - 创建子进程-> fork()
  - 虚拟地址空间被复制 (用户区和内核区)
  - 父进程数据被修改了, 对子进程没有任何影响
  - 父进程中的什么数据被复制给了子进程
      - 用户区:
          - 堆区
          - 栈区
          - 全局数据区
          - 代码区
      - 内核区:
          - 文件描述符表
  - 资源回收
      - 通过父进程回收子进程资源, 父进程在做accept()
      - 回收资源需要while 循环, 二者是冲突的
      - 可以通过信号回收子进程资源
          SIGCHLD


          

 

 

 

 

http://www.dtcms.com/wzjs/529967.html

相关文章:

  • 帮人注册网站_做app社群营销的十大案例
  • 网站建设的问题seo网络营销推广
  • 如何做网站首页的psd图windows优化大师官方下载
  • 网站备案承诺书重庆网页搜索排名提升
  • 视频网站做短视频网站推广策划
  • 网站优化的监测评估图片在线转外链
  • 做一手楼房的网站电商网站建设平台
  • 网站更换空间对优化的影响制作网页完整步骤
  • 网站的源代码有什么用seo快速优化技术
  • 极速网站制作网络推广培训去哪里好
  • springboot做音乐网站重庆做seo外包的
  • 如何让自己网站排名提高深圳外贸网络推广
  • 邯郸建设企业网站郑州网站制作推广公司
  • 优化模型seo技术教程网
  • wordpress创建登录页优化营商环境条例心得体会
  • 个人网站如何做推广安卓优化大师手机版下载
  • 大连做网站谁家售后好营销型网站的类型有哪些
  • 网站的优化什么做seo建站收费地震
  • 哪个网站可以做h5页面百度移动端排名
  • 博客发布 网站模版产品推广公司
  • 广州网站建设公司好吗seo优化工具
  • 中国建设监理业协会网站郑州关键词排名顾问
  • 网站建设需求文案长沙网站seo公司
  • java如何做公司网站做一个企业网站需要多少钱
  • 网站备案拍照背景幕布开鲁网站seo免费版
  • 建设银行澳洲招聘网站百度公司招聘信息
  • 免费网站创建工具互联网广告优化
  • 做网站用花生壳哪个版本天津网站策划
  • 学校二级网站建设自查情况揭阳seo推广公司
  • 天津市住房和城乡建设委员会官方网站每日英语新闻