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

进程件通信——网络通信——TCP

网络抓包工具:wireshark    抓取经过设备网卡的数据。

操作:

1. sudo wireshark
2. 选择要抓取的网卡----》any
3. 设置抓取的过滤条件
4. 进行网络通信
5. 分析数据

UDP: 用户数据报协议

UDP: 用户数据报协议
 特点:
    1. 无连接
    2. 面向数据包
    3. 不确保数据的安全可靠性
    4. 可以实现一对一,一对多通信 

    5. 头部开销小

应用: 要求数据安全可靠的场景下
             HTTP、FTP、MQTT

TCP : 传输控制协议

特点:
    1. 有连接
    2. 面向字节流(流式套接字)
    3. 安全可靠的传输协议
           1.三次握手、四次挥手机制
           2.应答机制....等一系列机制
    4. 只能实现一对一通信

    5. 头部开销大,机制复杂

三次握手:tcp为了确保通信双方都已准备就绪,在建立连接时,要进行三次握手操作。
                  由客户端主动发起。

四次挥手:tcp为了确保断开连接时,通信双发都收发数据结束,在断开连接时,进行四次挥手。
                  由任意一方发起

int listen(int sockfd, int backlog);
功能:负责监听需要建立连接的客户端
参数:
      sockfd:
      backlog:允许同时监听的客户端的个数
返回值:
  成功:0
  失败:-1
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
功能:接收完成三次握手的客户端
参数:
        sockfd:监听套接字
        addr:建立连接的客户端地址
        addrlen:客户端地址大小的指针
返回值:
      成功:通讯套接字
      失败:-1

ssize_t recv(int sockfd, void *buf, size_t len, int flags);
功能:
返回值:
  成功:实际收到字节数
  失败:-1
  对方断开连接:不再阻塞, 返回0

TCP报文头

滑动窗口大小:是TCP流量控制得一个手段。目的是告诉对方, 本端得TCP接受缓冲区还能容纳多少字节得数据,这样对方就可以控制发送数据的速度,从而达到流量控制,16bit,因而窗口最大65535.

源端口与目的端口各占2个字节,

序列号与确认序列号各占4个字节;

数据便宜+标志位、窗口、检验和、紧急指针各占2个字节

选项与填充长度可变
 


http://www.kler.cn/a/473189.html

相关文章:

  • Flutter:封装一个自用的bottom_picker选择器
  • QT自定义工具条渐变背景颜色一例
  • Mysql 性能优化:索引条件下推(ICP)
  • 根据docker file 编译镜像
  • 基于FPGA的出租车里程时间计费器
  • 算法5--位运算
  • Flink维表方案选型
  • IOS开发如何从入门进阶到高级
  • 更改IP地址能提高網路速度嗎?
  • conda 批量安装requirements.txt文件
  • MacBook Linux 树莓派raspberrypi安装Golang环境
  • Huawei Cloud EulerOS上安装sshpass
  • VSCode Live Server 插件安装和使用
  • HTTPS 原理详解
  • [Linux]生产消费者模型
  • 概率论常用的分布公式
  • Monaco Editor 系列报错修复:webpack-cli已经下载了但是还报错
  • 用JavaScript和python实现简单四则运算出题机
  • 如何在Jupyter中快速切换Anaconda里不同的虚拟环境
  • HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构
  • maven依赖的配置和排除依赖
  • 【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作
  • Ruby语言的并发编程
  • 2025-1-7-sklearn学习(33)数据集转换-特征提取 我不去想未来是平坦还是泥泞,只要热爱生命,一切 都在意料之中。
  • 【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
  • 使用wav2vec 2.0进行音位分类任务的研究总结