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

    
    
    
    
  • 相关阅读:
    Flink SQL Client初探
    ansible快速部署cassandra3集群
    利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)
    spark读取HDFS目录时报错Failed on local exception: com.google.protobuf.InvalidProtocolBufferException
    Spark学习进度-Spark环境搭建&Spark shell
    jquery获取select选中的值
    java零基础到架构师学习线路(附视频教程)
    plsql连接远程oracle数据库
    如何在通用异常处理时获取到方法名称(获取注解参数JoinPoint)
    java:找不到符号(使用lombok)
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8607808.html
Copyright © 2011-2022 走看看