zoukankan      html  css  js  c++  java
  • udp和tcp特点 实现文件上传

    本周课程安排:
    网络编程结束
    并发网络开头


    进程
    线程
    IO模型



    上周内容回顾:
    1.osi七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理连接层
    也有人把他们归纳为五层:
    应用层,
    传输层,
    网络层,
    数据链路层,
    物理连接层

    以太网协议:
    1.规定电信号的分组方式
    2.每台计算机都必须又一块网卡,网卡上面刻有12位的16禁止编号
    前6位 厂商地址
    后6位 流水线号
    我们把这个编号称之为mac地址

    基于以太网协议通信:通信基本靠吼,不能跨局域网传输
    弊端:广播风暴


    ip协议:
    规定了任何一台接入互联网的计算机都必须又一个ip地址
    版本:ipv4 ipv6
    地址特点:点分十进制
    0.0.0.0~255.255.255.255
    作用:能够跨局域网传输,能够唯一标识全世界独一无二的计算机

    端口port:
    唯一标识一台计算机上的某个基于网络通信的应用软件
    0~65535
    0~1024操作系统自己分配
    1024~8000 常用的应用程序占用
    Mysql:3306
    Redis:6379
    Flask:5000
    Django:8000


    ip+port:唯一标识全世界独一无二的一台计算机上的某一个基于网络通信的应用软件

    arp协议:根据IP地址解析mac地址

    Tcp(可靠协议,学名流式协议)
    三次握手
    四次挥手
    可靠协议的原因:必须要收到消息才会在内存中删除
    流式协议

    粘包问题的产生:
    1.接收方:
    我不知道我要接收数据的总长度
    2.发送方:
    由于Tcp协议的内部优化算法negle
    1.会将数据量比较小的,并且时间间隔比较短的数据一次性打包发送

    解决方案:
    发送方:1.自定义字典 2.字典序列化 3.制作报头 4.发送报头 5.发送序列化的字典 6.发送真实内容
    接收方:1.接收报头 2.解析报头,获取字典长度(1,先收序列化的字典,然后反序列化) 3.文件内容的循环接收

    Udp
    数据报协议
    没有双向通道的
    1.udp协议不存在粘包问题
    2.客户端可以发空
    3.udp可以实现并发的效果
    4.服务端不存在也不影响客户端朝服务端发送数据


    区别tcp和udp
    tcp:类似于打电话
    udp:类似于发短信


    可靠原因:
    不可靠原因:

    SocketServer模块
    1.能够实现并发效果
    并发:看起来像同时运行就能称之为并发

    2.udp在使用的时候,多个客户端要有一些IO(等待用户输入,计算机没在工作)操作,不然容易卡死



    并发编程
    操作系统发展史

    多道技术:
    1.空间上的复用(多个程序公用一套硬件设备,他是多道技术实现时间上的复用的基础,不然还要去硬盘读数据)
    #多个程序公用一台计算机硬件
    多个程序公用一套硬件设备,他是多道技术实现时间上的复用的基础,不然还要去硬盘读数据

    2.时间上的复用(单个CPU的电脑上启用多个程序,CPU快速切换,给人的感觉是同时运行)

    CPU两种情况下才会切换:(先保存当前程序的运行状态)
    --一个任务占用CPU时间过长或被操作系统强行夺走CPU的执行权限(比起串行效率反而降低)
    --一个任务执行过程中遇到的io操作,也会被操作系统强行夺走CPU的执行权限(比起串行效率提高)

    并发:看起来像同时运行就能称之为并发
    并行:同时运行(同一时间同时运行)
    补充:单核计算机不可能实现并行!

  • 相关阅读:
    sass和compass的配置
    MAC apache配置
    js库
    Tomcat7 配置 ssl
    同一对象内的嵌套方法调用AOP失效原因分析
    Spring Boot文件无法下载问题排查过程记录
    Apache、Spring、Cglib的beancopy效率对比
    使用in作为查询条件优化SQL并使用set筛选结果集
    Java使用foreach遍历集和时不能add/remove的原因剖析
    Python爬虫实践——爬取网站文章
  • 原文地址:https://www.cnblogs.com/mcc61/p/10816619.html
Copyright © 2011-2022 走看看