11.网络编程-基础知识 C++/Linux-2022-10-20

linux网络编程

1.网络基础

  • 网络应用程序设计模式
  • C/S - client/sercver
    • 优点:1.协议选用灵活,2.可以缓存数据
    • 缺点:用户安全,开发工作量大,调试困难
  • B/S - browser/server
    • 优点:跨平台
    • 缺点:只能使用http
  • 协议概念
    • 规则:数据传输和数据解释的规则
    • 典型协议:TCP/UDP HTTP FTP IP ARP
  • 分层模型
  • 7层模型 - OSI
    • 物 – 物理层(双绞线,光纤)
    • 数 – 数据链路层(数据的传输和错误检测)
    • 网 --网络层(为数据包选择路由)
    • 传 --传输层(提供端对端的接口tcp/udp)
    • 会 --会话层(解除或建立与别的结点的联系)
    • 表 --表示层(数据格式化,代码转换,数据加密)
    • 应 --应用程(文件传输,电子邮件,文件服务,虚拟终端)
  • 4层模型 - TCP/IP :
    • 网络接口层
    • 网络层
    • 传输层
    • 应用层
  • 协议模式—数据包的封装思想
    • 以太网帧格式 – 借助mac地址完成数据报传递
      • arp数据宝 – 根据IP获取mac地址
    • IP段格式:
      • 4位版本:ipv4,ipv6
      • 8位生存时间(TTL):最多能经过多少跳
      • 32位源IP地址:数据发送端地址
      • 32位目的IP地址:数据接收端地址
    • udp数据包格式
      • 16位源端口
      • 16位目的端口
    • tcp数据包格式
      • 16位源端口
      • 16位目的端口
      • 32位序号
      • 32位确认序号
      • 6个标志位
      • 16位滑动窗口
  • 数据的发送和接受
  • tcp,udp传输层协议
    • tcp:面向连接的安全的流式传输协议
      • 连接的时候,进行3次握手
      • 数据发送的时候,会进行数据确认
        • 数据丢失之后,会进行数据重传
    • udp:面向无连接的不安全的报式传输
      • 连接的时候不会握手
      • 数据发送后不再管(丢失则全丢)
  • socket编程
    • 什么是socket
      • 网络通信的函数接口
      • 封装了传输层协议
        • tcp
        • udp
    • 浏览器 - http
      • 封装的是浏览器
    • 套接字概念
      • IP地址:定位一台主机
      • 端口号:定位一个进程,16位,最大可以为65535
      • IP+port:e.g. 127.0.0.1:8080
    • socket编程
      • 读写操作:read/write
        • 文件描述符fd:socket创建成功,得到一个文件描述符fdfd操作的是一块内存缓冲区
        • 也会有阻塞现象
    • 网络字节序:
      • 大端:
      • 小端:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值