zoukankan      html  css  js  c++  java
  • 网络编程

    1.计算机基础知识:
    作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,
    应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。


    2.网络:
    网络就是物理链接介质+互联网协议
    1.物理链接介质:网线,交换机,路由器等网络设备
    2.互联网协议就是计算机界的英语

    3.互联网协议:
    osi七层或tcp/ip五层或tcp/ip四层
        TCP/IP?
    传输控制协议/因特网互联协议,又名网络通讯协议(Transmission Control Protocol/Internet Protocol)
           

    每层运行常见物理设备(了解) 


    4.五层协议详解:
    物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
    数据链路层:定义了电信号的分组方式
    网络层: ip + mac 就能找到全世界中唯一的计算机 ip->找到哪一个子网 mac->找到具体哪一台机器 ARP协议:把ip地址解析成mac地址
    传输层:建立端口到端口的通信 端口范围0-65535,0-1023为系统占用端口 1.tcp 2.udp
    应用层: 暴风 qq ... 软件

    五层串起来:--->: 应用层产生数据head(固定长度)+data -> 传输层 -> 网络层 - > 数据链路层 -> 物理层

    5.传输层详解:
    传输层有两种协议,TCP和UDP

       以太网头  ip头  tcp头  数据

        1.tcp: 流式协议,像水流一样发数据,可靠传输 最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。
    tcp的3次握手和4四挥手
    2.udp: 不可靠传输,client一直发数据 不需要 对方回应 断电了或者网络出问题 client 不管
    总结:
    tcp:可靠,效率低
    udp: 不可靠,效率高

    6.网络编程/scoket 编程:
    参考: http://www.cnblogs.com/linhaifeng/articles/6129246.html
    socket 就是 == 片面说: ip + 端口
    socket两大家族(两种套接字的类型):
    1.基于文件类型的套接字家族 AF_UNIX 一台机器上 两个软件通信
    2.基于网络类型的套接字家族 AF_INET 基于网络通信
    socket工作流程:

    
    
    
    
  • 相关阅读:
    (OK) 从do_register_framebuffer开始的函数调用关系
    Linux内核基础--事件通知链(notifier chain)
    Java EE即将死去,毫无疑问!- Docker & 微服务 & DevOps
    GUI显示系统之SurfaceFlinger--- Gralloc与Framebuffer
    (OK) kernel create framebuffer device
    Android: 显示系统模块加载以及调用流程 HWComposer::loadFbHalModule() -> framebuffer_open()
    (OK) Android x86如何启动到图形界面&init.sh分析.md
    error: call to '__creat_missing_mode' declared with attribute error
    Android
    Android hwcomposer模块接口
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8607808.html
Copyright © 2011-2022 走看看