• 网络编程


    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工作流程:

    
    
    
    
  • 相关阅读:
    Java的快速失败和安全失败
    Java RMI与RPC的区别
    Java动态代理之JDK实现和CGlib实现(简单易懂)
    JVM——字节码增强技术简介
    Linux内存分配机制之伙伴系统和SLAB
    操作系统动态内存管理——malloc和free的工作机制
    Java中的Map
    Java的PriorityQueue
    Java中的List
    Java中的Set
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8607808.html
Copyright © 2020-2023  润新知